当前位置:首页 » 编程语言 » 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;
}