实验二

task1

//此程序功能:随机生成5个学号
#include<stdio.h>
#include<stdlib.h>
#include<time.h>

#define N 5

int main()
{
    int grade, number;
    int i;

    srand(time(0));

    for (i = 0; i < N; ++i)
    {
        grade = rand() % 4 + 2018;//rand()%4得到0-3的数,所以grade的值是2021、2020、2019、2018
        number = rand() % 999 + 1;//rand()%999得到0-998的数,所以number的值是1-999的整数
        printf("%d8330%04d\n", grade, number);
    }

    return 0;


}

task2

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
int main()
{
    int luckyday;
    printf("猜猜2022年4月哪一天会是你的lucky day\n\n");

    srand(time(0));
    luckyday = rand() % 30 + 1;

    printf("开始喽,你有3次机会,猜吧(1~30):");

    int i;
    for (i = 0; i < 3; ++i)
    {
        int x;
        scanf("%d", &x);
        if (x < luckyday)
        {
            printf("你猜的时间早了,你的lucky day还没到呢\n\n");
        if(i<2)
            printf("再猜(1~30):");
            continue;
        }
        else if (x > luckyday)
        {
            printf("你猜的日期晚了,你的lucky day已经过了\n\n");
        if(i<2)
            printf("再猜(1~30):");
            continue;
        }
        else if (x = luckyday)
        {
            printf("恭喜你回答正确\n\n"); break;
        }
        i++;
    }
    while (i == 3)
    {
        printf("你的lucky day是:%d", luckyday);
        ++i;
    }


    return 0;
}

task3

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    char ch;
    while ((ch = getchar()) != EOF)
    {
        getchar();
        if (ch == 'r')
            printf("stop!\n\n");
        else if (ch == 'g')
            printf("go go go\n\n");
        else if (ch == 'y')
            printf("wait a minute\n\n");
        else printf("something must be wrong\n\n");
    }
    return 0;
}

 task4

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main()
{
    int a, n;
    double s , p ,i;
    while (scanf("%d%d", &n, &a) != EOF)
    {
        p = 0.0, s = 0.0;
        for (i = 1; i <= n; ++i)
        {

            p +=  a * pow(10, i - 1);
            s +=  i / p;
        }
        printf("n=%d,a=%d,s=%lf\n\n", n, a, s);
    }

    return 0;

}

task5

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<math.h>
#include<stdio.h>
int main()
{
    int line,column,value;
    for (line = 1; line <= 9; line++)
    {
        for (column = 1; column <= line; column++)
        {
            value = column * line;
            printf("%d*%d=%d  ", line, column, value);
        }
        printf("\n");
        
    }

    return 0;


}

task6-1

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int i,n;
    printf("input n:");
    scanf("%d", &n);
    for (i = 1; i <=n;i++)
    {
        printf(" o\n");
        printf("<H>\n");
        printf("I I\n\n");
    
    }

    return 0;
}

task6-2

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int i, n;
    printf("input n:");
    scanf("%d", &n);

    for (i = 1; i <= n; i++)
    {
        printf(" o   ");
        while (i == n)
        {
            printf("\n");
            i++;
        }
    }

    for (i = 1; i <= n; i++)
    {
        printf("<H>  ");
        while (i == n)
        {
            printf("\n");
            i++;
        }
    }

    for (i = 1; i <= n; i++)
    {
        printf("I I  ");
        while (i == n)
        {
            printf("\n");
            i++;
        }
    }

    

    return 0;
}

task6-3

 

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
    int  n,i,j,m,t;
    printf("input n:");
    scanf("%d", &n);

    for (j =1; j<=n; j++)//n行小人
    {
        
        t = 5* (j - 1);
        printf("%*s", t, "");
        for (i = j; i <= 2*n-j; i++)
            printf(" o   ");
                printf("\n");

                t = 5 * (j - 1);
        printf("%*s", t, "");
        for (i = j; i <= 2*n-j; i++)    
            printf("<H>  ");
                printf("\n");
        
                t = 5 * (j - 1);
        printf("%*s", t, "");
        for (i = j; i <= 2*n-j; i++)    
         printf("I I  ");
                printf("\n");
        
                
    }
    

    return 0;
}

收获:

1.输入时,需要接收字符的getchar()接收了上次输入时最后的回车键,而没有正确的接收我要输入的字符。可使用getchar回收掉回车,再输入字符。eg:task3

2.在循环外和循环内给变量赋值带来的结果不同。eg:task4中s和p的赋值

3.

t = 5 * (j - 1);
printf("%*s", t, "");

输出连续空格

posted @ 2022-04-12 22:37  周星羽  阅读(39)  评论(3)    收藏  举报