注册 登录
编程论坛 C++教室

帮忙看看 那出问题了?

zhumingyuan 发布于 2011-02-18 11:11, 682 次点击
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
  int n;
  cin >> n;
  while(n--)
  {
   string a;
   getline(cin,a);
   for(int i=a.length()-2;i>=0;i--)
   cout << a[i];
   cout <<a[a.length()-1];
  }
return 0;
}
我想让它运行多次 怎么只能运行一次
9 回复
#2
pp55762011-02-18 14:25
#include<iostream>
#include<string>
using namespace std;
int main()
{
  int n;
  cin >> n;
  while(n--)
  {
   string a;
   getline(cin,a);
   for(int i=a.length()-2;i>=0;i--)
   cout << a[i];
   cout <<a[a.length()-1];
  }
return 0;
}
测试了一下,可以运行n-1次。每输完一行按CTRL+z结束输入在按Enter。
#3
zhumingyuan2011-02-18 14:48
回复 2楼 pp5576
为什么 不是n次呢?
#4
kspliusa2011-02-18 18:14
就是N次,不应该是N—1次!
#5
pp55762011-02-18 20:21
是n-1次,n--之后n的值是n-1,
而i=n--,i的值是n。
#6
ljt2011-02-19 16:50
用程序说话,运行了n次
#include<iostream>
#include<string>
using namespace std;
int main()
{
  int n;
  int i=0;
  cin >> n;
  while(n--)
  {
   i++;
  }
  cout<<i;   //结果和n相等
return 0;
}
while里面先判断n,然后再减的
#7
qq10235692232011-02-19 19:29
各位,C++中有String这个类型吗???
#8
pp55762011-02-20 12:35
查了下getline的函数
getline函数从输入流的下一行读取,并保存读取的内容到str中,但不包括换行符。getline 函数将 istream 参数作为返回值,和输入操作符一样也把它用作判断条件。 
  范例:
  #include <string>
  #include <iostream>
  using namespace std;
  int main()
  {
  string line;
  while(getline(cin,line))
  cout<<line<<endl;
  return 0;
  }
  结果:
  输入 line1 ----回车换行
  显示为空
  输入 line2 ----回车换行
  显示 line1
  输入 line3 ----回车换行
  显示 line2
#9
florajun2011-02-22 20:24
请问下 为什么用#include<string>编译通的过 而用#include<cstring>就编译出错呢?
#10
wtyp174012011-02-23 05:54
有没有高手愿意收徒弟的呀 有的话联系我QQ523979288
1