C++ OpenJudge 1.1.8

Posted 程序猿之猩

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ OpenJudge 1.1.8相关的知识,希望对你有一定的参考价值。

题目:


http://noi.openjudge.cn/ch0101/


字符三角形


  • 描述

  • 给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。

  • 输入

  • 输入只有一行, 包含一个字符。

  • 输出

  • 该字符构成的等腰三角形,底边长5个字符,高3个字符。

  • 样例输入

  • *
  • 样例输出

  •   *
    ***
    *****


上代码:

#include <iostream>#include <cstdio>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了,不用空格。

好了,这道题其实很简单,理解了就可以交上去了,好了,这道题就写完了.....................................吗?

写完是写完了,但是还有一种方法,好了,上代码:

#include <iostream>#include <cstdio>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;}

看的太复杂?我给简化一下

#include <iostream>#include <cstdio>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);

这里就和上面的一样的道理了,只是没有空格了。

——————————————

所以我们可以把它压缩一遍

#include <iostream>#include <cstdio>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:球弹跳高度的计算

OpenJudge百炼习题解答(C++)--题4072:判断多个点是否在同一直线

OpenJudge百炼习题解答(C++)--题4045:与3和5无关的数