这个代码有以下几个问题:

  1. 在第一个for循环中,循环条件应为i<len而不是i<8,因为你要将输入的字符串分割成最多8个单词。
  2. 在第二个for循环中,应该将j的初始值设为0而不是全局变量j的值,否则会导致在第二次运行该函数时出错。
  3. 在第二个for循环中,应该将j<len作为循环条件而不是j<len-1,否则最后一个单词将被忽略。
  4. 在第二个for循环中,应该将c++放在if语句的外面,否则最后一个字符将被丢失。
  5. 在第二个for循环中,应该将j++放在if语句的外面,否则在下一次循环时会跳过一个字符。
  6. 在第二个for循环中,应该将count初始化为0而不是1,否则在倒序输出单词时会出错。
  7. 在最后的for循环中,循环条件应为k>=0而不是k<0,否则循环将无法执行。

修正后的代码如下:

#include<stdio.h> #include<string.h>

char str[80]; char word[10][8]; int c=0; int j=0; int count=0;

int main() { fgets(str,sizeof(str),stdin); int len=strlen(str); for(int i=0;i<len;i++) {
c=0; for(j=0;j<len;j++) { if(str[j]!=' ') { word[i][c]=str[j]; c++; } else { j++; count++; break; } } } for(int k =count-1;k>=0;k--) { printf("%s ",word[k]); } return 0;

#includestdioh#includestringhchar str80;char word108;int c=0;int j=0;int count=1;int main fgetsstrsizeofstrstdin; int len=strlenstr; forint i=0;i8;i++ c=0; for;jlen;j++

原文地址: https://www.cveoy.top/t/topic/imkQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录