我是靠谱客的博主 笑点低硬币,最近开发中收集的这篇文章主要介绍C语言-分支和循环练习C语言-分支和循环练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C语言-分支和循环练习

上篇我们介绍了分支和循环语句的相关知识,今天我们就通过一些代码练习,来帮助大家熟悉这两种语句的用法,希望对大家有所帮助。

一、分支语句

1、BC61 牛牛的2、3、7整除

题目描述:牛牛从键盘输入一个整数,请你判断这个整数能被 2 3 7 中哪几个数整除,并按升序输出。如果不能被 2 3 7 任意一个数整除则输出 n。

示例:输入:6   输入:3   输入:11
   输出:2 3   输出:3   输出:n

这里判断整除可以使用 “%” 这个操作符,a%b 的结果是 ab 的余数,如果余数为 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语言-分支和循环练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部