交換數組的值我不清楚如何解決。根據索引
main()
{
int a[10],n,i,j,temp1,max,temp[10];
clrscr();
scanf("%d",&n);
for (i = 0 ; i < n ; i++)
scanf("%d",&a[i]);
for (i = 0 ; i < n ; i++)
{
temp[1] = a[0];
temp[2] = a[temp[1]];
a[temp[1]] = 0;
temp[3] = a[temp[2]];
a[temp[2]] = temp[1];
temp[4]=a[temp[3] ];
a[temp[3]]=temp[2];
}
for (i = 0 ; i < n ; i++)
printf("%d",a[i]);
getch();
}
輸入:3
2 0 1
輸出
1 2 0
但更多的我沒有下架。
like input: 6
4 3 0 5 1 2
Output
2 4 5 1 0 3
邏輯: 採取的陣列等
i 0 1 2
a[i] 2 0 1
邏輯是a[i]
前進到數組的索引和數組值進行到它的索引。
a[0]=2 and index is 0
so after apply logic the element of a[2]=0
then
a[1]=0 so it goes to a[0]=1
and so on..
and also
apply it for "430512" to "245103"
您的邏輯不清楚。目前還不清楚預期產出是什麼。 –
這就完全不安全,就好像'a [i]'的值是像'100245'或其他一些大數字(或負數)那樣大的東西,你的邏輯(據我瞭解)就會失敗。你可能需要一個非常大的數組,否則你將不得不限制用戶的輸入。 –