判断正整数n是否同时含有奇数和偶数数字的编程

如题所述

/*
 * 输入一个11位以下的数字
 * 判断输入的是一个几位数
 * 再判断是不是同时有奇数和偶数
 * 奇数有几个,偶数有几个
 */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int Input(int number);
int my_int_lenth(int number);
void Output(int number,int len);
int main(void)
{
    int len = 0;
    int number = 0;
    while(1)//多次判断输入的数字,ctrl+c/z退出循环
    {
        system("clear");
        number = Input(number);
        len = my_int_lenth(number);//计算得到数字的位数
        Output(number,len);
    }
}
int Input(number)
{
    printf("请输入一个11位以下的数字: \n");
    scanf("%d",&number);
    return number;
}
int my_int_lenth(int number)
{
    int i = 1;
    while(number /= 10)
    {
        i ++;
    }
    printf("你输入的是 %d 位数\n",i);
    return i;

}
void Output(int number,int len)
{
    int temp = number;
    int no = 0,nj = 0;//no表示偶数,nj表示奇数
    while(len --)
    {
        if(number%2 == 0)
        {
            no = no + 1;
        }
        else
        {
            nj = nj + 1;
        }
        number /=10;
    }
    if(no > 0 && nj > 0)
    {
    printf("(%d) 同时含有奇数和偶数\n",temp);
    printf("奇数有个 %d \n偶数 %d  个\n",nj,no);
    }
    else
    {
    printf("(%d)不同时含有奇数和偶数\n",temp);
    printf("奇数有个 %d 个\n偶数 %d  个\n",nj,no);
    }
    sleep(3);//显示3秒
}
/*
 *程序已经经GCC测试 通过
 */

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-27
//******************************************************************************
// 判断正整数n是否同时含有奇数和偶数数字的编程
//******************************************************************************
#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n,a[100],b[100],num;
while (scanf("%d",&num)&&num!=EOF) //多项测试 Ctrl + Z结束
{
if (num==0) //输入 0 跳过,不作处理
continue;
memset(a,'\0',sizeof(a)); //初始化数组
memset(b,'\0',sizeof(b));
printf("%d:\n",num);
for (i=j=0;num;)
{
if ((num%10)%2==0) //保存偶数
{
a[i]=num%10;
i++;
}
else //保存奇数
{
b[j]=num%10;
j++;
}
num=num/10;
}
if (i==0)
{
printf("Contains only odd numbers:"); //只含奇数
for (n=j;n>=0;n--)
printf("%d",b[n]) ;
}
if (j==0)
{
printf("Contains only even numbers:"); //只含偶数数
for (n=i-1;n>=0;n--)
printf("%d",a[n]) ;
}
if (i!=0&&j!=0) //奇数偶数均有
{
printf("Both containing even numbers:");
for (n=i-1;n>=0;n--)
printf("%d",a[n]) ;
printf("\nAlso contains an even number:");
for (n=j-1;n>=0;n--)
printf("%d",b[n]) ;
}
printf("\n\n");
}
}
//******************************************************************************
// 祝学习进步,更上一层楼 *(^-^)*
//******************************************************************************本回答被网友采纳
第2个回答  2013-09-27
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("请输入一个正整数:");
int n1,n2;
bool flag1 = false,flag2 = false;
scanf("%d",&n1);
n2 = n1;
while(n1)
{
if((n1%10)%2)
flag1 = true;
else
flag2 = true;
n1 = n1/10;
}
if(flag1 && flag2)
printf("正整数%d既包含偶数也包含奇数\n",n2);
else if(flag1)
printf("正整数%d只包含奇数\n",n2);
else
printf("正整数%d只包含偶数\n",n2);
system("pause");
return 0;
}
相似回答