问题解析:
编译失败的原因是代码中存在一些错误。下面我将指出并解释这些错误。
错误修正:
1. 宏定义错误:在代码中,将宏定义 NUMEBR 作为数组大小参数,但实际上应该是 NUMBER。修正宏定义为 #define NUMBER 100。
2. 数组声明错误:在代码中,将 s[NUMBER][128] 声明为 char s[NUMBER][128],但实际上 NUMBER 是宏定义,应该使用正确的标识符 NUMEBR。修正数组声明为 char s[NUMEBR][128]。
3. 字符串比较错误:在代码中,使用 == 运算符比较字符串是否相等是错误的。C/C++中,字符串的比较需要使用函数 strcmp() 或 strncmp()。修改条件语句为 if (strcmp(s[i], "$ $ $ $ $") == 0)。
4. 未定义变量 k :在代码中,变量 k 在使用之前需要先进行定义。可以在循环外部添加 int k; 进行定义。
最终修正后的代码如下所示:#include <stdio.h>#include <string.h>#define NUMBER 100int main(void){ int i, k; char s[NUMBER][128]; for (i = 0; i < NUMBER; i++) { printf("s[%d] : ", i); scanf("%s", s[i]); if (strcmp(s[i], "$ $ $ $ $") == 0) { k = i; break; } } for (i = 0; i < k; i++) printf("s[%d] = "%s"\n", i, s[i]); return 0;}
请注意,这只是上述代码的修正版本,并不能保证逻辑和功能的正确性。
球一个最佳答案谢谢啦!这对我非常重要!   |