C 交换数组函数的两个元素
你能告诉我这有什么问题吗?为什么交换功能不起作用C 交换数组函数的两个元素,c,C,你能告诉我这有什么问题吗?为什么交换功能不起作用 void swap(int a[], int b, int c) { int temp = a[b]; a[b] = a[c]; a[b] = temp; } void bubble1 (int a[], int N){ int i; for(i=0;i<N-1;i++){ if(a[i]>a[i+1]){ swap(a,i,i+1);
void swap(int a[], int b, int c) {
int temp = a[b];
a[b] = a[c];
a[b] = temp;
}
void bubble1 (int a[], int N){
int i;
for(i=0;i<N-1;i++){
if(a[i]>a[i+1]){
swap(a,i,i+1);
}
}
}
void main() {
int N = 11;
int a[12]={5,3,12,4,25,10,14,35,2,8,13};
bubble1 (a,N);
int i;
for(i = 0; i < N; i++){
printf("%d\n",a[i]);
}
}
void swap(int a[],int b,int c){
内部温度=a[b];
a[b]=a[c];
a[b]=温度;
}
void bubble1(int a[],int N){
int i;
对于(i=0;ia[i+1]){
互换(a、i、i+1);
}
}
}
void main(){
int N=11;
inta[12]={5,3,12,4,25,10,14,35,2,8,13};
气泡1(a,N);
int i;
对于(i=0;i
如果我不使用交换功能,并在“bubble”功能中手动进行交换,它就会工作。但是,如果我使用交换,它将不起作用,即使它完全相同。我做错了什么
int temp = a[b];
a[b] = a[c];
a[b] = temp;
简单的输入错误,您将分配给
a[b]
两次。第二个应该是a[c]
哈哈,我觉得很惭愧。斯利登不会的。但是,仔细检查、重写并仔细考虑以避免出现类似这样的错误。尝试在一张纸上单步执行swap()
,您很快就会发现问题。不要在size use swap(int a[],size\t size)中使用额外变量,并通过#define array_LENGTH(a)(sizeof(a)/sizeof(a)计算您正在使用的数组的大小[0]))a是数组