【C语言程序设计】实验 3
创始人
2024-03-21 15:32:35
0

目录

1. 水仙花数

2. 五位回文数 

3. 输入x,计算y

4. 百分制改为等级制 

5. 同构数 

6. 月份天数 

7. 加一天后日期(条件)

8. 计算服装款(条件)


 

1. 水仙花数

【问题描述】输入一个3位正整数,判断该数是否为一个水仙花数。所谓水仙花数,是指该数各位数字的立方之和等于其本身。如153,370是水仙花数,123不是。

【输入形式】一个3位正整数。

【输出形式】如果这个3位数是一个水仙花数,输出该数,空格后输出Y,否则输出该数空格后输出N。

【样例1输入】153

【样例1输出】153 Y

【样例1输入】105

【样例1输出】105 N

#include
int main(){
    int n;
    int a,b,c;
    scanf("%d",&n);
    a=n%10;
    b=n/10%10;
    c=n/100;
    if(a*a*a+b*b*b+c*c*c==n){
        printf("%d Y",n);
    }else{
        printf("%d N",n);
    }
    return 0;

2. 五位回文数 

【问题描述】输入一个5位的整数,判断该数是否为回文数。5位回文数是指其个位数与万位数相同,十位数与千位数相同。如12321是5位回文数。
【输入形式】输入一个整数,如12321
【输出形式】如果是回文数,输出这个数,空格后再输出Y,否则输出这个数,空格后再输出N
【样例1输入】12321
【样例1输出】12321 Y

【样例2输入】12345
【样例2输出】12345 N

#include
int main(){
    int n;
    scanf("%d",&n);
    int a,b,c,d,e;
    a=n/10000;
    b=n/1000%10;
    c=n/100%10;
    d=n/10%10;
    e=n%10;
    if(a==e&&b==d){
        printf("%d Y",n);
    }else{
        printf("%d N",n);
    }
    return 0;

3. 输入x,计算y

【问题描述】 输入x,计算y

971267e19b2b475398edc2be22eecc9a.png

【输入形式】输入一个实数,如 1.5
【输出形式】输出一个实数,保留6位小数,注意结果用double数据类型。
【样例输入】-1.5
【样例输出】3.349996

#include
#include
int main(){
    double x,y;
    scanf("%lf",&x);
    if(x<-2){
        y=log(-x);
    }else if(x>=-2&&x
        y=sqrt(x+3)+log(5-pow(x,3));
    }else{
        y=x*x+exp(x);
    }
    printf("%.6lf",y);
    return 0;

4. 百分制改为等级制 

【问题描述】将考试成绩百分制改为等级制,规则为:90~100分改为A;75~89分改为B;60~74分改为C,60分以下改为D。负数或大于100数,输出“error”

【输入形式】一个整数
【输出形式】一个大写英文字母或“error”
【样例输入】89
【样例输出】B
【样例输入】-89
【样例输出】error

#include
int main(){
    int score;
    scanf("%d",&score);
    if(score>100){
        printf("error");
        return 0;
    }
    if(score>=90){
        printf("A");
    }else if(score>=75){
        printf("B");
    }else if(score>=60){
        printf("C");
    }else if(score>=0){
        printf("D");
    }else{
        printf("error");
    }        
    return 0;

5. 同构数 

【问题描述】输入一个5~99之间的整数,判断该数是否为一个同构数。所谓同构数是指该数出现在其平方数的右边,如5,25是同构数,23不是同构数。

【输入形式】一个5~99之间的整数.

【输出形式】一个整数,一个大写英文字母Y或N,英文空格分开。
【样例1输入】10
【样例1输出】10 N

【样例2输入】76
【样例2输出】76 Y

#include
int main(){
    int n,s;
    scanf("%d",&n);
    s=n*n;
    if(n>=5&&n<=9){
        if(s%10==n){
            printf("%d Y",n);
        }else{
            printf("%d N",n);
        }
    }else{
        if(s%100==n){
            printf("%d Y",n);
        }else{
            printf("%d N",n);
        }
    }
    return 0;

6. 月份天数 

【问题描述】从键盘输入年份(1 ~ 3000)和月份(1 ~ 12),判断该月有多少天。 如果是2月,要考虑闰年,闰年2月有29天,如是年份是4的倍数但不是100的倍数或者年份是400的倍数,这一年是闰年。
【输入形式】输入合法年份和月份二个整数,空格分开

【输出形式】一个整数
【样例1输入】2001 2
【样例1输出】28

【样例说明】2001年2月不是闰年,28天。

【样例2输入】2000 2
【样例2输出】29

【样例3输入】2019 3
【样例3输出】31

【问题描述】从键盘输入年份(1 ~ 3000)和月份(1 ~ 12),判断该月有多少天。 如果是2月,要考虑闰年,闰年2月有29天,如是年份是4的倍数但不是100的倍数或者年份是400的倍数,这一年是闰年。
【输入形式】输入合法年份和月份二个整数,空格分开

【输出形式】一个整数
【样例1输入】2001 2
【样例1输出】28

【样例说明】2001年2月不是闰年,28天。

【样例2输入】2000 2
【样例2输出】29

【样例3输入】2019 3
【样例3输出】31 

7. 加一天后日期(条件)

【问题描述】输入一个有效日期,显示这个日期加一天后的日期。注意要考虑这个日期是年尾或各个月的月尾的情况。

【输入形式】输入一个有效日期,年月日形式表示,英文逗号分开。
【输出形式】 输出一个日期,年月日形式表示,字符-分开。

【样例输入】2000,12,31

【样例输出】2001-1-1
【样例说明】2000年12月31日加一天后是2001年1月1日。

#include
int main(){
    int year,month,day;
    scanf("%d,%d,%d",&year,&month,&day);
    if(month==2){
        if(year%400==0||(year%100!=0&&year%4==0)){
            if(day==29){
                month+=1;
                day=1;
            }else{
                day+=1;
            }
        }else{
            if(day==28){
                month+=1;
                day=1;
            }else{
                day+=1;
            }
        }        
    }else if(month==1||month==3||month==5||month==7||month==8||month==10){
        if(day==31){
            month+=1;
            day=1;
        }else{
            day+=1;
        }
    }else if(month==12){
        if(day==31){
            year+=1;
            month=1;
            day=1;
        }else{
            day+=1;
        }
    }else{
        if(day==30){
            month+=1;
            day=1;
        }else{
            day+=1;
        }
    }
    printf("%d-%d-%d",year,month,day);
    return 0;

8. 计算服装款(条件)

【问题描述】某服装店经营套服,也单件出售,若买的不少于50套,每套80元,不足50套,每套90元,若只买上衣,每件60元,只买裤子每条45元,读入所买上衣和裤子件数(不小于0的整数),计算总付款。
【输入形式】上衣数和裤子数二个不小于0的整数,空格分开

【输出形式】总付款一个整数

【样例输入】35 40
【样例输出】3375
【样例说明】35*90+(40-35)*45=3375
【评分标准】 20

#include
int main(){
    int x,y,s1,s2;
    scanf("%d %d",&x,&y);
    int min=x;
    if(min>y){
        min=y;
    }
    if(min>=50){
        s1=min*80;
        if(x>y){
            s2=(x-y)*60;
        }else{
            s2=(y-x)*45;
        }
    }else{
        s1=min*90;
        if(x>y){
            s2=(x-y)*60;
        }else{
            s2=(y-x)*45;
        }        
    }
    printf("%d",s1+s2);
}   

 

 

相关内容

热门资讯

美专家:美军若向北京上海扔核弹... 美国向北京、上海扔核武器,中国也不会报复美国本土?这番呓语出自美国国务卿办公室前主任劳伦斯·威尔克森...
泰山队近况:瓦科降薪100万欧... 泰山队的更衣室最近可谓是风起云涌,并非因为大牌球星的加入,而是51岁的西班牙老教练阿韦尔·莫雷诺的到...
泽连斯基:若普京同意停火60天... 当地时间26日,总台记者获悉,乌克兰总统泽连斯基表示,若俄罗斯总统普京同意为期60天的停火,他将把整...
换帅无用!杰克逊25分王俊杰1... 【搜狐体育战报】北京时间12月26日CBA常规赛第6轮,主场作战的宁波町渥以88-79击败浙江稠州金...
原创 保... 演员保剑锋这次没在戏里“黑化”,却在现实中拿起了法律武器。12月26日,其工作室一纸律师声明,宣布已...
塔里-伊森领跑火箭队交易预测!... 随着NBA交易截止日的临近,各支球队的交易传闻如火如荼,而在休斯顿火箭队,塔里-伊森成为了最受关注的...
8分钟进五环、11分钟达四环!... 我市交通基础设施持续扩容升级:京密高速新国展段天北路至安华街主路,及远通桥立交节点改造工程新建南向西...
普京表示“除了顿巴斯其他可以谈... 【文/观察者网 王一】乌克兰总统泽连斯基日前抛出“20点和平计划”草案后,外界议论纷纷,普遍认为该方...
多国考虑效仿澳大利亚!德国数字... 德国媒体26日报道,德国数字化和国家现代化部长卡斯滕·维尔德贝格尔对本国效仿澳大利亚实施未成年人社交...
金证股份(600446)披露拟... 截至2025年12月26日收盘,金证股份(600446)报收于15.75元,较前一交易日下跌0.19...