7-43 判断正整数n是否同时含有奇数和偶数 (10 分)
本题目要求读入1个正整数n,判断正整数n是否同时含有奇数字和偶数字。
输入格式:
输入一个正整数n。
输出格式:
输出此正整数,并输出YES(表示同时含有)或NO(表示不同时含有)。
输入样例:
123
输出样例:
123 YES
#include<stdio.h>
int main()
{
int a,b=0,c=0,i;
scanf("%d",&a);
int k = a;
do{
if(a%2==0)
b++;
else
c++;
a=a/10;
}while (a!=0);
printf("%d ",k);
if(b*c==0)
printf("NO\n");
else
printf("YES\n");
return 0;
}
7-44 统计字符个数 (15 分)
本题目要求统计一串字符中英文字符(‘a’-‘z’,‘A’-‘Z’)的个数、数字字符(‘0’-‘9’)的个数和其他字符的个数。
输入格式:
输入一串字符,以回车'&'结束。
输出格式:
letter=英文字符的个数,digital=数字字符的个数,others=其他字符的个数。
输入样例:
I am 26.&
输出样例:
'&'是结束符,&及其后面的字符都不计算在内,注意空格也是字符
letter=3,digital=2,others=3
#include<stdio.h>
int main()
{
int letter=0,digital=0,others=0;
char ch[1000];
gets(ch);
int i = 0;
while(ch[i]!='&'){
if(ch[i]>='0'&&ch[i]<='9') digital++;
else if(ch[i]>='a'&&ch[i]<='z') letter++;
else if(ch[i]>='A'&&ch[i]<='Z') letter++;
else others++;
i++;
}
printf("letter=%d,digital=%d,others=%d",letter,digital,others);
return 0;
}
7-45 推理-找出罪犯 (10 分)
法官审理一起盗窃案时,四名嫌疑犯的a,b,c,d的供述如下: a:罪犯在b,c,d三人之中。 b:我没有作案,是c偷的。 c:在a和d中有一个是罪犯。 d:b说的是事实。 经调查,四人中有两人说了真话,并且罪犯只有1人。请确定真正的罪犯。
输入格式:
无
输出格式:
The criminal is a,b,c,d之中的一个.
输入样例:
无
输出样例:
The criminal is a(或b,c,d,给出真正的犯罪).
#include<stdio.h>
int funA(int a,int b,int c,int d)
{
return b+c+d;
}
int funB(int a,int b,int c,int d)
{
return c;
}
int funC(int a,int b,int c,int d)
{
return a+d;
}
int funD(int a,int b,int c,int d)
{
return funB(a,b,c,d);
}
int main()
{
char ch;
if(funA(1,0,0,0)+funB(1,0,0,0)+funC(1,0,0,0)+funD(1,0,0,0)==2)
ch = 'a';
else if(funA(0,1,0,0)+funB(0,1,0,0)+funC(0,1,0,0)+funD(0,1,0,0)==2)
ch = 'b';
else if(funA(0,0,1,0)+funB(0,0,1,0)+funC(0,0,1,0)+funD(0,0,1,0)==2)
ch = 'c';
else if(funA(0,0,0,1)+funB(0,0,0,1)+funC(0,0,0,1)+funD(0,0,0,1)==2)
ch = 'd';
printf("The criminal is %c.",ch);
return 0;
}