ページ 1 / 1
C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月05日(日) 04:03
by はなお
C言語初心者です。
自然数を 2 つ(x, y )入力してx < y であれば x から y までの合計値,
x < y でなければ y から x までの合計値を求めるプログラムを作ろうとしています。
main 文は以下のようにしました。
コード:
int main(void){
int x, y;
printf("数値を入力してください:");
scanf("%d", &x);
printf("数値を入力してください:");
scanf("%d", &y);
printf("%d から%d までの和は%d です¥n", x, y, mysum(x,y));
}
関数は mysum を定義しようと思いますが、この後どうすればいいか教えていただけますか。。
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月05日(日) 07:27
by みけCAT
関数 mysum を定義すればいいと思います。
- 関数 mysum の定義を、関数 main の定義があるファイルの関数 main の定義より前の部分に書く
- 関数 mysum の定義を、関数 main の定義があるファイルの関数 main の定義より後ろの部分に書き、同じファイルの関数 main の定義より前の部分に関数 mysum の宣言(プロトタイプ宣言)を書く
- 関数 mysum の定義を、関数 main の定義があるファイルとは別のソースファイルに書き、別途関数 mysum の宣言(プロトタイプ宣言)のみが書かれたヘッダファイルを作成し、関数 main の定義があるファイルからこのヘッダファイルを #include する
などの方法が考えられます。
オフトピック
はなお さんが書きました: ↑1年前
コード:
printf("%d から%d までの和は%d です¥n", x, y, mysum(x,y));
}
最後に改行ではなく、文字 U+00A5 と n を出力する仕様で本当にいいのかなあ?
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月05日(日) 07:38
by みけCAT
関数 mysum を実装する前に、まずテストケース (入力とそれに対する期待する出力の組) を作っておく、という方法もあります。
例えば
入力1
出力1
コード:
数値を入力してください:数値を入力してください:5 から5 までの和は5 です¥n
入力2
出力2
コード:
数値を入力してください:数値を入力してください:1 から5 までの和は15 です¥n
入力3
出力3
コード:
数値を入力してください:数値を入力してください:10 から5 までの和は45 です¥n
入力4
コード:
2147483647 2147483647
出力4
コード:
数値を入力してください:数値を入力してください:2147483647 から2147483647 までの和は2147483647 です¥n
のような感じかな。
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月09日(木) 01:52
by box
お好きなように改変してかまいません。
なお、main文ではなくてmain関数ね。
コード:
#include <stdio.h>
void inputData(int *a, int *b)
{
printf("1個目の自然数を入力:"), scanf("%d", a);
printf("2個目の自然数を入力:"), scanf("%d", b);
}
int mysum(int *x, int *y)
{
int a = *x, b = *y, t, i, sum = 0;
if (*x >= *y) {
t = a, a = b, b = t;
}
for (i = a; i <= b; i++) {
sum += i;
}
*x = a, *y = b;
return sum;
}
int main(void)
{
int x, y, s;
inputData(&x, &y);
s = mysum(&x, &y);
printf("%dから%dまでの和は%d\n", x, y, s);
return 0;
}
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月11日(土) 02:03
by box
a, bとかいう中間的な変数はいらんかったね。
コード:
#include <stdio.h>
void inputData(int *a, int *b)
{
printf("1個目の自然数を入力:"), scanf("%d", a);
printf("2個目の自然数を入力:"), scanf("%d", b);
}
int mysum(int *x, int *y)
{
int t, i, sum = 0;
if (*x >= *y) {
t = *x, *x = *y, *y = t;
}
for (i = *x; i <= *y; i++) {
sum += i;
}
return sum;
}
int main(void)
{
int x, y, s;
inputData(&x, &y);
s = mysum(&x, &y);
printf("%dから%dまでの和は%d\n", x, y, s);
return 0;
}
これで十分でしょう。たぶん。
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月17日(金) 19:38
by naohiro
ChatGPTに以下のようなものを
コード:
#命令書:
あなたは、プログラマーです。
以下の制約条件と入力文をもとに、C11のプログラムを出力してください。
#制約条件:
・関数名とクラス名はキャラメルケースとする。
・関数名は処理内容がわかりやすい名称にする。
・エラー処理や例外処理をする。
・条件分岐もコメントをする。
・関数の中身の処理をコメントする。
・#defineは、大文字で始まるスネークケースとする。
・struct、classのメンバーは m_ で始まるとする。
・処理内容をDoxygen方式でコメントを書く。
#入力文:
自然数を 2 つ(x, y )入力してx < y であれば x から y までの合計値,
x < y でなければ y から x までの合計値を求めるプログラムを作ろうとしています。
#出力文:
以下は、C11のプログラムの例です。入力された2つの自然数x, yがx < yであれば、xからyまでの合計値を計算します。そうでなければ、yからxまでの合計値を計算します。
コード:
/**
* @brief 2つの自然数の合計値を計算する関数
*
* @param[in] x 自然数1
* @param[in] y 自然数2
* @return xからyまでの合計値、またはyからxまでの合計値
*/
int CalculateSum(int x, int y)
{
// xがyより大きい場合、xとyを入れ替える
if (x > y) {
int temp = x;
x = y;
y = temp;
}
// xからyまでの合計値、またはyからxまでの合計値を計算する
int sum = 0;
for (int i = x; i <= y; i++) {
sum += i;
}
// 計算結果を返す
return sum;
}
int main(void)
{
int x, y;
// 自然数xとyを入力する
printf("自然数xを入力してください: ");
if (scanf("%d", &x) != 1) {
// 入力エラーの場合、エラーメッセージを表示して終了する
fprintf(stderr, "入力エラー: 自然数を入力してください\n");
return 1;
}
printf("自然数yを入力してください: ");
if (scanf("%d", &y) != 1) {
// 入力エラーの場合、エラーメッセージを表示して終了する
fprintf(stderr, "入力エラー: 自然数を入力してください\n");
return 1;
}
// x < yの場合、xからyまでの合計値を計算する
if (x < y) {
int sum = CalculateSum(x, y);
printf("%dから%dまでの合計値は%dです。\n", x, y, sum);
}
// x >= yの場合、yからxまでの合計値を計算する
else {
int sum = CalculateSum(y, x);
printf("%dから%dまでの合計値は%dです。\n", y, x, sum);
}
return 0;
}
以上が、自然数を2つ入力し、条件に応じてxからyまでの合計値またはyからxまでの合計値を計算するC11のプログラムの例です。
Re: C言語 自然数x,yの合計値を求めるプログラム
Posted: 2023年2月17日(金) 20:44
by あたっしゅ
東上海美「
> 関数名とクラス名はキャラメルケースとする。
『キャラメルケース』でなく『キャメルケース』みみ。
https://ja.wikipedia.org/wiki/%E3%82%AD ... C%E3%82%B9
> キャメルケース(英: camel case)は、複合語をひと綴りとして、要素語の最初を大文字で
> 書き表すことをいう。\すっごーい/キャメルケースとは、大文字が「らくだのこぶ」のように
> 見えることからの命名である。例えば、「camel case」をキャメルケースで書き表すと、
> 「camelCase」(または「CamelCase」)となる。
」