1、练习1-1
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int ans;
int retry;
srand(time(NULL));
do{
ans = rand()%7;
switch(ans){
case 0: puts("大吉!"); break;
case 1: puts("中吉!"); break;
case 2: puts("小吉!"); break;
case 3: puts("吉!"); break;
case 4: puts("末吉!"); break;
case 5: puts("凶!"); break;
case 6: puts("大凶!"); break;
}
printf("再运行一次?继续按1;退出按0\n");
scanf("%d",&retry);
}while(retry==1);
return 0;
}
2、练习1-2
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int ans;
int retry;
srand(time(NULL));
do{
ans = rand()%7;
int i=0;
while(i<7){
if(ans<=3||i>5){
switch(ans){
case 0: puts("大吉!"); break;
case 1: puts("中吉!"); break;
case 2: puts("小吉!"); break;
case 3: puts("吉!"); break;
case 4: puts("末吉!"); break;
case 5: puts("凶!"); break;
case 6: puts("大凶!"); break;
}
if(ans<=3){
break;
}
i++;
}
else{
i++;
}
}
printf("再运行一次?继续按1;退出按0\n");
scanf("%d",&retry);
}while(retry==1);
return 0;
}
3、练习1-3\
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int ans;
int i=1;
int retry;
srand(time(NULL));
do{
ans = rand()%1999-999;
printf("请猜测-999~999之间的一个数字?\n");
scanf("%d",&retry);
if(retry==ans){
printf("恭喜你猜对了!!!\n");
break;
}
else{
printf("请继续努力!!!\n");
printf("还有%d次机会!!!\n",5-i);
i++;
}
}while(retry!=ans&&i<=5);
return 0;
}
4、练习1-4
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
wanfa1(){
int ans;
int i=1;
int retry;
srand(time(NULL));
ans = rand()%900+3;
while(1){
if(ans%3==0){
printf("目标数字为%d\n",ans);
break;
}
else{
ans--;
}
}
do{
printf("请猜一个3的倍数:");
scanf("%d",&retry);
if(retry%3!=0){
printf("您输入错误!!!\n");
break;
}
}while(retry!=ans);
}
wanfa2(){
int ans;
int i=1;
int retry;
srand(time(NULL));
ans = rand()%900+3;
while(1){
if(ans%3==0){
printf("目标数字为%d\n",ans);
break;
}
else{
ans--;
}
}
do{
printf("请猜一个3的倍数:");
scanf("%d",&retry);
if(retry!=ans){
printf("请继续努力!!!\n");
printf("还有%d次机会!!!\n",5-i);
i++;
}
else{
printf("恭喜你猜对了。\n");
}
}while(retry!=ans&&i<=5);
}
int main(void)
{
int a;
printf("请选择玩法:1;2。\n");
scanf("%d",&a);
switch(a){
case 1:
wanfa1();
break;
case 2:
wanfa2();
break;
}
return 0;
}
5、练习1-5
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main(void)
{
int ans,ans1,ans2;
int i;
int retry;
srand(time(NULL));
ans1 = rand();
ans2 = rand();
if(ans1<=ans2){
ans=rand()%(ans2-ans1)+ans1;
i=rand()%(ans2-ans1)+ans1;
printf("目标数字为:%d\n",ans);
printf("请猜测%d~%d之间的一个数字?\n",ans1,ans2);
}
else{
ans=rand()%(ans1-ans2)+ans2;
i=rand()%(ans1-ans2)+ans2;
printf("目标数字为:%d\n",ans);
printf("请猜测%d~%d之间的一个数字?\n",ans2,ans1);
}
do{
scanf("%d",&retry);
if(retry==ans){
printf("恭喜你猜对了!!!\n");
break;
}
else{
printf("请继续努力!!!\n");
printf("还有%d次机会!!!\n",i);
i--;
}
}while(retry!=ans&&i>0);
return 0;
}
6、练习1-6
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
nandu1(){
int ans;
int retry;
srand(time(NULL));
ans = rand()%10+1;
do{
printf("请猜1~9之间的数:");
scanf("%d",&retry);
if(retry!=ans){
printf("请重新输入!!!\n");
}
else{
printf("猜对了!!!\n");
}
}while(retry!=ans);
}
nandu2(){
int ans;
int retry;
srand(time(NULL));
ans = rand()%90+10;
do{
printf("请猜10~99之间的数:");
scanf("%d",&retry);
if(retry!=ans){
printf("请重新输入!!!\n");
}
else{
printf("猜对了!!!\n");
}
}while(retry!=ans);
}
nandu3(){
int ans;
int retry;
srand(time(NULL));
ans = rand()%900+100;
do{
printf("请猜100~999之间的数:");
scanf("%d",&retry);
if(retry!=ans){
printf("请重新输入!!!\n");
}
else{
printf("猜对了!!!\n");
}
}while(retry!=ans);
}
nandu4(){
int ans;
int retry;
srand(time(NULL));
ans = rand()%9000+1000;
do{
printf("请猜1000~9999之间的数:");
scanf("%d",&retry);
if(retry!=ans){
printf("请重新输入!!!\n");
}
else{
printf("猜对了!!!\n");
}
}while(retry!=ans);
}
int main(void)
{
int a;
printf("请选择难度:1,2,3,4\n");
scanf("%d",&a);
switch(a){
case 1:
nandu1();
break;
case 2:
nandu2();
break;
case 3:
nandu3();
break;
case 4:
nandu4();
break;
}
return 0;
}
7、练习1-7
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX_STAGE 10
int main(void)
{
int i;
int stage;
int no;
int ans;
int num[MAX_STAGE];
srand(time(NULL));
ans = rand() % 1000;
printf("请猜一个0~999的整数。\n\n");
stage = 0;
do {
printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
scanf("%d", &no);
num[stage++] = no;
if (no > ans)
printf("\a再小一点。\n");
else if (no < ans)
printf("\a再大一点。\n");
} while (no != ans && stage < MAX_STAGE);
if (no != ans)
printf("\a很遗憾,正确答案是%d。\n", ans);
else {
printf("回答正确。\n");
printf("您用了%d次猜中了。\n", stage);
}
puts("\n--- 输入记录 ---");
for (i = 0; i < stage; i++)
printf(" %2d : %4d %4d\n", i + 1, num[i], num[i] - ans);
return 0;
}
8、练习1-8
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#define MAX_STAGE 10
int main(void)
{
int i;
int stage;
int no;
int ans;
int num[MAX_STAGE];
srand(time(NULL));
ans = rand() % 1000;
printf("请猜一个0~999的整数。\n\n");
stage = 0;
for(stage = 0;stage<MAX_STAGE;stage++)
{
printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
scanf("%d", &no);
num[stage] = no;
if (no > ans)
printf("\a再小一点。\n");
else if (no < ans)
printf("\a再大一点。\n");
else
break;
}
if (no != ans)
printf("\a很遗憾,正确答案是%d。\n", ans);
else {
printf("回答正确。\n");
printf("您用了%d次猜中了。\n", stage);
}
puts("\n--- 输入记录 ---");
for (i = 0; i < stage; i++)
printf(" %2d : %4d %4d\n", i + 1, num[i], num[i] - ans);
return 0;
}