针对在校大学生的C语言入门学习——编码示例
学习编程最重要的就是练习,对于新手而言练习也是最痛苦的。编程没有思路、编译出错不会改等问题让很多人止步学习编程的大门。编程是需要训练的,训练就要讲究方法。方法不外乎“循序渐进”四个字。今天我就拿一个非常常见的编程入门习题带大家分析一下,希望能够帮助大家成功开启学习编程的大门。
这次我使用的编译器是GCC 4.6.3,向大家介绍编译器版本是因为后面我会和大家分享一下如何解决编译报错问题。不同的编译器版本对于同一个错误报错可能有一些差别,但是差别不大。
练习
题目:输入10个整数输出最大值。
我们就从这个老掉牙的题开始吧。有些同学做这道题的思路是先把10个数保存起来,然后排序。我们认真审题就会发现这道题其实没有那么麻烦。对于一个问题,如果我们不做充分的分析就盲目出手,很可能写出逻辑过于冗余甚至错误的代码。这道题最终的要求是找到最大值,并没有要找第二大第三大的值,所以完全没有必要排序。
我们把这个问题回归到现实中,比如我给你微信转账,转10次,每次转不同的钱数,然后你告诉我我最多的一次给你转了多少?你会怎么做?是不是把我给你转的第一笔钱先记住,然后接下来给你转的钱数和你记住的钱数做对比,如果比你之前记住的钱数多,那么就记住这次给你转的钱数。接下来的操作就是重复这个逻辑。这个问题就算没有系统学习过数学的小孩应该都会。所以大家不要对编程心生畏惧,至少入门还是很简单的。请看下面伪代码:
记住第一次转账的钱
for ( 循环9 次)
{
查看新转入的钱数
if ( 记住的钱数 < 新转入的钱数)
{
记住新转入的钱数
}
}
循环结束后记住的钱数就是最多那次转账
有没有一点思路了呢?如果想自己尝试一下的话,就先不要往下面看我的答案,自己试试看!
#include <stdio.h>
int main ( )
{
int max;
scanf ( "%d" , & max) ;
int i;
for ( i = 0 ; i < 9 ; i++ )
{
int input;
scanf ( "%d" , & input) ;
if ( max < input)
{
max = input;
}
}
pr