c语言猜数字游戏编程思路 一道C语言猜数游戏编程题

c\u8bed\u8a00\uff0c\u7f16\u5199\u4e00\u4e2a\u731c\u6570\u5b57\u6e38\u620f

\u6e90\u7801\u5982\u4e0b\uff1a
/* File: guess.c */
#include /* standard input & output support */
#include /* srand() rand() */
#include /* time() */
/* \u5b8f\u5b9a\u4e49 */
#define NUMBER_LENGTH 5 /* \u968f\u673a\u6570\u957f\u5ea6 */
#define NUMBER_LIMIT 10 /* \u968f\u673a\u6570\u9650\u5236, \u6bcf\u4e00\u4f4d0-9 */
#define INPUT_LENTH 128 /* \u8f93\u5165\u7f13\u51b2\u533a\u5927\u5c0f */
char goal[NUMBER_LENGTH] = {0}; /* \u4fdd\u5b58\u968f\u673a\u6570 */
char flag[NUMBER_LIMIT] = {0}; /* \u4fdd\u5b58\u968f\u673a\u6570\u6807\u5fd7, \u4fdd\u8bc1\u4e0d\u91cd\u590d */
char input[INPUT_LENTH] = {0}; /* \u4fdd\u5b58\u8f93\u5165 */
/* \u521d\u59cb\u5316\u7528\u4e8e\u4fdd\u5b58\u6570\u636e\u7684\u6570\u7ec4 */
void initData()
{
int i = 0;
while (i < NUMBER_LENGTH)
goal[i++] = 0;

i = 0;
while (i < NUMBER_LIMIT)
{
flag[i++] = 0;
}
}
/* \u521d\u59cb\u5316\u7528\u4e8e\u4fdd\u5b58\u7f13\u51b2\u533a\u7684\u6570\u7ec4 */
void initBuffer()
{
int i = 0;
while (i < INPUT_LENTH)
input[i++] = 0;
}
/* \u663e\u793a\u731c\u6d4b\u7ed3\u679c */
void display()
{
int count = 0;

int i = 0;
while (i < NUMBER_LENGTH)
{
if (input[i] == goal[i])
{
printf("%c", 'o');
count++;
}
else
{
printf("%c", 'x');
}

i++;
}

printf("\nRIGHT: %d bit(s)\n", count);

if (count == NUMBER_LENGTH)
{
printf("You win! The number is %s.\n", goal);

exit(0);
}
}
/* \u751f\u6210\u968f\u673a\u6570 */
void general()
{
/* \u4ee5\u65f6\u95f4\u4f5c\u4e3a\u65f6\u95f4\u79cd\u5b50\u4fdd\u8bc1\u751f\u6210\u7684\u968f\u673a\u6570\u771f\u6b63\u5177\u6709\u968f\u673a\u6027\u8d28 */
srand((unsigned int)time(NULL));

int i = 0;
while (i < NUMBER_LENGTH)
{
char tmp;
do
{
tmp = '0' + ((i != 0) ? (rand() % 10) : (1 + rand() % 9));
} while (flag[tmp] != 0);

flag[tmp] = 1;
goal[i++] = tmp;
}
}
/* \u8f93\u5165\u65b9\u6cd5\uff0c\u7528\u4e8e\u731c\u6d4b */
void guess()
{
printf("Please input the number you guessed:\n");
scanf("%s", input);
display();
initBuffer();
}
/* \u4e3b\u51fd\u6570\uff0c\u7a0b\u5e8f\u4e3b\u6846\u67b6 */
int main (int argc, const char * argv[])
{
initData();
initBuffer();
general();
while (1) guess();
return 0;
}
==============================================
\u8fd0\u884c\u7ed3\u679c\u89c1\u9644\u56fe\uff0c\u5e0c\u671b\u6211\u7684\u56de\u7b54\u80fd\u591f\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\u3002

