关于删除数组中重复元素
c
#include
int main() {
int a[100];
int n;
int x = 0; int j = 0; int flag = 1;
scanf_s("%d", &n);
for (int i = 0; i < n; i++) {
scanf_s("%d", &x);
flag = 1;
for (int q = 0; q < n; q++) {
if (x == a[q]) {
flag = 0;
break;
}
}
if (flag) {
a[j] = x;
j++;
}
}
for (int k = 0; k < j; k++) {
printf(" %-d", a[k]);
}
return 0;
}
希望各位能帮本人看看(为啥csdn还有屏蔽字)
#include <stdio.h>
int main() {
int a[100];
int n;
int x = 0;
int j = 0;
int flag = 1;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &x);
flag = 1;
for (int q = 0; q < j; q++) {//这里应该是q < j不是q < n
if (x == a[q]) {
flag = 0;
break;
}
}
if (flag) {
a[j] = x;
j++;
}
}
for (int k = 0; k < j-1; k++) {
printf("%d ", a[k]);
}
printf("%d",a[j-1]);
return 0;
}
#include <stdio.h>
void prin(int t[],int n)
{
for(int j=0; j<n; j++)
printf("%d ",t[j]);
printf("\n");
}
int Remove_duplication2(int t[],int len)
{
int count=0;
int flag=0;
while(flag==0)
{
flag=1;
for(int i=0; i<len; i++)
{
for(int j=0; j<len; j++)
{
if(i!=j&&t[i]==t[j])
{
int tem=i>j?i:j;
for(int k=tem;k<len-1;k++)
{
t[k]=t[k+1];
}
len--;
flag=0;
}
}
}
if(flag==1) break;
}
return len;
}
int main()
{
int t[]= {1,1,5,1,2,2,3,4,5,5,5,5,5,5,6,7,8,8,1,2,9};
int len=sizeof(t)/sizeof(int);
//int t2[len];
printf("原数组:\n");
prin(t,len);
int len2=Remove_duplication2(t,len);
printf("去除重复元素后的数组:\n");
prin(t,len2);
return 0;
}
https://blog.csdn.net/weixin_44882124/article/details/123328278
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!