• 締切済み

C言語のプログラミングのある問題について・・・?

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

みんなの回答

  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.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++ で書きましたので、このまま提出しても # 通るとは思えません

  • madman
  • ベストアンサー率24% (612/2465)
回答No.2

うーん、プログラム組むのは簡単だけど、数式が理解できないや... と言う事で下記を参考にどうぞ。 あと、もう少しカテゴリを考えて質問しないと、良い答えも返ってこないよ。

参考URL:
http://www.geocities.co.jp/SiliconValley-Oakland/4287/algorithm4.html
  • doroteasu
  • ベストアンサー率11% (4/34)
回答No.1

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

関連するQ&A

  • プログラミング 問題 java

    大学のプログラミングの授業でjavaを勉強しています。 先週課題が出たのですが書き方がわかりません。 4×4の形の二次元配列Aの内容を準備し、同じく4×4の形の二次元配列Bに、下図のように90度回転するようにして移すプログラミングを作るという問題です。 わかる方いたら回答お願いします(>_<)

  • C言語プログラム

    こんな課題が出たのですが、さっぱりわかりません。 誰か解る人がいたら教えてほしいです。 1 3+5+7+…+nと奇数の和を求め、和が100を越えたときのnの値を求めて表示するプログラムをdo~whileを使って作成しなさい。 2  キーボードから3つの数を読み込み、最大値を求める処理を繰り返し行うプログラムを、do~whileを使って作成しなさい。繰り返しの終了は、計算のあとで、'S'(1文字)が入力されるまでとし、それ以外の文字では、処理を続行すること。 3  整数型1次元配列kに整数123,456,789をそれぞれ代入し、その内容を表示するプログラムを作成しなさい。 4  文字型1次元配列strに'u'を、'n'、'i'、'x'それぞれ代入し、その内容を文字列として出力するプログラムを作成しなさい。 5  要素数50の整数型1次元配列mの要素すべてに、その添字に対応した0~49の数値を代入し、その内容を表示するプログラムを作成しなさい。 3は #include <stdio.h> main() { int k[3]; k[0] = 123; k[1] = 456; k[2] = 789; printf("%d\n%d\n%d", k[0], k[1], k[2]); return 0; } と解いてみたんですが、やっぱ間違えてますよね?

  • 大学の授業のプログラミング、ついていけずに困っています。

    大学の授業で情報処理の科目があり、内容的には、JavaScriptを使ってのプログラミングの理論的なものと、それを実践的に生かせているかの確認の課題提出があります。 私の専攻は英米文なので情報処理は必修ではないのですが、教員免許状取得のためにとらなければならない科目のため、なんとしてでも落とせません…。 ですが、私は全くのパソコン音痴でネットでHPを見るくらいしかパソコンを使ったことが無いくらいです。 落とせないのに授業についていけず、深刻な悩みです。 授業では、ループ、Forループ、配列、Array、二次元の配列、データの入力、等々をやっています。これらはほんの一例で、まだまだたくさんあります。 そもそも「プログラミングって何?」「JavaScriptって何?」という状態です。 どうにか単位をとりたいので、頑張って勉強したいのですが、こんな初心者にも分かりやすい解説書や、説明のサイトがあれば紹介してください。 どうか助けてください、よろしくお願います。

  • C言語:配列の最大値

    こんにちは。 プログラミングの講義の課題で、 1.100未満の整数20個からなる配列を作成する 2.for文を使って20個の整数の中で最大値を求める 3.その結果を出力する というC言語の課題が出されました。完成はしたのですが、何度実行してもビルドエラーが発生して正常に作動しません。どうすれば正常に作動しますか? #include <stdio.h> int main(void){ int i; int max=0; int num[20] = {4,83,71,90,7,33,62,51,98,21,18,20,75,49,69,14,80,22,8,50}; for( i=0 ; i < 20 ; i++ ) { if (num[i] > max) max = num[i]; } printf("%d,",max); return (0); }

  • C言語の問題です。何卒ご教示願います。10個の整数

    C言語の問題です。何卒ご教示願います。10個の整数を入力し配列に保存した後、入力された数字の中に5の倍数が含まれているかを調べ、 含まれていた時には「5の倍数が含まれています」含まれていない時に「5の倍数が含まれていません」と表示させなさい。 なるべく早急にお願い申し上げます。 お手数ですが一からプログラミングを作成お願いします (たとえば♯include<stdio.h>からreturn 0;}とか)

  • プログラミングで

    当方、環境はUNIXでプログラミング初心者なのですが、 整数型二次元配列[5][5]宣言; ファイルポインタ宣言; 読み込みファイルオープン; ファイルから読み込みループ; 行の昇順ソート; 列の昇順ソート; 出力ループ; ファイルクローズ; リターンゼロ; これをプログラミングする場合は main(){ からテキストファイル名はsort.txtと仮定すると どのように書いたらいいのでしょうか?

  • C言語、配列の積

    整数型二次元配列x,yに適当な値をキーボードから入力し、次にそれらの行列の積を計算して二次元配列zに代入し、行列x,y,zの要素を出力せよ。但し、配列の大きさは最初にキーボードから入力しておき、変数宣言においては、配列の大きさを大きめに宣言しておき、キーボードから入力する配列の大きさはその範囲内で入力するようにせよ。 という問題です。よろしくお願いいたします

  • C言語のプログラミングについて

    私は大学2年なのですが、現在留年するかしないかというぎりぎりのところに立っています。好意で単位をなんとかしてくれる教授を探し出し、C言語の宿題を出されました。ですが私は根っからの文型で、プログラミングなどしたこともありません。教科書を図書館で借りて読んでみるものの、すぐ理解できるような難易度ではないことだけがわかりました。 そこでもしよろしければ、プログラムを教えてもらいたいです。 1.キーボードから整数の入力を繰り返す。0以下の値が入力されたら終了し、入力した値の中の最小値を表示する。また、それが何番目に入力された値かもあわせて表示する。(6つの整数を入力、最後の整数は0を入力することとする。) 実行結果例 整数を入力: 6 整数を入力: 5 整数を入力: 4 整数を入力: 3 整数を入力: 2 整数を入力: 1 整数を入力: 0 最小値は6番目の1 2.キーボードから整数の入力を4回繰り返し、それらの値を2次元配列Aの各要素に順に代入し、その行列のそれぞれの要素と行列式を表示するプログラムを作成せよ。 実行結果例 1行1列の要素? 6 1行2列の要素? 5 2行1列の要素? 4 2行2列の要素? 3 行列A = 6 5 4 3 行列式 = 2 3.キーボードから西暦年を入力し,その年が閏年のときは「○○年はうるう年です」と表示し,そうでないならば「○○年はうるう年ではありません」と表示するプログラムを作成しなさい. なお,閏年の定義は以下の通りである. ・西暦年が4で割り切れる年は閏年 ・ただし,西暦年が100で割り切れる年は平年 ・ただし,西暦年が400で割り切れる年は閏年 実行結果例 西暦年を入力してください. 1987 1987 年はXXXXXXXX 一時的ではありますが、皆様のお力をお借りしたいです。 もちろん、ここでお答えをもらってもわからないままにせずに、無事進級することができたら独学で勉強しようとは思ってます。 なお、理系の人たちはVisualBasicというソフトを使っているようです。よろしくお願い致します。

  • C言語のプログラミング (基礎)配列の問題ですが。

    次のような問題があって、プログラミングしてみたのですが、 コンパイルすると永久ループになってしまいます。 また、入力されるはずの整数が表示されません。 どうすればよいか教えていただけると助かります。 よろしくお願いします。 整数を順番に入力し、負の数が入力されたら、それまでに入力された非負の整数を、 入力された順番とは逆に全角空白で区切って出力するプログラムを作成しなさい。 自動評価の都合上、上記以外は表示しないこと。なお、入力は最大10回とする。 【0 1 2 3 4 -1 が入力された場合の表示例】 4 3 2 1 0       ************************************** #include <stdio.h> int main(void) { int num[10]; int n; for(n=1;n<11;n++){ printf("整数入力:¥n"); scanf ("%d", &num[n]); if(num[n]<0){ for(n=10;n>0;n--){ printf("%d ",num[n]); } } } }

  • 【至急】C言語のプログラミングについての質問です。

    【至急】C言語のプログラミングについての質問です。 以下の2問の解答をお願い致します。 問1. サイズ3の2つの配列の和、差、内積を出力するプログラムを作成してください。 問2. m+1*n+1行列の配列aの 各行ごとの合計 gyouwa[i] i=0,1,・・・,m 各列ごとの合計 retuwa[i] i=0,1,・・・,n を計算するプログラムを作作成してください。 また、 各行内での最大値 aimax[i] i=0,1,・・・,m 各列内での最大値 ajmax[i] i=0,1,・・・,n を求めるプログラムを作成してください。

専門家に質問してみよう