#include <stdio.h>
int main()
{
int a[10] = {0};
for (int i = 0; i < 10 , i++)
{
a[i] = arc4random()%50;
printf ("%d",a[i]);
}
for (int i = 0; i < 10-1 ;i++ )
{
for(int j = 0;j< 10-1-i ;j++)
{
if(a[j] > a[j+1])
{
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp ;
}
}
}
printf ("\n");
for (int i = 0;i < 10 ;i++)
{
printf("%d",a[i]);
}
}
return 0;
}
在头文件#include<stdio.h>中不包含随机函数random(),应该添加头文件#include<stdlib.h>.
而且只有在c99标准中才能在for循环内定变量,还有在for循环内应用分号隔开表达式。代码如下:
#include <stdio.h> #include<stdlib.h> int main() { int i,j; int a[10] = {0}; for ( i = 0; i < 10 ; i++) { a[i] = random()%50; printf ("%d",a[i]); } for ( i = 0; i < 10-1 ;i++ ) { for( j = 0;j< 10-1-i ;j++) { if(a[j] > a[j+1]) { int temp = a[j]; a[j] = a[j+1]; a[j+1] = temp ; } } } printf ("\n"); for ( i = 0;i < 10 ;i++) { printf("%d",a[i]); } return 0; }
感觉没错啊!内层循环得到最大值并存储在a[10-i]中外层循环九次,得到九个最大值,最小值在a[0]中,然后打印从小到大的随机数字。
你这是冒泡排序吧,为什么要i< 10 -1 ?