大佬求助!!!!,一个小游戏
给定一个四位数,用户猜这个数字,可以猜七次,每猜一次,系统给出对了几个数字,还有对了几个数字的位置,比如一个数字3402,用户猜3401,就是对了3个数字,三个位置#include<stdio.h>
int main() {
int put,i=1,num,k=1,ans,ans1,date=0,wher=0;
printf("请输入一个四位数");
scanf("%d",&put);
for(; k<=7; k++) {
printf("请输入你的答案");
scanf("%d",&ans);
for(; i<=4; i++) {
num = put%10;
ans1 = ans%10;
if(num == ans1) {
date += 1 ;
wher = (i==1)?wher += 1:wher;
continue;
}
ans /= 10;
}
for (; i<=4; i++) {
num = put/10%10;
ans1 = ans%10;
if (num == ans1) {
date += 1 ;
wher = (i == 2)?wher += 1:wher;
continue;
}
ans /= 10;
}
for (; i<=4; i++) {
num = put / 100%10;
ans1 = ans%10;
if (num == ans1) {
date += 1 ;
wher = ( i == 3)?wher += 1:wher;
continue;
}
ans /= 10;
}
for (; i<=4; i++) {
num = put /1000%10;
ans1 = ans % 10;
if (num == ans1) {
date += 1 ;
wher = ( i == 4)?wher+= 1:wher;
continue;
}
ans /= 10;
}
printf("你对了%d个数字\n",date);
printf("你对了%d个位数\n",wher);
}
} 7 次就猜对 4 位数?天方夜谭吧!一位数还差不多。 jackz007 发表于 2022-10-16 23:12
7 次就猜对 4 位数?天方夜谭吧!一位数还差不多。
应该可以把,我们玩过,真的能猜出来,虽然大部分还是要归功于运气,能不能帮我看下代码有什么问题,结果老运行错误,谢谢了{:5_96:} 本帖最后由 jackz007 于 2022-10-17 01:59 编辑
mammm 发表于 2022-10-16 23:30
应该可以把,我们玩过,真的能猜出来,虽然大部分还是要归功于运气,能不能帮我看下代码有什么问题,结果 ...
先抱歉,实现思路不同,代码我得重写
#include<stdio.h>
int main(void)
{
int c , d = {0} , i , j , k , r , put , ans ;
printf("\n") ;
printf("请输入一个四位目标靶数 :") ;
scanf("%d" , & put) ;
for(r = 0 ; r < 7 ; r ++) {
printf("第 %d 次:" , r + 1) ;
scanf("%d", & ans) ;
if(ans == put) {
printf("恭喜你,你猜对了!\n") ;
break ;
} else {
for(i = 0 , k = put ; i < 4 ; k /= 10 , i ++) d = k % 10 ;
for(i = 0 , k = ans ; i < 4 ; k /= 10 , i ++) d = k % 10 ;
for(i = 0 ; i < 4 ; i ++) d = 0 ;
for(c = i = 0 ; i < 4 ; i ++) {
if(d == d) {
d = i + 1 ;
c ++ ;
}
}
d = c ;
for(i = 0 ; i < 4 ; i ++) d = 0 ;
for(c = i = 0 ; i < 4 ; i ++) {
for(j = 0 ; j < 4 ; j ++) {
if(d == d) {
d = d ;
c ++ ;
break ;
}
}
}
d = c ;
printf("\n") ;
if(d) {
printf("你猜对了 %d 个位: %d" , d , d) ;
for(i = 1 ; i < d ; i ++) printf(",%2d" , d) ;
printf("\n\n") ;
} else {
printf("抱歉 : 你没有猜中任何一个位!\n\n") ;
}
if(d) {
printf("你猜对了 %d 个数: %d" , d , d) ;
for(i = 1 ; i < d ; i ++) printf(",%2d" , d) ;
printf("\n\n") ;
} else {
printf("抱歉 : 你没有猜中任何一个数!\n\n") ;
}
}
}
} 本帖最后由 jackz007 于 2022-10-17 10:10 编辑
mammm 发表于 2022-10-16 23:30
应该可以把,我们玩过,真的能猜出来,虽然大部分还是要归功于运气,能不能帮我看下代码有什么问题,结果 ...
随机数版本
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int generator(void)
{
int d , i , j , k , r , x ;
time_t t ;
srand((unsigned) time(& t)) ;
for(r = 0 ; r < 1000 ;) {
for(i = 0 ; i < 4 ;) {
x = rand() % 10 ;
for(j = 0 ; j < i ; j ++) if(d == x) break ;
if(j == i) d = x ;
}
for(k = rand() % 10 , i = r = 0 ; i < 4 ; k ++ , i ++) r = r * 10 + d ;
}
return r ;
}
int main(void)
{
int c , d = {0} , i , j , k , r , put , ans ;
printf("\n") ;
put = generator() ;
for(r = 0 ; r < 7 ; r ++) {
printf("第 %d 次:" , r + 1) ;
scanf("%d", & ans) ;
printf("\n") ;
if(ans == put) {
printf("恭喜你,你猜对了!\n") ;
break ;
} else {
for(i = 0 , k = put ; i < 4 ; k /= 10 , i ++) d = k % 10 ;
for(i = 0 , k = ans ; i < 4 ; k /= 10 , i ++) d = k % 10 ;
for(i = 0 ; i < 4 ; i ++) d = 0 ;
for(c = i = 0 ; i < 4 ; i ++) {
if(d == d) {
d = i + 1 ;
c ++ ;
}
}
d = c ;
for(i = 0 ; i < 4 ; i ++) d = 0 ;
for(c = i = 0 ; i < 4 ; i ++) {
for(j = 0 ; j < 4 ; j ++) {
if(d == d) {
d = d ;
c ++ ;
break ;
}
}
}
d = c ;
if(ans > put) printf("你猜大了.\n") ;
else printf("你猜小了.\n") ;
if(d) {
printf("你猜对了 %d 个位: %d" , d , d) ;
for(i = 1 ; i < d ; i ++) printf(",%2d" , d) ;
printf("\n") ;
} else {
printf("抱歉 : 你没有猜中任何一个位!\n") ;
}
if(d) {
printf("你猜对了 %d 个数: %d" , d , d) ;
for(i = 1 ; i < d ; i ++) printf(",%2d" , d) ;
printf("\n\n") ;
} else {
printf("抱歉 : 你没有猜中任何一个数!\n\n") ;
}
}
}
if(r == 7) printf("目标数是 : %d\n" , put) ;
}
编译、运行实况:
D:\\C>g++ -o x x.c
D:\\C>x
目标数 1022 < x < 9877 , 每个位上的数各不相同。
你总共有 7 次机会,加油!
第 1 次:5678
你猜小了.
你猜对了 1 个位: 4
你猜对了 2 个数: 7, 8
第 2 次:7438
你猜小了.
你猜对了 2 个位: 1, 4
你猜对了 2 个数: 7, 8
第 3 次:7908
恭喜你,你猜对了!
D:\\C>
D:\\C>x
目标数 1022 < x < 9877 , 每个位上的数各不相同。
你总共有 7 次机会,加油!
第 1 次:3587
你猜大了.
你猜对了 1 个位: 4
你猜对了 2 个数: 5, 7
第 2 次:2157
你猜大了.
你猜对了 3 个位: 1, 3, 4
你猜对了 3 个数: 2, 5, 7
第 3 次:2057
恭喜你,你猜对了!
D:\\C>
这个游戏很考验智力,玩起来蛮有趣,很适合逗女孩纸。 jackz007 发表于 2022-10-17 09:45
随机数版本
编译、运行实况:
高级,感谢{:5_95:}感谢
页:
[1]