函数fun的功能是:分别统计出形参str所指的字符串中的大写字母和小写字母的个数,并传递回主函数输出。例如,若str所指的内容为“BAY23Kill”,其中大写字母数为4,小写字母数为3,则应输出:c0=4,c1=3。 请改正程序中的错误,使它能得出正确的结果。错误在每个/****found***/下面的一句代码中。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include <stdio.h> #include <string.h> void fun(char* str, int *c0, int *c1) { int k;int len=strlen(str); /**********found*****1*****/ c0 = c1 = 0; for (k=0; k < len; k++) { /**********found*****2*****/ if ( (str[k] >= 'A') && (str[k] <= 'Z') ) *c0++; if ( (str[k] >= 'a') && (str[k] <= 'z') ) (*c1)++; } } main() { char str[100]; int c0,c1; printf("input string:"); /**********found*****3*****/ scanf("%c", str); /**********found*****4*****/ fun(str, &c0, c1); printf("c0=%d,c1=%d\n", c0, c1); }
时间: 2023-07-06 08:36:19 浏览: 56
程序中的错误及修改如下:
1. 错误:c0 = c1 = 0; 应该改为 *c0 = *c1 = 0;
修改后:*c0 = *c1 = 0;
2. 错误:*c0++; 应该改为 (*c0)++;
修改后:(*c0)++;
3. 错误:scanf("%c", str); 应该改为 scanf("%s", str);
修改后:scanf("%s", str);
4. 错误:fun(str, &c0, c1); 应该改为 fun(str, &c0, &c1);
修改后:fun(str, &c0, &c1);
修改后的程序如下:
```c
#include <stdio.h>
#include <string.h>
void fun(char* str, int *c0, int *c1) {
int k;
int len = strlen(str);
*c0 = *c1 = 0;
for (k = 0; k < len; k++) {
if ((str[k] >= 'A') && (str[k] <= 'Z'))
(*c0)++;
if ((str[k] >= 'a') && (str[k] <= 'z'))
(*c1)++;
}
}
int main() {
char str[100];
int c0, c1;
printf("input string:");
scanf("%s", str);
fun(str, &c0, &c1);
printf("c0=%d,c1=%d\n", c0, c1);
return 0;
}
```