プログラミングで二番目に大きい数を表示する
指定された個数(100個以下)だけ整数を読み込んで,読み込んだ整数の一覧,それらのうちの最大値と二番目に大きい値とを表示するプログラムを作成。最大となる値が複数入力された場合も正しく処理する。
このプログラムで入力した数字が全部同じ時、二番目に大きい値はありません。と表示したいのですが、どのようにしたらいいのかわかりません。教えてください。あとこのプログラムで最大値と二番目に大きい値出せたのですが、念のため問題ないか確認お願いします。
#include <stdio.h>
#define NUMBER 100 /*整数の個数の上限*/
int main(void)
{
int i;
int num;
int kazu[NUMBER];
int max;
int sec;
printf("整数は何個ですか:");
scanf("%d", &num);
puts("整数を入力してください。");
for(i = 0; i<num; i++){
printf("%3d個目:",i+1);
scanf("%d", &kazu[i]);
}
printf("入力された整数は%d個で、\n",num);
for(i=0;i<num;i++)
printf("%d ",kazu[i]);
printf("です。\n");
sec = max = kazu[0];
for(i=1; i<num; i++){
if(kazu[i]>max) max=kazu[i];
}
for(i=0;i<num;i++){
if(kazu[i]>max){
sec=max;
max=kazu[i];
}else if((max>kazu[i]) && (kazu[i]>sec))
sec=kazu[i];
}
printf("最大値は%dです。 \n",max);
printf("二番目に大きい値は%dです。\n", sec);
return(0);
}