请求大神教我学C语言,小白对这道题严重的卡壳,谢谢大神了
2个回答
展开全部
#include <stdio.h>
#include <string.h>
#define MAX_STRING 10 // 这里随便改,把10改成其他的也可以,题目里说只要改成比3大的数就行了
int main(void){
int i = 0;
char s[MAX_STRING][128];
for(i=0;i<MAX_STRING;i++){
printf("s[%d] : ", i);
scanf("%s", s[i]);
if(!strcmp(s[i],"$$$$$")){
break;
}
// 以上部分能看得懂吧,用了break退出循环
}
// 下面的这部分使用了一个巧合,
// 上面的for循环中,如果是输到了第MAX_STRING个元素结束的话,那么for循环只要到上回剩下来的那个i的值就行了
// 如果是因为读取到“$$$$$”结束的话,正好也只要读取到i的值就行了(因为$$$$$所在的元素无需打印)
int temp = i;
for(i=0;i<temp;i++){
printf("s[%d] =\"%s\"\n", i, s[i]);
}
}
我的想法是这样的,不知道你觉得如何。
ps:
我想不出更好的方法了,但是这个方法可以用
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询