No.4ベストアンサー
- 回答日時:
/* 配列から2番目に多きい値を求める */
#include <stdio.h>
int main(void){
int data[]={ 254, 14, 36};
int i,j,c;
int size=sizeof(data)/sizeof(int);
for(i=0;i<size;i++){
c=0;
for(j=0;j<size;j++){
if(data[i]<data[j]) /* 自分より要素の大きいものを数える */
c++;
}
if(c==1)/* 自分より大きい要素は1つしかない、つまり自分は2番 */
break;
}
printf("2番目に大きい値は、%d です\n",data[i]);
return 0;
}
No.3
- 回答日時:
ちょっと変わった方法として
#include <stdio.h>
int main(void)
{
char buf[BUFSIZ];
int a[3];
int i,mid;
while(fgets(buf,BUFSIZ,stdin) != 0) {
sscanf(buf,"%d %d %d",&a[0],&a[1],&a[2]);
i = 0;
if (a[0] <= a[1]) i++;
if (a[1] <= a[2]) i += 2;
if (a[2] <= a[0]) i += 4;
switch(i) {
case 2:
case 5:
mid = a[0];
break;
case 1:
case 6:
mid = a[2];
break;
default:
mid = a[1];
}
printf("mid = %d\n", mid);
}
}
No.2
- 回答日時:
質問の回答だけであれば素直に比較処理でいいのでは
ないでしょうか。
表示関数は、printf();でも何でもいいとしますね。
役割的に比較と表示は別なのでメソッドに分けます。
また等しい数がないと仮定しますね。
void CalcurateSecLargeNumber( void )
{
if ( a < b )
{ // aよりbが大きい場合
if ( b < c )
{ // bよりcが大きい
表示(b);
}
}
else
{ // bよりaが大きい場合
if ( a < c )
{ // aよりcが大きい
表示(a);
}
}
表示(c); // cよりaが大きい場合
}
// 但し、3個の中でというのではなく将来的に拡張
// する予定があるのであれば、例えばn個の中で2番
// 目に大きい数字を求める。
// または、n個の中でm番目に大きな数字を求める。
// 求めた数字を表示する。
// というのであれば全く違ってきます。
No.1
- 回答日時:
いくつかやり方がありますが、並べ替えの方法で。
1番目のマスからA,B,Cとします。
1.AとBを比べ左が大きくなるように入れ替えます。
2.BとCを比べて入れ替えます。
この状態では1マス目と2マス目がどちらかが最大でどちらかが2番目です。
3.1マス目と2マス目を比べて交換します
これで2番めのマスが2番目に大きいです。
これで駄目なら、IF分で場合わけしていくしかありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
【C++】関数ポインタの使い方
-
パスカルのピラミッドを作りた...
-
ラップ関数とはどんなものですか?
-
「{ } で囲むだけ」は正しい?
-
このプログラミング誰か教えて...
-
acceptをalarmでタイムアウトさ...
-
リッチテキストへの行ごとの背...
-
c言語の配列を使ってサイコロを...
-
if と配列の組み合わせ
-
C#のコンパイルエラーCS0120に...
-
C言語に関する質問です
-
C言語でDxlibを使って3x3の奇数...
-
newの使い方について。
-
(int *)の意味
-
atoi関数の自作
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数桁10進数の*桁目だけを抽出...
-
「指定されたキャストは有効で...
-
C言語での引数の省略方法
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語 エラーの原因がわからな...
-
ラップ関数とはどんなものですか?
-
【C++】関数ポインタの使い方
-
if と配列の組み合わせ
-
(int *)の意味
-
ColorをRGBで指定する方法
-
未解決の外部シンボル _printf...
-
構造体の勉強中です 合計点の高...
-
商と剰余を同時に求める(C言語)
-
C言語で分からないところがあり...
-
式は定数値が必要です」という...
-
C言語での奇数の和
-
std::set<int> で、ある値が何...
-
課題でつまってます・・・
-
int16_t の _t は何?
-
比較回数と交換回数表示について
おすすめ情報