请指出我c语言程序中的错误并改正,使之能得到正确结果。但不要改动main函数,也不得改变程序的结构。函数如下: #include<stdio.h> #include<string.h> #define N 80 /************found***************/ void fun(char s,char t[]) { int i,j=0; for(i=0;i<strlen(s);i++) /************found***************/ if(i%2=0||s[i]%2!=0) t[j++]=s[i]; t[j]='\0'; } void main() {char s[N],t[N]; printf("\nPlease enter string s:"); gets(s); fun(s,t); printf("\nThe result is:%s \n",t); }
时间: 2023-07-19 15:20:43 浏览: 59
c语言程序设计教学资料函数PPT课件.pptx
修改后的函数代码如下:
```c
void fun(char s[], char t[]) {
int i, j = 0;
for (i = 0; i < strlen(s); i++)
if (i % 2 == 0 || s[i] % 2 != 0)
t[j++] = s[i];
t[j] = '\0';
}
```
修改的主要问题是:
1. 函数定义中 `char s` 应该改为 `char s[]`,表示传入的参数是一个字符数组;
2. 在 if 语句中,判断语句应该使用 `==` 而不是 `=`,表示判断是否相等;
3. 在函数体内,应该使用传入的字符数组 `s`,而不是传入的字符 `s`。
这样修改后,程序就能够正确运行了。
阅读全文