當前位置:首頁 » 編程語言 » c語言找重復

c語言找重復

發布時間: 2022-12-18 22:26:03

A. c語言一個數組中重復的數字

#include<stdio.h>
int main(void)
{
int i, n, a[100];
int j, temp;
printf("輸入元素的個數:");
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &a[i]); //循環輸入n個數
for (i = 0; i < n; i++) //循環判斷數組中每一個數
{
for (j = i + 1; j < n; j++) //判斷a[i]後邊的數是否和a[i]相等
{
if (a[i] == a[j])
{
for (temp = j; temp < n; temp++)
a[temp] = a[temp + 1]; //將a[j]後面的元素全往前移一個位置
j--; //a[j+1]取代a[j]位置,為使下次從a[j+1]開始查找,j減一(為使j保持不變)
n--; //數組長度減一
}
}
}
printf("剩餘元素個數: %d\n", n);
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}

B. C語言,查找數組里重復出現的數字;

檢查一個數中每位的數字是否重復,
n%10來得到當前最小位的值,
每次迭代都n/=10 ,使得數字都向右移動一位
n>0來檢測是否已經檢測完了。
比如123這個數;
n%10
==
3,說明3已經出現,所以digit_seen[3]
==
true了,如果檢測到digit_seen[3]
==
true,說明已經有3這個數字了,就重復了,所以就直接跳出循環,此時n!=0,再通過檢測n就可以判斷了。
n/=10來將數字向右移動一位,這個時候n
==
12
繼續前兩步,直到n=0(因為任何小於等於9的整形數除以10都是0)

C. C語言,查找數組里重復出現的數字;

//如果這題目是在oj上,請去掉所有的注釋
#include<stdio.h>
intmain()
{
//用數組下標1~104表示輸入的數字
//用數組每個元素的值表示該下標對應的元素輸入次數
inta[105]={0},i,n,ni,max;
scanf("%d",&n);
max=a[0];
for(i=0;i<n;i++)
{
scanf("%d",&ni);
a[ni]++;
if(max<a[ni])
max=a[ni];
}
for(i=104;i>0;i--)//想想為什麼倒著比較
{
if(a[i]==0)continue;
if(max==a[i])
{
printf("%d%d ",i,a[i]);
break;
}
}
return0;
}

D. c語言查找並輸出重復字元串

//#define_CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidstringsort(char(*p)[1000],intm)//排列字元串,長的字元串在前面,短的在後面。
{
inti,j;
charc[1024];
for(i=0;i<m-1;i++)
{
for(j=0;j<m-1-i;j++)
if(strlen(p[j])<strlen(p[j+1]))
{
strcpy(c,p[j]);
strcpy(p[j],p[j+1]);
strcpy(p[j+1],c);
}
}
}
intsubstr(char*str,char*p)//判斷p是否是str的字串,是的話返回1,不是返回0
{
inti,j;
for(i=0;str[i];i++)
{
for(j=0;str[i]==p[j]&&p[j];i++,j++);
if(p[j]==0)
{
return1;
}
if(j!=0)
{
i--;
}
}
return0;
}
intmain(void)
{
charstr[1000]="abc1243128129a343abc";
charss[1024]={0};//放子串的臨時數組
charss1[1000][1000];//所有長度大於1的子串放入這里
intm=0;//子串的個數
inta[1024]={0};//統計子串的個數的數組
inti,j;
for(i=0;str[i];i++)
{
memset(ss,0,1024);
intk=0;
ss[k++]=str[i];
for(j=i+1;str[j];j++)
{
ss[k++]=str[j];
strcpy(ss1[m++],ss);
}

}
//上面這段程序是找出字元串長度大於1的所有子串

stringsort(ss1,m);//把這些字串按長度放入ss1中,長的在前面,短的在後面

for(i=0;i<m;i++)
{

char*p=str;
while((p=strstr(p,ss1[i]))!=NULL)
{
a[i]++;
p=p+strlen(ss1[i]);
}
}//這段程序是找到每一個子串出現的次數,並放入a數組中

for(i=0;i<m;i++)
{
intflag=0;//標記符
for(j=0;j<i;j++)
{
if(substr(ss1[j],ss1[i])&&a[j]==a[i])//比如abc出現了三次,而bc出現三次,那麼只輸出abc的次數
{
flag=1;
}

}
if(a[i]>1&&flag==0)
printf("%s:%d ",ss1[i],a[i]);
}

//system("pause");

return0;
}
//寫了一晚上,真是不容易啊

