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

c語言如何找重復的數字

發布時間: 2022-04-17 15:21:42

『壹』 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;

(1)c語言如何找重復的數字擴展閱讀:

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

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

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


『貳』 請問怎麼用C語言統計一個數組中不同元素它們重復的個數啊

用C語言統計一個數組中不同元素重復的個數:

public class Test {

public int count(int[] array) {

int len = array.length;

for (int i = 0; i < array.length - 1; i++) {

for (int j = i + 1; j < array.length; j++) {

int num = array[i];

if (array[j] == num) {

// 重復,數組總長度減1

len--;

i++;

}

}

}

return len;

}

public static void main(String[] args) {

// 測試數據:總共是9個不同的元素,按照升序排好,其中有重復出現的元素。

int[] array = new int[] { 1, 1, 2, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9 };

System.out.println(new Test().count(array));

}

}

(2)c語言如何找重復的數字擴展閱讀:

C程序中函數特性

C程序中函數的數目實際上是不限的,一個C程序中必須至少有一個函數,而且其中必須有一個並且僅有一個以main為名的函數,這個函數稱為主函數,整個程序從這個主函數開始執行。

函數內部究竟是如何工作的,外部程序是不知道的。外部程序所知道的僅限於輸入給函數什麼以及函數輸出什麼。函數提供了編製程序的手段,使之容易讀、寫、理解、排除錯誤、修改和維護。

『叄』 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;

}

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

『肆』 怎樣用C語言判斷一個整數中有沒有重復的數

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

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

『伍』 C語言求簡化,是找出重復數字。

不要只是考慮數學演算法,也要充分利用編程語言的特性啊
思路就是建立10000個元素的數組,輸入數字填到對應下標的元素中去,那麼只要發現已經填過的元素,必然就是重復的元素了。
根本不需要循環比較(每個元素的比較沒有任何循環),演算法時間復雜度是最小的
這也是hash表的基本思想

for(i=0;i<b;i++) //////////////////循環輸入後面b個數字
scanf("%lld",&a[i]);

long long av[10000]; ////////// 建立一個N元素的數組用於存放元素 N=10000
memset(av, 0, 10000 * sizeof(long long)); // 數組元素全部清零

for(i=0;i<b-1;i++) //////////////////一個一個數字分別填充到數組中
{
if(av[a[i]] != 0) /////////////// 對應下標的數組已經被填充,說明這個數字是重復的
{
d = 1;
break;
}
}

if(d==1) ////////////因為只能有一個重復的,如果已輸出過,結束這次循環
break;

『陸』 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)

『柒』 編寫程序輸入n個整數,查找並刪除重復的數字,列印結果。(c語言)

#include<stdio.h>
#include<malloc.h>
intmain(void)
{
int*a,n,i,j,k;
scanf("%d",&n);
a=(int*)malloc(sizeof(int)*n);
for(i=0;i<n;++i)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;++i)
{
for(j=i+1;j<n;++j)
{
if(a[j]==a[i])
{
for(n--,k=j;k<n;k++)
{
a[k]=a[k+1];
}
}
}
}
for(i=0;i<n;++i)
{
printf("%d",a[i]);
}
free(a);
return0;
}

『捌』 c語言,判斷一個整數中是否出現重復數字

#include <stdio.h>

#include<stdbool.h>

int main()

{

long int num,temp;

int i=1;

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

scanf("%ld",&num);

temp = num; //獲取所輸入整數的位數。

while(temp/10>0){

i+=1;

temp = temp/10;

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

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

bool a[i+1]; //初始化數組中所有元素為0

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

a[j] = 0;

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

<span style="color:#ff0000;">do{

int n = num % 10;

if(a[n]==1){

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

break;

}

a[n] = 1;

num /= 10;

}while(num);</span>

if(num==0){

printf("沒有重復。 ");

}

return 0;

}

(8)c語言如何找重復的數字擴展閱讀

使用其他的方法判斷一個整數中是否出現重復數字:

int x;

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

scanf("%d",&x);

bool bs[10]={0};

do {

int n=x%10;

if ( bs[n] ==1 )

{

printf("重復了 ");

break;

}

bs[n] = 1;

x/=10;

}

while (x);

if ( 0==x )

{

printf("沒有重復 ");

}

return 0;

『玖』 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;
}

『拾』 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;
}