㈠ 请高手们帮我编一个数组中去掉重复数的程序(c语言)
#include "stdio.h"
void main()
{int array[10] ,n_array[10];
int n=10; //n为数组中元素个数。
for(int i=0;i<n;i++)
scanf("%d",&array[i]);
n_array[0]=array[0];
int cnt=1;
for( i=1;i<=n-1;i++)
{ int sign =1; //设置标志位,用于检查某数字是否在数组中出现过;
for(int j=0;j<=cnt-1;j++)
{ if(array[i]==n_array[j]) {sign=0; break;}
}
if(sign==1)
{ n_array[cnt]=array[i]; cnt++;}
}
for(i=0;i<cnt;i++)
{
printf("%d ",n_array[i]);
}
}
㈡ 删除重复字符 C语言
先排序,后去重
#include<stdio.h>
char*func(char*s)
{
chart,*p,*q;
inti,j;
for(i=0;s[i];++i)
{
for(j=i;s[j];++j)
{
if(s[i]>s[j])
{
t=s[i];
s[i]=s[j];
s[j]=t;
}
}
}
for(p=s,q=s+1;*p;q++)
{
if(*p!=*q)
{
*++p=*q;
}
}
returns;
}
intmain(void)
{
chars[]="";
puts(func(s));
return0;
}
㈢ 如何去除重复字符c语言
#include<stdio.h>
int main(void)
{
char s[100];
int i, j, n, k;
printf("请输入一串有重复字符的字符串:\n");
gets(s);
for (n = 0; s[n] != '\0'; n++) ;
for (i = 0; i < n; i++)
{
for (j = k = i + 1; j < n; j++)
if (s[j] != s[i])
s[k++] = s[j];
s[k] = '\0';
}
printf("去掉重复字符后结果为:\n");
puts(s);
}
㈣ C语言数组去重算法
#include <stdio.h> #include <malloc.h> using namespace std ; bool isRepeat(int *arr,int len,int elem) { for(int i = 0 ; i < len ; i++) if(arr[i]==elem) return true ; return false ; } int* delRepeat(int *arr,int len) { int *tar = (int*)malloc(sizeof(int)) ; int temp ; unsigned char i ; unsigned char j = 0 ; tar[j] = arr[0] ; for(i=1;i<len;i++) { if(!isRepeat(tar,j+1,arr[i])) { tar = (int*)realloc(tar,sizeof(int)*(j+2)) ; tar[++j] = arr[i] ; } } return tar ; } int main() { int a[5] = {1,2,2,3,3} ; int *b = delRepeat(a,5) ; return 0 ; }
㈤ 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语言删除重复数据
程序的基本思路是把输入的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除
#include<stdio.h>
void main()
{
char a[100],b[100];
//定义两个字符组,a[100]用来接收输入的字符串,b[100]用来存储不重复的字符
int pa=0,pb=0,i,flag;
scanf("%s",a);
//输入字符串到a[100]中,用scanf读入到a[100]中会自动在a[100]中字符串结束的地方加上'\0'
for(pa=0;a[pa]!='\0';pa++)
//for循环结束的条件是a[pa]==0,也就是从a[100]字符组中读取一个字符,直到没有
{
flag=1;
//flag是个标志符,当flag==1时,说明这个字符(下句中的a[pa])是第一次出现,应该加入到b[100]中
//如果flag==0,说明这个字符(下句中的a[pa])重复了,不应该加到b[100]中
for(i=0;i<pb;i++) if(b[i]==a[pa]) flag=0;
//把a[100]中读取的字符a[pa]与b[100]中的所有字符进行比较,如果b[i]==a[pa]
//说明这个字符已经在b[100]中了,也就是重复字符了,所有将flag=0,不能加入b[100]中
//如果a[pa]与b[100]中的所有字符都不相等,说明这个字条是第一次出现,应该加到b[100]
if(flag)
{
b[pb]=a[pa];pb++;
}
//如果flag==1,则将a[pa]这个字符加入到b[100]中,然后将pb加1
}
b[pb]='\0';
//当所有的不重复的字符都加入到b[100]中时,将b[100]中字符结束的地方加'\0',也就是b[pb]='\0'
//因为字符串都是民'\0'结尾的,所以加上这句
printf("%s\n",b);
//输出b[100]中的字符串,也就是删除过重复字符之后的了
}
㈦ c语言编程:删除一批正整数中重复的值
#include "stdio.h"
int main()
{
int a[10],i,j,k;
printf("输入10个整数: ");
for(i=k=0;i<10;i++)
{
scanf("%d",&a[k]);
for(j=0;j<k;j++)
if(a[k]==a[j])k--;
k++;
}
printf("去重以后的数: ");
for(i=0;i<k;i++)
printf("%d ",a[i]);
printf(" ");
return 0;
}
㈧ c语言字符串怎么去除重复的字符
程序的基本思路是把输入漏猜的字符串放到a[100]字符组中,然后把a[100]中所有不重复的字符添加到b[100]中,间接完成对字符串中的重复字符的删除
㈨ C语言删除一个整型数组里面重复的元素
利用双重循环,将每个值依次与其后面的值相比较,如果有相同的则删除该元素即可。
删除时,可以使用将后面元素依次向前移动一位,同时总长度减一的方式。
参考代码如下:
intremove_repeat(int*a,intl)
{
inti,j,k;
for(i=0;i<l;i++)
{
for(j=i+1;j<l;j++)//对后面每个元素比较,去重。
{
if(a[j]==a[i])//发现重复元素。
{
for(k=j+1;k<l;k++)//依次前移一位。
a[k-1]=a[k];
l--;//总长度减一。
}
}
}
returnl;//返回新的长度值。
}
㈩ C语言关于去重和排序
建议你先排序,再去重。这样检查后一个元素与前一个元素相同则删除,否则留着,多简单!~