华为机试(明明的随机数)C语言
程序员文章站
2022-03-06 08:22:23
...
完整的代码:
#include<stdio.h>
//先排序了在去重
void sortSelect(int a[],int n);
void quChong(int a[],int n);
int main(){
int str[1000];
int n;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&str[i]);
}
sortSelect(str,n);
quChong(str,n);
}
return 0;
}
void sortSelect(int a[],int n){
int t;
for(int i=0;i<n-1;i++){
for(int j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[j];
a[j]=a[i];
a[i]=t;
}
}
}
}
void quChong(int a[],int n){
int index=1;
int b[n];
b[0] = a[0];
for(int i=1;i<n;i++){
if(a[i] != a[i-1]){//如果当前遍历的元素和前一个元素不相等
b[index++] = a[i];//存到b中
}
}
for(int i=0;i<index;i++){
printf("%d\n",b[i]);
}
}
难点:
1.在准备机试的时候,一定要准备一个排序算法,我选择的是简单选择排序算法,手动模拟排序的过程熟练的掌握。
2.理解数组去重的算法,手动的模拟可以加深对代码的理解。
3.注意输入的方法。
4.这个题还是有一定的难度的,多花时间理解。