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 循环
循环结构 -- 代码练习
猜你喜欢
转载自blog.csdn.net/weixin_42248871/article/details/105165310
今日推荐
周排行