C语言学校OJ题字符串反序,提交后运行错误
题目描述写一个函数,使输入的一个字符串(少于80个字符)按反序存放,在主函数中输入输出字符串。
样例输入
reverse a string
样例输出
gnirts a esrever
以下是我的代码:
#include <stdio.h>
#include <string.h>
int main(){
char x;
int i;
for(i=0;(x=getchar())!='\n';i++);
x='\0';
for(i=i-1;i>=0;i--)printf("%c",x);
return 0;
}
学校OJ系统运行于Debian/Ubuntu Linux. 使用GNU GCC/G++ 作为C/C++编译器,编译器版本为gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)
反序存放,不是反序输出 巴巴鲁 发表于 2020-12-3 11:29
反序存放,不是反序输出
学校OJ是根据输入和输出判断的,而且问题是出在运行错误,应该不是这个问题
本帖最后由 风过无痕1989 于 2020-12-3 12:04 编辑
#include <stdio.h>
#include <string.h>
int main() {
char ch, x;
int i, n;
for (i = 0;(x = getchar()) != '\n';i++);
/* x = '\0'; */ // 此行语句没有用处,可删除
n= i - 1;
for (i = n;i >= n / 2;i--)
{
ch = x;
x = x;
x = ch;
}
for (i = 0;i <= n;i++)
printf("%c", x);
printf("\n");
return 0;
} 问题本人已解决,将'\n'换成EOF即可,估计是因为学校的测试数据里没有换行符导致数组溢出
页:
[1]