实验2 C语言控制语句应用编程

1.实验任务一

   task1.c

#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;//生成2018-2021之间的随机整数并赋值给grade
 number=rand()%999+1;//生成1-999之间的随机整数并赋值给number
 printf("%d8330%04d\n", grade, number);
}
 return 0;
}
//这个程序的功能是随机生成2018-2021级格式为xxxx83300xxx的学号

2.实验任务二 编写一个简单的猜日期程序task2.c

task2.c

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int x, y, n;
    srand(time(0));
    y=rand() % 30 + 1;
    printf("猜猜2022年4月哪一天会是你的Lucy day\n");
    printf("开始咯,你有三次机会,猜吧(1~30):");
    scanf("%d", &x);
    for (n = 3;n > 0; n--)
    {
        if (x < y)
        {
            printf("你猜的日期早了,你的Lucy day还没到呢\n");
        }
        else if (x > y)
        {
            printf("你猜的日期晚了,你的Lucy day已经过了\n");
        }
        else
        {
            printf("哇,猜中了!\n");
            exit(0);
        }
        if (n != 1 && n != 0)
        {
            printf("\n再猜:");
            scanf("%d", &x);
        }
        else if (n == 1)
            printf("\n\n次数用完啦。偷偷告诉你:4月,你的luck day是%d号", y);
    }
    }

 

 

 

3. 实验任务编写一个模拟红绿灯信息的程序

task3.c

#include <stdio.h>
int main()
{
    char light;
    while ((light = getchar()) != EOF) {
        switch (light) {
        case 'r':
            printf("stop!\n");break;
        case 'y':
            printf("wait a minute\n");break;
        case 'g':
            printf("go go go!\n");break;
        default:
            printf("sth must be wrong\n");break;
        }
        light = getchar();
    }
    return 0;
}

 

4. 实验任务4

task4.c

#include <stdio.h>
int main()
{
    int n;
    float a, result = 0;
    while (scanf("%d %f", &n, &a) != 0) {
        for (int i = 1; i < n + 1; ++i) {
            result += i / a;
            a = a + a * 10;
        }
        printf("%f\n", result);
        result = 0;
    }
    return 0;
}

 

5. 实验任务5 在屏幕上打印图示所示的九九乘法表。
task5.c
 
#include <stdio.h>
int main()
{
    int x, y;
    for (x = 1;x <= 9;x++)
    {
        for (y = 1;y <= x; y++)
        {
            printf("%dx%d = %2d   ",y, x, x * y);
        }
            printf("\n");
    }
    return 0;
}

 

 

 

 6. 实验任务6 
task6_1.实现:从键盘输入n,在纵向上打印n个字符小人。
#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");
        printf("\n");
    }
    return 0;
}

 

task6_2.实现:从键盘输入n,在横向上打印n个字符小人。
#include <stdio.h>
int main()
{
    int i,n;
    printf("Input n:");
    scanf("%d", &n);
    for (i = 1;i <= n;i++)
    {
        printf(" O     ");
    }
    printf("\n");
    for (i = 1;i <= n;i++)
    {
        printf("<H>    ");
    }
    printf("\n");
    for (i = 1;i <= n;i++)
    {
        printf("I I    ");
    }
    return 0;
}

 

task6_3.实现:从键盘输入n, 打印n行按图示方式递减的字符小人阵列。
#include <stdio.h>
int main()
{
    int n;
    printf("input n:");
    scanf("%d", &n);
    for (int i = 1;i <= n;i++) {
        for (int j = 0;j < i - 1;j++) {
            printf("       ");
        }
        for (int j = 0; j < 2 * n - (2 * i - 1); ++j) {
            printf(" o     ");
        }
        printf("\n");
        for (int k = 0;k < i - 1;k++) {
            printf("       ");
        }
        for (int k = 0; k < 2 * n - (2 * i - 1); ++k) {
            printf("<H>    ");
        }
        printf("\n");
        for (int g = 0;g < i - 1;g++) {
            printf("       ");
        }
        for (int g = 0; g < 2 * n - (2 * i - 1); ++g) {
            printf("I I    ");
        }
        printf("\n");
    }
}

 

posted on 2022-04-12 19:16  孙羽彤  阅读(111)  评论(1编辑  收藏  举报

导航