前提・実現したいこと
大学の課題でヒットアンドブローゲーム(数当てゲーム)をプログラムしている。
rand関数を使って文字列を作成しているのですが、なぜか実行が終わらない。
エラーメッセージは出ていない。
自分なりに調べてみたのですが、理由がわからず。
Xcodeのバージョンは12.3です。
補足情報(FW/ツールのバージョンなど)
作っているプログラムです。読みにくいかったらすみません。
#include <stdio.h> #include <stdlib.h> #include <time.h> int checkString(char s[]) { int check,i,j; check=0; i=0; while (s[i]!='\0') i++; if (i!=4) check=1; /*4文字でできているか検査*/ for (i=0;i<4;i++) { if (s[i]<'0' || '9'<s[i]) check=1; /*数字だけで出来ているか検査*/ } for (i=0;i<4;i++) { for (j=1+i;j<4;j++) { if (s[i]==s[j]) check=1; /*構成文字は互いに異なっているか検査*/ } } return check; } void generateNumber(char theNumber[])/*文字列を生成*/ { int num,i,check; do { for (i=0; i<4; i++) { num=rand()%10; theNumber[i]=num+'\0'; } theNumber[i]='\0'; check=checkString(theNumber); }while(check==1); } int main() { char aNumber[10]="abcdefg"; /*検証のために意味のない文字列を初期値とする*/ int count; srand((unsigned) time(NULL));/*乱数列生成の初期化*/ for (count=0; count<10; count++) { generateNumber(aNumber); puts(aNumber); } return 0; }
回答1件
あなたの回答
tips
プレビュー