2012-02-23 9 views
0

こんにちは私は入力の最高値と最低値を表示して、ループを中断し、最も低い数値として-99を表示しません。どんな助けも素晴らしいだろう。最高入力と最低入力の表示

int number; 
int largeNum = 0 ; 
int smallNum = 0; 

cout << "enter numbers" ; 

do 
{ 
cin >> number; 

if (number > largeNum) 
    largeNum = number; 

if (number < largeNum) 
    smallNum = number; 

if (number < smallNum) 
    smallNum = number; 

} while (number != -99); 



     cout << largeNum << endl; 
     cout << smallNum << endl; 
+1

これがどのように見えるように私は、コードを与えることはありません宿題。これを実現するには、C++の 'break'文を見てください。 – Asha

答えて

1

あなたはこれを行うことができます。問題のより良い解決策は、ソート使用することによる

do { 
    cin >> number; 

    if (number == -99) { 
     break; 
    } 

    if (number > largeNum) 
     largeNum = number; 

    if (number < largeNum) 
     smallNum = number; 

    if (number < smallNum) 
     smallNum = number; 

} while (true); 
+1

質問のような宿題の正確なコードを投稿しないようにしてください。 – Asha

+1

これは宿題であると思われるのはなぜですか?ユーザーが自分で何かを試していた可能性があることはかなり些細なことです。あなたが見ても、私は比較が行われている場所を変更しただけです。ユーザーは、ほとんどすべてを自分で行っています。 – vvnraman

+0

宿題の場合は、入力操作の適切な検証がないために、私はまだ失敗します。 –

0

を:

void main() 
    { 
    int array[100],n; 

    //get number of elements 
    cout<<"Enter number of elements: "; 
    cin>>n; 

    //get elements 
    for(int i=0;i<n;i++) 
    { 
int temp; 
    cout<<"Enter element to position "<<i<<" :"; 
    cin>>temp; 
//to break at -99 
    if(temp==-99) 
    break; 
    else 
    array[i]=temp; 

    } 

    //sort the elements in ascending order 
    for(int i=0;i<n;i++) 
    { 
    if(array[i]>array[i+1]) 
    { 
    int temp = array[i]; 
    array[i] = array[i+1]; 
    array[i+1] = temp; 
    } 
    } 

    //display smallesst and largest 

    cout<<"Smallest: "<<array[0]; 
    cout<<"Largest: "<<array[n-1]; 
    } 
+0

これは実際には不都合なストレージを使用するため、*悪い*解決策です。限られていても、問題が解決されているとは言えません。 – molbdnilo

+0

私はそれが最適化されたコードではないことに同意します。これはより良い理解のためです。原理を理解すると、いつでも最適化することができます。] –

+0

2つのforループなどを組み合わせて最適化することができます。しかし、私は実装者に残すことを好むだろう –

関連する問題