|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
题目要求:
在整形数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"输出,要求每行3个数
自己写的:
- #include<stdio.h>
- int main()
- {
- int i,j,temp,n=0;
- int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];
- j=0;
- for(i=0;i<10;i++)
- {
- if(a[i]%2==0)
- b[j++]=a[i];
- }
- for(i=0;i<10;i++)
- {
- if(b[n]>b[i])
- {
- temp=b[n];
- b[n]=b[i];
- b[i]=temp;
- }
- n++;
- }
- for(i=0;i<10;i++)
- {
- printf("%.3d",b[i]);
- if((i+1)%3==0)
- printf("\n");
- }
- return 0;
- }
复制代码
结果是这样的:
- 006020014
- 088062010
- 197574225342017606422352
- 4201854
复制代码
怕不是这个数组b根本没有赋值成功?
冒泡排序的确不太对,帮你改了
满意请给最佳
- #include<stdio.h>
- int main()
- {
- int i,j,temp,n=0;
- int a[10]={7,6,20,3,14,88,53,62,10,29},b[10];
- j=0;
- for(i=0;i<10;i++)
- {
- if(a[i]%2==0)
- b[j++]=a[i];
- }
- for(i=0;i<j-1;i++)//冒泡j-1轮
- {
- for(n=0;n<j-1-i;n++)//每次都是前j-1-i个进行比较,因为后面的已经通过前i次冒泡排好了
- {
- if(b[n]>b[n+1])
- {
- temp=b[n];
- b[n]=b[n+1];
- b[n+1]=temp;
- }
- }
- }
- for(i=0;i<j;i++)
- {
- printf("%3d",b[i]);
- if((i+1)%3==0)
- printf("\n");
- }
- return 0;
- }
复制代码
|
|