• ベストアンサー

C言語で分からないことがあり、投稿しました。

C言語で分からないことがあり、投稿しました。 ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算するプログラムをfor文を使って書け。利用者が範囲外の数値を入力した場合、「値が範囲内にありません」などのエラー表示を行え。ただし、ユーザ定義の関数を1つ使うこと。(ここではfunc1に統一) もしよろしければ、アドバイスいただけると幸いです。

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

  • ベストアンサー
回答No.6

丸投げに対しては手厳しいです。少なくても自身の努力を明示して下さいね。 #include <stdio.h> int func1(int); int main(void) { int n; printf("整数値は? "); scanf("%d", &n); if (n < 2 || n > 100) printf("値が範囲内にありません。\n"); else printf("総和は %d です。\n", func1(n)); return 0; } int func1(int n) { int i, sum = 0; for (i = 1; i <= n; i++) sum += i; return sum; }

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

その他の回答 (5)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.5

for で無限ループを組めってことかもよ>#2.

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

> で計算できるからfor文は不要ですよね? 数学的にはそうでしょうけど、この場合、加算代入を使わせようとしているんだと思いますよ。

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

こんばんは。 わからないところをピンポイントで絞ってください。 それともちゃんと動くコードをすべて教えてくれ という丸投げの質問でしょうか?

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

>ユーザから2から100までのいずれかの整数を受け取り、1からその数までの総和を計算するプログラムをfor文を使って書け。 問題の趣旨が不明なのですが、整数1からnまでは等差数列なので、その和は (2 + (n -1))*n/2 で計算できるからfor文は不要ですよね? そうすると、入力の所をfor文にせよと言うことなのかな? 通常は、do while 文を使うと思うのですが、確かにおかしな問題ですね。

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

で、これの何が分からないのでしょうか?

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

