2016-10-20 7 views
-2

私はCプログラミング言語を学び始めているので、入力した3つの数値のうち2つの最大数値を減算するプログラムを書く必要があります。誰もこれで私を助けることができますか?Cプログラミング:3つのうち2つの最大値の減算を見つけよう

編集:申し訳ありませんが、私はまだ私が最も大きい番号を検索する方法を知っているが、私は他のものを見つけるするかどうかはわかりませんどのようにこのサイトの機能...

知りません。

#include<stdio.h> 
int main() 
{ 
    int a, b, c, d, max; 

    printf("Enter three numbers: "); 
    scanf("%d%d%d%d", &a, &b, &c); 
    max=a; 
    if (max<b) {max=b;} 
    if (max<c) {max=c;} 
    printf("the greatest number is %d\n", max); 


    return 0; 
} 
+4

何を試しましたか?これは "私のためにこのプログラムを書く" - サービスではなく、あなたの*コードに関する質問を助けることです。 – unwind

+2

ようこそスタックオーバーフロー!あなたはあなたの質問にいくつかのコードを入れる必要があります。あなたがすでにやったことを私たちに見せてください。 – vz0

+0

あなたはどんな問題に直面していますか? – JoulinRouge

答えて

1

あなたのような質問への回答は期待しないでください。これを試して。あなたは正の整数だけを扱っているという前提があります。負の整数も考慮する必要がある場合は、自分で行うことができます。あなたはこれが最高の解決策ではないことに注意してください。

#include <stdio.h> 

int main() { 
    int numbers[3]; 
    printf("Enter number 1: \n"); 
    scanf("%d", &numbers[0]); 

    printf("Enter number 2; \n"); 
    scanf("%d", &numbers[1]); 

    printf("Enter number 3: \n"); 
    scanf("%d", &numbers[2]); 

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

    int maximum_0 = 0; 
    int maximum_1 = 0; 

    int i; 


    for (i = 0; i < 3; i++) { 
     if (numbers[i] > maximum_0) { 
      maximum_0 = numbers[i]; 
     } 
    } 

    for (i = 0; i < 3; i++) { 
     if (numbers[i] > maximum_1 && numbers[i] < maximum_0) { 
      maximum_1 = numbers[i]; 
     } 
    } 

    printf("Result: %d\n", (maximum_0 - maximum_1)); 

    return 0; 
} 
+0

これは本当に私を助けません... :( –

+0

解答としてコード全体を提供してはいけません。変更する解決策の一部をOPに通知してください。 –

+0

@クロラムフェニコール、 – StoryTeller

0

//あなたがループ

#include<stdio.h> 
int main() 
{ 
    int a, b, c, d, max,min,result; 
    printf("Enter three numbers: "); 
    scanf("%d%d%d", &a, &b, &c); 
    if(a>b) 
    { 
     if(a>c) 
     { 
      max=a; 
      if(c>b) 
       min=c; 
      else 
       min=b; 

     } 
     else 
     { 
      max=c; 
      a=min; 
     } 
    } 
    else 
    { 
     if(b>c) 
     { 
      max=b; 
      if(a>c) 
       min=a; 
      else 
       min=c; 
     } 
     else 
     { 
      max=c; 
      min=b; 
     } 
    } 
    result=max-min; 
    printf("the greatest number is %d\n", result); 
    return 0; 
} 
+0

これは少し難解ですが、変数の正しい名前を付けていただきました。ありがとうございます。 –

+0

@chloramphenicolようこそ、私の解決策を答えとしてマークすることができます! ! – Anjaneyulu

+0

よろしくお願いします。 – Anjaneyulu

0

配列を使用して、あなたの値をソートするためにqsort関数を使用せずに初心者であるため、ここではそれがあります。以下のコードはあなたのためにこれを行います。配列の順番は、最初の要素が最小の番号になり、最後の要素が最大になるようになります。

#include<stdio.h> 

void sort(const void* d1, const void* d2) 
{ 
    int a = *(int*)d1; 
    int b = *(int*)d2; 

    if (a > b)return 1; 
    if (b > a)return -1; 
    return 0; 
} 

int main() 
{ 
    int abc[3]; 

    printf("Enter three numbers: "); 
    scanf("%d%d%d", &abc[0], &abc[1], &abc[2]); 

    qsort(abc, 3, sizeof(int), sort); 

    printf("%d\n", abc[2] - abc[1]); 

    while (1){} 

    return 0; 
} 
+0

ありがとう!これは私にとってはあまりにも進んでいますが、私が学ぶように私はそれを理解します。 –

関連する問題