アプリ版:「スタンプのみでお礼する」機能のリリースについて

 私は、ある大学に通う二年生です。実は、授業でC言語のプログラミングの授業があるのですが、includeとか、for文とか、とにかくそこに出てくる用語も全然と言っても良いぐらい分からないし、それにその科目を教えている先生から課題が出されました。
 その課題というのは、以下の問題です。誰か僕に力をください。
 お願いします。 
 問
   正の整数1から10までの範囲でパスカルの三角形を画面上に出力するプログラムを作り、さらにその三角形をもう一つ組み合わせてひし形を作り、ひし形が出力できるように補修せよ。
 (注)「使用できる配列は、1次元に限る」という条件を守って作ること。

A 回答 (3件)

> includeとか、for文とか、とにかくそこに出てくる用語も全然と言っても良いぐらい


> 分からない

というところへ、ソースを提示して理解が深まるのかどうか、あやしいですが、
ちょっと書いてみましたので、読んでみます?

#include <iostream.h>
#include <iomanip.h>

#define KETA  3

void get_pascal_triangle_line(int n, int x[])
{
  int i;
  if (n == 1) {
    x[0] = 1;
    return;
  }
  int* xx;
  xx = new int [n - 1];
  get_pascal_triangle_line(n - 1, xx);
  x[0] = xx[0];
  for (i = 1 ; i < n - 1 ; ++i)
  {
    x[i] = xx[i - 1] + xx[i];
  }
  x[n-1] = xx[n-2];
  delete [] xx;
}

void print_pascal_triangle_line(int n, int x[])
{
  int i;
  for (i = 0 ; i < n ; ++i)
  {
    cout << setw(KETA) << x[i];
  }
  cout << endl;
}

int get_max_value(int n, int x[])
{
  int i;
  int mx = x[0];
  for (i = 1; i < n ; ++i)
  {
    if (mx < x[i])
      mx = x[i];
  }
  return mx;
}

int main()
{
  int a[100];
  int n, i;
  n = 1;

  /* 10 が出てくるまでパスカルの三角形を書く */
  do
  {
    get_pascal_triangle_line(n, a);
    print_pascal_triangle_line(n, a);
  } while (get_max_value(n++, a) < 10);

  /* 下半分の三角形を書いてひし形に見せる */
  for (i = n - 2 ; i > 0 ; --i)
  {
    get_pascal_triangle_line(i, a);
    int j;
    for (j = 1 ; j < n - i ; ++j)
      cout << setw(KETA) << " ";
    print_pascal_triangle_line(i, a);
  }

  return 0;
}

ひし形が歪んでいるのと、パスカルの三角形に 10 が出て来るということを
前提に書いちゃってますけど。


私の説明する気を殺がない程度に自分で調べてみてから、分からないところが
あれば、遠慮せずに聞いてください。反応はすぐ返せないかもしれないけど、
それなりに説明をする気はあります。


# 因みに、このソースは C++ で書きましたので、このまま提出しても
# 通るとは思えません
    • good
    • 0

うーん、プログラム組むのは簡単だけど、数式が理解できないや...


と言う事で下記を参考にどうぞ。

あと、もう少しカテゴリを考えて質問しないと、良い答えも返ってこないよ。

参考URL:http://www.geocities.co.jp/SiliconValley-Oakland …
    • good
    • 0

C言語はあるていどできます。


私の頭の悪さから、問いの意味がよくわかりません。
ごめんなさい。
最終的にどう出力されれば良いのですか?
   1
  2 2
 3 3 3
4…
ってことですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!