youhaihui
2015-08-27 15:01
#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 ?
C语言入门
928125 学习 · 21543 问题
相似问题