实验任务 1:

#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:随机生成一个范围在1~500以内的整数

问题 2:随机生成5个同学的学号

 

实验任务 2:

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

#define a 1
#define b 31

int main ()
{
    printf("猜猜2022年11月那一天会是你的lucky day\n开始喽,你有三次机会,猜吧(1~30):");
    srand ((int)time(0));
    int num = rand()%(b-a+1)+a;
    
    int usernum;
    int f = 0;
    
    for (int i = 0;i<3;i++)
    {
        
        f++;
        scanf("%d%*c",&usernum);
        if (usernum > num) printf("你猜的日期晚了,你的lucky day已经过啦\n");
        if (usernum < num) printf("你猜的日期早了,你的lucky day已经过啦\n");
        if (usernum == num) 
        {
            printf("哇,猜中了:-)\n");
            break;    
        }
        if (i<2)    printf("再猜(1~30):");
    
    }
    if ( f == 3)
    {
        printf("\n");
        printf("\n次数用完啦。偷偷告诉你:11月,你的lucky day是%d号",num);
    }
    return 0;
}

 

 

实验任务 3:

#include <stdio.h>

int main()
{
    char ch;
    do
    {
        char c;
        scanf("%c%*c",&c);
        if (c == 'y') printf("wait a minute");
        if (c == 'g') printf("go go go");
        if (c == 'r') printf("stop!");
        if    ((c != 'r')&&(c != 'y')&&(c != 'g'))
        printf("something must be wrong...\n");
        
    }while ((ch=getchar()) != EOF);
    
    return 0;
}

 

实验任务 4:

 

#include <stdio.h>
#include <math.h>

int main()
{
    int n,a;
    int p = 0;
    double sum = 0;
    char ch;
    
    do
    {    
        scanf("%d %d",&n,&a);
        for (int i = 1;i<=n;i++)
        {
            p += a * pow(10,(i-1));
            sum += (double)i / p;
        } 
        
        
        printf("n=%d, a=%d, s = %f\n",n,a,sum);
        
        p = 0;
        sum = 0;
        
    }while ( (ch=getchar()) !=EOF);
    
    return 0;
}

 

 

 

 

 

实验任务 5:

#include <stdio.h>
#include <math.h>

int main()
{    
    int mul;
    
    for (int i = 1;i < 10;i++)
    {
        for(int k = 1;k<=i;k++)
        {
            mul = i * k;
            printf("%dx%d = %2d  ",k,i,mul);
            if (i == k) printf("\n");
        }
    }
    return 0;
}

 

 

实验任务 6:

 

#include <stdio.h>

int main()
{    
    int n;
    printf("input n :");
    scanf("%d",&n);
    
    int total = 2 * n - 1;
    for (int i = 0;i<n;i++)
    {
        for (int k = 1;k<=total;k++) 
        {
            if (k > i && k < 2 * n - i)    printf(" O\t");
            else printf("\t");
            
            if (k == total)    printf("\n");
        }
        
        for (int k = 1;k<=total;k++) 
        {
            if (k > i && k < 2 * n - i)    printf("<H>\t");
            else printf("\t");
            
            if (k == total)    printf("\n");
        }
        
        for (int k = 1;k<=total;k++) 
        {
            if (k > i && k < 2 * n - i)    printf("I I\t");
            else printf("\t");
            
            if (k == total)    printf("\n");
        }
        
        printf("\n");
        
    }
    return 0;
}

 

 

 

 

 

当输入为n时:

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

第i行,前面需要打印(i-1)个空白