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

1试验任务一

(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;
}

 

(2)回答试验任务一中提出的问题

  问题1:解释line17代码 number = rand()%500 + 1; 的功能
  答:其功能是产生1~500之间的随机数
  问题2:这个程序的功能是什么?
  答:该程序的功能是随机打印2022级新生的学号

2.试验任务2

  task2.c源代码,及,运行结果截图
/*使用随机函数,生成1~31之间的一个随机整数作为11月的lucky day
用户有三次猜的机会。根据用户输入的日期,提示用户猜的日期是猜中了,或是,早或晚。
如果用户已经猜中了,则无需打印输出lucky day。
如果用户用光三次机会也没有猜中,那么,就打印输出用户在11月的lucky day。*/

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

int main()
{
    int num, lnum, i;
    printf("猜猜2022年11月那一天会是你的lucky day\n");
    printf("开始喽,你有三次机会,猜吧(1~30): ");

    srand(time(0));

    for (i = 1; i <= 3; i++)
    {
        scanf_s("%d", &num);
        lnum = rand() % 30 + 1;
        if (num == lnum)
        {
            printf("哇,猜对了\n");
            break;
        }
        else if (num < lnum)
        {
            printf("你猜的日期早了,你的lucky day 还没到呢\n");
            printf("再猜:");
        }
        else
        {
            printf("你猜的日期晚了,你的lucky day还没到呢\n");
            printf("再猜:");
        }
    }
    if (i == 4)
        printf("次数用完了,偷偷告诉你:11月你的lucky day是%d号\n", lnum);

    return 0;


}

3.试验任务3

task3.c源代码,及,运行结果截图 
/*判断交通信号灯颜色,要求用户从键盘输入字符,用来表示交通信号灯颜色。输入r表示red,输入g表示green, 输入y表示
yellow*/

#include<stdio.h>
int main()
{
    char color;
    printf("请输入交通信号灯颜色:r表示red,g表示green,y表示yellow\n");
    while (scanf_s("%c", &color) != EOF)
    {
        getchar();
        switch (color)
        {
        case 'r':printf("stop!\n"); break;
        case 'g':printf("go go go\n"); break;
        case 'y':printf("wait a minute\n"); break;
        default:printf("something must be wrong.....\n"); break;
        }
        
    }
    return 0;

}

4.试验任务4

  task4.c源代码,及,运行结果截图/*编写程序task4.c,实现从键盘输入正整数n和a,根据计算式,计算s。要求支持多组输入*/

#include<stdio.h>
#include<math.h>
int main()
{
    int n, i,a,j,c;
    float s;
  while (scanf_s("%d %d", &n, &a) != EOF) { s = 0; for (i = 1; i <= n; i++) { c = a; for (j = 2; j <= i; j++) c = c + c * pow(10, j - 1); s = s + (float)i / c; } printf("n = %d,a = %d,s = %lf\n", n,a,s); } return 0; }

细节:对于实验4一定要记住每次循环都需要将s初始化为0

5.试验任务5

  task5.c源代码,及,运行结果截图 

//打印九九乘法表
#include<stdio.h>
int main()
{
    int i, j;
    for (i = 1; i <= 9; i++)
    {
        for (j = 1; j <= i; j++)
            printf("%d * %d = %d\t", j, i, j * i);
        printf("\n");
    }
    return 0;
}

6.试验任务6

  task6.c源代码,及,运行结果截图
//从键盘输入n, 打印n行按图示方式递减的字符小人阵列
#include<stdio.h>
int main()
{
    int i, j, n, s, k,q,r,t,p;
    scanf_s("%d", &n);
    s = n;
    for (i = 1; i <= n; i++)
    {
        for (j = 1; j < i; j++)
            printf("\t");
        for (k = 1; k <= (2 * s - 1); k++)
            printf(" o \t");
        printf("\n");
        for (q = 1; q < i; q++)
            printf("\t");
        for (r = 1; r <= (2 * s - 1); r++)
            printf("<H>\t");
        printf("\n");
        for (t = 1; t < i; t++)
            printf("\t");
        for (p = 1; p <= (2 * s - 1); p++)
            printf("I I\t");
        printf("\n");
        s = s - 1;
    }
    return 0;
}

 

 

 

 

posted @ 2022-10-19 14:33  mli_littlewith  阅读(108)  评论(0编辑  收藏  举报