C言語で重複しない4ケタの乱数を発生させ、入力した整数が正しければ正解するまでにかかった回数を表示させるプログラムを作りたいです。
確認することができるように乱数ははじめに表示させています。
3ケタの場合は、以下のように作ることができたのですが、4ケタの場合は作ることができません。
どのように変更すれば作ることができますか?
<3ケタ>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int num1, num2, num3;
int user, user1, user2, user3;
int count;
srand(time(0));
num1=rand()%10;
while (1) {
num2=rand()%10;
if (num2!=num1) {
break;
}
}
while (1) {
num3=rand()%10;
if (num3!=num1 && num3!=num2) {
break;
}
}
printf("%d%d%d\n",num3,num2,num1);
count=1;
printf("重複しない3つの数字:");
while(1) {
while (1) {
scanf("%d",&user);
user3=user/100;
user2=(user/10)%10;
user1=user%10;
if (user1!=user2 && user1!=user3 && user2!=user3) {
break;
}
printf("重複してます!重複しない3つの数字:");
}
if (user1==num1 && user2==num2 && user3==num3) {
break;
}
printf("次の数値:");
count++;
}
printf("%d回で当たりました!\n",count);
return 0;
}
<4ケタ>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int num1, num2, num3,num4;
int user, user1, user2, user3,user4;
int count;
srand(time(0));
num1=rand()%10;
while (1) {
num2=rand()%10;
if (num2!=num1) {
break;
}
}
while (1) {
num3=rand()%10;
if (num3!=num1 && num3!=num2) {
break;
}
}
while (1) {
num4=rand()%10;
if (num4!=num1 && num4!=num2 && num4!=num3) {
break;
}
}
printf("%d%d%d%d\n",num4,num3,num2,num1);
count=1;
printf("重複しない4つの数字:");
while(1) {
while (1) {
scanf("%d",&user);
user4=user/1000;
user3=user/100;
user2=(user/10)%10;
user1=user%10;
if (user1!=user2 && user1!=user3 && user1!=user4 &&user2!=user3 &&user2!=user4 &&user3!=user4) {
break;
}
printf("重複してます!重複しない4つの数字:");
}
if (user1==num1 && user2==num2 && user3==num3 && user4==num4) {
break;
}
printf("次の数値:");
count++;
}
printf("%d回で当たりました!\n",count);
return 0;
}
以下の部分が間違っていると思うのですが、どのようにしたら良いか分かりません。
while (1) {
scanf("%d",&user);
user4=user/1000;
user3=user/100;
user2=(user/10)%10;
user1=user%10;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 質問です 下記のコードを分かりやすく解説お願いします 初心者です #include ‹stdio.h 3 2022/05/26 22:03
- C言語・C++・C# C言語でif文が予想と違う動きをする件について7 4 2023/03/20 00:26
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- C言語・C++・C# C pointer? or... 2 2022/03/29 00:47
- UNIX・Linux 次の要件を満たすにはどのように修正したらよろしいでしょうか 1 2022/11/24 20:57
- JavaScript JAVASCRIPT 2 2022/04/15 15:10
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# C++ と、 1 2022/11/07 23:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列を使って魔方陣
-
#if 1 #elseの意味について
-
構文エラー";"が型の前にあり...
-
getcの改行判定
-
C言語のプログラミング (基礎...
-
c言語プログラミングで1から100...
-
C言語 数字以外を入力させない...
-
C言語のwhile文を使った素数判...
-
計算結果がlong型以上になる場...
-
C言語 重複しない4ケタの乱数...
-
raspberrypiでロータリエンコーダ
-
c言語for文
-
C言語基本 2次元配列(for文...
-
10進数からN進数に変換するプロ...
-
C言語で電卓を作成する。
-
和を求める問題
-
C言語 プログラム
-
for文を使用して値を代入したい...
-
while文について、c言語...
-
C言語 入力した数値の平均値の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
構文エラー";"が型の前にあり...
-
#if 1 #elseの意味について
-
for文の中にswitch文はいれられ...
-
getcの改行判定
-
C言語階乗の総和を求める
-
配列を使って魔方陣
-
while文について、c言語...
-
プログラミングで二番目に大き...
-
C言語 数字以外を入力させない...
-
c言語のwhile文を使った計算で...
-
C言語プログラムが理解できなくて…
-
C言語で電卓を作成する。
-
配列を関数に渡す方法
-
C言語の二分法のプログラムにつ...
-
c言語for文
-
scanf関数を用いての加減乗除%...
-
階乗のプログラム!!
-
計算結果がlong型以上になる場...
-
c言語プログラミングで1から100...
-
初心者です。for文、if文を使っ...
おすすめ情報