E. C語言的bsearch函數遇到重復元素怎麼找出來

這個理論上使用的是二分查找的方法,一般的二分查找,要求數組是升序的,最後的返回值也是一個指針,所以如果有重復值的話是找不出來的,需要你去用一般二分查找去判定左值和右值,才能找到重復區間。

F. C語言,判斷某整數中是否存在重復數字.怎麼寫

#include<stdio.h>

#include<stdbool.h>

intmain()

longintnum,temp;

inti=1;

printf("請輸入一個整數:");

scanf("%ld",&num);

temp=num;

//獲取所輸入整數的位數。

while(temp/10>0){

i+=1;

temp=temp/10;

//列印所輸入整數的位數,並定義一個bool型數組。

printf("該數為%d位數。\n",i);

boola[i+1];

//初始化數組中所有元素為0.

for(intj=0;j<i+1;j++){

a[j]=0;

//判斷是否有重復的數字。

<spanstyle="color:#ff0000;">do{

intn=num%10;

if(a[n]==1){

printf("出現重復了。\n");

break;

a[n]=1;

num/=10;

}while(num);</span>

if(num==0){

printf("沒有重復。\n");

return0;

(6)c語言找重復擴展閱讀:

return 表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。 return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。

如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。

如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。


G. C語言編程,輸入兩組三位數,找出重復數字的代碼

#include"stdio.h"

main()

{

inti,j,k,l;

inta[6]={0};

intb[6]={0};


printf("請輸入第1組3個數 ");

scanf("%d",&i);

printf("請輸入第2組3個數 ");

scanf("%d",&j);


a[0]=i/1%10;

a[1]=i/10%10;

a[2]=i/100%10;


a[3]=j/1%10;

a[4]=j/10%10;

a[5]=j/100%10;


printf("重復的是: ");


i=0;

j=0;

k=0;

l=0;

for(i=0;i<6;++i)

{

for(j=i+1;j<6;++j)

if(a[i]==a[j])

{

for(k=0;k<l;++k)//遍歷b,是否已記錄

{

if(a[i]==b[k])

break;

}

if(k==l)//沒有,則加入,長度+1

b[l++]=a[i];

}

}

for(i=0;i<l;++i)

{

printf("%d",b[i]);

}

printf(" ");

return0;

}

請把分給我,謝謝,祝玩的愉快

H. 在c語言中輸入數組兩個數組,查找重復元素並輸出怎麼寫啊

可以一次讀入N個數據。可以考慮以回車結束讀入的一組。
參考如下寫法:
#include "stdio.h"
#define Max 100
int X[Max]={0,},Y[Max]={0,};

int main()
{
int i=0,j=0;
int a,b;
char c=0;

printf("輸入第一個數組(以空格分開,回車結束)");
while((c!='\n'))
scanf("%d%c",X+i++,&c);

c=0;
printf("輸入第二個數組(以空格分開,回車結束)");
while((c!='\n'))
scanf("%d%c",Y+j++,&c);

for(a=0;a<i;a++)
for(b=0;b<j;b++)
if(X[a]==Y[b])
printf("%d \t",X[a]);

return 0;
}

I. 怎樣用C語言判斷一個整數中有沒有重復的數

用C語言判斷一個整數中有沒有重復的數的具體操作步驟如下:

1、編寫頭函數:#include <stdio.h>。

熱點內容
cf彈道腳本 發布:2025-01-26 15:36:40 瀏覽:54
我的世界花錢買的伺服器 發布:2025-01-26 15:34:50 瀏覽:89
php環境部署 發布:2025-01-26 15:28:09 瀏覽:17
python實現svm 發布:2025-01-26 15:24:25 瀏覽:381
易語言寫ip全局代理伺服器 發布:2025-01-26 15:04:01 瀏覽:668
gm命令在哪個文件夾 發布:2025-01-26 15:03:12 瀏覽:307
javadate類 發布:2025-01-26 14:58:54 瀏覽:352
領航s1配置怎麼樣 發布:2025-01-26 09:58:10 瀏覽:763
公司區域網搭建伺服器搭建 發布:2025-01-26 09:16:56 瀏覽:433
android裁剪圓形圖片 發布:2025-01-26 09:05:56 瀏覽:411