关于分支循环的一些练习(含答案)
- 9*9乘法表
- 某日是那年的第几天
- 分解质因数
一、9*9乘法表
我们小学应该都背过99乘法表,用循环很方便做,但是怎么打印成乘法表的样子呢?
我们就要结合制表符与回车的应用啦!
/*
功能:打印9*9乘法表
参数:x行y列
*/
#include<stdio.h>
int main()
{
int x,y;
for(x = 1;x < 10;x++) //1~9循环
{
for(y = 1;y <= x;y++) //内嵌循环,使y每次不大于x
{
printf("%d * %d = %d\t",y,x,x*y); //使用制表符
}
printf("\n"); //打印一行后记得回车
}
return 0;
}
二、某日是那年的第几天
键盘输入年月日,判断该日是那年的第几天。
利用switch可以很好的进行分类计算,但我们需要重视的一个点是,那年是否是闰年?该从哪里加1呢?
/*
功能:求天数
参数:@day:日;@month:月;@year:年;@t:天数变量
返回值:第多少天
*/
#include<stdio.h>
int main()
{
int day,month,year; //定义日,月,年三个变量
int t = 0; //初始化天数为0
printf("请输入年月日:\n");
scanf("%d%d%d",&year,&month,&day);
switch(month) //判断月份
{
case 12: t += 30; //加上前一个月的天数
case 11: t += 31;
case 10: t += 30;
case 9: t += 31;
case 8: t += 31;
case 7: t += 30;
case 6: t += 31;
case 5: t += 30;
case 4: t += 31;
case 3: t += 28;
case 2: t += 31;
case 1: t += day; //加上当月的天数
}
if((year%4==0&&year%100!=0||year%400==0)&&month>=3) //判断是否是闰年且是否大于2月
{
t += 1;
}
printf("该日是那年的第%d天:\n",t);
return 0;
}
三、分解质因数
键盘输入一个数,输出成质因数相乘的形式,例:
输入:90
输出:90 = 2 * 3 * 3 * 5
/*
功能:将一个整数变成质因数相乘的形式
参数:@n:要分解的数;@i:n的因数
返回值:90 = 2 * 3 * 3 * 5
*/
#include<stdio.h>
int main()
{
//1.找个地方保存
int n,i;
//2.输入数
printf("请输入一个正整数:\n");
scanf("%d",&n);
printf("%d = ",n);
//3.开始分解
for(i = 2;i <= n;i++) //最小的质数为2
{
while(n % i == 0) //当i整除n时
{
printf("%d",i); //先打印一个质因数
n /= i; //n就更新为商
if(n != 1) //如果n不等于1时,便输出*号,如果等于1了则不能再分了
{
printf("* ");
}
}
}
printf("\n");
return 0;
}
本文通过C语言展示了如何实现9*9乘法表的打印、计算某日是当年的第几天(考虑闰年)以及分解质因数的功能。代码中包含了嵌套循环、条件判断等基本编程概念,适合初学者巩固基础知识。
1805

被折叠的 条评论
为什么被折叠?



