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

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

line16表示随机生成2018-2021之间的一个整数

line17表示随机生成1-999之间的一个整数

这个程序表示随机生成五个2018-2021年尾号为001-999的学号

 

task2.c

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

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

task3.c

#include<stdio.h>
int main()
{
    char ch;
   while(scanf("%c",&ch)!=EOF)
   {
       getchar();
    switch(ch)
    {
        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;
}

task4.c

#include<stdio.h>
int main()
{
    int n,a,i,j;
    double s,t;
    while(scanf("%d%d",&n,&a)!=EOF)
    {
        s=0.0;
        j=0;
        for(i=1;i<=n;i++)
        {
            j=j*10+a;
            t=(double)i/j;
            s=s+t;
        }
    printf("n=%d,a=%d,s=%lf\n\n",n,a,s);
    }
    return 0;
}

task5.c

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

task6_1.c

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

 

task6_2.c

#include<stdio.h>
int main()
{
    int n,i;
    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  ");
    printf("\n");
        
    return 0;
}

task6_3.c

#include<stdio.h>
int main()
{
    int n,i,t,j,m;
    printf("input n:");
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        m=2*n;
        t=5*(i-1);
        printf("%*s",t,"");
        for(j=i;j<=m-i;j++)
            printf(" O   ");
        printf("\n");
        
        t=5*(i-1);
        printf("%*s",t,"");
        for(j=i;j<=m-i;j++)
            printf("<H>  ");
        printf("\n");
        
        t=5*(i-1);
        printf("%*s",t,"");
        for(j=i;j<=m-i;j++)
            printf("I I  ");
        printf("\n");
    }
    return 0;
}

 

实验总结

1.输入字符要用getchar吸收回车!

2.注意字符型常量

3.注意输入连续空格的情况

 

posted @ 2022-04-12 21:14  xryyyy  阅读(42)  评论(1编辑  收藏  举报