『壹』 c語言數組判斷是否有重復元素
這是方法定義,num是參數,在調用方法的時候會傳值的,參數值不是在方法里定義的。
『貳』 判斷數組內部重復元素除了嵌套循環還有什麼辦法 C語言
你這個代碼就是檢查有沒有重復元素,所以只要檢查到一旦有重復就應該退出循環;因為有一個重復是重復,有10個100個重復還是重復,所以一旦有了重復就沒有必要向下再做了。給你提供一個試試看行不行——
#include"stdio.h"
#include<stdlib.h>
intmain(intargc,char*argv[]){
int*q,i,j,k,n;
printf("Pleaseentern(intn>0)... n=");
if(scanf("%d",&n)!=1||n<1){
printf("Inputerror,exit... ");
return0;
}
if((q=(int*)malloc(sizeof(int)*n))==NULL){
printf("Applicationmemoryfailure... ");
return0;
}
printf("Pleaseenter%dintegers... ",n);
for(i=0;i<n;scanf("%d",q+i++));
for(k=i=0;i<n;i++)
for(j=i+1;j<n;j++)
if(q[i]==q[j])
k=j=i=n;
free(q);
printf(k?"Yes! ":"No! ");
return0;
}
運行樣例:
『叄』 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;
}
(3)判斷是否有重復的方法c語言擴展閱讀:
return 表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,由return後面的參數指定。 return通常是必要的,因為函數調用的時候計算結果通常是通過返回值帶出的。
如果函數執行不需要返回計算結果,也經常需要返回一個狀態碼來表示函數執行的順利與否(-1和0就是最常用的狀態碼),主調函數可以通過返回值判斷被調函數的執行情況。
如果函數名前有返回類型定義,如int,double等就必須有返回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值。
『肆』 怎樣用C語言判斷一個整數中有沒有重復的數
直接手打,沒有調試,你看看吧,思路很簡單
boolhehe(intsum)
{
inta[10]={0};//弄個數組,把0-9都存起來
//假設你的數字是num
while(sum)
{
ints=sum%10;//這就能獲取最小的一位的數字
a[s]++;
boolflag=find(a,10);
if(!bool)
returntrue;//不好意思,發現了又重復的數字,直接返回結果
s/=10;
}
returnfalse;//這里說明了沒有重復的數值
}
//再弄個函數,檢測出現的次數
boolfind(inta[],intn)
{
for(inti=0;i<n;i++)
{
if(a[i]==1||a[i]==0)continue;
else
returnfalse;
}
returntrue;
//返回真的,表示暫時沒有重復的值
}
// 這是之前的代碼,突然想到完全沒必要這個,在o(n)的復雜度就可以實現的
boolhehe(intsum)
{
inta[10]={0};//弄個數組,把0-9都存起來
//假設你的數字是num
while(sum)
{
ints=sum%10;//這就能獲取最小的一位的數字
a[s]++;
//修改的地方在這里!!!至於那下面的函數則完全可以不用,這種方法,有點類似於hash的想法
if(a[s]>1)returntrue;
/*
if(!bool)
returntrue;//不好意思,發現了又重復的數字,直接返回結果
*/
s/=10;
}
returnfalse;//這里說明了沒有重復的數值
}
『伍』 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;
}
(5)判斷是否有重復的方法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語言中判斷兩個字元串是否相同的方法
C語言提供了幾個標准庫函數,可以比較兩個字元串是否相同。以下是用strcmp()函數比較字元串的一個例子:
#include <stdio. h>
#include <string. h>
void main (void);
void main(void)
{
char* str_1 = "abc" ; char * str_2 = "abc" ; char* str_3 = "ABC" ;
if (strcmp(str_1, str_2) == 0)
printf("str_1 is equal to str_2. \n");
else
printf("str_1 is not equal to str_2. \n");
if (strcmp(str_1, str_3) == 0)
printf("str_1 is equal to str_3.\n");
else
printf("str_1 is not equalto str_3.\n");
}
上例的列印輸出如下所示:
str_1 is equal to str_2.
str_1 is not equal to str_3.
strcmp()函數有兩個參數,即要比較的兩個字元串。strcmp()函數對兩個字元串進行大小寫敏感的(case-sensitiVe)和字典式的(lexicographic)比較,並返回下列值之一:
----------------------------------------------------
返 回 值 意 義
----------------------------------------------------
<0 第一個字元串小於第二個字元串
0 兩個字元串相等 ·
>0 第一個字元串大於第二個字元串
----------------------------------------------------
在上例中,當比較str_1(即「abc」)和str_2(即「abc」)時,strcmp()函數的返回值為0。然而,當比較str_1(即"abc")和str_3(即"ABC")時,strcmp()函數返回一個大於0的值,因為按ASCII順序字元串「ABC」小於「abc」。
strcmp()函數有許多變體,它們的基本功能是相同的,都是比較兩個字元串,但其它地方稍有差別。下表列出了C語言提供的與strcmp()函數類似的一些函數:
-----------------------------------------------------------------
函 數 名 作 用
-----------------------------------------------------------------
strcmp() 對兩個字元串進行大小寫敏感的比較
strcmpi() 對兩個字元串進行大小寫不敏感的比較
stricmp() 同strcmpi()
strncmp() 對兩個字元串的一部分進行大小寫敏感的比較
strnicmp() 對兩個字元串的一部分進行大小寫不敏感的比較
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函數代替strcmp()函數,則程序將認為字元串「ABC」等於「abc」。
『柒』 C語言中,怎樣判斷一個數組中是否有重復元素呢最好用程序實現
import org.apache.commons.lang.ArrayUtils;
public boolean isDupInArray(Object[]array){
if(ArrayUtils.isEmpty(array)==true){
return false;
}
for(Object obj:array){
if(ArrayUtils.indexOf(array,obj)!=ArrayUtils.lastIndexOf(array,obj)){
return true;
}
}
return false;
}
(7)判斷是否有重復的方法c語言擴展閱讀:
Return用法
1.含義:return表示從被調函數返回到主調函數繼續執行,返回時可附帶一個返回值,返回值可以是一個常量,變數,或是表達式。
2.作用:結束正在運行的函數,並返回函數值。
3.返回值:
計算結果表示函數執行的順利與否(-1、0)
返回值可以為各種數據類型,如:int,float,double,char,a[](數
組),*a(指針),結構或類(c++)
返回類型規定了return後面所加的量的類型,如果返回類型聲明為
void,則不需要返回值。public static void Main()//程序入口只可以聲
明為void和int的返回
{
//不需要返回值就OK
}
public static void mm()
{
return;//有些時候,在void的方法中,你需要跳出它,可以直接
用return而不能加任何量在後面
}
public static int cc()
{
return 321;//因為返回類型聲明為int,所以返回一個整數
}
public static string msmsm()
{
return「asdfhasjghdg」;//因為返回類型聲明為string,所以返回一個字
符串
}
『捌』 C語言用數組檢查一組數字中是否有重復
//判定一個數組中是否存在相同的數。
//拿每個數和它後面所有的數比較,有相同的就返回真。
//全部比較完都沒有相同的就返回假。
intHasIdentical(constint*arr,intn)
{
inti=0,j=0;
for(i=0;i<n;++i)
{
for(j=i+1;j<n;++j)
{
if(arr[i]==arr[j])
{
return1;
}
}
}
return0;
}
//按照你的意思,這個函數可以這樣改寫:
intjudgement(inta,intb,intc,intd,inte,intf,intg,inth,inti)
{
intarr[9]={0};
arr[0]=a;arr[1]=b;arr[2]=c;arr[3]=d;arr[4]=e;
arr[5]=f;arr[6]=g;arr[7]=h;arr[8]=i;
return!HasIdentical(arr,9);
}
『玖』 C語言,判斷某整數中是否存在重復數字.怎麼寫
把整數的每位上的數計算出來 通過%10然後再判斷
#include "stdio.h"
int main()
{
int i,j,n;
bool tag[10];
printf("輸入整數:");
scanf("%d",&n);
for(i=0;i<10;i++)tag[i]=false;
j=n;
while(j){
if(tag[j%10])break;
tag[j%10]=true;
j=j/10;
}
if(j)printf("整數%d有重復的數字",n);
else printf("整數%d沒有重復的數字",n);
return 0;
}
『拾』 C語言判斷數組是否重復,
chachong(a[6]);//函數調用int
chachong(int
a[]);//函數聲明這問題需要樓主了解數組知識a[6]只是一個值;而且是一個未定義的值;因為數組a不存在下標為6的元素;建議改為chachong(a);//函數調用int
chachong(int
*a);//函數聲明