2 上机调试下面的程序,记录系统给出的出错信息,并指出错误原因。 #include <stdio.h> void main() { int x,y; printf("%d\n",sum(x+y)); int sum(a,b); { int a,b; return(a+b); } }
时间: 2024-01-26 20:03:19 浏览: 87
这段程序存在以下两个错误:
1. 函数 `sum` 没有进行声明,因此编译器无法识别。解决方法是在 `main` 函数之前添加函数声明,如下所示:
```c
#include <stdio.h>
int sum(int a, int b); // 声明 sum 函数
void main() {
int x, y;
printf("请输入两个整数:");
scanf("%d %d", &x, &y);
printf("%d\n", sum(x, y));
}
int sum(int a, int b) {
return a + b;
}
```
2. 函数 `sum` 中的参数 `a` 和 `b` 与函数声明时的参数名不一致,应该修改为 `int sum(int x, int y)` 或者修改函数体中的参数名为 `a` 和 `b`。
修改后的程序如下:
```c
#include <stdio.h>
int sum(int x, int y);
void main() {
int x, y;
printf("请输入两个整数:");
scanf("%d %d", &x, &y);
printf("%d\n", sum(x, y));
}
int sum(int a, int b) {
return a + b;
}
```
在进行编译时,会提示 `warning: return type of 'main' is not 'int'`,这是因为 `main` 函数应该返回一个整型值,应该将 `void main()` 改为 `int main()`。因此,最终的程序如下:
```c
#include <stdio.h>
int sum(int x, int y);
int main() {
int x, y;
printf("请输入两个整数:");
scanf("%d %d", &x, &y);
printf("%d\n", sum(x, y));
return 0;
}
int sum(int a, int b) {
return a + b;
}
```
修改后,程序可以正常运行。
阅读全文