满意答案
lwchfqz
2018.10.24
采纳率:46% 等级:6
已帮助:157人
首先,你的程序由于定义了变量a,又定义了数组a,而此时数组名a不是变量,与前面定义的变量a重复,只要把数组名a改成非a,b,c,maax,min,i,j的其他字母就行啦但是修改后的程序只能输入数据,不能输出结果。其中一个很明显的错误就是第7行i=1,数组是从下标0开始,很明显你只能存储2个数。经过一番调试,如果你非得用数组解题,可用如下程序:#include
void main()
{
int i,j,a[3],t;for (i=0;i<3;i++)
{printf("请输入第%d个数的值:",i+1);scanf("%d",&a[i]);printf("\n");}for(i=0;i<2;i++)
for(j=i+1;j<=2;j++)
if(a[i]
{
t=a[i];
a[i]=a[j];
a[j]=t;
}printf("最大值为%d\n",a[0]);
printf("最小值为%d\n",a[2]);
}程序结果: 对于你后来问到的为什么改后的程序没错而能运行的问题,是因为你定义了一个含有三个元素的数组,而元素下标只能从0-2,而你编的时候刚好写多了一个a3,所以程序对于a1和a2还能分配存储空间,但是对于a3这个额外生出的数据就不知道往哪里存储;还有,你下面进行比较是从a0开始,而这个变量又没分配数值,无法进行比较,所以就无法输出结果 如果你真的很想用abc三个变量和if语句,那么下面这个程序应该适合你,程序如下:#include
void main()
{
int a,b,c,t;
printf("输入a、b、c的值(用空格分开):");
scanf("%d %d %d",&a,&b,&c);
if(a
if(a
if(b
printf("最大数:%d\n",a);
printf("最小数:%d\n",c);
}程序结果: 这种题目我看用if语句就最简单啦,至于用到数组和函数调用就有点大题小做。其实函数调用只是if语句的浓缩。
00分享举报