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

TASK 1

 

#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;
        number = rand()%999 + 1;
        printf("%d8330%04d\n", grade, number);
    }
    
    return 0;
}

 

问题一:利用rand()随机生成学号中的年级

问题二:利用rand()随机生成学号的四位尾数

问题三:抽人

 

TASK 2

 

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

int main()
{
    int luck,i,j=0;
    
    srand(time(0));
    
    luck=rand()%30+1;
    
    printf("猜猜2022年4月哪一天会是你的lucky day\n");
    printf("\n");
    printf("开始喽,你有三次机会,猜吧(1~30):");
    
    do
    {    
        scanf("%d",&i);
        printf("\n");
        if(i>luck)
        {
            printf("你猜的日期晚了,你的lucky day已经过啦\n");
            printf("\n");
            printf("再猜(1~30):");
            j++;     
        }
        else if(i<luck)
        {
            printf("你猜的日期早了,你的lucky day还没到呢\n");
            printf("\n");
            printf("再猜(1~30):");
            j++; 
        }
        else
        {
            printf("哇,猜中了:-)\n");
            printf("\n");
            break;
        }
        
    }while(j<2);
    
    if(i!=luck)
    {
        scanf("%d",&i);
        printf("\n");
        if(i>luck)
        {
            printf("你猜的日期晚了,你的lucky day已经过啦\n");
            printf("\n");
        }
        else if(i<luck)
        {
            printf("你猜的日期早了,你的lucky day还没到呢\n");
            printf("\n");
        }
        else
        {
            printf("哇,猜中了:-)\n");
            printf("\n");
        }
        
    }
    
    if(i!=luck)
    {
        printf("次数用完啦。偷偷告诉你:4月你的lucky day是%d号",luck);
        printf("\n");
    }
     
    return 0; 
     
}

 

 

TASK 3

 

#include<stdio.h>

int main()
{
    char i;
    
    while((i=getchar())!=EOF)
    {
        switch(i)
        {
            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");
        }
        i=getchar();
    }
    return 0;
}

 

 

TASK 4

 

#include<stdio.h>

int main()
{
    int n,a;
    double k,s,i,j;
    
    while(scanf("%d %d",&n,&a)!=EOF)
    {
        while(n>0&&a>0)
        {
            i=1;j=0;s=0;
            while(i<=n)
            {
                j=j*10+a;
                k=i/j;
                s=s+k;
                i++;                
            }
            printf("n=%d,a=%d,s=%lf\n",n,a,s);
            s=0;
            break;    
        }
    }
    return 0;   
}

 

 

TASK 5

 

#include<stdio.h>

int main()
{
    int col,lin=1,val;
    
    while(lin<=9)
    {
        col=1;
        printf("\n");
        while(col<=lin)
        {
            val=col*lin;
            printf("%d×%d=%2d  ",col,lin,val);
            col++;
        }
        lin++;
    }
    return 0;
}

 

 

TASK 6_1

 

#include<stdio.h>

int main()
{
    int n,i=1;
    printf("input n:");
    scanf("%d",&n);
    while(i<=n)
    {
        printf(" o \n");
        printf("<H>\n");
        printf("I I\n");
        printf("\n");
        i++;
    }
    return 0;
 } 

 

 

TASK 6_2

 

#include<stdio.h>

int main()
{
    int n,i=1,j=1,k=1;
    
    printf("input n:");
    scanf("%d",&n);
    
    while(i<=n)
    {
        printf(" o    ");
        i++;
    }
    printf("\n");
    
    while(j<=n)
    {
        printf("<H>   ");
        j++;
    }
    printf("\n");
    
    while(k<=n)
    {
        printf("I I   ");
        k++;
    }
    printf("\n");
    
    return 0;
 } 

 

 

TASK 6_3

 

#include<stdio.h>

int main()
{
    int n,i=0,j,a,b,c,k=1,s;
    
    printf("input n:");
    scanf("%d",&n);
    
    j=2*n-1;a=j;b=j;c=j;
    while(a>0)
    {printf(" o    ");a--;}
    printf("\n");
    
    while(b>0)
    {printf("<H>   ");b--;}
    printf("\n");
    
    while(c>0)
    {printf("I I   ");c--;}
    printf("\n");
    
    n--;    
    while(n>0)
    {
        j=2*n-1;i=0;
        a=j;b=j;c=j;
        
        while(i>=0&&i<k)
        {printf("      ");i++;}
        while(a>0)
        {printf(" o    ");a--;}
        printf("\n");
        
        i=0;
        while(i>=0&&i<k)
        {printf("      ");i++;}
        while(b>0)
        {printf("<H>   ");b--;}
        printf("\n");
        
        i=0;
        while(i>=0&&i<k)
        {printf("      ");i++;}
        while(c>0)
        {printf("I I   ");c--;}
        printf("\n");
        
        i=0;
        i++;n--;k++;
        
    }
    return 0;
}

 

实验总结

1.本次实验我巩固了if()、while()以及switch()的用法和注意点,对于迭代的思想有了更多的体悟,对于小人阵列也更通透了!

2.在红绿灯的实验中,我发现了怎么样处理数据后的回车的方法:在后再加入一次输入命令。

   最大的感受是:小人真的好难QwQ(bushi)

                            码代码要对数据类型多上心

                            还有还有,自己解决难题的感觉真的超!级!好!

3.喜欢学c语言。

posted @ 2022-04-12 22:58  milliee  阅读(55)  评论(2)    收藏  举报