概述
C语言-分支和循环练习
上篇我们介绍了分支和循环语句的相关知识,今天我们就通过一些代码练习,来帮助大家熟悉这两种语句的用法,希望对大家有所帮助。
一、分支语句
1、BC61 牛牛的2、3、7整除
题目描述:牛牛从键盘输入一个整数,请你判断这个整数能被 2 3 7 中哪几个数整除,并按升序输出。如果不能被 2 3 7 任意一个数整除则输出 n。
示例:输入:6 输入:3 输入:11
输出:2 3 输出:3 输出:n
这里判断整除可以使用 “%” 这个操作符,a%b 的结果是 a 除 b 的余数,如果余数为 0 则可判断 a 可以被 b 整除
这里要注意,题目要求在输出时需要按照升序输出,及由小到大输出
代码如下:
#include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
//1
if(n%2==0)
{
printf("2 ");
}
//2
if(n%3==0)
{
printf("3 ");
}
//3
if(n%7==0)
{
printf("7 ");
}
//4
if((n%2!=0)&&(n%3!=0)&&(n%7)!=0)
{
printf("n ");
}
return 0;
}
可以看到,这段代码中产生了四段分支,分别是:
- 被 2 整除
- 被 3 整除
- 被 7 整除
- 不被以上三个数整除
事实上本题还可以将分支语句和循环语句结合起来使用,可以使得代码在一定程度上简化
代码如下:
#include<stdio.h>
int main()
{
int arr[3] = { 2,3,7 };
int ch, f = 0;
scanf("%d", &ch);
for (int i = 0; i < 3; i++)
{
if (ch % arr[i] == 0)
{
f = 1;
printf("%d ", arr[i]);
}
}
if (f == 0)
printf("n");
return 0;
}
这里将题目所给的三个除数放在了一个数组中,此时就可以通过循环语句逐一判断数组中的三个数,这里的 f 是用于判断是否能被这三个数整除的临时变量,只要输入的数可以被三个数中的任意一个整除,f 都将被赋值为 1 ,若不被这三个数整除,则保持为 0 。
2、BC67 牛牛的金币
题目描述:牛牛尝试在蒙住眼睛的情况下拿到旁边的金币,假设的坐标是 (x,y) ,金币的坐标是 (x1,y1) ,金币一定在牛牛在周围,即 |x1 - x| + |y1 - y| = 1 请你判断牛牛应该往哪个方向伸手。
输入描述:
第一行输入 x ,y 表示牛牛的坐标。
第二行输入 x1,y1 表示金币的坐标。保证 |x1 - x| + |y1 - y| = 1
坐标是整数。
输出描述:
输出牛牛应该往哪个方向伸手。
例
(x,y)=(0,0) (x1,y1)=(0,1) ,则牛牛向上伸手,输出 ‘u’ 。
(x,y) =(0,0) (x1,y1) = (0,-1) ,则牛牛向下伸手,输出 ‘d’。
(x,y) =(0,0) (x1,y1) = (1,0) ,则牛牛向右伸手,输出 ‘r’。
(x,y) =(0,0) (x1,y1) = (-1,0) ,则牛牛向左伸手,输出 ‘l’。
代码如下:
#include <stdio.h>
int main()
{
int x,y,x1,y1;
scanf("%d%d%d%d",&x,&y,&x1,&y1);
switch(x-x1)
{
case 1:printf("l");break;
case -1:printf("r");break;
default:break;
}
switch(y-y1)
{
case 1:printf("d");break;
case -1:printf("u");break;
default:break;
}
return 0;
}
这里使用了 switch 语句来实现分支,注意要在每个 case 后加上 break 以跳出 switch
二、循环语句
1、求 n 的阶乘 n!
代码如下:
#include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int i=0;
int sum=1;
for(i=0;i<n;i++)
{
sum = sum * i;
}
printf("%d",sum);
return 0;
}
注意:这里算阶乘时我们创建了一个变量 sum 来存储阶乘的结果,由于阶乘是乘法,在对 sum 的初始化时要赋值为 1 而不是 0
本题还可以使用 while 语句来实现
代码如下:
#include <stdio.h>
int main()
{
int n=0;
scanf("%d",&n);
int sum=1;
while(n>=1)
{
sum=sum * n;
n--;
}
printf("%d",sum);
return 0;
}
2、BC82 乘法表
题目描述:输出九九乘法表
示例:
1* 1= 1
1* 2= 2 2* 2= 4
1* 3= 3 2* 3= 6 3* 3= 9
1* 4= 4 2* 4= 8 3* 4=12 4* 4=16
1* 5= 5 2* 5=10 3* 5=15 4* 5=20 5* 5=25
1* 6= 6 2* 6=12 3* 6=18 4* 6=24 5* 6=30 6* 6=36
1* 7= 7 2* 7=14 3* 7=21 4* 7=28 5* 7=35 6* 7=42 7* 7=49
1* 8= 8 2* 8=16 3* 8=24 4* 8=32 5* 8=40 6* 8=48 7* 8=56 8* 8=64
1* 9= 9 2* 9=18 3* 9=27 4* 9=36 5* 9=45 6* 9=54 7* 9=63 8* 9=72 9* 9=81
代码如下:
#include <stdio.h>
int main()
{
int i=0,j=0;
for(i=1;i<10;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%2d ",j,i,i*j);
}
printf("n");
}
return 0;
}
这里代码中用到了 ”%2d“ ,这里是为了使得输出的结果能够对齐
%nd 的作用是使得输出结果以宽度 n 输出,不足 n 时左补空格
三、总结
这次带着大家做了分支和循环语句的代码练习,希望能对大家有所帮助,篇幅原因,这里采用了四个示例,事实上还是远远不够的,大家可以自己多找些练习题帮助自己熟悉相关知识,对于初学者,可以不用太在意代码的优化,首先以掌握思想方式和知识为主,在此基础上可以试着优化自己的代码。
最后
以上就是笑点低硬币为你收集整理的C语言-分支和循环练习C语言-分支和循环练习的全部内容,希望文章能够帮你解决C语言-分支和循环练习C语言-分支和循环练习所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复