程序改错: #include <string.h> #include <stdio.h> void fun(char p[ ]) {char max; int i=0,t=0; max=p[i]; /***********ERROR***********/ while(p[i]!='\n') { /***********ERROR***********/ if(max>p[i]) {max=p[i]; t=i;} i++;} printf("ASCII最大的字符:%c,位于:%d\n",max,t); } main() {char str[80]; printf("给数组元素赋值:\n"); /***********ERROR***********/ gets(str[i]); printf("\n输出数组: \n"); puts(str); /***********ERROR***********/ fun(str) }
时间: 2023-07-05 16:24:29 浏览: 142
程序改错:
```c
#include <string.h>
#include <stdio.h>
void fun(char p[]) {
char max;
int i=0,t=0;
max=p[i];
while(p[i]!='\0') {
if(max<p[i]) {
max=p[i];
t=i;
}
i++;
}
printf("ASCII最大的字符:%c,位于:%d\n",max,t);
}
int main() {
char str[80];
printf("给数组元素赋值:\n");
gets(str);
printf("\n输出数组: \n");
puts(str);
fun(str); // 添加分号
return 0;
}
```
代码说明:
该程序定义了一个函数 `fun`,它的作用是查找字符串中 ASCII 码最大的字符,并输出该字符及其位置。该函数的参数是一个字符数组,表示要查找的字符串。函数中使用两个变量 `max` 和 `t`,分别表示当前找到的最大字符和其位置。在遍历字符串时,如果当前字符比 `max` 大,则更新 `max` 和 `t` 的值。最后输出找到的最大字符及其位置。
在 `main` 函数中,首先定义一个长度为 80 的字符数组 `str`,并使用 `gets` 函数从标准输入中读入一个字符串。接着输出该字符串,并调用 `fun` 函数对其进行处理。注意在调用 `fun` 函数前需要加上分号。最后返回值 0,表示程序正常结束。该程序的错误包括:
1. `while` 循环中的终止条件应为 `\0` 而非 `\n`;
2. `gets` 函数应该直接读入字符串,而不是读入字符;
3. 在调用 `fun` 函数前需要加上分号。
阅读全文