C++ OpenJudge 1.1.8
Posted 程序猿之猩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ OpenJudge 1.1.8相关的知识,希望对你有一定的参考价值。
题目:
http://noi.openjudge.cn/ch0101/
字符三角形
描述
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入
*
样例输出
*
***
*****
上代码:
using namespace std;
int main(){
char a;
cin >> a;
cout << " " << a << endl;
cout << " " << a << a << a << endl;
cout << a << a << a << a << a;
return 0;
}
5:首先我们先char一个a。
cout << " " << a << endl;
这里很好理解,首先我们先输出两个空格,来代表三角形顶部的那两个空格,在输出a,为了输出和用户输入的字符一样,我们就char一个a,接受用户输入的字符,在输出。endl就是换行的意思,也可以用cout << " " << a << "\n";来代替,\n也是换行的意思。
cout << " " << a << a << a << endl;
这里要注意,为了能输出像等边三角形那样的图形,空格必须要减少一个,不然就会是直角三角形,a也要增加到三个,这里也必须要注意一个点,a要用<<隔开。
cout << a << a << a << a << a;
这里就直接输出五个a了,不用空格。
好了,这道题其实很简单,理解了就可以交上去了,好了,这道题就写完了.....................................吗?
写完是写完了,但是还有一种方法,好了,上代码:
using namespace std;
int main(){
char a;
scanf ("%c",&a);
printf (" %c\n %c%c%c\n%c%c%c%c%c",a,a,a,a,a,a,a,a,a);
return 0;
}
看的太复杂?我给简化一下
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",a,a,a,a,a);
return 0;
}
好了,简化完成了,我现在给大家讲一下这个意思。
scanf ("%c",&a);
这里我们输入的是字符,所以我们需要在引号里加上%c来代表字符,前面引号里的%xxx就像是后面变量的代表,代表那个变量来输出,所以需要认变量,%c就是专门认字符的。
printf (" %c%c%c\n",a,a,a);
这里大家可以发现,前面的引号后面隔着两个空格,这个效果就像上面的cout << " "这个引号里的空格是一样的效果。
printf ("%c%c%c%c%c",a,a,a,a,a);
这里就和上面的一样的道理了,只是没有空格了。
——————————————
所以我们可以把它压缩一遍
using namespace std;
int main(){
char a;
scanf ("%c",&a);
printf (" %c\n %c%c%c\n%c%c%c%c%c",a,a,a,a,a,a,a,a,a);
return 0;
}
这里的意思就是 %c\n是三角形顶部, %c%c%c\n是第二行,%c%c%c%c%c是三角形底部。因为这里有九个%c所以我们要加上九个a。
好了,这回终于写完了,大家可以在理解一下,其实非常简单....
..........................................
..........................................................................明天见。
以上是关于C++ OpenJudge 1.1.8的主要内容,如果未能解决你的问题,请参考以下文章
OpenJudge百炼习题解答(C++)--题4010:2011
OpenJudge百炼习题解答(C++)--题4074:积水量
OpenJudge百炼习题解答(C++)--题4040:买书问题
OpenJudge百炼习题解答(C++)--题3142:球弹跳高度的计算