7-1 多分支表达-数据奇偶判断 (10 分)
键盘输入两个非零整数A和B,如果A和B都是偶数则输出两个数的和,如果A和B都是奇数则输出两个数的差,如果A是奇数B是偶数则输出两数积,如果A是偶数B是奇数输出A/B结果
输入格式:
输入两个非零整数,逗号分隔
输出格式:
如果A和B都是偶数则输出:A+B=两个数的和; 如果A和B都是奇数则输出:A-B=两个数的差; 如果A是奇数B是偶数则输出:A*B=两数积; 如果A是偶数B是奇数输出:A/B=两个数的商。 如果输入数据为0,没有任何输出。
输入样例:
在这里给出一组输入。例如:
18,20
结尾无空行
输出样例:
在这里给出相应的输出。例如:
18+20=38
结尾无空行
#include<stdio.h>
int main()
{
int a,b;
scanf("%d,%d",&a,&b);
if(a==0||b==0)
return 0;
int c=a%2,d=b%2;
if(c==0&&d==0)
printf("%d+%d=%d",a,b,a+b);
else if(c&&d)
printf("%d-%d=%d",a,b,a-b);
else if(c&&d==0)
printf("%d*%d=%d",a,b,a*b);
else if(c==0&&d)
printf("%d/%d=%d",a,b,a/b);
return 0;
}
7-2 念数字 (10 分)
输入一个整数,输出每个数字对应的拼音。当整数为负数时,先输出
fu
字。十个数字对应的拼音如下:0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi 8: ba 9: jiu
输入格式:
输入在一行中给出一个整数,如:
1234
。
提示:整数包括负数、零和正数。
输出格式:
在一行中输出这个整数对应的拼音,每个数字的拼音之间用空格分开,行末没有最后的空格。如
yi er san si
。输入样例:
-600
结尾无空行
输出样例:
fu liu ling ling
结尾无空行
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
char b[10][5]={"ling","yi","er","san","si","wu","liu","qi","ba","jiu"};
if(a<0)
{
printf("fu ");
a=-a;
}
int c[30]={0};
int i;
for(i=0;a!=0;i++)
{
c[i]=a%10;
a/=10;
}
for(int j=i-1;j>0;j--)
printf("%s ",b[c[j]]);
printf("%s",b[c[0]]);
return 0;
}
建议可以看看小编的另一篇《念数字》的文章,那个写的比较详细,另外小编还写了一个python的版本!!!
7-3 装睡 (10 分)
你永远叫不醒一个装睡的人 —— 但是通过分析一个人的呼吸频率和脉搏,你可以发现谁在装睡!医生告诉我们,正常人睡眠时的呼吸频率是每分钟15-20次,脉搏是每分钟50-70次。下面给定一系列人的呼吸频率与脉搏,请你找出他们中间有可能在装睡的人,即至少一项指标不在正常范围内的人。
输入格式:
输入在第一行给出一个正整数N(≤10)。随后N行,每行给出一个人的名字(仅由英文字母组成的、长度不超过3个字符的串)、其呼吸频率和脉搏(均为不超过100的正整数)。
输出格式:
按照输入顺序检查每个人,如果其至少一项指标不在正常范围内,则输出其名字,每个名字占一行。
输入样例:
4 Amy 15 70 Tom 14 60 Joe 18 50 Zoe 21 71
结尾无空行
输出样例:
Tom Zoe
结尾无空行
#include<stdio.h>
int main()
{
int a;
scanf("%d",&a);
char b[4];
int c,d;
for(int i=0;i<a;i++)
{
scanf("%s %d %d",b,&c,&d);
if(c>20||c<15)
{
printf("%s\n",b);
continue;
}
if(d>70||d<50)
printf("%s\n",b);
}
return 0;
}
7-4 简单计算器 (20 分)
模拟简单运算器的工作。假设计算器只能进行加减乘除运算,运算数和结果都是整数,四种运算符的优先级相同,按从左到右的顺序计算。
输入格式:
输入在一行中给出一个四则运算算式,没有空格,且至少有一个操作数。遇等号”=”说明输入结束。
输出格式:
在一行中输出算式的运算结果,或者如果除法分母为0或有非法运算符,则输出错误信息“ERROR”。
输入样例:
1+2*10-10/2=
结尾无空行
输出样例:
10
结尾无空行
#include<stdio.h>
#include<string.h>
int main()
{
char a[999999];
gets(a);
int b=0;
int sum;
char flag;
int count=0;
for(int i=0; ;i++)
{
if(a[i]=='/'&&a[i+1]=='0')
{
printf("ERROR");
return 0;
}
if(a[i]=='+'||a[i]=='-'||a[i]=='*'||a[i]=='/')
{
flag=a[i];
count++;
}
else if(a[i]>='0'&&a[i]<='9')
{
b=b*10+(a[i]-'0');
if(a[i+1]=='+'||a[i+1]=='-'||a[i+1]=='*'||a[i+1]=='/'||a[i+1]=='=')
{
if(count==0)
{
sum=b;
b=0;
continue;
}
if(flag=='+')
{
sum+=b;
b=0;
}
else if(flag=='-')
{
sum-=b;
b=0;
}
else if(flag=='*')
{
sum*=b;
b=0;
}
else if(flag=='/')
{
sum/=b;
b=0;
}
}
}
else if(a[i]=='=')
{
printf("%d",sum);
return 0;
}
else
{
printf("ERROR");
return 0;
}
}
}