関連するQ&A

  • C言語

    以下の流れにそってプログラムを書いてみましょう。 ある数値を渡されると、その数値の 2 乗を求め、その値を return する関数 func_pow を作る。 main 関数において、1 から 10 までの数値の 2 乗を func_pow 関数を呼び出して求め、それぞれの値とその合計を表示する。 この問題文がいまいち分かりません・・・。解き方を教えていただけたらうれしいです。

  • c言語で大きな値の階数を求めたいのですが

    c言語で関数を用いてn!を求めるプログラムを作ったのですが、 nの値が大きくなると0という値になってしまって正しい値が出てきません。 プログラムをどの様に修正したらきちんとnの値が大きくなっても 正しく値が表示されるでしょうか? ソースはこちらです。 #include <stdio.h> int func(int i); int func(int i){ if(i == 0) return 1; else return (i*func(i-1)); } void main(){ printf("%d",func(90)); /*90!を求める*/ } よろしくお願いします。

  • C言語初心者です。

    C言語初めて壁にぶち当たりました。下の問題がとけません。よろしくお願いします。 標準入力から整数値を4個,int型の配列へ読み込んで,これかの値を大きい順に配列上で並び替え,出力するプログラムを作成してください。ただし,for文の2重ループを必ず使用してください。

  • c言語 配列

    関数の中で複数の値を配列で返したいのですが,どうすればいいでしょう? 配列を関数に渡す時にはアドレスが渡されるので,ポインタと同様関数内で値を変えればmain関数の値も変わるのではないかと思ったのですが,上手くいきません. 知りたいのは,main関数の中の配列(できれば2次元配列)の値を他の関数から値を変更する方法です.下のプログラムはためしに書いてみたものです.質問を理解するうえで役立てば幸いです. #include<stdio.h> void func(double aaa[][3] ,double bbb[]); void main(void){ double array_a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; double array_b[3]={0}; func(array_a,array_b); } void func(double aaa[][3] ,double bbb[]) { int i,j; for (i=0;i<3;i++) { for (j=0;j<3;j++) { bbb[i]=bbb[i]+aaa[i][j]; } } }

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

    C言語のプログラムについて 3桁の自然数の中で、自分自身を含めた約数が奇数になるものがいくつあるかを求めるプログラムを作りたいのですが、swich文を使って、6通りの方法で出そうとしていまして、 while 文、 for文、 do while文に加え、 for文のを、1つの関数として独立させたもの、 さらに、for文のを重ループ部分のそれぞれのループに対応して、2つの関数として独立させたもの、 そして、この2つの関数のどちらともをループを用いずに再帰呼び出しを用いたもの の6通りで出したいのですが、swich文を使うところは自力でできたのですが、あとの6つそれぞれのプログラムの組み方がわかりません。 教えていただけないでしょうか?ややこしい書き方をしてすいません・・・。

  • 至急で、C言語の問題で解答解説お願いします。

    1実数を3つ(a,b,c)を読み込み3辺とする三角形ができるか判定(d(d-a)(d-b)(d-c)>0のとき三角形となる)しできなければ、三角形ではありません!というメッセージを表示し、できる場合は以下のヘロンの公式を用いて三角形の面積を求めるプログラムをC言語で答えてください。d=(a+b+c)/2 s=√{d(d-a)(d-b)(d-c) 2maxの整数値(≧1)をキーボードから入力し、その値に対応した図形を出力するプログラムをC言語で答えてください。 例 max1 max2 max3 * ** *** * ** *** * ** *** ** *** *** 3整数nをキーボード入力しnの値に応じて以下の図形を表示するプログラムをc言語で答えてください。 n=3 n=4 n=5 3 4 5 45 56 67 678 789 890 0123 1234 56789 4整数n(≧0)を入力し歯科の計算を実行するC言語プログラムを答えてください。2つの自然数nとmを読み込みn個の中からm個を取り出すときの組み合わせの数を計算せよ。ただし、n!を計算する関数long fact (int n)を定義し必ずそれを用いること。 5 1つのscanfで2つの10進数を入力し8進数と16進数で表示するプログラムをC言語で答えてください。 6 実数aを入力し少数第1位で四捨五入する関数g(a)をマクロ定義で入力した値の少数第1位を四捨五入して出力するプログラムをC言語で答えてください。 7 4つの実数w,x,y,zを読み込みその最大値を出力するプログラムをC言語で答えてください。ただし、2つの実数の大きいほうを求める関数 double my may (double x,double y)を定義し、その関数を用い、if文を用いないでc言語で答えてください。

  • C言語で。。。。。

    C言語のプログラミングの勉強をしているのですが、 5.4のような小数点以下ありの数値の整数値を表示させる関数ってありますか??ネットを探してみてもよく分からなくて困っています(><)よろしくお願いします。

  • C言語 関数

    int型整数値の四乗値を返す関数int power4(int x)を作りたいのですが… int i; puts("整数を入力してください:") for (i = 0; i < 10; i++) {         printf("%d\n",i*i*i*i); } このようにすれば多分四乗になるとおもうのですが、 この場合、範囲がi<10のように指定されてしまいます。 どのようにすれば範囲に関係なく四乗の値が求められるのでしょうか? C言語初心者で、まだ基本的なものしか勉強していないのですが、 どなたかアドバイスよろしくお願いします。 (作り方は二通りあって、factorialを使う方法と上のように単純に4回かける方法があるようです)

  • C言語での関数の引数の受け渡しについて

    C言語での関数の引数の受け渡しについて教えてもらいたいのです。 char *p=Goo;  というポインタpがmain関数で定義され、このポインタpをある関数 void func(・・・) に渡すことは出来ますか? つまりポインタを実引数として扱うことはできるのかという事ですが・・・ int p=10; とかだったら、 void func(int test) の関数には、main関数で func(p) で仮引数testにわたせると思うんですが・・・ もし出来るようでしたら、関数の渡し方と定義の記述を教えてください。 どうか宜しくお願いします。

  • C言語によるガンマ関数の記述

    今、C言語を用いてガンマ関数を計算する方法を模索中でです。 理想的にはガンマ関数の引数に数値を入れたら戻り値を返すというのがいいのですがそうもうまくいかないと思います。 そこで以下のような形で整数の場合と非整数の場合で作ることを考えています。しかし、引数が整数のときはわかるのですが、非整数のときがわかりません。どうしたらよいでしょうか。 以下に関数の概要を掲載します。 ==========関数の概要=========== 関数名:Gamma(x) 戻り値:double 引数:x[double] 1)引数が0より大きい整数(1,2,3...)のとき   階乗の自己回帰文を使用して計算 2)引数が0より大きい非整数の場合 ==========▲ここまで==========