四、在下面4个程序中,共有16处错误(包括语法错误和逻辑错误),只要找出其中的15处错误并改正之即可,多找不多加分。(30分,每找对1个错误,加1分,每修改正确1个错误,再加1分。)
1.下面程序用于打印所有的水仙花数。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为153=13+33+53。
#include
int i, j, k, n;
printf(\
for (n=100; n<1000; n++); {
i = n % 100; j = (n - i * 100) % 10; k = n % 10;
if (n=i*i*i+j*j*j+k*k*k) {
printf(\ } }
printf(\ }
2.利用泰勒级数sin(x)≈
小于10-5,并统计出此时累加了多少项。
#include
int n = 1,count = 1; float x;
double sum , term;
printf(\ scanf(\
sum = x;
term = x; do {
term = -term*x*x/(n+1)*(n+2);
计算sin(x) 的值。要求最后一项的绝对值
sum = sum + term; n++; count++;
}while (fabs(term) <= 1e-5);
printf(\ }
3.下面程序的功能是从键盘输入一行字符,统计其中有多少单词。假设单词之间以空格分开。已知:判断是否有新单词出现的方法——当前被检验字符不是空格,而前一被检验字符是空格,则表示有新单词出现。
#include
char str[20]; int i, num;
scanf(\
if (str[0] != ' ') {
num = 1;
} else {
num = 0; }
for (i=1; i<20; i++) {
if (str[i]!=' '|| str[i-1]==' ') {
num++; } }
printf(\ }
4.下面程序用于计算两个正整数的最小公倍数。
#include
int MinCommonMultiple(int a, int b) main()
{
int a, b, x;
printf(\ scanf(\
x = MinCommonMultiple(int a,int b); printf(\ }
int MinCommonMultiple(int a, int b); { int i;
for (i=1; i
if ((i*a) % b = 0) return i*a; }
return 0; }