C语言逆序(按大到小)输出数组
#include<stdio.h>int main()
{
int s,i,j,k,max=0;
int a = {0,1,2,3,4,5,6,7,8,9},b;
for (k=0; k<10; k++)
{
for(j=0;j<10;j++)
{
max = max > a ? max : a;
}
for (i=0;i<10;i++)
{
if (a == max)
{
a = 0;
}
}
b = max;
}
for (s = 0; s < 10; s++)
{
printf("%d\n", b);
}
return 0;
}
代码如上,为什么会全输出9啊 本帖最后由 jackz007 于 2021-12-25 20:13 编辑
这一句
for(j = 0 ; j < 10 ; j ++)
必须改为
for(max = j = 0; j < 10 ; j ++)
否则,每次循环 max 的值一定是 9
#include<stdio.h>
int main()
{
int i , k , max , a = {0,1,2,3,4,5,6,7,8,9} , b ;
for (k = 0 ; k < 10 ; k ++)
{
for(max = i = 0 ; i < 10 ; i ++) if(a > a) max = i ;
b = a ;
a = 0 ;
}
for(i = 0 ; i < 10 ; i ++) printf("%d\n", b) ;
} jackz007 发表于 2021-12-25 19:47
这一句
必须改为
好神奇啊哈哈哈,但是没搞懂是什么原理
怎么解释max=j=0{:5_96:}
大神求解{:5_111:} jackz007 发表于 2021-12-25 19:47
这一句
必须改为
好像懂了,因为max的值一直是9,这相当于重置了max的值是吗 Rainmoon_ 发表于 2021-12-25 21:40
好像懂了,因为max的值一直是9,这相当于重置了max的值是吗
是的
页:
[1]