【C语言程序设计】实验 4
创始人
2024-03-23 02:30:24

目录

1. 偶数之和

2. 整数的各位数字之和 

3. 最大最小数(循环)

4. 今天是今年第几天(条件 数组) 

5. 成绩转换 

6. 字母转换 


1. 偶数之和

【问题描述】输入n(>=1)个整数,计算其中的偶数之和。

【输入形式】第一个数为n,接下来有n个数,空格分开。
【输出形式】一个整数,它是这n个整数中的偶数之和。

【样例输入】6 6 8 9 2 6 13
【样例输出】22

【样例说明】前面的6表示有6个数,后面6个数分别为6,8,9,2,6,13,其中的偶数之和为22。

#include
int main(){
    int n,s=0,t;
    scanf("%d",&n);
    for(int i=0;i
        scanf("%d",&t);
        if(t%2==0){
            s=s+t;
        }
    }
    printf("%d",s);
    return 0;

2. 整数的各位数字之和 

【问题描述】求一个整数的各位数字之和及位数。注意,0是1位数,如果是负数,则求它的绝对值的各位数字之和及位数。

【输入形式】一个整数

【输出形式】这个整数的各位数字之和及位数,空格分开。

【样例1输入】369852

【样例1输出】33 6
【样例说明】369852各位数字之和为33,是6位数.

【样例2输入】-23

【样例2输出】5 2

【样例3输入】0

【样例3输出】0 1

#include
int main(){
    int n,num=0,sum=0;
    scanf("%d",&n);
    if(n==0){
        printf("0 1");
        return 0;
    }
    if(n<0) n=-n;
    while(n>0){
        sum+=n%10;
        n=n/10;
        num++;
    }
    printf("%d %d",sum,num);
    return 0;

3. 最大最小数(循环)

【问题描述】输入10个整数,输出其中的最小数和最大数。

【输入形式】10个数为整数,空格分开

【输出形式】先后输出最小数和最大数,空格分开

【样例输入】12 36 98 74 10 25 86 57 49 36
【样例输出】10 98

#include
int main(){
    int i,min,max,x;
    scanf("%d",&min);
    max=min;
    for(i=0;i<9;i++){
        scanf("%d",&x);
        if(min>x) min=x;
        if(max     } 
    printf("%d %d",min,max);
    return 0;

4. 今天是今年第几天(条件 数组) 

【问题描述】输入任一年月日表示的有效日期(年的范围为1~3000),显示该天是当年的第几天和星期几,已知公元首日(0001/01/01)为星期1。提示:如果当年的第几天today已得知,则从公元首日到现在的天数可用 d=today+(year-1)*365+((year-1)/4-(year-1)/100+(year-1)/400)计算。

【输入形式】输入任一年月日,整数形式,空格分开。

【输出形式】二个整数,空格分开。星期用0,1~6表示,星期一用1,星期日用0.
【样例1输入】2019 3 13
【样例1输出】72 3
【样例1说明】2019年3月13号是这年的第72天,星期三。

【样例2输入】2020 10 7
【样例2输出】281 3

【样例2说明】2020年10月7号是这年的第281天,星期三。

#include
int main(){
    int year,month,day;
    int a[12];
    scanf("%d %d %d",&year,&month,&day);
    if(year%400==0||(year%100!=0&&year%4==0)){
        a[1]=29;
    }else{
        a[1]=28;
    }    
    a[0]=31;
    a[2]=31;
    a[3]=30;
    a[4]=31;
    a[5]=30;
    a[6]=a[7]=31;
    a[8]=30;
    a[9]=31;
    a[10]=30;
    a[11]=31;
    int s=0;
    for(int i=0;i
        s+=a[i];
    }
    s+=day;
    int d,w;
    d=s+(year-1)*365+((year-1)/4-(year-1)/4-(year-1)/100+(year-1)/400);
    w=d%7;
    printf("%d %d",s,w);
}

5. 成绩转换 

【问题描述】由键盘输入某个同学的考试成绩,将其转换成“Excellent”、“Good”、“Pass”或“Fail”的形式输出。如果不是0~100之间的正整数,打印“error”。

【输入形式】一个整数。

【输出形式】成绩在0~59分时,输出“Fail”,成绩在60~69分时,输出“Pass”,成绩在70~89分时,输出“Good”、成绩在90~100分时,输出“Excellent”。如果不是0~100之间的整数,输出“error”。

【样例1输入】67
【样例1输出】Pass

【样例2输入】109
【样例2输出】error

#include
int main(){
    int score;
    scanf("%d",&score);
    if(score>100||score<0){
        printf("error");
        return 0;
    }
    if(score>=90){
        printf("Excellent");
    }else if(score>=70){
        printf("Good");
    }else if(score>=60){
        printf("Pass");
    }else{
        printf("Fail");
    }
    return 0;

6. 字母转换 

【问题描述】由键盘输入一个英文字母,如果是元音字母(a,e,i,o,u),则输出它的大写,如果是其它字母,则输出该字母的小写。

【输入形式】一个英文字母,可以是大写,也可以是小写。

【输出形式】如果是元音字母(a,e,i,o,u或它们的大写),则输出它的大写,否则输出该字母的小写。

【样例1输入】a
【样例1输出】A
【样例2输入】B
【样例2输出】b

【样例3输入】E 
【样例3输出】E

【样例4输入】c 
【样例4输出】c

#include
int main(){
    char c;
    scanf("%c",&c);
    if(c=='a'||c=='e'||c=='i'||c=='o'||c=='u'){
        printf("%c",c-32);
    }else if(c=='A'||c=='E'||c=='I'||c=='O'||c=='U'){
        printf("%c",c);
    }else if(c>='a'&&c<='z'){
        printf("%c",c);
    }else{
        printf("%c",c+32);
    }
    return 0;

相关内容

热门资讯

戴尔高管坦言:消费者实际不在乎... IT之家 1 月 8 日消息,科技媒体 PC Gamer 昨日(1 月 7 日)发布博文,报道称在 ...
公告|自1月19日起,吉林长白... 1月7日,记者从吉林东北虎篮球俱乐部了解到,为迎接第33届世界大学生冬季运动会相关赛事,长春五环体育...
党务公开丨省委、省政府印发《四... 近日,省委、省政府印发了《四川省突发事件总体应急预案》,并发出通知,要求各地、各部门结合实际认真贯彻...
韩国综合指数开盘跌0.43% 每经AI快讯,1月8日,韩国综合指数开盘跌0.43%,报4531.46点。韩国锌业跌2.34%,三星...
王合生会见德国 马格德堡市代表...   本报讯(记者 杜菲菲)1月6日,市委副书记、市长王合生会见由德国马格德堡市副市长索斯藤·克罗尔率...