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

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

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

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

Q&A

解決済

3回答

2912閲覧

C言語で配列の最小値が正常に出力されない

the

総合スコア112

C

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

0グッド

0クリップ

投稿2019/04/02 07:49

下記のコードは配列の最小値を求めるものです。
配列の最小値である1を出力したいんですが、実行毎に出力値が変わるため、正常に出力されずに困っています。
何が原因でしょうか?

出力例)
最小値=-498794315
最小値=1
最小値=-848953317

C

1#include <stdio.h> 2 3int main(void) { 4 int i,min; 5 int int_arr[] = {1, 2, 10, 5, 3, 4, 6, 8, 9, 7}; 6 7 min = int_arr[0]; 8 for (i = 0; i <= 10; i++) 9 { 10 if(min > int_arr[i]) { 11 min = int_arr[i]; 12 } 13 } 14 printf("最小値=%d\n", min); 15 return 0; 16}

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

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

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

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

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

guest

回答3

0

ベストアンサー

C

for (i = 0; i <= 10; i++)
{
if(min > int_arr[i]) {
...

int_arr[10] にアクセスしてしまっていますね。
int_arrは10要素なので、アクセスできるのは int_arr[9] までです。

投稿2019/04/02 07:54

LouiS0616

総合スコア35660

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

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

0

他の回答にあるように配列のサイズを超えた部分にアクセスしてしまっています。
つぎのように書くと、int_arr の宣言で要素数を変更しても、他の箇所を変更せずに済みます。

c

1#include <stdio.h> 2 3int main(void) { 4 int int_arr[] = {1, 2, 10, 5, 3, 4, 6, 8, 9, 7, 0}; 5 int arr_size = sizeof(int_arr) / sizeof(int); 6 7 int min = int_arr[0]; 8 for (int i = 0; i < arr_size; i++) { 9 if (min > int_arr[i]) { 10 min = int_arr[i]; 11 } 12 } 13 printf("最小値=%d\n", min); 14 return 0; 15}

投稿2019/04/02 22:29

編集2019/04/04 22:27
katoy

総合スコア22324

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

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

0

ループの回数が1回多いです。

投稿2019/04/02 07:55

ttyp03

総合スコア16998

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問