五 、源程序代码
#include
int a[10][5],i,j,sum,max=0,s1,s2; i=10; j=5;
for(i=0;i<10;i++) {
for(j=0;j<5;j++) {
printf(\输入第%d人第%d科的分数 :\ scanf(\ if(max
max=a[i][j]; s1=i;s2=j; } }
printf(\ }
for(i=0;i<10;i++) {
sum=0;
printf(\第%d人平均分是:\ for(j=0;j<5;j++) sum+=a[i][j];
printf(\ printf(\ }
for(j=0;j<5;j++) {
sum=0;
printf(\第%d科目平均分是:\ for(i=0;i<10;i++) sum+=a[i][j];
printf(\
- 5 -
printf(\ }
printf(\最高分数是%d\\n对应学生及科目如下:\\n学生是第%d人,科目是第%d科\\n\ getch() }
六、运行过程
1、双击WIN-TC
2、在界面中输入代码 点击“保存” 运行 编译连接并运行 所显示的就是:输入第1人第1科的成绩:89
输入第1人第2科的成绩:89
. . . . . . .
输入第10人第4科的成绩:89. 输入第10人第5科的成绩:88
回车,显示结果如下:
- 6 -
(运行显示结果图)
- 7 -
七、在编程中我遇到的错误
C编译的程序对语法检查并不象其它高级语言那么严格,这就给我们留下“灵活的余地”,但还是由于这个灵活给程序的调试带来了许多不便,尤其对我们这些初学C语言的人来说,经常会出一些连自己都不知道错在哪里的错误。看着有错的程序,不知该如何改起,我在这次编程中,也总结了一些这次C编程时常犯的错误:
1、书写标识符时,忽略了大小写字母的区别。
编译程序把a和A认为是两个不同的变量名,而显示出错信息。C语言认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
2、忽略了变量的类型,进行了不合法的运算。 sum+=a[i][j]是sun=sum+a[i][j]。
3、将字符常量与字符串常量混淆。
混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\\',而把它赋给一个字符变量是不行的。
4、忘记加分号。
分号是C语句中不可缺少的一部分,语句末尾必须有分号。 a=1 b=2
编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。
对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。
5、多加分号。 对于一个复合语句,如: for( j=0;j<5;j++) if(max=a[i][j]) {
printf(\第%d位学生的第%d门成绩\\n\ };
复合语句的花括号后不应再加分号,否则将会画蛇添足。 又如:
if(max
由于if (a%3==0)后多加了分号,则if语句到此结束,
6、输入变量时忘记加地址运算符“&”。 scanf(\
这是不合法的。Scanf函数的作用是:按照a、b在内存的地址将a、b的值存进去。“&a”指a在内存中的地址。
7、C语言的变量一定要先定义才能使用; 8、输入时数据的组织与要求不符
对scanf函数中格式字符串中除了格式说明符外,对其他字符必须按原样输入
- 8 -
9、对二维或多维数组的定义和引用的方法不对
10、忘记加停止语句:
TC里面最后要在输出后面加:getch();否则输入执行时一闪而过,看不到运行结果。 11、了解到C++与C的区别:
C面向过程 ,C++面向对象,C++更高级了一些 ,C++ 自问世以来,已成为应用最广泛的一种编程语言。 C++ 由于其极高的灵活性、强大的功能和非常高的效率,常常用于专业应用程序的开发。正是这样的区别致使我们晚些调试出程序代码。
八、用户使用说明书
1、首要条件是计算机上安装WIN-TC。
2、双击WIN-TC 在界面上输入上述代码,如图所示:
3、保存(
),然后点击工具栏上的运行(
).若有错,会提示第几行出错;
若正确 则出现运行成功(行过程)所示。
),点击“确定”。运行结果如(六、运
- 9 -