• 第七第八mooc+循环练习


    A. 算命先生

    最近荷黛缘小姐姐喜欢上了一个男生叫彭于晏,但是不知道自己和人家有没有缘分,现在她请你来为她算生辰八字。

    我们知道两个人是否有缘分是把两个人的年月日加起来看他们是否有相同的奇偶性。

    输入

    两行输入。

    第一行是荷黛缘小姐姐的生辰

    第二行是彭于晏的生辰

    输出

    如果两个人有缘分就输出“YES”(不包含双引号)

    否则输出“NO”

    1. #include
    2. int main()
    3. {
    4. int a,b,c,d,e,f;
    5. int x,y,z,w;
    6. scanf("%d/%d/%d",&a,&b,&c);
    7. scanf("%d/%d/%d",&d,&e,&f);
    8. x=a+b+c;
    9. y=d+e+f;
    10. z=x%2;
    11. w=y%2;
    12. if(z==w)
    13. printf("YES\n");
    14. else
    15. printf("NO\n");
    16. return 0;
    17. }

    B. 输出扑克牌(选择)

    假设使用字母A、B、C、D(大小写不限)表示扑克牌的四种花色黑桃、红桃、梅花、方块,使用数字1、2、3......13表示牌的大小,输入字母与数字的组合后,请输出相应的扑克牌。例如,

    输入"a 1",输出“黑桃A”;

    输入“b 6”,输出“红桃6”;

    输入“C 11”,输出“梅花J“

    .......不需要考虑输出大小鬼。

    输入

    代表花色的字母  代表大小的数字

    输出

    相应的扑克牌

    1. #include
    2. int main()
    3. {
    4. char ch1,ch2;
    5. int x;
    6. scanf("%c%d",&ch1,&x);
    7. if(x>=2&&x<=10)
    8. ch2=x+48;
    9. else if(x==1)
    10. ch2 ='A';
    11. else if(x==11)
    12. ch2='J';
    13. else if(x==12)
    14. ch2=='Q';
    15. else if(x==13)
    16. ch2='K';
    17. {
    18. if((ch1=='a')||(ch1=='A'))
    19. printf("黑桃%c",ch2);
    20. else if((ch1=='b')||(ch1=='B'))
    21. printf("红桃%c",ch2);
    22. else if((ch1=='c')||(ch1=='C'))
    23. printf("梅花%c",ch2);
    24. else if((ch1=='d')||(ch1=='D'))
    25. printf("方块%c",ch2);
    26. }
    27. return 0;
    28. }

    C. ASCII码排序

    输入三个字符后,按各字符的ASCII码从小到大的顺序输出这三个字符。

    输入

    输入多组数据,每组占一行,有三个字符组成,之间无空格

    输出

    对于每组输入数据,输出一行,字符中间用一个空格分开。

    1. #include
    2. int main()
    3. {
    4. char ch1,ch2,ch3;
    5. while(scanf("%c%c%c",&ch1,&ch2,&ch3)!=EOF)
    6. {
    7. if(ch1>=ch2&&ch1>=ch3&&ch2>=ch3)
    8. printf("%c %c %c\n",ch3,ch2,ch1);
    9. else if(ch1>=ch2&&ch1>=ch3&&ch3>=ch2)
    10. printf("%c %c %c\n",ch2,ch3,ch1);
    11. else if(ch2>=ch1&&ch2>=ch3&&ch3>=ch1)
    12. printf("%c %c %c\n",ch1,ch3,ch2);
    13. else if(ch2>=ch1&&ch2>=ch3&&ch1>=ch3)
    14. printf("%c %c %c\n",ch3,ch1,ch2);
    15. else if(ch3>=ch1&&ch3>=ch2&&ch2>=ch1)
    16. printf("%c %c %c\n",ch1,ch2,ch3);
    17. else if(ch3>=ch1&&ch3>=ch2&&ch1>=ch2)
    18. printf("%c %c %c\n",ch2,ch1,ch3);
    19. getchar();
    20. }
    21. return 0;
    22. }

    D. 最佳损友(不计分)

    现在法外狂徒张三和李四捡到了n元。

    现在他们要把这钱分成两份,如果分不齐张三要拿多的那一部分

    输入

    一行输入一个整数n

    输出

    输出张三拿了多少钱

    1. #include
    2. int main()
    3. {
    4. int n,a;
    5. scanf("%d",&n);
    6. if(n%2==0)
    7. a=n/2;
    8. else
    9. a=n/2+1;
    10. printf("%d",a);
    11. return 0;
    12. }

    A. 序列求和(循环)

    有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和,保留两位小数

    输入

    N

    输出

    数列前N项和

    1. #include
    2. int main()
    3. {
    4. int c,k,n;
    5. float a=2,b=1,sum=0;
    6. scanf("%d",&n);
    7. for(k=1;k<=n;k++)
    8. {
    9. sum+=a/b;
    10. c=b;
    11. b=a;
    12. a=c+b;
    13. }
    14. printf("%.2f",sum);
    15. }

    B. 公约数与公倍数(循环)

    输入两个正整数m和n,求其最大公约数和最小公倍数。

    输入

    两个整数

    输出

    最大公约数,最小公倍数

    1. #include
    2. int main()
    3. {
    4. int m,n,k,l,o,p;
    5. int y,b;
    6. scanf("%d%d",&m,&n);
    7. if(m
    8. {
    9. k=m;
    10. m=n;
    11. n=k;
    12. o=m;
    13. }//判断m和n的大小
    14. while(n!=0)
    15. {
    16. l=m%n;
    17. m=n;
    18. n=l;
    19. y=m;
    20. }
    21. n=k;
    22. m=o;//让m,n变回初值
    23. b=n;
    24. for(p=1;(b%m!=0);p++)
    25. b=n*p;
    26. printf("%d %d",y,b);
    27. return 0;
    28. }

    C. n!(循环)

    计算n!,就是计算1*2*3*...*n的乘积。注意0!=1。

    输入

    n的值

    输出

    n!的值

    1. #include
    2. #include
    3. int main()
    4. {
    5. int a,n;
    6. long int sum=1;
    7. scanf("%d",&n);
    8. if(n==0)
    9. printf("0!=1");//排除0
    10. else if(n<0)
    11. exit(-1);//排除负数
    12. else
    13. {
    14. for(a=1;a<=n;a++)
    15. sum*=a;
    16. printf("%d!=%ld",n,sum);
    17. }
    18. }//分别两次输入5,0输出:120,1

    A. 计算并输出1!+2!+3!+...+n!

    输入n,计算并输出n项阶乘的和

    输入

    n

    输出

    n项阶乘的和

    1. #include
    2. int main()
    3. {
    4. int n,k,s=1;
    5. long sum=0;
    6. scanf("%d",&n);
    7. for(k=1;k<=n;k++)
    8. {
    9. s*=k;
    10. sum+=s;
    11. }
    12. printf("%d\n",sum);
    13. } //输入4 输出33

    B. 求字符串中各种字符的个数(循环)

    输入一行字符,分别统计出其中英文字母、数字、空格和其他字符的个数。

    输入

    一行字符

    输出

    统计值

    1. #include
    2. int main()
    3. {
    4. char ch;
    5. int a=0,b=0,c=0,d=0;
    6. scanf("%c",&ch);
    7. while(ch!=10)//判断ch不是换行
    8. {
    9. if((ch>=65&&ch<=90)||(ch>=97&&ch<=122))//判断ch是不是英文字母
    10. a++;
    11. else if(ch>=48&&ch<=57)//判断ch是不是数字
    12. b++;
    13. else if(ch==32)//判断ch是不是空格
    14. c++;
    15. else//ch是其它符号
    16. d++;
    17. scanf("%c",&ch);
    18. }
    19. printf("%d %d %d %d",a,b,c,d);
    20. } //输入:aklsjflj123 sadf918u324 asdf91u32oasdf/.';123输出: 23 16 2 4

    C. 打印水仙花数

    打印出所有"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该本身。 例如:153是一个水仙花数,因为153=1^3+5^3+3^3。 Output:

    1. 153
    2. ???
    3. ???
    4. ???

    输入

    输出

    所有的水仙花数,从小的开始。 每行一个

    1. #include
    2. int main()
    3. {
    4. int x=100,a,b,c;
    5. while(x<=999)
    6. {
    7. a=x/100;
    8. b=(x-a*100)/10;
    9. c=x%10;
    10. if(x==a*a*a+b*b*b+c*c*c)
    11. printf("%d\n",x);
    12. x++;
    13. }
    14. }

    D. 求1~a之和

    求以下三数的和(保留2位小数):

    • 1~a之和
    • 1~b的平方和
    • 1~c的倒数和

    输入

    a b c

    输出

    1+2+...+a + 1^2+2^2+...+b^2 + 1/1+1/2+...+1/c

    1. #include
    2. int main()
    3. {
    4. int a,b,c;//输入的数
    5. int d=0,e=0;//过程中求1加到a,1^2+…b^2
    6. int m,n=1,l;//循环用量
    7. float f=1,g=0,h;//过程和结果用量
    8. scanf("%d%d%d",&a,&b,&c);
    9. for(m=1;m<=a;m++)
    10. d+=m;//1-a的和
    11. while(n<=b)
    12. {
    13. e+=n*n;
    14. n++;//1-b的平方和
    15. }
    16. do
    17. {
    18. g+=1/f;
    19. ++f;//1-c的倒数和
    20. }while(f<=c) ;
    21. h=d+e+g;
    22. printf("%.2f",h);
    23. }//输入:100 50 10输出:47977.93

    E. 最强字母(循环)

    在英文字母王国中,大写字母比小写字母强大。在大写字母之间按字母表顺序,越靠前越大,例如A比B大,B比C大,Z在大写字母中最小。同样小写字母之间的比较也按字母表顺序,也是越靠前越大。

    要求在一个英文字母集合中,选择最强大的字母。

    输入

    输入一个英文字母字符串,只能包含大小写英文字母,不包含其它字符。

    输出

    输出该字符串中最大的字母,如果有多个相同的最大字母,只输出一个

    1. #include
    2. int main()
    3. {
    4. char ch,a;
    5. scanf("%c",&ch);
    6. a=ch;
    7. while(ch!=10)
    8. {
    9. if(a>=ch)
    10. a=ch;//让a表示为ASCII表中较小的字符
    11. scanf("%c",&ch);
    12. }
    13. printf("%c",a);
    14. }//输入chinaGOOD输出D

    F. 猴子吃桃(循环)

    猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。 第二天早上又将剩下的桃子吃掉一半,又多吃一个。以后每天早上都吃了前一天剩下的一半零一个。 到第N天早上想再吃时,见只剩下一个桃子了。求第一天共摘多少桃子。

    输入

    N

    输出

    桃子总数

    1. #include
    2. int main()
    3. {
    4. int n,a=1,k;
    5. scanf("%d",&n);
    6. for(k=2;k<=n;k++)
    7. a=a*2+2;
    8. printf("%d",a);
    9. }//输入10 输出1534

    G. 鸡尾酒疗法(循环

    鸡尾酒疗法,原指“高效抗逆转录病毒治疗”(HAART),由美籍华裔科学家何大一于1996年提出,是通过三种或三种以上的抗病毒药物联合使用来治疗艾 滋病。该疗法的应用可以减少单一用药产生的抗药性,最大限度地抑制病毒的复制,使被破坏的机体免疫功能部分甚至全部恢复,从而延缓病程进展,延长患者生 命,提高生活质量。人们在鸡尾酒疗法的基础上又提出了很多种改进的疗法。为了验证这些治疗方法是否在疗效上比鸡尾酒疗法更好,可用通过临床对照实验的方式 进行。假设鸡尾酒疗法的有效率为x,新疗法的有效率为y,如果y-x大于5%,则效果更好,如果x-y大于5%,则效果更差,否则称为效果差不多。下面给 出n组临床对照实验,其中第一组采用鸡尾酒疗法,其他n-1组为各种不同的改进疗法。请写程序判定各种改进疗法效果如何。

    输入

    第一行为整数n( 1 < n <= 2000);
    其余n行每行两个整数,第一个整数是临床实验的总病例数(小于等于10000),第二个疗效有效的病例数。

    这n行数据中,第一行为鸡尾酒疗法的数据,其余各行为各种改进疗法的数据。

    输出

    有n-1行输出,分别表示对应改进疗法的效果:

    如果效果更好,输出better;如果效果更差,输出worse;否则输出same

    1. #include
    2. int main()
    3. {
    4. int n,k;
    5. float f1,f2,a,b,c,d;
    6. scanf("%d",&n);
    7. scanf("%f%f",&a,&b);
    8. f1=b/a;
    9. for(k=1;k<=(n-1);k++)
    10. {
    11. scanf("%f%f",&c,&d);
    12. f2=d/c;
    13. if(f1-f2>0.05)
    14. printf("worse\n");
    15. else if(f2-f1>0.05)
    16. printf("better\n");
    17. else
    18. printf("same\n");
    19. }
    20. }

  • 相关阅读:
    自定义一个注解,用它标记的执行并于给定值做对比(即简单的junit)
    图论|841钥匙和房间
    linux修改文件内容如何保存退出
    学成在线第二天-查询课程、查询课程分类、新增课程接口实现以及跨域的处理思路和全局异常处理的使用以及面试题
    解决javax.mail.MessagingException: Could not convert socket to TLS;
    git中通过rebase操作解决冲突并提交PR
    Docker简介与安装
    数字与字符串的相互转换——洛谷刷题收获(2023.10.2)
    RTMP流媒体服务器EasyDSS视频点播平台在不关闭防火墙的情况下平稳部署的具体步骤
    使用matlab制作声音采样率转换、播放以及显示的界面
  • 原文地址:https://blog.csdn.net/weixin_62431082/article/details/127644225