zoukankan      html  css  js  c++  java
  • 作业 3 应用分支与循环结构解决问题

    1.输入一个整数 x,计算并输出下列分段函数  sign(x)  的值

    #include<stdio.h>
    int main(void)
    {
        int x,y;
    
        printf("Enter x:");
        scanf("%d",&x);
    
        if (x<0){
            printf("y=sign(%d)=-1
    ",x);
        }
        else if (x=0){
            printf("y=sign(%d)=0
    ",x);
        }
        else {
            printf("y=sign(%d)=1
    ",x);
        }
    
        return 0;
    }

    2.输入一个正整数 n,再输入 n 个学生的成绩,计算平均成绩,并统计所有及格学生的人数。

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

    3.输入 15 个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数

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

    字符型变量在定义时用类型名char。

    字符输入用getchar()。

    设ch是字符型变量,函数getchar()的一般调用格式为:ch = getchar();

    其功能是从键盘输入一个字符,并赋值给变量ch。

    如要输入多个函数则采用循环结构。

    4.循环输入多个年份 year,判断该年是否为闰年。判断闰年的条件是:能被  4  整除但不能被100  整除,或者能被  400  整除。输入-1退出程序执行

    #include<stdio.h>
    int main(void)
    {
        int i,n,year;
    
        printf("Enter n:");
        scanf("%d",&n);
    
        for(i=1;i<=n;i++){
        printf("Enter year:");
        scanf("%d",&year);
    
            if (year == -1){
            break;
        }
        else if ((year%4 == 0 && year%100!=0)||(year%400 == 0)){
            printf("该年为闰年。
    ");
        }
        else {
            printf("该年不为闰年。
    ");
        }
        }
    
        return 0;
    }

    这题第一次输入的时候  else if ((year%4 == 0 && year%100!=0)||(year%400 == 0)) 里面的%我都是用的/,但是运行发现输入的闰年输出都成了不是闰年。

    后来百度后发现应该用%,是取余的符号。好吧涨知识了。

    5.输入五级制成绩(A-E),输出相应的百分制成绩(0-100)区间,要求使用 switch语句。例如,输入 A,输出 90-100。五级制成绩对应的百分制成绩区间为:A(90-100)、B(80-89)、C(70-79)、D(60-69)和 E(0-59)。

    #include<stdio.h>
    int main(void)
    {
        char op;
    
        printf("Type in the word:");
        scanf("%c",&op);
        switch(op){
        case'A':
            printf("90-100
    ");
            break;
        case'B':
            printf("80-89
    ");
            break;
        case'C':
            printf("70-79
    ");
            break;
        case'D':
            printf("60-69
    ");
            break;
        case'E':
            printf("0-59
    ");
            break;
        }
    
        return 0;
    }

    6.查询水果的单价。有 4 种水果,苹果(apples)、梨(pears)、桔子(oranges)和葡萄(grapes),单价分别是 3.00 元/公斤,2.50 元/公斤,4.10 元/公斤和 10.20 元/公斤。在屏幕上显示以下菜单(编号和选项),用户可以连续查询水果的单价,当查询次数超过 5 次时,自动退出查询;不到 5 次时,用户可以选择退出。当用户输入编号 1~4,显示相应水果的单价(保留两位小数);输入 0,退出查询;输入其他编号,显示价格为 0。
    [1] apples
    [2] pears
    [3] oranges
    [4] grapes
    [0] Exit

    #include<stdio.h>
    int main(void)
    {
        int choice,i;
        double price;
    
        for(i=1;i<=5;i++){
            printf("[1]apples
    ");
            printf("[2]pears
    ");
            printf("[3]oranges
    ");
            printf("[4]grapes
    ");
            printf("[0]exit
    ");
    
            printf("Enter choice:");
            scanf("%d",&choice);
    
            if (choice == 0)
            break;
            switch(choice){
            case 1:price=3.00;break;
            case 2:price=2.50;break;
            case 3:price=4.10;break;
            case 4:price=10.20;break;
            default:price=0.00;break;
            }
            printf("price=%.2f
    ",price);
        }
    
        return 0;
    }

    以上代码基本都能在书上找到类似的例题,但是自己打的时候不够熟练,总是会忘记下一步是什么,并且常常会犯这样那样的错误,最后还要对照着书上的修改。

    果然还是需要多练练呢。加油咯。

  • 相关阅读:
    HDU 3247 Resource Archiver(AC自动机 + 状压DP + bfs预处理)题解
    HDU 3341 Lost's revenge (AC自动机 + DP + 变进制/hash)题解
    HDU 2457 DNA repair(AC自动机 + DP)题解
    HDU 2825 Wireless Password(AC自动机 + 状压DP)题解
    POJ 1625 Censored!(AC自动机 + DP + 大数 + 拓展ASCII处理)题解
    HDU 2243 考研路茫茫——单词情结(AC自动机 + 矩阵快速幂)题解
    POJ 2778 DNA Sequence(AC自动机 + 矩阵快速幂)题解
    HDU 4511 小明系列故事——女友的考验 (AC自动机 + DP)题解
    AJAX局部刷新和异步技术
    方法视图(FBV)和类视图(CBV)添加装饰器
  • 原文地址:https://www.cnblogs.com/danson-daisy/p/3378641.html
Copyright © 2011-2022 走看看