循环结构 -- 代码练习

while 循环练习

练习1、
# include<stdio.h>
int main()
{
	int i = 0;
	while (i < 10)
	{
		printf("打印第%d遍 \n",i);
		i++;
	}
	return 0;
}

练习2、使用循环计算1至100的累加和

# include<stdio.h>
int main()
{
	int i = 1;
	int sum = 0;
	while (i < 101)
	{
		sum = sum + i;
		i = i + 1;
	}
	printf("累加和为%d \n",sum );
	return 0;
}

练习3、 使用循环实现三次密码输入错误 退出系统

# include<stdio.h>
int main()
{
	int i = 1;
	int password;
	

	while (i < 4)
	{
		printf("请输入密码: ");
		scanf_s("%d", &password);
		if (password != 123456)
		{
			printf("密码输入错误,当前已输入第%d次\n", i);

		}
		else
		{
			printf("密码输入正确!"); break;
		}

		if (i == 3)
		{
			printf("密码输入超过三次,Soory \n");
		}
		
		i++;
		
	}
	return 0;
}

练习4、 一公司2015年交易额800亿,每年递增25%	 
问—按此速度哪年交易额可以达到2000亿!

变量: int year = 2015 年份、 double money = 800 交易额,
循环解决:
循环三要素:
循环的初值:年份,金额
循环的判断:money 
循环的更新:每年递增25%


# include <stdio.h>
int main()
{
	int year = 2015;
	double money = 800;
	while (money <= 2000)
	{
		
		money = money * 1.25;  // 循环变量的更新
		year++;
		
	}
	printf("按此速度%d年可以达到交易额200亿\n",year);
	return 0;
}



练习5、
do...while 循环 练习

# include<stdio.h>
int main()
{
	int a = 1, b = 10;
	do
	{
		b -= a;
		a++;
	} while (b-- < 0);
	printf("%d \n",b);
	printf("%d \n",a);
	return 0;
}


练习6、使用do.... while 循环打印菜单


# include<stdio.h>
int main()
{
	
	while (1)
	{
		int choice; // 用户的选择
	//打印菜单
		printf("性格测试: \n");
			printf("如果你是君王,对于身边的妃子你希望有:\n");
			printf("1、 只要一位真正爱我的妃子\n");
			printf("2、 可以两位以上的妃子\n");
			printf("3、后宫佳丽三千\n");

			do
			{
				printf("请进行选择:\n");
				scanf_s("%d",&choice);
				if (choice <= 0 || choice > 3)
				{
					printf("只能选择1—3,请进行重新选择:\n");
				}
			} while (choice <= 0 || choice > 3);
			switch (choice) 
			{
			case 1:
				printf("您选择了生命中的唯一,然而我已看穿一切 !\n");
				break;
			case 2:
				printf("我呸!\n");
				break;
			case 3:
				printf("您这个花心大萝卜 \n");
				break;
			}
	}
	return 0;
}

while 循环 和 do ...while循环的区别:
执行顺序不同
初始情况不满足循环条件时:
while循环一次都不会执行
do...while 循环不管任何情况都至少执行一次


练习7、 按位取出数字

# include<stdio.h>
int main()
{
	int num = 123456789;
		printf("个位数:%d \n",num % 10);
		printf("十位数:%d \n",num / 10 % 10);
		printf("百位数:%d \n",num / 100 % 10);
		printf("千位数:%d \n",num / 1000 % 10);
	// 规律: 除10 再模 10
	int temp;
	while (num > 0)
	{	
		printf("%d \n", num % 10);
		num = num / 10; // 取出个位数字,立即丢掉各位数字
	}
	return 0;
}
*/

	
	for 循环练习

练习1、循环输入6个月的工资数,计算半年的平均工资
思路:
是否需要循环?
循环几次? 是否是固定的次数?
寻找循环变量
	
