关于入门C语言编写简易程序的一些思路

关于入门C语言编写简易程序的一些思路

​ 你好,点开这篇文章的朋友。不管你是抱着怎样的目的来学习C语言,我们首先都要明白一件事:你是一个以键盘作为施工工具的程序工地工人,千万不要在施工过程中忘记带上“安全帽”——也就是说,你活跃的大脑与正确的逻辑。
​ 虽然以下的内容可能不会涉及到强制亲自尝试的要求(但是强烈建议直接上手尝试),你可以不用带上键盘,但仍要记住安全第一,所以请带好你的安全帽。

施工前的一些准备

获取信息

​ 在施工之前你会得到一份关于工程内容的文件(或者说是题目),你要做的就是理清楚这些你能够读懂的文字所表达出来的要求:我们要做怎么样的一个任务?

​ 在脑中或者纸上罗列出这些要求并确保你在之后的步骤中不会忘记后,我们要开始整理这些信息。虽然我们在这里讨论的是“简易程序”,但在这里我所说的“简易程序”也具有一定的层次,所以我们可以从简单的程序任务中慢慢引渡到复杂的任务,不过这不是这篇文章所要详细讲述的。

处理信息

​ 现在这份信息已经躺在砧板上,你需要将它进行分层区块化处理。让我们来看一个例题:

入秋了,家里的用电量也减少了许多。阿福收到了新一期的电费通知单,却发现本期电费与高温天的电费不相上下。城市现行的阶梯电价是按照年用电量来划分的,这说明阿福家的低价电额度已用完,接下来可得节约用电咯。阿福想自己验证一下,今年以来代扣的总电费到底是否正确。请编写一个程序,已知今年1月份以来的各月用电量,根据电价规定,计算出今年应缴的总电费是多少。

城市现行的阶梯电价标准分三档:

第一档:电量为年用电量2760度及以下部分,电价不作调整,标准电价为0.538元/度;

第二档:电量为年用电量2761至4800度的部分,电价在第一档基础上加价0.05元,为0.588元/度;

第三档:电量超过4800的部分,电价在第一档基础上加价0.3元,为0.838元/度。

输入占一行,给出若干个整数(以-1结束),分别表示从1月开始各个月份的用电量(单位是度)。
输出总电费(单位是元),结果保留1位小数。

​ 相信你已经仔细阅读过以上的题目内容并获取了一定的信息,我们先来确认——这是一个怎样的任务?

​ ——这是一个让我们计算(这几个月来)电费的任务。

​ 当然,这一点已经清楚地写在题目上了。但无论如何仍然要记住我们原本的目的,以免发生把平房建成公交车站的事故。

第二,理清为了实现这个目的我们要做些什么。 先停下来思考一下,为了通过代码实现以上的内容,我们应该怎么做?你的脑中应该浮现出大概的想法与代码雏形(可能会伴随着“我知道该怎么做但是就是想不出代码!”的烦恼,关于这一点,我真诚地建议你再回去熟悉一下基础的算法)

​ 那么接下来我们就来讨论在这里,为了实现计算电费这个目的我们的初步想法。

​ 首先我们应该计算出总电量为多少,然后进行电费计算。

​ 从总电量说起:我们该如何获得这个总电量?数据相加很简单,但获取数据则需要你用一用你机灵的小脑袋——我们可以通过循环语句来获得并相加得到总电量。

​ 再说电费计算——如你所见,电费的收取是分档次的。你应当考虑到总电量的档位并非固定,那么就要根据总电量的数值来进行选择计算(顺带一提,这种时候最好注意一下数据单位是否要转换)

上手干活

​ 现在你已经大概知道你要做些什么了,所以让我们来上手操作(你也可以看我操作,但建议你先用自己的想法写下代码)。

#include<stdio.h>
int main()
{
    
    
    int x,sum;
    double m;
    
    return 0;
}

接下来我们面对的第一个问题是:如何写循环。

你可以使用while(do…while)或者for语句,没有人会扼制你非要用哪种语言,不过这里我们以while语言为例进行讨论

​ 确认了使用哪种循环结构后,我们要考虑的关键点就是进行循环的条件。对大多数人来说都会直接想到以输入的“-1”为契机进行条件判写,但也不乏一些人掰手指数一数一共需要输入的有几个数据,然后写下循环xx次。当然,第二种方法也是可行的,但有很大的局限性,也是这篇文章重点要提醒大家的:编写代码程序的时候需要注意兼顾各种情况,所以尽可能选择灵活、容错率高的代码算法。

​ 在这题里我们的确可以数一共需要输入几个数据,但万一他只要求你计算上半年呢?或者题目未说明的隐性条件中有不规定固定输入月份数这一条呢?在这种情况下,第二种方法思路就会出现很大的局限性。数据在变,而你的代码跟不上数据变化的速度,就会导致错误的产生。

于是继续编写我们的代码:

#include<stdio.h>
int main()
{
    
    
    int x,sum;
    double m;
    scanf("%d",&x);
    while (x!=-1){
    
    
     {
    
    
        sum=sum+x;
        scanf("%d",&x);
      }
        
     return 0;
}

现在我们顺利地完成了获得总电量的循环部分,我们进行下一步选择结构的编写

在这里选择结构并没有多少思维上的难点,我们根据题目的要求就可以写出我们需要的代码:

#include<stdio.h>
int main()
{
    
    
    int x,sum;
    double m;
    scanf("%d",&x);
    while (x!=-1){
    
    
     {
    
    
        sum=sum+x;
        scanf("%d",&x);
      }
    if(sum<=2760){
    
    
        m=0.538*sum;
    }
    else if(sum>2760&&sum<=4800){
    
    
        m=2760*0.538+(sum-2760)*0.588;
     }
    else {
    
    
        m=2760*0.538+2040*0.588+(sum-4800)*0.838;
     }
 }
    printf("%.1lf",m);
    return 0;   
}

现在我们成功地得到了完成品代码,我们可以对他进行调试测试来看看有什么小错误(当然这里的代码已经测试过了)

你成功的完成了这个简单的小任务,但是你要记住在完成这个小任务时思维走向的感觉,以便于你在接手复杂的任务时不会手忙脚乱不知道该从哪里开始下手。

​ 感谢你阅读到这里。

猜你喜欢

转载自blog.csdn.net/qq_51686247/article/details/109258603
今日推荐