STD高级语言程序设计第二天(满分答案)

  • Post author:
  • Post category:其他


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



版权声明:本文为m0_57344907原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。