|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include<stdio.h>
int main()
{
int s,i,j,k,max=0;
int a[10] = {0,1,2,3,4,5,6,7,8,9},b[10];
for (k=0; k<10; k++)
{
for(j=0;j<10;j++)
{
max = max > a[j] ? max : a[j];
}
for (i=0;i<10;i++)
{
if (a[i] == max)
{
a[i] = 0;
}
}
b[k] = max;
}
for (s = 0; s < 10; s++)
{
printf("%d\n", b[s]);
}
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[10] = {0,1,2,3,4,5,6,7,8,9} , b[10] ;
- for (k = 0 ; k < 10 ; k ++)
- {
- for(max = i = 0 ; i < 10 ; i ++) if(a[i] > a[max]) max = i ;
- b[k] = a[max] ;
- a[max] = 0 ;
- }
- for(i = 0 ; i < 10 ; i ++) printf("%d\n", b[i]) ;
- }
复制代码
|
|