㈠ 請高手們幫我編一個數組中去掉重復數的程序(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語言關於去重和排序
建議你先排序,再去重。這樣檢查後一個元素與前一個元素相同則刪除,否則留著,多簡單!~