【题目链接】
ybt 1004:字符三角形
OpenJudge NOI 1.1 08:字符三角形
【题目考点】
- 声明字符型变量
char a;
- cin输出字符型变量
cin>>a;
- cout后用<<分割要输出的量,可以混合输出字符常量(如’ '),字符串常量(如" "),字符型变量等。
- cout输出endl,可以换行。
cout<<endl;
(endl是C++标准库中的操控器) - 字符型变量的格式控制说明符是%c,
scanf输入字符型变量:scanf("%c", &a);
printf输出字符型变量:printf("%c", a);
- printf的格式控制字符串中,若是一般字符,则会直接输出(如空格),若遇到格式控制说明符(如%d,%c),则会顺序地以后面的变量代替说明符。
printf(" %c%c%c", a, a, a);
- 换行字符为’\n’,若想换行,需要在printf输出的字符串末尾加上\n
【题解代码】
解法1:使用cin, cout进行输入输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<" "<<a<<endl;
cout<<' '<<a<<a<<a<<endl;
cout<<a<<a<<a<<a<<a<<endl;
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
cin>>a;
cout<<" "<<a<<endl<<' '<<a<<a<<a<<endl<<a<<a<<a<<a<<a<<endl;
return 0;
}
解法2:使用scanf, printf进行输入输出
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
scanf("%c", &a);
printf(" %c\n", a);
printf(" %c%c%c\n", a, a, a);
printf("%c%c%c%c%c\n", a, a, a, a, a);
return 0;
}
#include <bits/stdc++.h>
using namespace std;
int main()
{
char a;
scanf("%c", &a);
printf(" %c\n %c%c%c\n%c%c%c%c%c\n", a, a, a, a, a, a, a, a, a);
return 0;
}
解法3(扩展):输入一个字符,输出任意高的塔型图案
//实现输出任意塔高的图案
//设塔高为h
//第1行有1个字符,第2行有3个字符。。。第i行有2*i-1个字符
//第h行,塔除了中心一列,左侧共有h-1列。
//第1行有h-1个空格,第2行有h-2个空格。。。第i行有h-i个空格
#include <bits/stdc++.h>
using namespace std;
int main()
{
char c;
cin>>c;
int h = 3;//塔的层数。若要实现输出任意塔高的图案,则应输入该变量 cin>>h
for(int i = 1; i <= h; ++i)
{
for(int j = 1; j <= h - i; ++j)
cout<<' ';
for(int j = 1; j <= 2 * i - 1; ++j)
cout<<c;
cout<<endl;
}
return 0;
}