• ベストアンサー

【至急】プログラミング

「入力してもらった数の階乗or1からその数までの総和を計算、表示するプログラムを作れ」という課題が出されたのですが、考えても出来ませんでした。どなたか分かる方、教えてください。 使えるのはscanf、printf、for(or while)だけです。

質問者が選んだベストアンサー

  • ベストアンサー
  • LA_10
  • ベストアンサー率54% (35/64)
回答No.3

to titokaniさん …確かに。 >使えるのはscanf、printf、for(or while)だけ の状態じゃ、そんなプログラムは作れないよね(笑) というか、『scanf、printf、for(or while)』ってヒント貰ってるのに作れないなんて事は無い。 基本課題なんだから、自分で頭を捻って考えてくださいね。 まあ、これだけじゃ不親切かもしれないので、ヒントでも。 No1さんの書き込みを実行する事と、数学で『Xの階乗』がいったいどういう事なのか考えてみてください。

bluesky445
質問者

お礼

説明不足な点があり申し訳ありませんでした。まだ始めたばかりでよく分かっていませんでした。intやmain、returnも使えました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

回答No.5

  >数の階乗or1からその数までの総和  ということは、どちらかを求めればいいってこと? なら、総和のほうが簡単じゃないかな。 ループも必要ないし。  

bluesky445
質問者

お礼

説明不足な点があり、申し訳ありませんでした。まだ始めたばかりでよく分らぬまま質問してしまいました。

全文を見る
すると、全ての回答が全文表示されます。
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

仮にmain関数は書けるとしても、#include指令が使えませんので、可変個引数を持つscanfやprintfの動作が未定義になります。

bluesky445
質問者

お礼

説明不足で申し訳ありませんでした。まだ始めたばかりでよく理解していませんでした。intやmain、returnは使えました。

全文を見る
すると、全ての回答が全文表示されます。
  • titokani
  • ベストアンサー率19% (341/1726)
回答No.2

intもmainもreturnも使えないんじゃあ、そりゃ考えても出来ないわなあ。

bluesky445
質問者

お礼

まだ、プログラミングを始めて数日しか経っていないので説明不足な点があり、申し訳ありませんでした。intやmain、returnも使える状態でした。

全文を見る
すると、全ての回答が全文表示されます。
  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

課題の丸投げは禁止されています。 とりあえず scanfで数を入力してその数をprintfで表示するプログラム を作りましょう。

bluesky445
質問者

お礼

