练习1-1
#include
#include
int main() {
srand(time(0));
int anw = rand() % 7;
printf("您的签运是:");
switch (anw) {
case 0:printf("大吉"); break;
case 1:printf("吉"); break;
case 2:printf("小吉"); break;
case 3:printf("吉"); break;
case 4:printf("末吉"); break;
case 5:printf("凶"); break;
case 6:printf("大凶"); break;
}
}
练习1-2
#include
#include
int main() {
srand(time(0));
int anw = rand() %10;
printf("您的签运是:");
switch (anw) {
case 0:
case 1:printf("大吉"); break;
case 2:
case 3:printf("吉"); break;
case 4:
case 5:
case 6:printf("小吉"); break;
case 7:printf("末吉"); break;
case 8:printf("凶"); break;
case 9:printf("大凶"); break;
}
}
练习1-3
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#define MAX_STAGE 12 /* 最多可以输入的次数 */
int main(void)
{
int i;
int stage; /* 已输入的次数 */
int no; /* 读取的值 */
int ans; /* 目标数字 */
int num[MAX_STAGE]; /* 读取的值的历史记录 */
srand(time(NULL)); /* 设定随机数的种子 */
ans = rand() % 1998-999; /* 生成-999~999的随机数 */
printf("请猜一个-999~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;
}
练习1-4
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#define MAX_STAGE 12 /* 最多可以输入的次数 */
int main(void)
{
int i;
int stage; /* 已输入的次数 */
int no; /* 读取的值 */
int ans; /* 目标数字 */
int num[MAX_STAGE]; /* 读取的值的历史记录 */
srand(time(NULL)); /* 设定随机数的种子 */
ans = 3*(rand() %333)+3; /* 生成3~999之间3的倍数的随机数 */
printf("请猜一个3~999的而且是3的倍数整数。\n\n");
stage = 0;
do {
printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
scanf("%d", &no);
while(no % 3 != 0) {
printf("请输入3的倍数:");
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;
}
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#define MAX_STAGE 12 /* 最多可以输入的次数 */
int main(void)
{
int i;
int stage; /* 已输入的次数 */
int no; /* 读取的值 */
int ans; /* 目标数字 */
int num[MAX_STAGE]; /* 读取的值的历史记录 */
srand(time(NULL)); /* 设定随机数的种子 */
ans = 3*(rand() %333)+3; /* 生成3~999之间3的倍数的随机数 */
printf("请猜一个3~999的而且是3的倍数整数。\n\n");
stage = 0;
do {
printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
scanf("%d", &no);
if (no % 3 != 0) {
break;
}
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;
}
练习1-5
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
int main(void)
{
int i;
int stage; /* 已输入的次数 */
int no;
int cnt=0;/* 读取的值 */
int d1, d2, ans; /* 目标数字 */
srand(time(NULL)); /* 设定随机数的种子 */
d1 = rand();
d2 = rand();
int max = (d2 > d1) ? d2 : d1;
int min = (d2 < d1) ? d2 : d1;
ans = (rand() % (max -min))+min;
int x = (max - min);
printf("请猜一个%d~%d的整数\n\n", min, max);
while (x > 50)
{
x /= 2;
cnt++; }
cnt += 3;
int num[128]; /* 读取的值的历史记录 */
stage = 0;
do {
printf("还剩%d次机会。是多少呢:", cnt- stage);
scanf("%d", &no);
num[stage++] = no; /* 把读取的值存入数组 */
if (no > ans)
printf("\a再小一点。\n");
else if (no < ans)
printf("\a再大一点。\n");
} while (no != ans && stage < cnt);
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;
}
练习1-6
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#define MAX_STAGE 6 /* 最多可以输入的次数 */
int main(void)
{
int i;
int stage; /* 已输入的次数 */
int no; /* 读取的值 */
int ans; /* 目标数字 */
int num[MAX_STAGE]; /* 读取的值的历史记录 */
int choice, d;
srand(time(NULL));
printf("请选择难度等级(1)1~9 (2)1~99 (3)1~999 (4)1~9999:");
scanf("%d", &choice);
if (choice == 1){
ans = rand() % 8 + 1;
d = 9;
}
if (choice == 2) {
ans = rand() % 98 + 1;
d = 99;
}
if (choice == 3) {
ans = rand() % 998 + 1;
d = 999;
}
if (choice == 4) {
ans = rand() % 9998 + 1;
d = 999;
}
printf("请猜一个1~%d的整数。\n\n",d);
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;
}
练习1-7
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#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; /* 生成0~999的随机数 */
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 ", i + 1, num[i]);
if(num[i] - ans==0)
printf("%4d\n", num[i] - ans);
else {
printf("%+4d\n", num[i] - ans);
}
}
return 0;
}
练习1-8
/* 猜数游戏(其五:显示输入记录)*/
#include
#include
#include
#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; /* 生成0~999的随机数 */
printf("请猜一个0~999的整数。\n\n");
stage = 0;
i = 0;
for(i=0;i
printf("还剩%d次机会。是多少呢:", MAX_STAGE - stage);
scanf("%d", &no);
num[stage++] = no; /* 把读取的值存入数组 */
if (no > ans) {
printf("\a再小一点。\n");
}
if (no < ans){
printf("\a再大一点。\n");
}
if(ans==no){
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 ", i + 1, num[i]);
if(num[i] - ans==0)
printf("%4d\n", num[i] - ans);
else {
printf("%+4d\n", num[i] - ans);
}
}
return 0;
}