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

task_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: 伪随机抽取

task_2

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
int main()
{
	int number,i,k;
	srand(time(0));
	number = rand() % 31 + 1;
	printf("猜猜2021年11月哪一天是你的lucky day\n");
	printf("开始喽,你只有三次机会,猜吧(1~30):");
		scanf_s("%d", &i);
		for (k = 1; k <= 2; k++)
		{
			if (i < number) {
				printf("你猜的日期早了,你的lucky day还没到呢\n再猜(1~30):");
				scanf_s("%d", &i); continue;

			}
			if (i > number) {
				printf("你猜的日期晚了,你的lucky day已经过了\n再猜(1~30):");
				scanf_s("%d", &i); continue;

			}
			if (i == number) {
				printf("哇,猜中了:-)");
				break;

			}
		}if (i != number) {
			printf("次数用完啦。偷偷告诉你:11月,你的lucky day是%d号", number);
		}return 0;
}

  

task_3

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
int main()
{
char a,i;
while (scanf_s("%c", &a, sizeof(a)) != EOF)
{
i = getchar();

if (a == 'r') { printf("stop!\n"); continue; }
if (a == 'y') { printf("wait a minute\n"); continue; }
if (a == 'g') { printf("go go go\n"); continue; }
if (a != 'r' && 'y' && 'g') { printf("something must be wrong\n"); continue; }
}

return 0;
}

 

 task_4

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
int main()

{
    int a, n;
    float s=0, i, A = 1, p;
while (EOF) {
    scanf_s(" %d %d", &n, &a);
    for (i = 1; i <= n; i++) {
        A = pow(a, i);
        s += i / A;
    }
        printf("n=%d,a=%d,s=%f\n",n,a, s);
    
}
return 0;}

 

 task_5

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
int main()
{
    int i, n,s;
    
    
    for (i = 1; i <= 9; i++)
    {
        for (n = 1; n <= i; n++) {

            s = n * i;
            printf("%dx%d=%-2d  ", n, i, s);


        }




        printf("\n");
    }
    return 0;
}

 

 task_6

当输入为n时:
第i行,需要打印2n-2i+1个字符小人
第i行,前面需要打印[i/4]*11空白(需要使用[i/4]个 \t )

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include<math.h>
int main()
{
    int a,n,i,p,o,k,z;
    printf("input:");
    scanf_s("%d", &n); k = 2*n-1;
    for (a = 1; a <= n; a++)
    {
        for (z = 2; z <= a; z++) { printf("   \t"); }
        for (p = k; p >= 1; p--)
        {
            printf(" O \t");
        }printf("\n");
        for (z = 2; z <= a; z++) { printf("   \t"); }
        for (o = k; o >= 1; o--) {
            printf("<H>\t");
        }printf("\n");
        for (z = 2; z <= a; z++) { printf("   \t"); }
        for (i = k; i >= 1; i--)
        {
            printf("I I\t");
        }printf("\n");
        printf("\n");
        k = k - 2;
    }
    return 0;
}

 

 

posted @ 2022-10-20 22:31  狄一鑫  阅读(54)  评论(0)    收藏  举报