⑴ c语言中数组中删除相同的数
在第一个空中填i,第二个空中填a+j.
当找到相同的
元素
时,将位置记录到j的初始,并将后继元素依次前移覆盖相同的元素.
祝学业进步.
⑵ c语言如何删除数组中重复元素
1
/*
2
思路:
3
将字符串存入字符数组a中,设将值拷贝给数组b,遍历b的每个元
4
素,与a中的每个元素比较,有相同则b中对应元素置为-1。
5
输出b中不为-1的元素。
6
*/
7
#include<stdio.h>
8
#include<string.h>
9
char
a[100],b[100];
10
void
Del(int
index,int
len){
11
for(int
i=0;i<len;i++){
12
if(index
==
i)
continue;//下标相同即同一个元素不比较,进入下一个循环
13
if(b[index]
==
a[i])
b[index]=-1;//有相同元素,置值为
-1
14
}
15
}
16
int
main(){
17
gets(a);
18
memcpy(b,a,sizeof(a));//将a的元素拷贝给b
19
int
len=strlen(a);//求a的长度
20
for(int
i=0;i<len;i++){
21
Del(i,len);
22
}
23
for(int
i=0;i<len;i++){//输出b中非-1的元素
24
if(b[i]!=-1){
25
printf("%c",b[i]);
26
}
27
}
28
return
0;
29
}
⑶ C语言数组去除重复内容
用两个游标控制,可以方便的实现,参考代码如下:
#include<stdio.h>
#define SIZE 12
int a[SIZE]={0,0,0,1,2,2,3,4,4,5,5,44};
int main()
{
int i=1,j=0;
while(i<SIZE)
if(a[j]!=a[i]){
++j;
a[j]=a[i];
++i;
} else ++i;
for(i=0;i<=j;++i){
printf("%d",a[i]);
if(i<j)printf(",");
}
return 0;
}
⑷ C语言,删除数组中的重复元素
#include <stdio.h>
#define N 1000
#define FLAG 0x80000000 /*特殊标记,用最小的负数表示*/
void main( )
{
int r[N], length, i, j;
scanf("%d", &length);
for(i = 0; i < length; i++)
scanf("%d", &r[i]);
for(i = 0; i < length - 1; i++)
{
if(r[i] != FLAG)
{
for(j = i + 1; j < length; j++)
if(r[j] == r[i]) r[j] = FLAG; /*遇到重复值,则先用特殊标记覆盖它*/
}
}
for(i = 0; r[i] != FLAG; i++); /*找到第一个特殊标记*/
for(j = i + 1; j < length;) /*删除数列中的特殊标记*/
{
if(r[j] != FLAG) r[i++] = r[j++];
else j++;
}
length = i; /*修改删除重复值后的数列的长度*/
for(i = 0; i < length; i++)
printf("%-4d", r[i]);
}
⑸ C语言中怎么删除数组中相同的数字
#include <stdio.h>#include <stdlib.h>#include <time.h> int simplification(int a[], int n) { int i,j,k; for(i = 0; i < n - 1; ++i) { for(j = i + 1; j < n; ++j) { if(a[i] == a[j]) { for(k = j; k < n - 1; ++k) a[k] = a[k + 1]; --j; --n; } } } return n;} int main() { int a[30],i,n = 30; printf("原数组:\n"); srand((unsigned)time(NULL)); for(i = 0; i < n; ++i) { a[i] = rand()%10; if(i && i % 10 == 0) printf("\n"); printf("%d ",a[i]); } printf("\n"); n = simplification(a,n); printf("去除相同元素后:\n"); for(i = 0; i < n; ++i) { if(i && i % 10 == 0) printf("\n"); printf("%d ",a[i]); } printf("\n"); return 0;}
⑹ c语言有n个整数,去除其中重复的数字
#include<stdio.h>
#defineM1024
voidmain(){inti,j,n,nn,a[M],b;
scanf("%d",&n);if(n>M)n=M;
for(i=0;i<n;i++)scanf("%d",&a[i]);
for(i=nn=1;i<n;i++){
for(j=b=0;j<nn;j++)if(a[i]==a[j]){b=1;break;}
if(b==0){a[nn]=a[i];nn++;}
}
for(i=0;i<nn;i++)printf("%d",a[i]);printf(" ");
}
⑺ c语言问题数组去重
#include<stdio.h>
intmain()
{
intm,n,i,cur,pre;
scanf("%d",&m);
while(m--)
{
scanf("%d",&n);
scanf("%d"液枝,&cur);
pre=cur;
printf("%d",cur);
for(i=1;i<n;i++)
{
scanf("%d",&cur);
if(cur!=pre)
{
pre=cur;
升埋和printf("%d",cur);
}
}
printf(" ");
吵盯}
return0;
}
⑻ C语言删除数组重复数字
#include "stdio.h"
#include "string.h"
void main()
{
int i,k=1,j=10,a[10]={4,4,4,4,5,4,9,9,9,10};
for(k=i=1;i<10;i++)
{
for(j=0;j<k;j++)
{
if(a[j]==a[i]) break;
}
if(j==k) a[k++]=a[i];
}
printf(" ");
for(i=0;i<k;i++)
{
printf(" %d ",a[i]);
}
(8)消除数组里面重复的数C语言扩展阅读:
printf()函数的调用格式为:printf("<格式化字符串>",<参量表>)。
其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。
参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。
比如:
int a=1234;
printf("a=%d ",a);
输出结果为a=1234。
scanf()是C语言中的一个输入函数。与printf函数一样,都被声明在头文件stdio.h里,因此在使用scanf函数时要加上#include<stdio.h>。
int scanf(const char*restrict format,...);
函数scanf()是从标准输入流stdin(标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
⑼ C语言问题 把一个数组中的重复元素去掉
1、首先,点击桌面上的VC++6.0,打开软件。
⑽ c语言中怎样将数组中的所有相同的数都删除
可以先排个序,然后相邻元素比较,相同的就通过后边的向前移动来去掉, 最后参用链数的数组这个插入删除方便且时间少。