2017-11-19

来源:互联网 发布:mac adb unauthorized 编辑:程序博客网 时间:2024/05/29 19:02

1.完成猜数字游戏。

#include<stdio.h>#include<stdlib.h>#include<time.h>void menu(){   printf("*******************************************\n");   printf("****   1.play ********** 0.exit   *********\n");   printf("*******************************************\n");}int game(){    int input=0;      int num=rand()%100+1;   //设定随机数范围为1-100    printf("************来来来,猜一波***************\n");    while(1){        printf("你猜吧-_-\n");    //输入值        scanf("%d",&input);        if (input==num){     printf("你猜对了,congratulations!");    //猜对跳出循环       break;        }        else if (input>num){            printf("猜的大了\n");            //猜错情况        }        else if (input<num){            printf("猜得小了\n");        }    }return 0;}int main(){    int i=0;        srand((unsigned)time(NULL));    //由时间控制随机数    do {        menu();        scanf("%d",&i);        switch(i){            case 1:                game();                break;            case 0:                return 0;            default:                printf("你输错啦\n");                break;        }    }    while (i);    return 0;}

2.写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回-1.(折半查找)

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int fun(int i,int *ch1,int sz){    //算出数组的首个元素和最后一个元素的下标.    int low = 0;    int high = sz-1;    //设定一个循环,在循环内确定中间位置的元素下标,并用key值与之比较,key小于中间元素说明key在中间元素左侧,将high重新定义成mid-1;key大于中间元素说明key在中间元素右侧,将low重新定义成mid+1;如果key等于中间元素则表示找到。        while (low <= high){            int mid = low+(high-low)/2;            if (ch1[mid] == i){                return mid;            }            else if (ch1[mid] > i){                high = mid - 1;            }            else {                low = mid + 1;            }        }        if (low > high){         return (-1);        }        return 0;}int main(){     //创建数组,并算出数组的长度    int ch[10]={1,2,3,4,5,6,7,8,9,10};    int size = sizeof(ch)/sizeof (ch[0]);     //输入要查找的数字    int key=0;    printf("请输入你要查找的元素,如果查到将返回其下标\n");    scanf("%d",&key);    //调用函数    fun(key,ch,size);    //根据函数的返回值判断是否找到,返回值为非负表示找到且返回值为下标,返回值为-1表示没有找到    if (fun(key,ch,size)>=0){        printf("找到了,下标是%d\n",fun(key,ch,size));    }    else if (fun(key,ch,size)==(-1)){        printf("没有找到\n");    }    return 0;}

3.编写代码模拟三次密码输入的场景。

最多能输入三次密码,密码正确,提示“登录成功”,密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。

#define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>#include<stdlib.h>#include<string.h>int land(){    //定义一个变量i,为剩余输入密码次数,i>0时有输入密码的机会,输入正确,提示进入系统;输入错误,提示输入次数与剩余输入次数。若i=0,提示退出系统。    int i = 3;    char ch[10]={'h','e','l','l','o','1','2','3','\0'};    char input[10]={0};    while (i){        printf("准备登录您的用户,请输入密码:\n");        scanf("%s",input);        if (!strcmp(ch,input)){            return 0;        }        else {            i--;            printf("您输入的有误,剩余输入次数为%d\n",i);        }    }    if (i == 0){    return (-1);}    return 0;}int main(){    //调用函数    int i=land();    //如果返回值为0,提示登录成功,进入系统;返回值为-1,提示登录失败,退出系统.    if (i == 0){        printf("登录成功!\n");    }    else if (i == (-1)){        printf("您的输入次数已尽,系统将自动退出\n");    exit (1);    }    return 0;}

4.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int fun(char i){            if (i>='a'&&i<='z'){        i=i-32;               //字符对应ASCII码值在‘a’到‘z’间,减去32,对应大写的ASCII码值        printf("%c",i);    }    else if (i>='A'&&i<='Z'){        i=i+32;        printf("%c",i);    }    return 0;}int main(){    //定义一个接收字符的变量    char ch=0;    //当ch不为文件结尾符时执行循环,调用函数    while((ch=getchar()) != EOF)    fun (ch);    return 0;}
原创粉丝点击