在上机操作时,要多注意循环的范围。这种错误往往只有一个符号之差,用run运行时并不报错,在你输入数据后查看结果时,可能结果显示也正确,但却不一定能得分。我在复习过程中,做上机模拟时遇到了这种情况:运行结果正确,评分时却是0分。下面这道题并不难,却让我颇费周折,大家不妨看看,也好引以为戒。
“请编写一个函数void fun(int x,int pp[ ],intn)。它的功能是:求出能整除x且不是偶数的各整数,并放在数组pp[ ]中,这些除数的个数由n返回。运行时输入x的值为30。”
(注意:部分源程序在文件prog.c中。请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。)
我是这样编写的:
void fun(int x,int pp[ ],int n)
{
int i, j=0,point;
point=pp;
for(i=1,i
if((x%i= =0)&&&&(i%2!=0))
{ point=i;
point++;
j++; }
point=NULL;
n=j;
}
按F9未显示异常,按ctrl +F9后输入“30”,结果是:“1 3 5 15”。再次验证输入40,结果是:“1 5”。多次验证(用20、50或其他偶数)结果都正确,可就是评分系统却不给分。我开始怀疑评分系统是不是做得太死板了,或有错误。
打开答案,发现答案的解题思路和我的是一致的,参考答案如下:
#include
#include
void fun(int x,int pp[ ],int n)
{
int i ;
int j=0;
int point;