質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

1093閲覧

最小値を表示したいのですが...

sho36515363

総合スコア13

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/02/21 03:34

最小値を表示したいのですが3つ以上の整数を入力すると最小値が1になってしまいます。
どうしたらいいですか?
コード

####include <stdio.h> int min_of( const int v[], int n) { int i; int min = v[0]; for( i = 1; i < n; i++){ if( v[i] < min ){ min = v[i]; } } return min; } int main(void) { int n, i, min1; int min[i] ; printf("何個整数を入力しますか:"); scanf("%d", &n); for( i = 0; i < n; i++){ printf("[%d]:", i + 1); scanf("%d", &min[i]); } min1 = min_of(min, n ); printf("最小値 = %d\n", min1); return 0; } ``**``` ```**

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんにちは。

もし、gccをお使いなら、下記でいけると思います。

C

1// int min[i] ; 2 3 printf("何個整数を入力しますか:"); scanf("%d", &n); 4 int min[n] ;

元のプログラムでは、int i; int min[i];となってますが、min[i]を宣言した時iは初期化していないため、C言語の規格上はこの時点では不定値です。ただし、gccはこのような時0に初期化するようです。従って、int min[0];と宣言したのと同じ意味になるため、メモリが確保されておらず、何が起こるか分からない状態なのです。

なお、このように実行時に決まる要素数で配列を定義する方法はVLAと呼ばれています。VLAはC言語の標準規格で規定されてますが、C++の標準規格には含まれません。また、残念ながらVC++はサポートしていませんので、使う場合は要注意です。

投稿2017/02/21 03:47

編集2017/02/21 03:49
Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sho36515363

2017/02/21 19:18

ありがとうございます。解決しました。
guest

0

C

1int main(void) 2{ 3 int n, i, min1; 4 int min[i] ; // <- i=0(大抵)なのでおかしい

投稿2017/02/21 03:39

編集2017/02/21 03:39
ozwk

総合スコア13528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問