當前位置:首頁 » 編程語言 » c語言中有重復的數據
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言中有重復的數據

發布時間: 2023-01-07 23:27:13

c語言中重復數據的刪除

首先對數據進行排序,然後使用循環操作就可以刪除重復數據!

❷ c語言刪除重復的數據

問題不是很明白,不過 數組從下標0開始所以j應該從0開始,而不是1
應該為:
for (j=0;j<i;j++)
{
l=0;//循環後要初始化!!!注意這里
for (;l<=j;l++)
{
if (shuzu[l] == shuzu[j])
{
IsAdd=1;
break;
}
}
if (IsAdd == 0) {
newshuzu[j] = shuzu[j];
}
}

❸ c語言刪出重復數據問題

問題不是很明白,不過 數組從下標0開始所以j應該從0開始,而不是1
應該為:
for (j=0;j<i;j++)
{
l=0;//循環後要初始化!!!注意這里
for (;l<=j;l++)
{
if (shuzu[l] == shuzu[j])
{
IsAdd=1;
break;
}
}
if (IsAdd == 0) {
newshuzu[j] = shuzu[j];
}
}

❹ c語言求重復數字問題

#define N 100//可以修改這個數,定義一個足夠長的數組
#include<stdio.h>
#include<string.h>
int main()
{
int a[N],i,j,m;
scanf("%d",&m);//輸入m個數
getchar();//接收Enter鍵
for(i=0;i<m;i++)
scanf("%d",a+i);
getchar();
for(i=0;i<m;i++)
for(j=i;j<m;j++)
if(a[i]==a[j]&&a[j]!=-1)//把相同的數置為-1,輸出時就不要輸出了,
//也可以重新定義一個數組復制過去
a[j]=-1;
for(i=0;i<m;i++)
if(a[i]!=-1)
printf("%2d",a[i]);
putchar('\n');
return 0;
}

❺ c語言統計數據時怎麼排除重復數據

如果是統計字元串個數總數的話,你不是已經獲取這些重復數據的數量count了嗎,你只需要定義一個臨時變數sum,
在每一次循環結束後,讓
sum
=
sum
+
(count
-1)
就好了(count是str出現的總次數,-1是至少留一個,不至於全部都去掉)。最後減去這個sum就行。
如果是是要刪除這些重復的字元的話,那就比較費勁了,畢竟數組的刪除是比較坑爹的,建議換成鏈表。而且你這個刪除還不是一個兩個的事兒。鏈表做刪除很容易!

❻ 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語言使得重復的數據僅出現一次

剛剛寫的,設數組有10個數,參考程序如下:
#include
int
main()
{
int
p[10];
int
k,i;
printf("輸入10個數字,以空格隔開\n");
for
(int
i=0;
i<10;
i++)
{
scanf("%d",&p[i]);
}
for
(i
=
0;
i<10;
i++)
{
for
(k
=
9;
k>=0;
k--)
{
if
(i
!=
k)
{
if
(p[i]==p[k])
{
k--;
break;
}
}
}
if
(k>=0)
{
printf("元素重復\n");
break;
}
}
if
(i==10)
{
printf("元素無重復\n");
}
return
0;
}

❽ c語言統計數據時怎麼排除重復數據

如果是統計字元串個數總數的話,你不是已經獲取這些重復數據的數量count了嗎,你只需要定義一個臨時變數sum, 在每一次循環結束後,讓 sum = sum + (count -1) 就好了(count是str出現的總次數,-1是至少留一個,不至於全部都去掉)。最後減去這個sum就行。
如果是是要刪除這些重復的字元的話,那就比較費勁了,畢竟數組的刪除是比較坑爹的,建議換成鏈表。而且你這個刪除還不是一個兩個的事兒。鏈表做刪除很容易!

❾ 用C語言實現查找數組中重復的數據,刪除重復數據後輸出數組.

從第一個元素開始一次和其後元素比較,如果相等,先用一個變數記下這個位置,後面的元素全部向前移動,再從剛才記下的位置繼續比較,直到比較完畢,也就是合並完了所有的相同元素。再輸出數組就行了。

❿ c語言刪除數據中重復的值

int temp=0;
int same=0;
for(int i=0;i<num;i++)
{
for(int j=0;j<=temp;j++)
{
if(strTemp[i].compare(strReturn[j]))
{
same=1;
}
}
if(same==1)
{
same=0;
strReturn[++temp]=strTemp[i];
}
}
最後的strReturn 保存的就是你要的東西,簡單寫了一下
有些細節 你自己琢磨一下吧