# include<stdio.h>
int main()
{
	int i;
	double salary; //工资
	double total_salary = 0;  // 总工资
	double avg_salary;   // 平均工资
	for (i = 1; i < 7; i++)
	{
		printf("请输入第%d月的工资:  \n",i);
		scanf_s("%lf",&salary);
		total_salary += salary;
	}
	avg_salary = total_salary / 6;
	printf("6个月的总工资是:%.2lf\n", total_salary);
	printf("6个月的平均工资是 %.2lf\n", avg_salary);
	return 0;
}


打印简易加法表

# include<stdio.h>
int main()
{
	int num;
	int i;//循环变量
	printf("请输入一个数字:");
	scanf_s("%d",&num);
	for (i = 0; i < num; i++)
	{
		printf("%d + %d = %d \t",i,(num - i), num);
		if (i % 2 == 0) //当i是偶数的情况下(0,2,4,6)
		{
			printf("\t");
		}
		else printf("\n");
					
	}
	return 0;
}

break 语句跳出循环,执行循环之后的语句

练习2、 循环输入玩家的年龄,如果年龄为负数,停止输入,提示输入错误,

# include<stdio.h>
int main()
{
	int age;
	for (;;)
	{
		printf("请输入玩家的年龄:");
		scanf_s("%d", &age);
		if (age < 0)
		{
			break;
		}
	}
	printf("已经停止输入! \n");

	return 0;
}

练习3、
for循环
打印9*9乘法表
\t  空出一个tab键
%d 输出整数
# include<stdio.h>
int main()
{
	for (int i = 1; i <= 9; i = i + 1)
	{
		for (int j = 1; j <= i; j = j + 1)
		{
			printf("%d*%d=%d \t", j, i, j * i);
		}
		printf("\n");
	}
	return 0;
}

练习4、
输出4 * 5 的矩阵

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

	return 0;
}


用while 循环

# include<stdio.h>
int main()
{	
	int age;
	while (1)
	{
		printf("请输入玩家的年龄:");
		scanf_s("%d", &age);
		if (age < 0)
		{
			break;
		}
	}
	printf("已经停止输入! \n");
	return 0;
}


练习5、	设定一个商品的价格,让用户去猜测
		用户输入猜测价格后,系统给出大、小提示
		如果在五轮内就猜到正确的价格,给予奖励提醒

思路:
1、循环次数是多少?
2、每猜测一次,总猜测次数+1

# include<stdio.h>
int main()
{	
	double  price = 7959;  //需要用户猜的价格
	double GuessPrice; //用户猜的价格
	int count = 1;   // 猜的次数
	for (;; count++)
	{
		printf("请输入猜测的商品价格:");
		scanf_s("%lf", &GuessPrice);
		if (GuessPrice > price)
		{
			printf("大了\n");
		}
		else if (GuessPrice < price)
		{
			printf("小了\n");
		}
		else
		{
			printf("bingo\n");
			break;
		}
			
	}
	printf("您一共猜了%d次\n",count);
	if (count <= 5)
	{
		printf("厉害了  少年 !\n");
	}
	return 0;
}


练习6、 continue	跳出本次循环,进入下次循环,只能用于循环结构
	循环输入5个玩家的年龄,统计年龄为负的录入次数
	录入正确,跳过;录入错误,统计录入错误次数

# include<stdio.h>
int main()
{
	int age, i, count = 0;
	for (i = 0; i < 5; i++)
	{
		printf("请输入玩家年龄:");
		scanf_s("%d",&age);
		if (age > 0)
		{
			continue;
		}
		else  count++;
	}
	printf("录入错误的次数是%d\n",count);
	return 0;
}


练习7、求 1至100之间的偶数和

# include<stdio.h>
int main()
{
	int i, sum = 0;
	for (i = 0; i < 100; i++)
	{
		if (i % 2 != 0)
		{
			continue;
		}
		sum = sum + i;
	}
	printf("%d",sum);
	return 0;
}

总结:
循环次数确定的情况下,通常选用 for循环
循环次数不确定的情况下,通常选用while 和 do ... while 循环
发布了16 篇原创文章 · 获赞 2 · 访问量 136

猜你喜欢

转载自blog.csdn.net/weixin_42248871/article/details/105165310