Chapter1 猜数游戏

//1-1通过if语句实现猜数游戏
#include<stdio.h>
int main(){
    int no;
    int ans = 7;
    
    printf("请猜一个0~9的整数。\n\n");
    printf("是多少呢:");
    scanf("%d", &no);
    
    if (no > ans)
        printf("\a再小一点。\n");
    else if (no < ans)
        printf("\a再大一点。\n");
    else
        printf("回答正确。\n");
    return 0;
}
//1-2通过do语句实现,猜到对为止
#include<stdio.h>
int main(){
    int no;
    int ans = 7;
    
    printf("请猜一个0~9的整数。\n\n");
    do{
        printf("是多少呢:");
        scanf("%d", &no);
        
        if (no > ans)
            printf("\a再小一点。\n");
        else if (no < ans)
            printf("\a再大一点。\n");
    } while (no != ans);
    printf("回答正确。\n");
    return 0;
}
//1-3通过while实现
#include<stdio.h>
int main(){
    int no;
    int ans = 7;
    
    printf("请猜一个0~9的整数。\n\n");
    while (1) {
        printf("是多少呢:");
        scanf("%d", &no);
        
        if (no > ans)
            printf("\a再小一点。\n");
        else if (no < ans)
            printf("\a再大一点。\n");
        else 
            break;
    }
    printf("回答正确。\n");
    return 0;
}
//1-4生成随机数
#include<stdio.h>
#include<stdlib.h>    //rand()在此头文件中

int main(){
    int retry;
    printf("在这个编程环境中能够生成0~%d的随机数。\n", RAND_MAX);    //RAND_MAX 在stdlib中定义
    do{
        printf("\n生成了随机数%d。\n", rand());
        printf("再运行一次?……(0)否(1)是:");
        scanf("%d", &retry);
    } while (retry == 1);
    return 0;
}
//1-5根据当前时间设立随机数种子
#include<time.h>
#include<stdio.h>
#include<stdlib.h>    //rand()在此头文件中

int main(){
    int retry;
    srand(time(NULL));        //根据当前时间设定随机数的种子
    printf("在这个编程环境中能够生成0~%d的随机数。\n", RAND_MAX);    //RAND_MAX 在stdlib中定义
    do{
        printf("\n生成了随机数%d。\n", rand());
        printf("再运行一次?……(0)否(1)是:");
        scanf("%d", &retry);
    } while (retry == 1);
    return 0;
}
//1-6生成0~999的随机数
#include<time.h>
#include<stdio.h>
#include<stdlib.h>    //rand()在此头文件中

int main(){
    int no;
    int ans;
    srand(time(NULL));        //根据当前时间设定随机数的种子
    ans = rand() % 1000;
    
    printf("请猜一个0~999的整数。\n\n");
    do{
        printf("是多少呢:");
        scanf("%d", &no);
        
        if (no > ans)
            printf("\a再小一点。\n");
        else if (no < ans)
            printf("\a再大一点。\n");
    } while (no != ans);
    printf("回答正确。\n");
    
    return 0;
}
//1-7限制输入的次数
#include<time.h>
#include<stdio.h>
#include<stdlib.h>

int main(){
    int no;
    int ans;
    const int max_stage = 10;    //最多可以输入的次数
    int remain = max_stage;        //还可以输入几次
    
    srand(time(NULL));
    ans = rand() % 1000;
    
    printf("请猜一个0~999的整数。\n\n");
    do{
        printf("还剩%d此机会。是多少呢:", remain);
        scanf("%d", &no);
        remain--;
        
        if(no > ans)
            printf("\a再小一点\n");
        else if (no < ans)
            printf("\a再大一点\n");
    } while ( no != ans && remain > 0);
    
    if (no != ans)
        printf("\a很遗憾,正确答案是%d\n", ans);
    else {
        printf("回答正确。\n");
        printf("您用了%d此猜中了。\n", max_stage - remain);
    }
    return 0;
}
//1-8显示输入记录
#include<time.h>
#include<stdio.h>
#include<stdlib.h>

#define MAX_STAGE 10

int main(){
    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;
}
//1-9显示数组的元素个数和各个元素的值
#include<stdio.h>
int main(){
    int i;
    int a[] = {1,2,3,4,5};
    int na = sizeof(a) / sizeof(a[10]);    //元素的个数
    
    printf("数组a的元素个数是%d \n", na);
    for(i = 0; i < na; i++)
        printf("a[%d] = %d\n", i, a[i]);
    return 0;
}

 

posted @ 2018-01-24 14:42  LeoSirius  阅读(144)  评论(0编辑  收藏  举报