分支和循环练习

计算n的阶乘
在这里插入图片描述

计算1!+2!+3!+…+10!
在这里插入图片描述

在有序(从小到大)数组里面查找某个数字n
在这里插入图片描述

编写代码,演示多个字符从两端移动,向中间汇聚

在这里插入图片描述
编写代码实现,模拟用户登录情景,并且只能登录三次(只许输入三次密码,若正确则登录成功,否退出程序)

#define NAME "TOM"
#define PASSWD "12345"

int Login(int times)
	{
		int ret = -1;
		char name[64];
		char passwd[64];
		do{
			printf("请输入你的账号#");
			scanf_s("%s", name);
			printf("请输入你的密码#");
			scanf_s("%s", passwd);
			if (strcmp(name, NAME) == 0 && strcmp(passwd, PASSWD) == 0){
//strcmp比较两个字符串,strcmp(str1,str2),若str1=str2,则返回零;若str1<str2,则返回负数;若str1>str2,则返回正数
				ret = 1;
				break;
			}
			else{
				times--;
				printf("你还有%d次机会!\n", times);
				if (times == 0){
					printf("不好意思,需要等%d秒才能尝试\n", 3);
					Sleep(3000);
					times = 3;
				}
			}


		} while (1);
		return ret;
	}
int main()
{
	int times = 3;
	int result = Login(times);
	if (1 == result)
	{
		printf("登录成功");
	}
	else
		printf("登录失败");
	system("pause");
	return 0;
}

完成猜数字游戏

void menu()
{
	printf("#######################################\n");
	printf("####1 play              2 exit   ######\n");
	printf("#######################################\n");
}
void Game()
{
	srand((unsigned)time(NULL));//输入随机数
	int r = rand() % 100 + 1;//表示范围是从0-100 任何数取模100都是0-99 
	while (1)
	{
		int n = 0;
		printf("你猜#");
		scanf_s("%d", &n);
		if (n > r)
		{
			printf("你猜大了\n");
		}
		else if (n < r)
		{
			printf("你猜小了\n");
		}
		else
		{
			printf("你猜对了\n");
			break;
		}
	}
}
int main()
{
	int quit = 0;
	
	while (!quit)
	{
		menu();
		int select = 0;
		scanf_s("%d", &select);
		switch (select)
		{
		case 1:
			Game();
			break;
		case 2:
			quit = 1;
			printf("bye bye\n");
			break;
		default:
			printf("你输入有误,请重新输入\n");
			break;
		}
	}
	system("pause");
	return 0;
}

在屏幕上输出9*9乘法口诀表

int main()
{
	int i = 0;
	int j = 0;
	int result = 0;
	for (i = 1; i < 10; i++)
	{
		for (j = 1; j <= i; j++)
		{
			result = i*j;
			printf("%d*%d=%d ", i, j, result);
		}
		printf("\n");
	}

	system("pause");
	return 0;
}

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

int main()
{
	int i = 0;
	double sum = 0;
	int flag = 1;
	for (i = 1; i <= 100; i++)
	{
		sum = sum + (flag*1.0 / i);
		flag = -flag;
	}
	printf("%lf", sum);
//输出double类型(双精度实型)%lf格式以及float类型(单精度实型)%f格式,默认输出6位小数 
//要输出n位小数,那么可以用%.nlf的格式 %。10lf 输出十位小数
	system("pause");
	return 0;
}

求10 个整数中最大值

int main()
{
	int arr[10] = { 34, 67, 4, 45, 68, 56, 78, 84, 23, 49 };
	int i = 0;
	int max = arr[0];
	for (i = 0; i < 10; i++)
	{
		if (arr[i]>max)
			max = arr[i];
	}
	printf("%d", max);
	system("pause");
	return 0;
}

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

int main()
{
	int i=0;
	int count=0;
	for (i = 1; i <= 100; i++)
	{
		if ((i % 10 == 9) || (i / 10== 9))//前者判断个位是否等于9,后者判断十位是否等于9
		{
			printf("%d ", i);
			count++;
		}
	}
	printf("\n%d", count);
	system("pause");
	return 0;
}

给定两个数,求这两个数的最大公约数

//辗转相除法
int main()
{
	int a=20;
	int b=40;
	int c=0;
	//加上这个不知道为啥不正确了scanf_s("&d %d",&a,&b);
	while (a%b!=0)
	{
		c = a%b;
		a = b;
		b = c;
	}
	printf("最大公约数是%d", b);
	system("pause");
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值