C语言的语法错误和逻辑错误的区别

Python016

C语言的语法错误和逻辑错误的区别,第1张

语法错误: 在编译的时候会提示你。比如说:for(i=0,i<10,i++)

在编译的时候会提示你错误,要把逗号改成分号。

逻辑错误:没有错误提示,能运行,但是达不到自己想要的结果。

1.在函数:int

EnterScore

(

int

P_array[]

)定义中:

DO循环中:scanf

(

"%d"

,

P_array[count]

)

语句

有错误,应为:scanf

(

"%d"

,

&P_array[count]

)

2.在函数:int

EnterScore

(

int

P_array[]

)定义中:

DO循环容易造成数组下标越界。如果你在前80个成绩输入

中都没有输入-1的话就会访问到P_array[80]这个元素,

但是实际上该数组最大的元素为:P_array[79],这会

破坏内存,甚至引起操作系统的崩溃。

3.在函数:void

find

(

int

P_array[]

,

int

count

)

定义中,如果传入的数据:count大于数组的总元素个

数并且没有满足for语句中的if条件的数据时,

也会发生第2点的错误。

代码本身以及运行的情况来看,可执行程序的内容,与所贴的代码不相符(可能是修改了代码后没有重新编译,就运行了修改前的代码,不然也不会代码现在有错误就能编译通过的,例如第2行的末尾多了“op”,“现有1人捐款”也没有输出),修改建议如图: