实验2

task1

问题1:

生成1到100以内的整数

问题2:

使number生成4位不够用0补充

问题3:

随机生成一个学号

task2

问题1:

total如果去掉,那么下一次循环total就是上一次循环的结果

问题2:break直接结束循环,continue是跳过本次循环继续下一次循环

问题3:

没必要,错误输入会再前面的代码中提示

task3

#include <stdio.h>

int main() {
    char c;
    
    while((c=getchar())!=EOF) {
        getchar();
        switch (c) {
        case 'r':printf("stop\n"); break;
        case 'y':printf("wait a minute\n"); break;
        case 'g':printf("go go go\n"); break;
        default:printf("something must be wrong\n"); break;
        }

    }
    return 0;
}

task4

#include <stdio.h>
#include <stdlib.h>
int main() {
    double i;
    double sum;
    double max;
    double min;
    sum = 0;
    max = 0;
    min = 20000;
    scanf_s("%lf", &i);

    while (i != -1) {
        if (i < 0 || i>20000) {
            break;
        }
        sum += i;
        if (i > max) {
            max = i;
        }
        if (i < min) {
            min = i;
        }
        scanf_s("%lf", &i);
    }
    printf("今日累计消费总额=%lf\n", sum);
    printf("今日最高一笔消费=%lf\n", max);
    printf("今日最低一笔消费=%lf\n", min);
    return 0;



}

task5

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    int max = 30;
    int min = 1;
    int number;
    int i ;
    int x;

    srand(time(0));
    number = min + rand() % (max - min + 1);
    printf("猜猜2025年4月哪一天是你的lucky day 开始喽,你有三次机会,猜吧:");
    for (i=1; i <= 3; ++i) {
        scanf_s("%d", &x);
        if (x > number) {
            printf("你猜的日期晚了\n");
            if (i < 3) {
                printf("再猜:");
            }
        }
        else if (x < number) {
            printf("你猜的日期早了\n");
            if (i < 3) {
                printf("再猜:");
            }
        }
        else {
            printf("哇,猜中了");
            break;
        }
    }
    if (i = 4) {
        printf("次数用完了,你的lucky day是%d", number);
    }
}

task6

#include <stdio.h>

int main() {
    int n;
    int i,j;
    printf("input n:");
    scanf_s("%d",&n);
    for (j = 1; j <= n; ++j) {

        for (i = 1; i <= j - 1; ++i) {
            printf("   \t");
        }
        for (i = 1; i <= 2 * (n-j)+1; ++i) {
            printf(" O \t");
        }
        printf("\n");
        for (i = 1; i <= j - 1; ++i) {
            printf("   \t");
        }
        for (i = 1; i <= 2 * (n-j)+1; ++i) {
            printf("<H>\t");
        }
        printf("\n");
        for (i = 1; i <= j - 1; ++i) {
            printf("   \t");
        }
        for (i = 1; i <= 2 * (n-j)+1; ++i) {
            printf("I I\t");
        }
        printf("\n");
    }
}

总结:本次实验收获很大,主要学习了循环的思维方式,增加了思维的严谨性

 

posted @ 2025-03-22 19:37  wangchenxu  阅读(10)  评论(0)    收藏  举报