ジャストコード[最初に、最後印刷する] array
にあなたの関数でarray[size]
を変更:
#include <stdio.h>
int print(int array[],int size) {
if(size>0) { // changed this too
printf(" %d",array[size-1]);
return print(array,size-1); // note this carefully.
}
}
int main() {
int arr[]={1,4,6,9,0,3};
print(arr, sizeof(arr)/sizeof(int)); // changed to correct size [sizeof is generic than just mentioning in the size]
return 0;
}
コード[第1〜第印刷します最後]
#include <stdio.h>
int print(int array[],int size) {
if(size>0) { // changed this too
print(array,size-1); // note this carefully.
printf(" %d",array[size-1]);
}
}
int main() {
int arr[]={1,4,6,9,0,3};
print(arr, sizeof(arr)/sizeof(int)); // changed to correct size [sizeof is generic than just mentioning in the size]
return 0;
}
OPのリクエストでは、それが最初から最後まで働く方法のイオン。
数学的説明: print (arr,size)
をサイズ配列に0を出力する関数とします。 今print(arr,size+1)
は print(arr,size); printf(arr[size])
になります。
直感的に言えば、最初から最後まで印刷する場合は、下位の要素を最初に、上位の要素を最後に印刷する必要があります。
元のコードが表示されていれば、n番目の要素が最初に印刷されていたため、逆の印刷が行われていました。
へ
変更この、コードスニペットの上に、あなたは配列に要素を渡します。それを変更し、すべてを整えるようにしてください。 – qwr
推奨されるすべての警告が有効になっている場合は、コンパイラの警告が表示されます。なぜあなたはそれを無視するのですか? – Olaf