2-24

作者: henry_bin | 来源:发表于2017-02-25 11:45 被阅读0次

    SHSQ1701每日作业记录
    练习:简单计算器

    include <stdio.h>

    void main()
    {
    float a,b;
    char c;
    printf("请输入:");
    scanf("%f%c%f",&a,&c,&b);
    switch(c)
    {
    case '+':
    printf("%.1f\n",a+b);
    break;
    case '-':
    printf("%.1f\n",a-b);
    break;
    case '':
    printf("%.1f\n",a
    b);
    break;
    case '/':
    if(!b)
    printf("除数不能为0!\n");
    else
    printf("%.1f\n",a/b);
    break;
    default:
    printf("输入有误,请重新输入!\n");
    }
    }

    循环语句:
    1.while
    格式:
    while(条件)
    {
    语句;
    }
    原理:当条件成立的时候(真),就执行大括号中的语句,执行完成之后,回过去继续判断条件是否成立,如果成立,就继续执行大括号对应的语句,如果不成立,不再执行对应的语句,转而执行大括号后面的语句。
    例:

    include <stdio.h>

    void main()
    {
    int a=5;
    while(a>0)
    {
    printf("a=%d\n",a);
    a--;
    }
    printf("xxx\n");
    }
    练习:计算1~100之和
    sum前1=1;
    sum前2=sum前1+2
    ...
    sum前97=sum前96+97
    sum前98=sum前97+98
    sum前99=sum前98+99
    sum前100=sum前99+100
    =>sum=sum+n n=1~100
    sum=0;
    n=1;
    while(n<=100)
    {
    sum=sum+n; //记住
    n++;
    }

    练习:写一个自动销售饮料的售货机的程序,有相应的界面,购买的时候,输入金额,和购买产品。售货机会给出相应的提示。

    include <stdio.h>

    include <stdlib.h>

    void main()
    {
    char ch='y';
    while(ch=='y')
    {
    system("clear");
    printf("\n\n");
    printf(" ***********************************\n");
    printf(" * 欢迎选购 *\n");
    printf(" * *\n");
    printf(" * 1.红茶 ¥3 *\n");
    printf(" * 2.脉动 ¥4 *\n");
    printf(" * 3.红牛 ¥6 *\n");
    printf(" * 4.牛奶 ¥5 *\n");
    printf(" * *\n");
    printf(" * 请选择: \n");
    printf(" * 请投币: \n");
    printf(" ***********************************\n");
    int c,m;
    system("tput cup 10 24");
    scanf("%d%
    c",&c);
    system("tput cup 11 24");
    scanf("%d%
    c",&m);
    system("tput cup 13 1");
    switch(c)
    {
    case 1:
    if(m>3)
    printf("给你红茶,收好找零:%d\n",m-3);

                else if(m==3)
                    printf("红茶不能多喝哦!\n");
                
                else
                    printf("不好意思,余额不足!\n");
                break;
            case 2:
                if(m>4)
                    printf("脉动回来,收好找零:%d\n",m-4);
                else if(m==4)
                    printf("脉动给你力量!\n");
                else
                    printf("不好意思,余额不足!\n");
                break;
            case 3:
                if(m>6)
                    printf("红牛真牛,收好找零:%d\n",m-6);
                else if(m==6)
                    printf("跟着红牛一起牛!\n");
                else
                    printf("不好意思,余额不足!\n");
                break;
            case 4:
                if(m>5)
                    printf("给你牛奶,收好找零:%d\n",m-5);
                else if(m==5)
                    printf("牛奶多喝长个!\n");
                else
                    printf("不好意思,余额不足!\n");
                break;
            default:
                printf("选择有误!\n");
        }
        printf("是否继续输入?(y/n)");
        ch=getchar();
    }
    

    }

    练习:从键盘上输入若干个整数,当输入0时结束输入,求输入的整数之和。

    include <stdio.h>

    include <stdlib.h>

    void main()
    {
    int sum=0,num;
    printf("intput num: ");
    scanf("%d",&num);
    while(num!=0)
    {
    sum=sum+num;
    printf("intput num: ");
    scanf("%d",&num);
    }
    printf("sum is:%d\n",sum);
    }

    练习:输入一个整数,使这个数逆序输出
    12345=>54321

    include <stdio.h>

    include <stdlib.h>

    void main()
    {
    int data,r_data;
    printf("请输入一个数:");
    scanf("%d",&data);
    while(data!=0)
    {
    r_data=data%10;
    printf("%d",r_data);
    data=data/10;
    }
    printf("\n");
    }

    练习:36块砖,36个人搬,4/男,3/女,2个小孩抬1块。问一次性搬完,男,女,小孩各多少人。
    男:9
    女:12
    小孩:36-男-女
    男:1 女:1~12 小孩:36-男-女
    男:2 女:1~12 小孩:36-男-女
    ...
    男:9 女:1~12 小孩:36-男-女
    while(男<9)
    {
    女=1;
    while(女<12)
    {
    小孩=36-男-女;
    if(4*男+3×女+小孩/2==36 && 小孩%2==0)
    printf(...);
    女++;
    }
    男++;
    }

    include <stdio.h>

    void main()
    {
    int man,woman,child;
    man=1;
    while(man<9)
    {
    woman=1;
    while(woman<12)
    {
    child=36-man-woman;
    if((man4+woman3+child/2)==36 && child%2==0)
    printf("man:%d woman:%d child:%d\n",man,woman,child);
    woman++;
    }
    man++;
    }
    }

    2.do...while
    格式:
    do
    {
    语句;
    }while(条件);
    原理:先执行一次循环语句,然后判断条件是否成立,如果条件成立,就继续回去执行循环语句,接着再判断条件是否成立,如果不成立,循环结束,故此循环不管条件成立不成立,都会至少执行一次循环体。
    while:先判再做
    do...while:先做再判
    练习:统计从键盘输入的字符的个数。do...while
    enter:\n\r;

    include <stdio.h>

    void main()
    {
    char c,p;
    int x=0;
    do
    {
    printf("请输入字符:");
    do
    {
    c=getchar();
    x++;
    }while(c!='\n');
    printf("统计输出的字符个数为:%d\n",--x);
    printf("是否继续统计?");
    p=getchar();
    getchar();
    }while(p=='y' || p=='Y');
    }
    练习:计算机猜拳游戏:石头,剪刀,布
    玩法:先自己出个拳,计算机随机出一个石头/剪刀/布,然后给出谁赢了。
    怎么产生一个随机值:

    include <time.h>

    include <stdlib.h>

    srand((unsigned)time(NULL));//产生一个随机值发生器
    //srand(time(0));
    a=rand();

    a%3: 0:剪刀 1:石头 2:布
    3 5 7

    计算机赢了:4 7 if
    我赢了:5 8 else if
    平了:else

    include <stdio.h>

    include <stdlib.h>

    include <time.h>

    include <unistd.h>

    void main()
    {
    char c;
    int people,computer,total;
    system("clear");
    while(1)
    {
    sleep(3);
    system("clear");
    printf("\n\n 这是一个猜拳小游戏\n");
    printf(" A.剪刀\n");
    printf(" B.石头\n");
    printf(" C.布\n");
    printf(" D.不玩了\n");
    printf(" 请选择:");
    c=getchar();
    getchar();//吸收残留回车
    switch(c)
    {
    case 'A':
    case 'a':
    people=3;
    break;
    case 'B':
    case 'b':
    people=5;
    break;
    case 'C':
    case 'c':
    people=7;
    break;
    case 'D':
    case 'd':
    return; //结束当前函数
    }
    srand((unsigned)time(NULL));
    computer=rand()%3;
    switch(computer)
    {
    case 0:
    printf("电脑出了"剪刀"!\n");
    break;
    case 1:
    printf("电脑出了"石头"!\n");
    break;
    case 2:
    printf("电脑出了"布"!\n");
    break;
    }
    total=computer+people;
    if(total==4 || total==7)
    printf("电脑赢了!\n");
    else if(total==5 || total==8)
    printf("你赢了!\n");
    else
    printf("平局\n");
    }
    }

    3.for

    相关文章

      网友评论

          本文标题:2-24

          本文链接:https://www.haomeiwen.com/subject/fdggwttx.html