C语言循环与分支

C语言中,循环和分支结构是基础中的基础,通过它们我们可以实现许多的问题,今天我们就来用循环和分支来完成以下两道题

问题1:字符菱形

问题描述:

     牛牛尝试用键盘读入一个字符,然后在屏幕上显示一个用这个字符填充的对角线长5个字符,倾斜放置的菱形。

输入描述:

     输入一个char类型字符

输出描述:

    输出一个用这个字符填充的对角线长5个字符,倾斜放置的菱形

思考:

  当我们面对字符菱形这类问题时,我们需要考虑如何使用循环结构来控制字符的输出。菱形的特点是每一行的字符数呈现一定的规律,而上半部分和下半部分的规律又有所不同。

以下是解决字符菱形问题的一般思路:

  1. 输入样式: 用户输入要录入的字符样式。

  2. 打印上半部分: 使用循环结构打印菱形的上半部分,每一行的字符数量和相对位置有一定规律。

  3. 打印下半部分: 类似地,使用循环结构打印菱形的下半部分,字符的数量和位置规律不同于上半部分。

  4. 输出结果: 将生成的字符菱形输出给用户。

以下是简易的C语言代码演示如何打印一个字符菱形:

#include<stdio.h>

int main(){
    char a=0;
    scanf("%c",&a);//接収字符样式
    int i,j=0;
    //打印上半部分
    for (i=0; i<3; i++) {
        for (j=0; j<2-i; j++) {
            printf(" ");//打印空格
        }
        for (j=0; j<2*i+1; j++) {
            printf("%c",a);//打印字符
        }
        printf("\n");//打印完一行内容换行
    }
    //打印下半部分
    for (i=1; i<=2; i++) {
        for (j=1; j<=i; j++) {
            printf(" ");//打印空格
        }
        for (j=0;j<2*(3-i-1)+1; j++) {
            printf("%c",a);//打印字符
        }
        printf("\n");//打印完一行内容换行
    }
    return 0;
}
总结:

  这段代码使用了嵌套循环,外层循环控制行数,内层循环控制每行的空格和星号数量,从而打印出漂亮的菱形。

  该问题的解决思路在于理解嵌套循环和通过循环控制空格和星号的数量。首先,我们接受用户要输出的字符样式。然后,我们使用两个循环结构,一个用于打印上半部分,另一个用于打印下半部分。通过控制循环变量和空格、字符的数量,我们最终输出了一个美观的菱形图案。

问题二:陶陶摘苹果

问题描述

  陶陶家的院子里有一棵苹果树,每到秋天树上就会结出 10 个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个 30 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

  现在已知 10 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。

输入格式:

  输入包括两行数据。第一行包含 101个 100到 200 之间(包括 100 和 200 )的整数(以厘米为单位)分别表示 10 个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。第二行只包括一个 100 到 120 之间(包含 100 和 120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。

输出格式:

  输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。

思考:

  当我们面对这道题目时,首先要理解题意。题目描述了陶陶家的苹果树,每到秋天树上结出10个苹果。陶陶有一个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。

  我们需要解决的问题是,已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,计算陶陶能够摘到的苹果的数目。

解题思路如下:

1. 理解题意: 在解决任何问题之前,首先要仔细阅读题目,理解问题的背景和要求。在这个问题中,了解陶陶的身高、苹果的高度,以及她能够达到的最大高度是解题的关键。

2. 问题分解: 将大问题分解为更小、更容易解决的子问题。在这个问题中,主要分为接收输入、遍历苹果、判断摘取、统计结果等步骤。

3. 输入处理: 获取用户输入,包括陶陶手能够达到的最大高度和每个苹果到地面的高度。

4. 循环遍历: 使用循环结构遍历每个苹果,计算每个苹果与陶陶手的相对高度。

5. 条件判断: 判断每个苹果的相对高度是否小于等于陶陶手能够达到的最大高度,如果是,表示陶陶可以摘到这个苹果。

6. 结果统计: 统计符合条件的苹果个数,即陶陶能够摘到的苹果个数。

7. 输出结果: 将统计结果输出给用户,以清晰展示问题的解决情况。

以下为代码解释:

// 输入数据
cout << "请输入陶陶手能够达到的最大高度:";
cin >> max_height;

cout << "请输入每个苹果到地面的高度(共10个):";
for (int i = 0; i < 10; ++i) {
    cin >> apple_height[i];
}

// 统计陶陶能够摘到的苹果个数
int picked_apples = 0;
for (int i = 0; i < 10; ++i) {
    if (apple_height[i] <= max_height) {
        picked_apples++;
    }
}

// 输出结果
cout << "陶陶能够摘到的苹果个数为:" << picked_apples <<endl;
总结:

  陶陶摘苹果这个问题是一个简单的模拟题,通过分析问题,我们可以得到以下总结:

  这个问题通过模拟陶陶摘苹果的场景,旨在让学习者熟悉使用循环和条件判断解决实际问题的过程。这种类型的问题有助于培养对问题的分析和解决能力,同时加深对循环和条件判断的理解。在解决问题时,良好的逻辑思维和代码结构是关键。

结语:

  在实际应用中,这样的问题有助于培养对循环和分支结构的灵活运用,提高编程能力。通过修改代码,我们还可以生成不同大小和形状的菱形,拓展了这个简单问题的思考和应用。

  希望通过这个例子,大家能够更深入地理解C语言中循环和分支结构的使用。在日常编程中,通过解决一些有趣的问题,可以更好地巩固和运用所学的知识。

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Curtain_At

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值