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;}
阅读全文
0 0
- 二进制 2017/11/19
- 2017/11/19
- 2017-11-19
- 11/19/2017
- 2017-11-19周总结
- Git-2017-06-11 20:17:19
- 2017年11月19日实验感想
- 2017年11月19日训练总结
- 2017年11月19日训练笔记
- 一周AI新闻回顾(2017-11-19)
- 11#19
- 11-19
- 《七点三刻》有价值的新闻早餐 2017年11月19日星期日,第010期
- 剑指offer每日一刷-2017年11月19日
- Linux学习内容总结2017/11/19(linux文本编辑器及基本进程管理)
- 2017-11
- CVPR 2017-01-19
- 2017/1/19
- ArcGISEngine二次开发(4):属性查询(2)
- Matches(uva 11375)
- Linux命令(一)
- 人生就是不断自我颠覆——《颠覆者》读书心得
- js获取URL参数的2个方法,可以直接使用
- 2017-11-19
- Angular2搭建环境
- JDK8中的Comparable<T>接口源码分析
- 使用Xib自定义UITableViewCell
- Intellij idea的一些设置
- 详解C中volatile关键字
- 线段树区间查询
- 使用selenium3.X启动firefox浏览器
- b进制运算之一--和