输入十个整数,将偶数与奇数分类放,求找错
#include<stdio.h>int main()
{
int i,j,odd,even,t,a;
odd=0;
even=9;
for(i=0;i<10;i++)
scanf("%d",&a);//输入十个整数
for(i=0;i<10;i++)
{
if(a%2==0)
{
a=a;
odd++;
}
if(a%2!=0) {
a=a;
even--;
}//将十个整数分为奇偶部分,存放在数组两端
}
for (i=0;i<10;i++)
printf("%d\t",a);
return 0;
}
为什么会这样呢 数据被覆盖了。在判断完奇偶之后将其存放到数组两端,有没有考虑过存放它们的地方原本数据是否有用
是因为你 a = a 和 a = a 赋值过程中,没有将 odd 或 even 位置上的元素保留替换到 i 上吧
再用一个数组放呗 本帖最后由 jhq999 于 2022-5-11 09:18 编辑
#include<stdio.h>
int main()
{
int i,j,odd,even,t,a;
odd=0;
even=9;
for(i=0;i<10;i++)
{
scanf("%d",&t);//输入十个整数
if (t%2)
{
a=t;
}
else
{
a=t;
}
}
/*for(i=0;i<10;i++)
{
if(a%2==0)
{
a=a;
odd++;
}
if(a%2!=0) {
a=a;
even--;
}//将十个整数分为奇偶部分,存放在数组两端
}*/
for (i=0;i<10;i++)
printf("%d\t",a);
return 0;
}1 3 5 2 6 8 7 9 10 4
1 3 5 7 9 4 10 8 6 2
#include<stdio.h>
int main()
{
int i,j,odd,even,t,a;
odd=0;
even=9;
for(i=0;i<10;i++)
scanf("%d",&a);//输入十个整数
while(odd<even)
{
if(0==a%2)
{
if (a%2)
{
t=a;a=a;a=t;
odd++;
}
else
{
even--;
}
}
else
{
odd++;
}
}
for (i=0;i<10;i++)
printf("%d\t",a);
return 0;
}
页:
[1]