从a数组中找出偶数放入b数组
题目要求:在整形数组a中找出偶数放到b数组中,对b数组按从小到大的顺序进行排序后以格式"%3d"输出,要求每行3个数
自己写的:
#include<stdio.h>
int main()
{
int i,j,temp,n=0;
int a={7,6,20,3,14,88,53,62,10,29},b;
j=0;
for(i=0;i<10;i++)
{
if(a%2==0)
b=a;
}
for(i=0;i<10;i++)
{
if(b>b)
{
temp=b;
b=b;
b=temp;
}
n++;
}
for(i=0;i<10;i++)
{
printf("%.3d",b);
if((i+1)%3==0)
printf("\n");
}
return 0;
}
结果是这样的:
006020014
088062010
197574225342017606422352
4201854
怕不是这个数组b根本没有赋值成功?{:10_272:}
}
for(i=0;i<10;i++)
{
if(b>b) ====>>>n=0 i=0 b和b不是一个数么,怎么比较,i=1或n=1才好比较
{
temp=b;
b=b;
b=temp;
}
n++;
}
for(i=0;i<10;i++)
{
printf("%.3d",b); ====》》》 %.3浮点数才这样表示,整型直接 %3d就行了
if((i+1)%3==0)
printf("\n");
} 大问题有两个。给你指出来,自己修改吧。我手机上不方便操作。b并没有全部赋值。
第一、你是把a中的偶数拿出来给b赋值了,所以b中赋值的数有j项,后两个循环不应该是i<10而是i<j
第二,格式化输出%d不能控制小数的位数,你可能是打算控制其宽度吧。应该是%3d,不是%.3d sunrise085 发表于 2020-5-5 09:34
大问题有两个。给你指出来,自己修改吧。我手机上不方便操作。b并没有全部赋值。
第一、你是把a中的偶数拿 ...
啊啊是的呢!自己写代码总是出现各种问题,谢谢您辽!{:10_278:} chxchxkkk 发表于 2020-5-5 09:30
}
for(i=0;ib) ====>>>n=0 i=0 b和b不是一个数么,怎么比较,i=1或n=1才好比较
...
啊啊明白辽!!谢谢您!{:10_287:} 重新改了一下代码:
#include<stdio.h>
int main()
{
int i,j,temp,n=0;
int a={7,6,20,3,14,88,53,62,10,29},b;
j=0;
for(i=0;i<10;i++)
{
if(a%2==0)
b=a;
}
for(i=0;i<j;i++)
{
for(n=0;n<j;n++)
{
if(b>b)
{
temp=b;
b=b;
b=temp;
}
}
}
for(i=0;i<j;i++)
{
printf("%3d",b);
if((i+1)%3==0)
printf("\n");
}
return 0;
}
自己电脑上的VC++运行结果是没错的,但放到学校的平台上结果就变了???我好困惑……老师说是冒泡排序控制的不对,让我再研究一下……但是是真的不明白啊{:10_266:}
Expected | Yours
6 10 14 | 16 10
20 62 88 | 14 20 62 Marcccccy 发表于 2020-5-5 15:37
重新改了一下代码:
自己电脑上的VC++运行结果是没错的,但放到学校的平台上结果就变了???我好困惑… ...
冒泡排序的确不太对,帮你改了
满意请给最佳
#include<stdio.h>
int main()
{
int i,j,temp,n=0;
int a={7,6,20,3,14,88,53,62,10,29},b;
j=0;
for(i=0;i<10;i++)
{
if(a%2==0)
b=a;
}
for(i=0;i<j-1;i++)//冒泡j-1轮
{
for(n=0;n<j-1-i;n++)//每次都是前j-1-i个进行比较,因为后面的已经通过前i次冒泡排好了
{
if(b>b)
{
temp=b;
b=b;
b=temp;
}
}
}
for(i=0;i<j;i++)
{
printf("%3d",b);
if((i+1)%3==0)
printf("\n");
}
return 0;
} sunrise085 发表于 2020-5-5 15:49
冒泡排序的确不太对,帮你改了
满意请给最佳
啊啊蟹蟹您!!自己的基础实在太差了{:10_278:}
页:
[1]