实验二

实验任务1

task1.c

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

#define N 5
int main()
{
    int number;
    int i;

    srand(time(0));

    for (i = 0; i < N; ++i)
    {
        number = rand() % 500 + 1;
        printf("20228329%04d\n", number);

    }
    return 0;
}

问题1:表示number取1~500中的一个随机数

问题2:抽签。从学号是前500的学生中抽5名

实验任务2

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

#define N 3
int main()
{
    printf("猜猜2022年11月哪一天会是你的lucky day\n");
    int i, number,a=1;
    srand(time(0));
    number = rand() % 30 + 1;
    printf("开始喽,你有三次机会才,猜吧(1~30): ");
    
    
    for (a = 1; a <= N; a++) {
        scanf_s("%d", &i);
        if (i <= 0 || i >= 31)
        {
            printf("数据输入错误,请重新输入:");
        }


            if (i < number&&i>0)
            {
                printf("你猜的日期早了,你的lucky day还没到呢\n");
                printf("再猜(1~30): ");
            }
            
            else if(i>number&&i<31)
            {
                printf("你猜的日期晚了,你的lucky day已经过了\n");
                printf("再猜(1~30): ");
            }
            
            else if(i==number)
            {
                printf("哇,猜中了:-)\n");
                break;
            }
    }
    
    if(a>N)
    printf("次数用完了,lucky day是:%d\n", number);

    return 0;
}

task2.c

实验任务3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
        char ans;
        while (scanf("%c", &ans )!= EOF) 
        {
            getchar();
            switch (ans)
            {
            case 'r':printf("stop!\n"); break;
            case'g':printf("go go go\n"); break;
            case'y':printf("wait aminute\n"); break;
            default:printf("something must be wrong\n"); break;
            }
        }
    return 0;

}

task3.c

实验任务四

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int n, a, i;
    
    
    while (scanf("%d%d", &n, &a) != EOF) 
    {
        double s = 0.0, m = 0.0;
        for (i = 1; i <= n; i++)
        {
            m = m * 10 + a;
            s = s + i / m;
            
        }
        printf("n=%d,a=%d,s=%lf\n", n, a, s);
    }
    
    return 0;

 实验任务5

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i, line,m,j;
    scanf("%d", &line);
    
    
        for (i = 1; i <= line; i++)
        {
            if (line > 9 || line < 1)
            {
                printf("数据输入错误,请重新输入\n");
                break;
            }
            for (j = 1; j <= i; j++)
            {
                m = j * i;
                printf("%d*%d=%d", j, i, m);
                printf("\t");
            }
            printf("\n");
        }
    
    system("pause");
    return 0;
}

task5.c

实验任务6

 1. 当输入为n时

第i行,需要打印2n+1-2i个小人

第i行,需要打印i-1个空白s

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int i, n,j,m,h;
    scanf("%d", &n);
    m = 2 * n + 1;
    for (i = 1; i <= n; i++)
    {
        m = m - 2;
        for (h = 1; h < i; h++)
        {
            printf("\t");
        }
            for (j = 1; j <= m; j++)
            {
                printf(" O \t");
            }
        
        printf("\n");

        for (h = 1; h < i; h++)
            printf("\t");

        for (j = 1; j <= m; j++)
        {
            printf("<H>\t");
        }
        printf("\n");

        for (h = 1; h < i; h++)
            printf("\t");
        for (j = 1; j <= m; j++)
        {
            printf("I I\t");    
        }

        printf("\n");

    }
    return 0;

}

task6.c

实验总结

1.对循环结构while语句了解更深刻 。例如实验任务4,对于每个输入都应当重新从0。

2.要学会从运行结果中找出自己的错误点。

3.不足:对srand()函数不知道原理。

posted @ 2022-10-25 08:51  汤玉龙  阅读(19)  评论(0)    收藏  举报