PAT B1009 说反话
思路:输出两个空格间的单词
遇到的问题:
1、提交时出现编译错误: gets()是C语言中的函数,必须要加上要用gcc编译,不能用g++,否则会出现编译错误;但是在VS2010上运行就没有错误。
2、题目要求是长度不超过80的字符串,自己太粗心,就直接定义了一个长度80的数组,提交后一直报运行时出错的错误。下次要注意把范围定的大一点,比如100。(低级错误!!)
3、起初想把单词倒序拷贝到另外一个数组再输出,发现多次一举,还不如直接输出。
AC代码:
#include<stdio.h>
#include<string.h>
int main()
{
char s[100];
int i,j;
gets(s);
i=j=strlen(s)-1;
while(i>=0)
{
if(s[i]==' ')
{
for(int k=i+1;k<=j;k++)
{
printf("%c",s[k]);
}
j=i-1;
printf(" ");
}
if(i==0)
{
for(int k=0;k<=j;k++)
{
printf("%c",s[k]);
}
printf("\n");
}
i--;
}
}