#include
int main(){
int a[10]={1,2,2,3,4,3,4,5,1,5};
int n=0,i,j,c,k;
for(i=0;i<10-n;i++){
c=a[i];
for(j=i+1;j<10-n;j++){
if(a[j]==c){
for(k=j;k<10-n;k++){
a[k]=a[k+1];
n++;
}
}
}
for(i=0;i<10-n;i++){
printf("%d",a[i]);
}
return 0;
}
}
运算思想不太明白,麻烦大家帮帮忙解答一下
这段代码实现将数组a[] 中元素去重,重复元素只保留一个,有错误修改如下,供参考:
#include <stdio.h>
int main() {
int a[10] = { 1,2,2,3,4,3,4,5,1,5 };
int n = 0, i, j, c, k, l;
for (i = 0; i < 10 - n; i++) {
c = a[i];
for (j = i + 1; j < 10 - n; j++) {
if (a[j] == c) {
for (k = j; k < 10 - n; k++)
a[k] = a[k + 1];
n++;
//printf("i=%d ,a[j]==c:", i);
//for (l = 0; l < 10 - n; l++) {
// printf("%d ", a[l]);
//}
//printf("\n");
}
}
printf("i=%d:", i);
for (l = 0; l < 10 - n; l++) {
printf("%d ", a[l]);
}
printf("\n");
}
return 0;
}
可以按F10
在适当的地方插入printf语句和getchar语句,输出当前所有相关变量的变量名和对应变量的值并暂停执行,按任意键继续执行,帮助理解程序的执行过程。
可以学习一下怎么断点调试的,这个也是必学的