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

打印字符文件,为什么只能输出数字

lanlenteur 发布于 2013-03-09 23:51, 604 次点击
用cin和cout实现,n由键盘输出
      a
     aba
    abcba
   abcdcba
7 回复
#2
不玩虚的2013-03-09 23:54
给个具体代码,或者解题方法或思路也行啊!
#3
lanlenteur2013-03-10 23:05
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{int i,j,n;
 cin>>n;
 for(i=1;i<=n;i++)
 {cout<<setw(n-i+1);
  for(j=1;j<=i;j++) cout<<'a'+j-1;
  for(j=i-1;j>=1;j--) cout<<'a'+j-1;
  cout<<endl;
 }

}
#4
fxbszj2013-03-11 16:16
话说,void main()  这句是错误的,现在标准C++ 一定是int main(){}
#5
rjsp2013-03-11 16:25
3楼
'a'+j-1 的类型是 int,不是 char

4楼
无论C还是C++,无论是过去,还是现在,都规定main的返回类型是int
#6
sam0312013-03-11 22:41
以下是引用lanlenteur在2013-3-10 23:05:03的发言:

#include<iostream>
#include<iomanip>
using namespace std;
void main()
{int i,j,n;
 cin>>n;
 for(i=1;i<=n;i++)
 {cout<<setw(n-i+1);
  for(j=1;j<=i;j++) cout<<'a'+j-1;
  for(j=i-1;j>=1;j--) cout<<'a'+j-1;
  cout<<endl;
 }

}


高手!这个程序思路对了,就是漏了转换类型!
程序代码:
#include<iostream>
#include<iomanip>
using namespace std;
void main()
{int i,j,n;
cin>>n;  //这个输入的数应该要限制<=26,因为字母只有26个,啊哈
for(i=1;i<=n;i++)
{cout<<setw(n-i+1);
  for(j=1;j<=i;j++) cout<<char('a'+j-1); //输出需强制转换成char字符,当然你的编译器需要支持ANSII,否则可能输出是乱码;
  for(j=i-1;j>=1;j--) cout<<char('a'+j-1);  //输出需强制转换成char字符,当然你的编译器需要支持ANSII,否则可能输出是乱码;
  cout<<endl;
}
system ("pause");
}
#7
lanlenteur2013-04-01 22:14
回复 6楼 sam031
谢啦
#8
lanlenteur2013-04-01 22:15
回复 5楼 rjsp
用vc6.0一直都是用void main,可以没有返回值的
1