博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一个分号导致两种截然不同的结果
阅读量:6992 次
发布时间:2019-06-27

本文共 590 字,大约阅读时间需要 1 分钟。

题目:已知5个学生的4门课成绩,要求求出每个学生的平均成绩,然后对平均成绩从高到低将学生的成绩排序记录(成绩最高的学生排在数组最前面的行,成绩最低的学生排在数组最后面的行)。

分析:对于5个学生4门课成绩,考虑用二维数组来表示数据,即用二维数组s[5][4]存储学生成绩。题目要求求出每个学生的平均成绩,并按高低排序,所以二维数组可以加一列存储每个学生的平均成绩。由于只有5个学生,排序是采用最简单的冒泡排序,同时根据排序结果,学生的各科成绩也随着平均成绩的排序交换位置。综合以上分析设计了以下程序:

程序1:

程序1结果:

程序1结果完全符合预期设计,按每个学生的平均成绩进行了排序,同时各科成绩也谁平均成绩交换了。

程序2:

程序2结果:

其实程序2与程序1基本完全相同,唯一的差别就是程序2比程序1多了一个分号(以上用绿色方框标记),但却造成了两种截然不同的结果。原因是程序2的分号使得输出时内循环没有执行。

结论:

1.编译器可以查找语法错误,但不能找出逻辑错误,所以应该加强练习,养成良好的代码风格,这样有利于减少好多错误,节省时间。

2.在出现逻辑错误时,可以用编译器进行单步调试,跟踪程序的运行状态,或者可以在适当的地方加上输出语句,以定位逻辑错误位置。

转载于:https://www.cnblogs.com/chenyangqing/p/3425130.html

你可能感兴趣的文章
Apache主站点配置
查看>>
[转]蓝牙开发
查看>>
C语言程序举例
查看>>
$.param()的实例应用
查看>>
web安全:xss && csrf
查看>>
数据保存(永久保存)方式
查看>>
POJ 3320 尺取法(基础题)
查看>>
如何使表格中的文字不换行?多出的字用“..."代替
查看>>
c# 进程间通信
查看>>
Word Ladder
查看>>
ZigZag Conversion
查看>>
Hive启动报找不到hadoop版本问题
查看>>
3.23
查看>>
单例模式
查看>>
Mac电脑使用Android Studio进行真机调试
查看>>
【转】零基础学习Fiddler抓包改包
查看>>
leetcode-53-Maximum Subarray(动态规划详解)
查看>>
Android中删除照片操作
查看>>
评论列表显示及排序,个人中心显示
查看>>
一道面试题 js数组去重
查看>>