对于大学初学编程的我们,首要面对的不是我们所喜欢各种游戏编程,而是编写解决简单数学问题的小段代码,在做题时我们能够初步接触编程的大概过程以及加强语法运用与熟悉。但在这过程中难免会遇到常常出现的错误,所以我在此总结分享:
解题思路分享:
例子##【问题描述】依次输入一个整形数组的元素值,然后求该数组前n个元素的最小值及其下标。例如,数组前5个元素为{12,23,8,76,10},该数组的最小值是8,下标是2。
【输入形式】第一行输入数组的前n个元素个数,第二行输入依次输入元素值,用空格分开
【输出形式】第一行数组元素的最小值,第二行最小值元素的下标
【样例输入】
5
12 23 8 76 10
【输出形式】
8
2
(一):通读题目,明确需求!
对于需求的把握是非常重要的,不然跑偏了就完了;
首先面对题目时,我们要明确题目输出什么(输出的数据类型以及格式要求)以及如何输入的;在这里,我们发现它的输入是有数组的元素个数要求,输入的元素之间是以空格间隔开来(一般输入元素之间可能有‘,’‘a =3,b = 4’等等其他的,这种情况就要对是scanf里面进行不变字符的添加);同时,这道题的输出也有要求就是将最小值和下标进行分行输出;然后下一步;
(二):构建思路,提高效率!
对于考试来说,时间效率的把握是十分重要的;好的清晰的思路是绝佳的省时武器,所谓磨刀不误砍柴功嘛!在了解题目的需求与输出时,我们可以在本子上写下题目的(可结合伪代码,以及数学)实现思路,再翻译成C语言;毕竟C语言这些语言就是人用来和计算机交流的语言,如果我们连自己都无法清晰的用语言描述 ,更别说写成程序了;
示例:
首先题目要输入一个值来描述数组的大小,我们定义为n;
在C语言中我们的数组是不能够动态分布的但是我们可以循环写入,so我们可以定义一个我们认为足够大的数组,这里我定义去a[1024],再根据它输入进行动态操作;
我们现在一般对数组的写入操作就是使用for,再将限制条件改为 i < n;这样就可以根据输入的来进行操作了;
取出数组中的最小值很经典,就不多说;在找的最小值后进行与数组的遍历对比,一旦相等,就使用break结束程序;这样 下标出来了;
然后按要求输出;
(三):学会调适,打破僵局;
在考试做题时,我们不免遇到输出错误,以及没有输出的情况;在一般情况下我们自己很难够发现错误;
所以我们要学会好这个金钥匙 —— 调试!
在大多数考试时我们都用的 vc 6 ++以及cev c ++;
这里以vc 6 ++为例,在编译后使用:
1.鼠标点击:
再选中要调试的代码行的情况下,点击这个类似手掌的东西,就可以增加断点以及取消断点;然后再点击它左侧的类似文档的东西可以进行调试了;
2.采用快捷键 F9加断点和取消断点,以及F5进行调试;(我写的很简单,但还有很多细节没写到,但在考试中基本够用了,大家感兴趣的话可以看看其他文章);
(四)纠正习惯,强化美观:
虽说C语言没有什么书写要求,但对于处写代码的我们,有着良好的代码书写习惯是非常重要的,良好的编程风格是能够大大增加程序的可读性的,使程序能够更容易运行,以至于更好的修改,对于考试的我们这一点是非常重要的能够减少解决问题的时间,避免时间太紧张;
这里给大家分享几个技巧:
1.一次性把框架搭好:
对于 for ,while ,do....while ,主函数main,自定义函数等等
我们可以把花括号什么的先搭好,再在里面写程序:
2.多用花括号,并让花括号单独占一行:
这些为例子,还有其他的;
3.采用缩进,强调主次关系:
对于多次嵌套的程序,有效的缩进能够增强可读性和修改性;
例:
int main(int argc, char *argv[] )
{
float x=2.0, y;
if(x<0.0) y=0.0;
else if(x<5.0) y=1.0/x;
else if(x<10.0) y=1.0/(x+2.0);
else y=1.0;
printf(“%f\n”,y);
}
可见这样的代码是很难受的,一旦遇到问题是非常难搞的;来看看修改后的:
if(x < 0.0) y = 0.0;
else
{
if (x < 5.0) y = 1.0 / x;
else
{
if (x < 10.0) y = 1.0 / (x + 2.0);
else
y = 1.0;
}
}
这样修改后是不是变得更加层次分明了?可以很简单的看出程序运行结果;
4.采用空格分割:
在 “ = ” 左右加上空格,在“ ,”后加上空格,在“+”“-”“*”“/”等等都可以在左右加上空格,以增加程序可读性,观赏性;
良好的代码习惯是非常重要的!希望大家好好纠正自己习惯!
大家可以微软的vs2019等,他会自动给你的程序加空格缩进等;可以看看它给你代码改后的样子,学习一下!
另外例题的答案(我写的)因为没标准答案,我就凑个数放在后面,大家可以参考一下:
#include <stdio.h>
int main()
{
int a[999], j, min,i;
scanf ("%d",&j);
for (i = 0;i < j; i++)
{
scanf ("%d",&a[i]);
}
min = a[0];
for (i = 0; i < j;i++)
{
if(a[i] < min)
{
min = a[i];
}
}
for (i = 0; i < j;i++)
{
if (min == a[i])
{
break;
}
}
printf("*%d\n%d\n",min,i);
return 0;
}
还有适当时候,可以给程序加上注释,那样更可以看懂了,我这没加 /捂脸;
今天总结就到这里结束!欢迎大家补充!喜欢的话可以点赞收藏!
##第三篇日志:小小的问题大大的错误