前提・実現したいこと
整数に重複する数字が含まれているか判定するプログラムを作りたいのですがうまくいきません。
発生している問題・エラーメッセージ
どんな数字をいれても"重複する数字が含まれているになってしまう"
該当のソースコード
C++
1#include<iostream> 2bool has_duplicate_digits(int x); 3int main(void) 4{ 5 int x,c; 6 std::cout<<"整数を入力してください"; 7 std::cin>>x; 8 //has_duplicate_digits(x);//関数 9 if(has_duplicate_digits(x)){ 10 std::cout <<"重複する数字が含まれている\n"; 11 }else{ 12 std:: cout <<"重複する数字は含まれていない\n"; 13 } 14 return 0; 15} 16bool has_duplicate_digits(int x) 17{ 18 int a,i,b; 19 int counts[10]={}; 20 for(i=0;i<10;i++){ 21 if(x!=0){ 22 a=x%10; 23 //printf("%d",a); 24 x/=10; 25 }else{ 26 break; 27 } 28 } 29 if(a==0){ //出現した文字数をカウントする 30 counts[0]++; 31 if(counts[0]>=2){ 32 b++; 33 } //文字数が2以上だったらtrue 34 }else if(a==1){ 35 counts[1]++; 36 if(counts[1]>=2){ 37 b++; 38 } 39 }else if(a==2){ 40 counts[2]++; 41 if(counts[2]>=2){ 42 b++; 43 } 44 }else if(a==3){ 45 counts[3]++; 46 if(counts[3]>=2){ 47 b++; 48 } 49 }else if(a==4){ 50 counts[4]++; 51 if(counts[4]>=2){ 52 b++; 53 } 54 }else if(a==5){ 55 counts[5]++; 56 if(counts[5]>=2){ 57 b++; 58 } 59 }else if(a==6){ 60 counts[6]++; 61 if(counts[6]>=2){ 62 b++; 63 } 64 }else if(a==7){ 65 counts[7]++; 66 if(counts[7]>=2){ 67 b++; 68 } 69 }else if(a==8){ 70 counts[8]++; 71 if(counts[8]>=2){ 72 b++; 73 } 74 }else if(a==9){ 75 counts[8]++; 76 if(counts[9]>=2){ 77 b++; 78 } 79 } 80 if(b>=1){ 81 return true; 82 }else{ 83 return false; 84 } 85}
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。