ここから本文です

C言語で、4つの数字の中から大きい数字2つを表示するのにはどのようなプログラム...

アバター

ID非公開さん

2019/2/409:06:04

C言語で、4つの数字の中から大きい数字2つを表示するのにはどのようなプログラムを書けば良いですか?

閲覧数:
76
回答数:
4

違反報告

ベストアンサーに選ばれた回答

qwe********さん

2019/2/605:35:25

#include<stdio.h>
#define MM 4

int main(void)
{
int d[MM],i,j,t;

for(i=0;i<MM;i++){
printf("%d:==>",i+1);
scanf("%d",&d[i]);
}

for(i=0;i<MM-1;i++){
for(j=i+1;j<MM;j++){
if(d[i]<d[j]){
t=d[i];
d[i]=d[j];
d[j]=t;
}}}

printf("%d,%d\n",d[0],d[1]);

return 0;
}

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

2019/2/601:06:45

ライブラリでやってみる。C++ならよりすっきり書けるかも。

#include <stdio.h>
#include <stdlib.h>
int cmp(const int *a, const int *b)
    { return *a > *b ? -1 : *a < *b; }
int main(void) {
    int dat[4] = {2, 1, 3, 4};
    qsort(dat, (sizeof dat)/sizeof(dat[0]), sizeof(dat[0]),
        (int (*)(const void *a, const void *b))cmp);
    printf("%d %d\n", dat[0], dat[1]);
}

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

プロフィール画像

カテゴリマスター

ikt********さん

2019/2/515:32:02

興味本位で書いてみました。
もちろん、(先行ご回答にあるように)
・並べ替えて
・とりだす
方が、はるかに汎用な解決方法。


#include <stdio.h>

int main(void) {
    const int num[] = {1, 2, 4, 3};
    const int N = sizeof(num) / sizeof(*num);

    struct {int v1st, v2nd;} max = {num[0], num[0]};
    for (int i = 1; i < N; ++i) {
        if (max.v1st < num[i]) {
            max.v2nd = max.v1st;
            max.v1st = num[i];
        } else if (max.v2nd < num[i])
            max.v2nd = num[i];
        else
            ;
    }
    printf("%d, %d\n", max.v1st, max.v2nd);

    return 0;
}


実行結果:
$ gcc -Wall -o foo foo.c
$ ./foo
4, 3

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

luc********さん

2019/2/411:22:13

#include <stdio.h>
#define N 4
int main(void)
{
int num[N]={1,2,3,4};
int i,j,temp=0;
for(i=0; i<N; i++)
{
for(j=i+1; j<N; j++)
{
if(num[i]<num[j])
{
temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
}
for(i=0; i<2; i++)
printf("%d\n",num[i]);
return 0;
}

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる