题目:
删除数组中重复出现的数据
键盘输入一个长度为10的int型数组,删除数组中重复出现的数据
如,原数组是: 1 4 2 3 4 1 2 5 5 9,输出:1 4 2 3 5 9
运行结果:
代码解析:
第一步:声明、定义
#include<stdio.h> int main() { int A[10],i,j; return 0; }
第二步: 输入
#include<stdio.h> int main() { int A[10],i,j; printf("请输入数据:"); for(i=0;i<10;i++) { scanf("%d",&A[i]); } return 0; }
第三步:实现删除
for(i=0;i<9;i++) { if(A[i]!=0) //需要一个数做中间数,而输入的数中可能存在这个中间数,要排除它 { for(j=i+1;j<10;j++) //寻找相同的数 { if(A[i]==A[j]) //如果相同 { A[j]=0; //则将这个数变为零 } } } }
第四步:输出
for(i=0;i<10;i++) { if(A[i]!=0) //如果这个数不为零 { printf("%d ",A[i]); //则打印出这个数,从而实现删除 } }
完整代码:
#include<stdio.h> int main() { int A[10],i,j; printf("请输入数据:"); for(i=0;i<10;i++) { scanf("%d",&A[i]); } for(i=0;i<9;i++) { if(A[i]!=0) { for(j=i+1;j<10;j++) { if(A[i]==A[j]) { A[j]=0; } } } } for(i=0;i<10;i++) { if(A[i]!=0) { printf("%d ",A[i]); } } return 0; }