#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void swap(int* a[], int* b[]){
int temp = *a;
*a = *b;
*b = temp;
}
void bubblesort(int arr[],int size ){
int bound = 0;
for (; bound < size;++bound){
for (int cur = size - 1; cur > bound; --cur){
if (arr[cur] > arr[cur - 1]){
swap(&arr[cur],&arr[cur - 1]);
}
}
}
}
void menu(){
printf("---------------------------------------------------------\n");
printf("-----------------------1.开始游戏-----------------------\n");
printf("-----------------------0.退出---------------------------\n");
printf("---------------------------------------------------------\n");
}
void game(){
int num = 0;
srand((unsigned int)time(NULL));
int key = rand()%100 + 1;
printf("请输入一个1-100的数字:\n");
while (1){
scanf("%d", &num);
if (num == key){
printf("你真猛~猜对了!\n");
break;
}
else if (num > key){
printf("你真猛~大了!\n");
}
else{
printf("你真猛~小了!\n");
}
}
}
int BinarySearch(int arr[], int left,int right,int key){
while (left <= right){
int mid = (right + left) / 2;
if (key > arr[mid]){
left = mid + 1;
}
else if (key < arr[mid]){
right = mid - 1;
}
else{
return mid;
break;
}
}
return -1;
}
void showmatrix(int input){
for (int i = 1; i <= input; i++){
for (int j = 1; j <= i; j++){
printf("%2d*%2d=%d ", j ,i,i*j);
}
printf("\n");
}
}
void exchange(int* a, int* b){
int temp = *a;
*a = *b;
*b = temp;
}
void isleap(int year){
if (year % 400 == 0){
printf("%d 年是世纪闰年\n", year);
}
else if(year % 4 == 0&&year % 100 != 0){
printf("%d 年是普通闰年\n", year);
}
else{
printf("%d 年不是闰年\n",year);
}
}
void init(int arr[]){
int a = 0;
for (int i = 0; i < 5; i++){
printf("请输入第%d 个数:\n",i + 1);
scanf("%d", &a);
arr[i] = a;
}
printf("你输入的数组为:\n");
for (int i = 0; i < 5; i++){
printf("%d ", arr[i]);
}
printf("\n");
}
void reverse(int arr[]){
printf("反置后的数组为:\n");
int arr2[5] = { 0 };
for (int i = 0; i < 5; i++){
arr2[i] = arr[4 - i];
printf("%d ", arr2[i]);
}
printf("\n");
}
void empty(int* arr){
printf("清空后的数组元素为:\n");
for (int i = 0; i < 5; i++){
arr[i] = '\0';
printf("第%d 个元素为%d\n", i + 1,arr[i]);
}
}
void isprime(input){
int i;
for (i = 2; i < input; i++){
if (input % i == 0){
break;
}
}
if (input <= 1){
printf("%d 不是素数\n", input);
}
else if(i <input){
printf("%d 不是素数\n", input);
}
else{
printf("%d 是素数\n", input);
}
}
int main()
{
//冒泡排序算法;
int a[] = { 9, 5, 2, 7 };
int size = sizeof(a) / sizeof(a[0]);
bubblesort(a, size);
for (int i = 0; i < 4; ++i){
printf("%d ", a[i]);
}
printf("\n");
printf("%d ", size);
/
//第一题:完成猜数字游戏;
int input;
do{
menu();
printf("请选择:\n");
scanf("%d", &input);
switch (input){
case 1:
game();
break;
case 0:
printf("游戏结束!\n");
break;
default:
printf("输入有误!\n");
break;
}
} while (input != 0);
/
//第二题:写代码可以在整型有序数组中查找想要的数字,找到了返回下标,找不到返回 - 1.(折半查找)
int arr[10] = { 1, 2, 3, 4, 5,6,7,8,9,10 };
int len = sizeof(arr) / sizeof(arr[0]);
int index = BinarySearch(arr, 0, len - 1, 10);
printf("%d\n", index);
/
//第三题:编写代码模拟三次密码输入的场景。 最多能输入三次密码,密码正确,提示“登录成功”, 密码错误,可以重新输入,最多输入三次。三次均错,则提示退出程序。
char password[20] = "a12345";
int count = 1;
char input[] = "0";
while (count < 4){
printf("请输入密码:\n");
scanf("%s", &input);
if (strcmp(password, input) == 0){
printf("登陆成功!\n");
break;
}
else{
count ++;
printf("密码错误!!! 你还有%d 次机会!\n",4 - count);
}
}
/
//第四题:编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出。
printf("请连续输入字符:\n");
while (1){
char input = 0;
scanf("%c", &input); //还可以用getchar()函数 %c表示字符 %s表示字符串 %p表示地址
if (input >= 'A' && input <= 'Z'){
printf("%c", (int)input + 32);
}
else if (input >= 'a' && input <= 'z'){
printf("%c", input - 32);
}
else;
}
//
第一题:.实现一个函数,打印乘法口诀表,口诀表的行数和列数自己指定,输入9,输出9 * 9口诀表,输入12,输出12 * 12的乘法口诀表。
int input = 0;
printf("请输入一个你想打印的乘法口诀的规模:\n");
scanf("%d", &input);
showmatrix(input);
///
//第二题:使用函数实现两个数的交换。
int a = 0;
int b = 0;
printf("请输入两个要交换的数(并用空格隔开):\n");
scanf("%d %d", &a, &b);
exchange(&a, &b);
printf("交换后:%d %d", a, b);
///
//第三题:实现一个函数判断year是不是润年。
int year = 0;
printf("请输入年份:\n");
scanf("%d", &year);
isleap(year);
///
//第四题:创建一个数组,实现函数init()初始化数组,实现empty()清空数组,实现reverse()函数完成数组元素的逆置。要求:自己设计函数的参数,返回值。
int arr[5] = { 0 }; //如果我想设置一个自定义长度的数组,用scanf()输入的话,但是arr[]中必须放常量,求解怎么设定自定义长度的数组????
init(&arr);
reverse(&arr);
empty(&arr);
///
//第五题:实现一个函数,判断一个数是不是素数。
printf("请输入一个数:\n");
int input = 0;
scanf("%d", &input);
isprime(input);
system("pause");
return 0;
}
C语言(猜数字游戏;折半查找;冒泡排序;编写代码模拟三次密码输入的场景,最多能输入三次密码;编写一个程序,实现大小写转化,数字不输出;写出数组初始化、反置、清空操作函数等.)
最新推荐文章于 2023-07-19 23:28:11 发布