实验2

task.1

源码

//task1.c

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

#define N 5
#define R1 586
#define R2 701

int main()
{
    int number;
    int i;
    
    srand( time(0) );
    
    for(i = 0; i < N; ++i)
    {
        number = rand() % (R2 - R1 + 1) + R1;    //取586到701之间的随机数
        printf("20228330%04d\n", number);
    }
    
    return 0;
 } 

 

结果

 

分析

1.生成586-701之间的随机数

2.生成随机学号

task.2

源码

 

//task2.c

#include <stdio.h>

int main()
{
    double x, y;
    char c1, c2, c3;
    int a1, a2, a3;
    
    scanf("%d%d%d", &a1, &a2, &a3);
    printf("a1 = %d, a2 = %d, a3 = %d\n", a1,a2,a3);
    
    getchar();
    
    scanf("%c%c%c", &c1, &c2, &c3);
    printf("c1 = %c, c2 = %c, c3 = %c\n", c1, c2, c3);
    
    getchar();
    
    scanf("%lf%lf", &x, &y);
    printf("x = %lf, y = %lf\n",x, y);
    
    return 0;
 } 

 

结果

 

 

分析

 

task.3_1

源码

 

//task3_1.c

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

int main()
{
    double x, ans;
    
    scanf("%lf", &x);
    ans = pow(x, 365);
    printf("%.2f的365次方: %.2f\n", x, ans);
    
    return 0;
}

 

结果

 

 

分析

 

 

task.3_2

源码

 

//task3_2.c

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

int main()
{
    double x, ans;
    
    while(scanf("%lf", &x) != EOF)    //结束计算时,按下 Ctrl+Z 键(同时按下键盘上的Ctrl键和字母Z键;在visual studio中,需要按下 Ctrl+Z 键3次。)。
    {
        ans = pow(x, 365);
        printf("%.2f的365次方: %.2f\n", x, ans);
        printf("\n");    
    }    
    
    return 0;
}

 

结果

 

 

分析

 

 

task.3_3

源码

 

//task3_3.c 

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

int main()
{
    double x, temp;
    
    while(scanf("%lf", &x) != EOF)    //结束计算时,按下 Ctrl+Z 键(同时按下键盘上的Ctrl键和字母Z键;在visual studio中,需要按下 Ctrl+Z 键3次。)。
    {
        temp = 9*x/5 + 32; 
        printf("摄氏度:%.2f,华氏度:%.2f\n", x, temp);
        printf("\n");    
    }    
    
    return 0;
}

 

结果

 

 

 

分析

 

 

task.4

源码

 

//task4.c

#include <stdio.h>

int main()
{
    char ans;
    
    printf("输入r表示red,输入g表示green, 输入y表示yellow\n");
    
    while(scanf("%c", &ans) != EOF)
    {
        getchar();
        
        switch( ans )
        {
            case 'r' :
            case 'R' :printf("stop\n");
                      break;
            case 'y' :
            case 'Y' :printf("wait a minute\n");
                      break;
            case 'g' :
            case 'G' :printf("go go go\n");
                      break;
            default :printf("something must be wrong...\n")    ;    
        }
        
        printf("输入r表示red,输入g表示green, 输入y表示yellow\n");    
    }
    
    return 0;
}

 

结果

 

 

分析

 

 

task.5

源码

 

//task5.c

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

int main()
{
    int ans, lucky, t=2;
    
    srand( time(0) );
    lucky = rand() % (30 - 1 + 1) + 1;
    
    printf("猜猜2023年4月的哪一天是你的luckyday?\n");
    //printf("%d\n", lucky);
         
    while(scanf("%d", &ans) != lucky && t != 0)
    {
        if(ans > lucky)
            printf("你猜的日期晚啦,已经过了\n");
        else
            printf("你猜的日期早啦,还没到呢\n");
        
        printf("你还有%d次机会,猜吧(1-30):\n", t);
        
        t--;        
    }
    
    if(ans != lucky)
        printf("次数用完啦,偷偷告诉你,luckyday是%d\n", lucky);
    else
        printf("恭喜你猜对啦\n");
        
    return 0; 
}

 

结果

 

 

分析

 

 

task.6

源码

 

//task6.c

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

int main()
{
    int l, c;
    
    for(l = 1; l <= 9; l++)
    {
        for(c = 1; c <= l; c++)
        {
            printf("%d * %d = %2d   ", c, l, c * l);
        }
        
        printf("\n");
    }
    
    system("pause");
    
    return 0;
}

 

结果

 

 

分析

 

 

task.7

源码

 

//task7.c

#include <stdio.h> 

int main()
{
    int n, i, j=0;
    
    for(scanf("%d", &n); n>0; n--)
    {
        for( i=1; i<=j; i++)
        {
            printf("      ");
        }
        
        for( i=1; i<=(2*n - 1); i++)
        {
            printf(" o    ");
        }
        
        printf("\n");
        
        for( i=1; i<=j; i++)
        {
            printf("      ");
        }
        
        for( i=1; i<=(2*n - 1); i++)
        {
            printf("<H>   ");
        }
        
        printf("\n");
        
        for( i=1; i<=j; i++)
        {
            printf("      ");
        }
        
        for( i=1; i<=(2*n - 1); i++)
        {
            printf("I I   ");
        }
        
        j++;
        
        printf("\n");
    }
    
    return 0;
}

 

结果

 

 

分析

 1. 2i-1个小人

2.i-1个空

 

posted @ 2023-03-16 19:18  南博图  阅读(28)  评论(1编辑  收藏  举报