2016-03-19 11 views
-1

配列が昇順であるか昇順でないかを調べることは、配列が2,3,4,6の場合は昇順で表示され、それが3,2,5,6であれば、昇順ではないと表示されます。配列が昇順であるか昇順でないかの配列

私はカントが昇順と私は問題がforループやif文のどこかにあるが、私はそれを

#include <iostream> 
using namespace std; 
int ascending(int x[], int npts); 

int main() 
{ 
    int number[10]; 
    int num; 
    cout<<"How many numbers would you like to enter? (max = 10) "; 
    cin>>num; 

    for(int i = 0; i<num; i++) 
    { 
     cout<<"Enter number "; 
     cin>>number[i]; 


    } 
    int asc = ascending(number, num); 

    cout<<asc; 
} 

int ascending(int x[], int n) 
{ 
    int count = 0; 
    for(int i = 0; i<n-1; i++) 
    { 
     if(x[i]<x[i + 1]) 
     count++; 

     if(count <= n - 1) 
     return 1; 
     else 
     return 0; 
    } 
} 
を修正する方法がわからない知らない平均0を表示するためのプログラムを取得するように見えるんだ

+1

中カッコをチェックしてください。デバッガを使ってコードを実行することも役に立ちます。 – gnasher729

答えて

0
int ascending(int x[], int n) 
{ 
    int i = 0; 
    Do 
    { 
     if(x[i]> x[i + 1]) 
     return 0; 
     i++; 
    } while (i < n-1); 

    return 1; 
} 
+1

このコードは質問に答えるかもしれませんが、このコードが質問に答える*理由*および/または*方法*に関する追加の文脈を提供することで、長期的な価値が向上します。 –

1

あなたの問題は昇順の関数であり、最初の繰り返しの後に1を返しています。数値のシーケンスが昇順であるかどうかを判断するには、それらのすべてを反復処理する必要があります。しかし、いつでも昇順でない数字が見つかった場合は、直ちに0を返すことができます。 0を返さずに安全にすべてを反復する場合、シーケンスが昇順であることを知るよりも

int ascending(int x[], int n) 
{ 
    for(int i = 0; i<n-1; i++) 
    { 
     if(x[i]>=x[i + 1]) 
      return 0 
    } 
    return 1 
} 
+0

ジョシュ、あなたはすべてのケースでゼロを返しています。訂正したいかもしれません。 –

関連する問題