‘壹’ 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;
}