输入一个字符串,长度小于等于200,然后将数组逆置输出。(字符串中可能有空格)
测试数据有多组,每组输入一个字符串
对于每组输入,请输出逆置后的结果
#include <stdio.h>
int main(){
char c,str[210];
int i=0;
while(scanf("%c",&c) != EOF){
if(c != '\n'){
str[i++]=c;
}
else{
while(i){
printf("%c",str[--i]);
}
if(i != 0) printf("\n");//注意换行
i=0;
}
// if(i>=200) return 0;
}
return 0;
}
已在网上看到很多人用gets直接读取一行解决,但我更想逐个字符解决,不知道为什么总是答案错误。
你题目的解答代码如下:
#include <stdio.h>
int main(){
char c,str[210];
int i=0;
while(scanf("%c",&c)>0){//改成>0
if(c != '\n'){
str[i++]=c;
}
else{
while(i){
printf("%c",str[--i]);
}
printf("\n");//注意换行
i=0;
}
// if(i>=200) return 0;
}
return 0;
}
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
换getchar()试试:
#include <stdio.h>
int main() {
char c, str[201];
int i = 0;
while ((c = getchar()) != EOF) { //修改
if (c != '\n') {
str[i++] = c;
}
else {
while (i) {
printf("%c", str[--i]);
}
if (i != 0)
printf("\n");//注意换行
i = 0;
}
// if(i>=200) return 0;
}
return 0;
}
把输入输出截图发出来啊