プロが教える店舗&オフィスのセキュリティ対策術

大至急です。
5つのint型の値が入力される。この中で0を除いた最小値を実行例のように出力するプログラムを作れ。
実行例)
1: 10
2: 15
3: 0
4: 2
5: 5
2

実行例)
1: -1
2: 1
3: 0
4: 2
5: -4
-4
このプログラミングの書き方を教えてください。
わからなくて困っています。
分かる方よろしくお願いします。

A 回答 (1件)

#include <stdio.h>


#include <stdlib.h>

#define SIZE 5

int compare_int(const void *a, const void *b) {
 return *(int*)a - *(int*)b;
}

int main(void) {
 int array[SIZE];
 char s[3];
 for (int i = 0; i < SIZE; i++) {
  printf("%d: ", i + 1);
  scanf("%2s%*[^\n]%*c", s);
  array[i] = strtol(s, NULL, 10);
 }

 qsort(array, SIZE, sizeof(int), compare_int);

 printf("%d\n", array[0] == 0 ? array[1] : array[0]);

 return EXIT_SUCCESS;
}
    • good
    • 0
この回答へのお礼

ほんとにありがとうございます!

お礼日時:2021/11/15 22:09

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!