c语言小练习

目录

1、分数求和:      计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

2、数9的个数     编写程序数一下 1到 100 的所有整数中出现多少个数字9

3、猜数字游戏

4、二分查找:

5、数字从左右到中间渐变:

6、goto语句:

7、goto语句的整蛊小游戏:


1、分数求和:
      计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

#include
int main()
{
	int flag = 1;
	double sum = 0.0;
	double a = 0.0;
	for (int i = 1; i <= 100; i++)
	{
        //此处必须用1.0强制转换类型,否则会出现0的情况
		a = 1.0 / i;
		sum += a * flag;
		flag = -flag;
		
	}
	printf("%.6f", sum);
	return 0;
}

2、数9的个数
     编写程序数一下 1到 100 的所有整数中出现多少个数字9

#include
int main()
{
	int count = 0;
	for (int i = 1; i <= 100; i++)
	{
		if (i%10==9||i==9 || i / 10 == 9)
		{
			count++;
		}
	}
	printf("%d", count);
	return 0;
}

3、猜数字游戏

#include
#include
#include
void menu() {
	printf("**************猜数字小游戏*************\n");
	printf("***************1.开始游戏**************\n");
	printf("***************0.结束游戏**************\n");
}
void play() {
    //rand引用主函数里的srand函数
	int ret = rand() % 100 + 1;
	printf("系统已产生一个随机数\n");
	int a=-1;
	while (a != ret) 
	{
		printf("请输入你猜的数字:");
		scanf("%d", &a);
		if (a > ret)
		{
			printf("你输入的数字大了\n\n");
		}
		else if (a < ret)
		{
			printf("你输入的数字小了\n\n");
		}
	}
		printf("恭喜你,猜对了!!\n\n");
}
int main()
{
	int n;
    //srand中的类型需要unsigned int,所以需要把time时间戳强制转换类型
	srand((unsigned int)time(NULL));
	do {
		menu();
		printf("请输入你的选择");
		scanf("%d", &n);
		switch (n) {
		case 1:play();
			break;
		case 0:break;
		default:printf("你输入的数字有误!");
			break;
		}
	}
	while (n!=0);
	return 0;
}

4、二分查找:

#include
int main() 
{
	int a[] = { 1,2,3,4,5,6,7,8,9,10 };
	int left = 0;
	int b = 11;
    //通过字节相除的方法获取数组的长度;
	int right = sizeof(a) / sizeof(a[0]);
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (a[mid] < b)
		{
			left = mid + 1;
		}
		if (a[mid] > b)
		{
			right = mid - 1;
		}
		if (a[mid] == b)
		{
			printf("找了了数字%d,他的下标是%d", b, mid);
			return 0;
		}
	}
	printf("没找到数字%d", b);
	return 0;
}

5、数字从左右到中间渐变:

#include
#include
//为了写Sleep函数,实现慢慢显示
#include
//为了写strlen函数
#include
//为了写system函数,实现清屏;
int main()
{
	char a[] = { "cheng xu yuan X ni hao !" };
	char b[] = { "************************" };
	int left = 0;
	int right = strlen(a);
	while (left <= right)
	{
		b[left] = a[left];
		b[right] = a[right];
		printf("%s\n", b);
		//缓冲1000毫秒
		Sleep(1000);
		system("cls");
		left++;
		right--;
	}
	printf("%s\n", b);
	return 0;
}

6、goto语句:

#include
int main()
{
	printf("hehe\n");
	goto flag;//直接从此处去到flag处,跳过haha
	printf("haha\n");
		flag:
	printf("heihei\n");
	return 0;
}

7、goto语句的整蛊小游戏:

#include
#include
#include
int main()
{
	char input[20] = { 0 };
	system("shutdown -s -t 60");//关机指令
again:
	printf("请注意,你的电脑将在一分钟内关机,只有输入:我是猪,才取消关机\n");
	scanf("%s", input);
	if (strcmp(input, "我是猪") == 0)
	{
		system("shutdown -a");//取消关机指令
		printf("关机取消");
	}
	else
	{
		goto again;
	}
	return 0;
}

你可能感兴趣的:(c语言)