配列の要素を昇順または降順に応じて異なる行に出力しようとしています。私は配列を持っています: a [] = {3,5,6,8,4,2、-1,3,6,5,4,1,3}; printArr(a、sizeof(a)、indexStart)メソッドを呼び出した後、出力は次のようになります。ここ 配列をcで昇順と降順に異なる行に印刷する方法は?
3568
842-1-3
-36
6541
13
は私のコードです:ここ
void printArr(int *a, int size, int index){
int i=index;
if(i==size)
return;
printf("%d",a[i]);
if(a[i]<a[i+1]){
while(a[i]<a[i+1] && i<size){
printf("%d",a[i+1]);
i++;
}
printf("\n");
}
else{
while(a[i]>a[i+1] && i<size){
printf("%d",a[i+1]);
i++;
}
printf("\n");
}
printArr(a,size,i);
}
は私のメイン:
int main()
{
int a[] = {3,5,6,8,4,2,-1,-3,6,5,4,1,3};
printArr(a,13,0);
return 0;
}
私はそれを実行したとき(CodeBolcksは)私は、次の入力を取得:
3568
842-1-3
-36
6541
1370
最後に70 から来る? 私は、Linux(ターミナル)でそれをコンパイルするとき、私は、次を得る:
終わりに32767から来たの3568
842-1-3
-36
6541
1332767
?コードを修正するにはどうすればよいですか? 私はループと再帰を使用する必要があります。
'printArr(、はsizeof(A)、indexStart)等
修正;' 'のsizeof(A) ' - >'はsizeof(A)/はsizeof(* A) ' – BLUEPIXY