概述
写在前面:学习的第一门语言是Java,之前对C也了解一点,也只是了解一点,在加上长时间没有接触了,基本就只会一个Hello World了。现在由于准备升本考试,不得不从头开始学C。这里从零开始,记录C语言学习点滴。欢迎正在学习C语言的小伙伴一起学习,未来可期,一起加油!
前面两篇学了分支结构和循环结构,这篇来看几个利用分支结构和循环结构解决的经典问题,巩固一下前面两篇学的分支结构和循环结构。
阶乘计算
输入一个正整数n,计算n的阶乘。
【分析】首先需要输入一个数字n,计算n的阶乘。可以循环n次,在循环中计算n的阶乘。具体代码如下:
#include<stdio.h>
int main(){
int i, n, sum = 1;
printf("请输入一个数字:");
scanf("%d", &n); /* 输入一个数字n */
/* 计算n的阶乘 */
for(i = 1; i <= n; i++){ /* 循环n次计算n的阶乘 */
sum = sum * i;
}
printf("%d的阶乘为:%dn", n, sum);
return 0;
}
运行结果如下:
求和
计算1 - 1/3 + 1/5 - 1/7+…共n项之和。
【分析】首先需要从键盘输入一个数字n,确定需要求解几项的和。之后同样可以循环n次,计算n项的和。
根据题目可以分析出,分母每次是递增2的,所以在循环中,下一项的分母等于前一项分母+2。
由于题目双数项为负,单数项为正,可以通过一个 if 判断解决,也可以定义一个变量flag = 1,循环一次改变一下变量的正负 flag = -flag。在求和时乘flag。
具体代码如下:
#include<stdio.h>
int main(){
int denominator = 1, flag = 1, i, n; /* denominator为每项的分母,flag表示每项的符号(正数负数) */
double sum = 0;
printf("请输入一个数字n:");
scanf("%d", &n);
/* 循环n次,求和 */
for(i = 1; i <= n; i++){
sum = sum + flag * 1.0/denominator; /* 计算并累加第i项的值 */
flag = -flag; /* 改变下一项项的符号 */
denominator = denominator + 2; /* 下一项分母的值 */
}
printf("sum = %fn", sum);
return 0;
}
运行效果如下:
判断是否为素数
判断一个正整n是否为素数。
【分析】只能被1或本身整除的数称为素数。
同样输入一个数字n,判断n是否为素数,从2循环到n/2(可以被1整除)。
判断2~n/2中间的数据是否能够被n整除,能整除其中任何一个数则不是素数,反之为素数。
具体代码如下:
#include<stdio.h>
int main(){
int i, n;
printf("请输入一个数字n:");
scanf("%d", &n);
/* 循环2~n/2 */
for(i = 2; i <= n/2; i++){
if(n % i == 0){
break; /* 若n能被某个i整除,则n不是素数,提前结束循环 */
}
}
if(i > n/2 && n != 1){ /* 若循环正常结束,说明n不能被任何一个i整除 */
printf("%d是一个素数n", n);
}else{
printf("%d不是一个素数n", n);
}
return 0;
}
运行结果如下:
打印九九乘法表
九九乘法表相信大家都不陌生吧!利用循环打印出一个九九乘法表。
【分析】打印一个九九乘法表,乘法表共9行,第一行1一个式子,第二行2个式子…。所以我们可以采用两个循环,第一个循环,循环1~9,打印9行数据。第二个循环打印每行中的式子。具体代码如下:
#include<stdio.h>
int main(){
int i, j;
for(i = 1; i <= 9; i++){ /* 乘法表共9行,循环1~9 */
for(j = 1; j <= i; j++){ /* 第一行只有1个乘法式子,第二行2个乘法式子 */
printf("%d * %d = %dt", j, i, j*i); /* 打印乘法表式子 */
}
printf("n");
}
return 0;
}
运行结果如下:
由于初学C语言,上述内容如有错误地方,恳请各位大佬指出!
最后
以上就是小巧月亮为你收集整理的分支结构和循环结构总结(经典案例解析)的全部内容,希望文章能够帮你解决分支结构和循环结构总结(经典案例解析)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复