丸投げしてしまいすみません。 提出が迫っていてるのになかなかできず、ヒントだけでももらえたらと軽い気持ちで質問してしまいました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • また、プログラミングで分からなくなったので、

    すみません、学校の課題(C言語)で 「任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。」 というのが出て、自分なりに作ってみたり、調べたのですが 別関数の意味やmain()の上の分に何が入るのかもわかりません。 それに下のプログラミングでちゃんと動くかもわからないです。 下に載せてみたので、よろしければ色々と言ってください。 お願いします #include<stdio.h> int { } main() { int kotae = 0; int kakezan,count,X; printf("整数Xを入力しなさい"); scanf("%d",&X); for(count = 0; count <= X; count++) { kotae = kakezan * X[count]; } printf("Xの階乗は%dです",kotae); }

  • 質問:C++のプログラミング

    次のような課題が出たのですがわかりません。 教えてください。 <課題> Main関数で3つの数をscanfで入力し、関数max(これを作る)に行ってその3つの数の最大値を求めて次のように出力するようにせよ。   data? (任意の数字3つを入力)   maximum=(一番大きな数) そもそもfor文を使えばいいのかdo while文を使えばいいのかというところから分かっていません。 どなたかよろしくおねがいします。

  • プログラミング(ポインタ/文字列処理)を教えて下さい

    プログラミング(ポインタ/文字列処理)を教えて下さい 英単語(最大で15文字まで)を*が現れるまで1つずつ読み込み、読みこんだ英単語の文字数を計算して表示するプログラムです。英単語は文字型配列を使用します。 1、関数の引数及びその中の実行文中で配列を使用 2、関数と引数及びその中の実行文中でポインタ変数を使用する この2つのプログラムを別々に作らなければならないのですが、当方関数をの使い方が今一分らないので以下のプログラムを関数での作成方法を教えて下さい。 これが関数で作らなければいけないプログラムです #include<stdio.h> int main(void) { char mojiretu[15]; int con[15]={0},i,j; printf("課題データ\n"); scanf("%s",mojiretu); while(mojiretu[0]!='*') { for(j=0;mojiretu[j]!='\0'j++) {} con[j-1]++; scanf("%s",mojiretu); } printf("文字数\t出現回数\n") for(i=0;i<=14;i++) printf("%d\t%d\n",i+1,con[i]); } こちらはポインタ変数を用いていますが関数になっていません。 #include<stdio.h> int main(void) { char mojiretu[15],*pmoji int con[15]={0},i,j; pmoji=&mojiretu[0]; printf("課題データ\n"); scanf("%s",mojiretu); while(*pmoji!='*') { for(j=0;*(pmoji+j)!='\0'j++) {} con[j-1]++; scanf("%s",mojiretu); } printf("文字数\t出現回数\n") for(i=0;i<=14;i++) printf("%d\t%d\n",i+1,con[i]); } 2つとも正常に動いてます。どちらか一つでもいいので関数での書き方を詳しくおねがいします。

  • 階乗の式

    「5」と入力すると、「1*2*3*4*5=120」(階乗)と表示されるプログラムを組みたいのですが、 例で言うと120という計算結果は出せるのですが式の部分が出せません。 forまたはwhileによって作るんですが誰か式をうまく出すプログラムが分かる人いらっしゃいませんか?

    • ベストアンサー
    • Java
  • 教えてください!プログラミング!

    はじめまして 「入力した値が3の倍数のときに、10個先の3の倍数までをすべて足していく」というプログラムを作っているのですがどうしてもエラーになってしまいます・・・ 教えてください! 条件は ユーザーが値を入力すること 計算をする 分岐を使うこと 繰り返しを使うこと 結果を表示する 私がやってエラーになっているプログラムです /* kadai.c */ #include <stdio.h> main() { int seisu, gokei,handan; gokei=0; printf("整数を入力して下さい\n"); scanf("&d", &seisu); handan=seisu%3; if(handan=0) for(seisu=1; seisu<=10;) { seisu=seisu+3; gokei=seisu+gokei; printf("合計=%d\n",gokei); } else printf("できません\n"); return 0; }

  • プログラミングの間違いを…

    度々の似たような発言、大変申し訳ありません。お許し下さい。 もう1つ実行が上手く出来ないプログラムがある事を忘れていました。以下のプログラムについても、まだまだ未熟な私には間違っている箇所が全く分からないので、C言語プログラミング熟練者の方々、どうか指摘して下さると有り難いです。宜しくお願い致します。 ●for文の2重ループを使い、入力された星の行数に対して、下図のような表示になるようなプログラム。なお、このプログラムでは、中のループで表示するスペースの数を変え、その後にアスタリスクを表示している。 星の行数を入力してください。 6 *  *   *    *     *      * (1)整数型変数のi,j,noを宣言する (2)“星の行数を入力して下さい。”と表示し、入力された値をnoに読み込む (3)for文により、カウンターiが1からnoまで、(4)、(6)の処理を繰り返す (4)for文により、カウンターjが1からi未満まで、(5)の処理を繰り返す (5)半角スペース1つ(“ ”)を表示する (6)半角のアスタリスクを表示し、改行する #include <stdio.h> main(void) {   int i,j,no;   printf("星の行数を入力して下さい。\n");   scanf("%d",&no);   for(i=1;i<=no;i++){     for(j=1;j<i;i++){       printf(" \n");     }     printf("*");     printf("\n");   } }

  • プログラミング関係で

    プログラミングで次の問題をどうすればいいのかわかりません。 教えてください 1.配列に次のデータが格納されており、 2,-8,5,-4,6,5,7,-3,-9,-1 奇数、偶数、負の数がそれぞれいくつあるかを数え、表示するプログラムを作成してください。 2.任意の整数Xを入力し、Xの階乗の結果を表示するプログラムを作成しなさい。ただし、Xの階乗の計算は別関数で行い、入力と結果の表示はmain関数で行うようにすること。

  • C言語のプログラミングです

    #include<stdio.h> main() { int ip,amt; ip=1; amt=0; while(ip!=0){ if(0 == ip % 2){ printf("値を入力してください>"); } else{ amt += ip; printf("%d" , amt); } } printf("偶数の総和は%dです",amt); return 0; } を作成したのですが、上手く実行されませんでした。 「入力された値が偶数の時のみ総和に加えるプログラム」になるように、初心者にもわかるように解説していただけませんか?

  • c言語のプログラミングについて聞きたいのですが

    自分は課題で「10人分の名前と点数を入力して降順に並び替える」というプログラムを作ろうとしているのですが、なかなかうまくいきません。一応↓の形までできたのですがなぜか数字が変になります。 どうしてか教えていただけないでしょうか。 #include<stdio.h> int main(void) {     int i,j;     int tensu[10][3];     char namae[10][6]; for(i=0;i<10;i++){ printf("名前の入力>>"); scanf("%s",&namae[i]); printf("点数の入力>>"); scanf("%d",tensu[i]); } printf("名前   点数\n"); for(j=0;j<10;j++) { printf("%s ",&namae[j]); printf("%10d\n",tensu[j]); } return 0; } それとポインタ?みたいなのもよく理解できず、点数で降順にしたあとに点数を使って名前を並び替えるのかなと思うのですがそれもよくわかりません。 どなたか教えてください

  • プログラミングについて

    以下のプログラムをコンパイル、実行しようとするとコアダンプと表示されてしまいます。 おそらく配列がうまくいっていないというのは察したのですが、どううまくいっていないのかがわかりません。 原因を教えていただきたいです。 このプログラムは、Nを入力し、0~100までの乱数をN個表示させるものです。 配列を使っているのは、このプログラムが完成したのち、改良してその乱数同士を計算するプログラムにしたいためで、その途中段階でした。 環境は、Cygwinです。 ―――以下ソースコード――― #include <stdio.h> #include <math.h> #include <stdlib.h> int main(void){ int i,N; double u[N]; int ransu; printf("Define N : \n"); //得たい乱数の数を設定 scanf("%d",&N); for(i = 0; i < N; i++) { ransu = rand() % 101 ; //0~100までの乱数を得る u[i] = (double) ransu; printf("%.0f ", u[i]); } printf(" \n"); return 0; } 教えていただける方、いらっしゃいましたら教えていただきたいです。よろしくお願いします。