C语言程序改错min函数的功能:求数组a中前n个元素的最小值。在主函数中调用min函数,计算并输出数组中所有元素的最小值。 程序: #include "stdio.h" int min(int a[], int n) { int m; if(n>1) { m=min(a, n-1); if(a[n-1]>m) /*$ERROR$*/ return a[n-1]; elsereturn m; } else return a[0]; } void main() { int a[10]={1,12,3,24,35,-6,17,78,9,10}, s; s=min(a[10],10); /*$ERROR$*/ printf("s=%s\n", s); /*$ERROR$*/ }
时间: 2024-01-19 12:02:09 浏览: 116
这段程序中有两处错误,分别在min函数和主函数中。
在min函数中,else后面的return m; 应该紧贴在}之前,否则会出现语法错误。
在主函数中,调用min函数的方式错误,应该写成s=min(a,10),而不是s=min(a[10],10)。同时,printf函数中的格式控制符%s也应该改为%d。
修改后的程序如下:
```
#include <stdio.h>
int min(int a[], int n)
{
int m;
if (n > 1)
{
m = min(a, n - 1);
if (a[n - 1] < m)
return a[n - 1];
else
return m;
}
else
return a[0];
}
int main()
{
int a[10] = {1, 12, 3, 24, 35, -6, 17, 78, 9, 10}, s;
s = min(a, 10);
printf("s=%d\n", s);
return 0;
}
```
运行结果为:
```
s=-6
```
阅读全文