#include "stdio.h"
#include
#include
void Guess(int magic, int guess)
{
static int c = 0;
c++;
if (magic == guess)
{
printf("\n\u4f60\u731c\u5bf9\u4e86\uff01\n\u4f60\u4e00\u5171\u731c\u4e86%d\u6b21\uff01", c);
exit(0);
}
if (magic < guess)
{
printf("\n\u592a\u5927\u4e86\uff01\n");
}
else
{
printf("\n\u592a\u5c0f\u4e86\uff01\n");
}
}
int main()
{
int m, n, i;
srand((int)time(0));
n=(rand() % 100) + 1;
//printf("n=%d\n",n);
for (i = 0; i < 10; i++) {
printf("\u8bf7\u8f93\u5165\u4f60\u731c\u6d4b\u7684\u6570\uff1a");
scanf("%d", &m);
Guess(n, m);
}

return 0;
}

分析:
先产生一个随机数N。
然后输入数I,如果A大于N,则提示大于信息。
如果I小于N,则提示小于信息。
直到I==N,则输出成功信息。
这是我用C语言写的。
环境:
WIN-C
,TORBO
C,如果是C++环境把倒数第二排getch();删掉!
已经调试成功:
main()
{
int
i=0,n;
srand(time(0));
n=rand()%100+1;
while(i!=n)
{printf("please
input
a
number:\n");
scanf("%d",&i);
if(i>n)printf("this
number
is
too
big!\n");
if(i<n)printf("this
number
is
too
smaller!\n");
}
if(i==n)
printf("PASS!%3d",n);
getch();
}
提示:
srand(time(0));
n=rand()%100+1;
是用来生成一个1~100以内的随机数,如果你改,把100改成50或者200。如(n=rand()%50+1;


  • 鎮祻,C璇█鐚滄暟瀛楁父鎴绋嬪簭缂栧啓
    绛旓細include <stdio.h> include <stdlib.h> include include <ctype.h> define MAX_N (100) //闅忔満鏁存暟鐨勪笂闄 define MIN_N (1) //闅忔満鏁存暟鐨勪笅闄 int game(void) //鐚滄暟瀛鐨娓告垙鍑芥暟锛岃繑鍥炲兼槸鐚滄暟瀛楃殑娆℃暟 { int rnd,inp,cnt=0;rnd=rand()%(MAX_N-MIN_N)+MIN_N;printf("Let...
  • C璇█绋嬪簭璁捐 鐚滄暟瀛楁父鎴
    绛旓細include <stdio.h> include <stdlib.h> include define N 4/*闅忔満鎶絅涓暟*/ define NUM 8/*NUM娆鐚滄暟鐨勬満浼*/ void detect(char s[]){ int i,j,num;int a,b;char ch[N];for(num=0;num<NUM;num++){ a=b=0;printf("绗%d娆℃満浼氾細",num+1);for(i=0;i<N;i++){ ch[i]...
  • c璇█,缂栧啓涓涓鐚滄暟瀛楁父鎴
    绛旓細婧愮爜濡備笅锛/* File: guess.c */ include <stdio.h> /* standard input & output support */ include <stdlib.h> /* srand() rand() */ include /* time() */ /* 瀹忓畾涔 */ define NUMBER_LENGTH 5 /* 闅忔満鏁伴暱搴 */ define NUMBER_LIMIT 10 /* 闅忔満鏁伴檺鍒, 姣...
  • 鐚滄暟瀛桟璇█
    绛旓細鍏跺疄杩欎釜绋嬪簭寰堢畝鍗曪紝鎬濊矾寰堟竻鏅 棣栧厛浜х敓涓涓殢鏈虹殑鍥涗綅鏁帮紝涓旀瘡浣嶉兘涓嶇浉鍚 int a[10]={0,1,2,3,4,5,6,7,8,9};int b,c,i,t;for(i=0;i<100;i++) //鎬濊矾灏辨槸浜х敓涓や釜10浠ュ唴鐨勯殢鏈烘暟锛屼氦鎹涓繖涓や釜涓嬫爣鐨勬暟鍊硷紝{ //缁忚繃澶氭浜ゆ崲鍚庯紝鐫a涓殑杩10涓暟灏辨墦涔变簡娆″簭锛屽氨鍍...
  • C璇█缂栫▼:缂栧啓涓涓鐚滄暟鐨娓告垙,绯荤粺鑷姩浜х敓涓涓殢鏈烘暟,浣犳潵鐚,绋嬪簭缁...
    绛旓細import java.util.*;class Assignment8{ public static void main(String[]args){ Scanner sc=new Scanner(System.in);int x=(int)(Math.random()*100);//鐢熸垚涓涓0~100鐨勯殢鏈烘暟 int y=-1;System.out.println("宸茬敓鎴0~100鐨勯殢鏈烘暣鏁帮紝璇疯緭鍏ユ偍鎵鐚滅殑鏁帮細");while(x!=y){ y=sc.next...
  • 鐢C璇█缂栧啓涓娈鐚滄暟瀛楁父鎴,璺熶竴鑸殑涓嶄竴鏍,瑙勫垯濡備笅
    绛旓細杩涜鍒ゆ柇缁冧範锛岃嫢鐚滄暟鏄50锛岀寽浜40锛岃寖鍥村彉鎴40鍒100锛岃嫢鐚60锛岃寖鍥村彉鎴40鍒60.閫氳繃寰幆鏉ユ帶鍒躲俰nclude<stdio.h> int main(void){ int a,low,k,he,d;k=50; //k涓虹瓟妗堟暟 low=1;he=100;scanf("%d",&a);while(a!=k){ if(a<k){ low=a;printf("鐚滄暟鐨勮寖鍥存槸锛%d鍒%d\n",low...
  • C璇█缂栧啓鐚滄暟瀛楁父鎴
    绛旓細include <stdlib.h> include <stdio.h> //#include <iostream> unsigned char Num[4] = {0},getNum[4] = {0x20,0x20,0x20,0x20};void help(void){ char i =0,j = 0;for(i =0;i<4;i++){ for(j = 0;j<4;j++)if(Num[j] == getNum[i]){ if(i==j)printf("%dth...
  • 鐚滄暟娓告垙鐨C璇█缂栬瘧浠g爜
    绛旓細printf(" 4褰撹繑鍥炲兼槸4A4B鏃跺嵆涓虹寽涓暟瀛梊n");printf(" 5杩樺彲浠ユ彁鍓嶅伔绐ユ暟瀛椾絾瑕佽緭鍏ュ瘑鐮乗n");printf(" 鐜板湪浣犲凡鐭ラ亾娓告垙瑙勫垯锛岄偅涔堣刀蹇帺榄呭姏灏忚彍鐚滄暟瀛楁父鎴鍚э紒\n");printf(" 鎸変换鎰忛敭杩斿洖涓婚噰鍗:");getchar();getchar();zhuye();} void suijishu(){ a[0]=rand() %1...
  • 浜烘満鐚滄暟娓告垙(鐢C璇█鍐欎釜绋嬪簭)
    绛旓細printf("璇疯緭鍏ユ偍鐚滅殑鏁:");scanf("%d",&m);system("pause");a[time][0]=m;a[time][1]=Digit(n,m);a[time][2]=Position(n,m);time++;system("cls");printf("\n鎮ㄧ寽鐨鏁板瓧 鏁板瓧姝g‘鐨勪釜鏁 浣嶇疆姝g‘鐨勪釜鏁癨n");if(Digit(n,m)==4&&Position(n,m)==4){ printf("%d\...
  • 璁捐涓涓C璇█绋嬪簭 鐚滄暟娓告垙 瑙勫垯:鐢佃剳闅忔満浜х敓涓涓1-100鐨勯殢鏈烘暟璁╃帺 ...
    绛旓細include <stdio.h>#include <stdlib.h> #includeint main(void){int rst,g;int guesscount;//鐢ㄩ殢鏈哄嚱鏁颁簡srand( time(NULL) );printf("鐚滄暟娓告垙锛岃緭鍏-1閫鍑.\r\nLet's go !\r\n\r\n");do{//鐢熸垚闅忔満鏁皉st = (int)((double) rand() /(double) RAND_MAX * 100);//閲嶇疆鐚滅殑...
  • 扩展阅读:c十十编程要学多久 ... 初学编程必背50个 ... 少儿编程的三大证书 ... 如何自己编程做游戏 ... c++编程适合几岁学 ... 编程必背100个代码 ... c++编程适合多大孩子 ... 吓人的编程代码 ... 游戏编程是什么专业 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网