编写C语言程序代码,要求任意输入n个正整数,程序统计其中的奇数和偶数各有多少个

如题所述

如果不考虑数组存储,那直接循环输入然后判断就行了。比如:

#include<stdio.h>
int main()
{
    int n,even=0,odd=0;
    printf("输入任意个正整数(输入-1结束输入):");
    scanf("%d",&n);
    while(n!=-1)
    {
        if(n>0 && n%2==0)
            even++;
        if(n>0 && n%2!=0)
            odd++;
        scanf("%d",&n);
    }
    printf("其中偶数个数:%d个,奇数个数:%d个\n",even,odd);
    return 0;
}

如果想要保存任意输入的数组,需要动态申请(不需要事先规定数组大小):

#include<stdio.h>
#include<malloc.h>
int main()
{
    int i,n,even=0,odd=0,len=0,*nums=(int *)malloc(sizeof(int)),*nSave=NULL;
    if(!nums)
    {
        printf("内存申请失败!\n");
        return 1;
    }
    printf("输入任意个正整数(输入-1结束输入):");
    scanf("%d",&n);
    while(n!=-1)
    {
        len++;
        if(len>1)
        {
            if((nSave=(int *)realloc(nums,sizeof(int)*len)))
                nums=nSave;
            else
            {
                printf("内存申请失败!\n");
                return 1;
            }
        }

        nums[len-1]=n;
        if(n>0 && n%2==0)
            even++;
        if(n>0 && n%2!=0)
            odd++;
        scanf("%d",&n);
    }
    printf("输入的数组为:");
    for(i=0;i<len;i++)
        printf("%d ",nums[i]);
    printf("其中偶数个数:%d个,奇数个数:%d个\n",even,odd);
    return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-11
int main(){
int n,num;
int p=0,q=0;
scanf("%d",n);

while(n>0)
{
--n;
scanf("%d",&num);
if(num%2==1)
p++;
else
q++;
}
printf("奇数:%d 偶数:%d",p,q);
return 0;
}
相似回答