C语言改错题,大神看看怎么做,最好说明一下原因,实在是多谢了!!

2025-02-28 19:40:11
推荐回答(1个)
回答1:

#题1
#include 
struct s
{
    char name[10];
    int age;
}
main()
{
    struct s a[3] = {{"John", 19},
                     {"Paul", 17},
                     {"Marry", 18}};
    int i;#改动1,新增变量i用于循环计数
    for (i=0; i<3;i++)
    {
        #改动2,数组直接寻址操作
        printf("%s, %d\n", s[i].name, s[i].age);
    }
}
#题2
#include 
#include 
main()

    int i = 0, findFlag=0; #改动1,变量i赋初始值0
    char x; 
    char str[][13]={ "Pascal","Basic","Fortran", "Java", "Visual C", "Visual Basic" };
    printf("请输入一个字符串:"); 
    gets(x); 
    while(i<6 && !findFlag) 
    { 
        #改动2,使用库函数strncmp进行字符串比较
        if (0 == strncmp(x, str[i], strlen(str[i])) 
        {
            findFlag = 1; 
        } 
        i++; 
    } 
        
    if (findFlag)
    { 
        printf("%s\n", x); 
    } 
    else 
    {
         printf("没找到!\n"); 
    }
}
#题3
#include

void Cpy(char s[],char c[]); #改动1,函数声明

main()

    char str1[80], 
    str2[80]; 
    
    printf("输入一个字符串:"); 
    gets(str1); 
    
    Cpy(str1[], str2[]); 
    
    printf("输出一个字符串\n"); 
    puts(str2);
  }
  
  void Cpy(char s[],char c[])
  { 
      int i, j; 
      
      for(i=0; s[i] != '\0'; i++) 
      { 
          if(s[i]= 'a'||s[i]= 'A'||s[i]= 'e'||s[i]= 'E'|| 
             s[i]= 'i'||s[i]= 'I'||s[i]= 'o'||s[i]= 'O'||s[i]= 'u'||s[i]= 'U') 
          { 
              c[j] = s[i]; #改动2,存放在字符串str2种
              j++; 
          }
      }
      c[j]='\0';#改动3,添加字符串结尾符
}