addendum777 发表于 2022-5-10 17:19:36

输入十个整数,将偶数与奇数分类放,求找错

#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;
}

为什么会这样呢

风车呼呼呼 发表于 2022-5-10 17:30:13

数据被覆盖了。在判断完奇偶之后将其存放到数组两端,有没有考虑过存放它们的地方原本数据是否有用

Twilight6 发表于 2022-5-10 17:40:11



是因为你 a = a 和 a = a 赋值过程中,没有将 odd 或 even 位置上的元素保留替换到 i 上吧

a83711140 发表于 2022-5-10 21:10:38

再用一个数组放呗

jhq999 发表于 2022-5-10 22:48:55

本帖最后由 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]
查看完整版本: 输入十个整数,将偶数与奇数分类放,求找错