#include<stdio.h>
void main()
{
int a[5]={2,4,6,8,10},i,b,t;
scanf("%d",&b);
for(i=0;i<5;i++)
if(b<=a[i])
{
t=a[i];
a[i]=b;
b=t;
}
for(i=0;i<5;i++)
printf("%d",a[i]);
printf("%d",b);
}
开始已经有个for语句了,a[i]是循环一次输出一个值的,为何在输出a[i]之前,还要加一个for语句,感觉多余,但去掉a[i]前的for语句后,却输不出正确结果了,这是为什么,请给个回答,谢谢!
因为第一个for只管到if语句的结束,主要是for没有大括号,再向下就作用不到了,你可以换一个写法:
for(i=0;i<5;i++)
{
if(b<=a[i])
{
t=a[i];
a[i]=b;
b=t;
} // if 结束
printf("%d",a[i]);
}// for 结束
for(i=0;i<5;i++)
{
if(b<=a[i])
{
t=a[i];
a[i]=b;
b=t;
} // if 结束
printf("%d",a[i]);
}// for 结束
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-04-16
你的第一个for没有加花括号只管到if语句,所以要想全部输出得加for循环。