帮忙看下这个C程序错哪里了
来源:百度知道 编辑:UC知道 时间:2024/05/22 16:05:10
#include "stdio.h"
main()
{int a[10],*p,*q,i,temp;
p=a[0];q=a[0];
for(i=0;i<=9;i++)
scanf("%d",a[i]);
for(i=1;i<=9;i++)
if(*p<a[i]) *p=a[i];
temp=*q;*q=*p;*p=*q;
for(i=0;i<=9;i++)
printf("%d",a[i]);
}
输入10个整数,将其中最大的数与第一个数交换。
初学不懂。。
main()
{int a[10],*p,*q,i,temp;
p=a[0];q=a[0];
for(i=0;i<=9;i++)
scanf("%d",a[i]);
for(i=1;i<=9;i++)
if(*p<a[i]) *p=a[i];
temp=*q;*q=*p;*p=*q;
for(i=0;i<=9;i++)
printf("%d",a[i]);
}
输入10个整数,将其中最大的数与第一个数交换。
初学不懂。。
p=a[0];q=a[0];
这是错误的,不能将数值赋值给指针
可以使用p=a;q=a
来将数组首地址赋给指针。
main()
{int a[10],i;
for(i=1;i<=10;i++)
scanf("%d",a[i]);
for(i=1;i<=9;i++)
if(a[0]<a[i]) a[0]=a[i];
for(i=0;i<=10;i++)
printf("%d",a[i]);
}
你试一下吧,我这没有TC环境,没法调试,不知道有没有错误。
第一行没有错
p=a[0];q=a[0];
这是错误的,不能将数值赋值给指针
scanf("%d",a[i]);
a[i]处应该为地址既改为a+i
第一行…引号改成单书名号<>