zoukankan      html  css  js  c++  java
  • 第三章例题、心得及问题。

    例题3-1:

    #include<stdio.h>
    int main(void)
    {
        int mynumber=44;
        int yournumber;
    
    
        printf("Input your number:");
        scanf("%d",&yournumber);
        if(yournumber==mynumber)
            printf("Ok!you are right!
    ");
        else
            if(yournumber>mynumber)
                printf("Sorry!your number is bigger than my number!
    ");
            else
                printf("Sorry!your number is smaller than my number!
    ");
            
            return 0;
    }


    运行结果1:

    运行结果2:

    例题3-2:

    #include<stdio.h>
    int main(void)
    {
        int number;
    
        printf("Enter a number:");
        scanf("%d",&number);
        if(number%2==0){
            printf("The number is even.
    ");
        }
        else{
            printf("The number is odd.
    ");
        }
    
        return 0;
    }

    运行结果1:

    运行结果2:

    例题3-3:

    #include<stdio.h>
    int main(void)
    {
        int count,i,n;
        double grade,total;
    
        printf("Enter n:");
        scanf("%d",&n);
        total=0;
        count=0;
        for(i=1;i<=n;i++){
            printf("Enter grade #%d:",i);
            scanf("%lf",&grade);
            total=total+grade;
            if(grade<60){
                count++;
            }
        }
        printf("Grade average=%.2f
    ",total/n);
        printf("Number of failures=%d
    ",count);
        return 0;
    }

    例题3-4:

    #include<stdio.h>
    int main(void)
    {
        double x,y;
    
        printf("Enter x:");
        scanf("%lf",&x);
        if(x<0){
            y=0;
        }
        else if(x<=15){
            y=4*x/3;
        }
        else{
            y=2.5*x-10.5;
        }
        printf("f(%.2f)=%.2f
    ",x,y);
    
        return 0;
    }

    运行结果1:

    运行结果2:

    运行结果3:

    例题3-5:

    #include<stdio.h>
    int main(void)
    {
        double value1,value2;
        char op;
        printf("Type in an expression:");
        scanf("%lf%c%lf",&value1,&op,&value2);
    
        if(op =='+')
            printf("=%.2f
    ",value1+value2);
        else if(op =='-')
            printf("=%.2f
    ",value1-value2);
        else if(op =='*')
            printf("=%.2f
    ",value1*value2);
        else if(op =='/')
            printf("=%.2f
    ",value1/value2);
        else
            printf("Unknown operator
    ");
    
        return 0;
    }

    例题3-7:

    #include<stdio.h>
    int main(void)
    {
        int digit,letter,other;
        char ch;
        int i;
        digit=letter=other=0;
        printf("Enter 10 characters:");
        for(i=1;i<=10;i++){
            ch =getchar();
            if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
                letter++;
            else if (ch>='0'&&ch<='9')
                digit++;
            else
                other++;
        }
        printf("letter=%d,digit=%d,other=%d
    ",letter,digit,other);
    
            return 0;
    }

    例题3-8:

    #include<stdio.h>
    int main(void)
    {
        int choice,i;
        double price;
    
        for(i=1;i<=5;i++){
            printf("[1]Select crisps 
    ");
            printf("[2]Select popcorn 
    ");
            printf("[3]Select chocolate 
    ");
            printf("[4]Select cola 
    ");
            printf("[0]exit 
    ");
    
            printf("Enter choice:");
            scanf("%d",&choice);
    
            if(choice ==0)
                break;
            switch(choice){
            case 1:price=3.0;break;
            case 2:price=2.5;break;
            case 3:price=4.0;break;
                case 4:price=3.5;break;
                default:price=0.0;break;
            }
            printf("price=%0.1f
    ",price);
        }
        printf("Thanks 
    ");
    
        return 0;
    }

    例题3-9:

    #include<stdio.h>
    int main(void)
    {
        double value1,value2;
        char op;
    
        printf("Type in an expression:");
        scanf("%lf%c%lf",&value1,&op,&value2);
        switch(op){
        case'+':
            printf("=%.2f
    ",value1+value2);
                break;
        case'-':
            printf("=%.2f
    ",value1-value2);
                break;
        case'*':
            printf("=%.2f
    ",value1*value2);
                break;
        case'/':
            printf("=%.2f
    ",value1/value2);
                break;
        default:
                printf("Unknown operator
    ");
                break;
        }
        return 0;
    }

    例题3-10:

    #include<stdio.h>
    int main(void)
    {
        int blank,digit,other;
        char ch;
        int i;
        blank=digit=other=0;
        printf("Enter 10 characters:");
        for(i=1;i<=10;i++){
            ch=getchar();
            switch(ch){
            case' ':
            case'
    ':
                blank++;
                break;
            case'0':case'1':case'2':case'3':case'4':
            case'5':case'6':case'7':case'8':case'9':
                    digit++;
                    break;
                default:
                    other ++;
                    break;
            }
        }
        printf("blank=%d,digit=%d,other=%d
    ",blank,digit,other);
    
        return 0;
    }

    例题3-11:

    #include<stdio.h>
    int main(void)
    {
        double value1,value2;
        char op;
    
        printf("Type in an expression:");
        scanf("%lf%c%lf",&value1,&op,&value2);
        if(op =='+')
            printf("=%.2f
    ",value1+value2);
        else if(op =='-')
            printf("=%.2f
    ",value1-value2);
        else if(op =='*')
            printf("=%.2f
    ",value1*value2);
        else if(op =='/')
            if(value2!=0)
            printf("=%.2f
    ",value1/value2);
            else
                printf("Divisor can not be 0!
    ");
            else
                printf("Unknown operator!
    ");
    
            return 0;
    }

    运行结果1:

    运行结果2:

    终于打完第三章了!!第三章在打的时候不像一二章那样轻松了,除了经常打错词导致不能运行之外,有时候是能运行了,但是运行结果却跟书上的结果不一样……

    比如在打3-1的时候,运行出来不管打什么数字都是显示OK!you are right!。检查了几遍以后发现if(yournumber==mynumber)的中间竟然有两个等号T T。改过来后运行结果就变正常了。好吧我不知道为什么要打两个等号- -。求解答!~

    当然之后就再也没犯过这个错了~~

    还有一些比如说把2打成a的错误就不具体说了。只是觉得很神奇的有些地方打错竟然能够运行,只是运行结果常常是不一样的。

    还有个问题就是在3-10中,第一次打完以后发现不能运行,但是检查很多遍都没发现有打错的地方。研究了一下下面的错误提示发现    case' ': 两个单引号之间有个空格。后来加了空格后果然能运行了……有点小郁闷,可能是粗心的问题吧,但是我不懂为什么有些地方多了少了空格和回车没影响,像在这里少个空格竟然就不能运行了……-。-

    后面接下来的任务还是有点小艰巨啊- -。加油咯。

    以上。

  • 相关阅读:
    js上移、下移排序 效果
    如何为平板打造完美的网站页面?
    [BUUOJ]刮开有奖reverse
    [0CTF 2016]piapiapia
    [TSCTFJ 2019]bypass
    [安洵杯 2019]easy_serialize_php
    [TSCTFJ] relax
    c#访问网页
    DNN 数据访问
    c#访问数据库
  • 原文地址:https://www.cnblogs.com/danson-daisy/p/3353546.html
Copyright © 2011-2022 走看看