#include<stdio.h>
void swa(int *, int *);
int main()
{
int i,j,arr[10];
arr[10]= (10,20,30,40,50);
printf("ascending order");
for(i=0;i<5;i++)
{
for(j=i+1;j<5;j++)
{
if (arr[i]<arr[j]);
swa(&arr[i],&arr[j]);
}
}
for(i=0;i<5;i++)
{
printf("%d",arr[i]);
}
return 0;
}
void swa(int *x,int *y)
{
int t;
t=*x;
*x=*y;
*y=t;
}
このコードは、出力にガベージ値を与えています。スワッピングにswa
という関数を使用してこのプログラムを変更するにはどうすればよいですか?配列を昇順に並べ替える私のプログラムはなぜガベージ値を生成するのですか?
で次のように見ることができます'swa'の代わりに。 – Pang
ソートを開始する前にガベージ値がないかどうかチェックしましたか?'arr [10]'は有効なインデックスではなく、思っているように配列全体を表現するものでもありません。 '(10,20,30,40,50)'は '50'に相当することにも注意してください。それは配列を初期化する方法ではありません。 @dasblinkenlightによる回答を参照してください。 –
言い換えれば、何かがコンパイルされても、それが実際に行うべきことを意味するわけではありません。 –