C语言今日份练习

//1.题目名称:从大到小输出

// 题目内容:写代码将三个数按从大到小输出

#include<stdio.h>

int main()

{

int a = 0;

int b = 0;

int c = 0;

scanf_s("%d %d %d", &a, &b, &c);//2 1 3

int d = 0;

if (a < b)

{

d = a;

a = b;

b = d;

}

else if (a < c)//else 是否则 if 是如果

{

d = a;

a = c;

c = d;

}

if (b < c)//这里不能加else 因为这样的话就只会执行第二个else if 而这个里面的语句不执行

{

d = b;

b = c;

c = d;

}

printf("%d %d %d\n", a, b, c);

return 0;

}

//2.题目名称:打印3的倍数的数

// 题目内容:写一个代码打印1-100之间所有3的倍数的数字

#include<stdio.h>

int main()

{

int i = 0;

int count=0;

for (i = 1; i <= 100; i++)

{

if (i % 3 == 0)

{

printf("%d ", i);

count++;

}

}

printf("\ncount=%d", count);

return 0;

}

//3.题目名称:最大公约数

// 题目内容:给定两个数,求这两个数的最大公约数

// 辗转相除法:公约数 两个数取模,不为0,再取模,取到0的话就为最大公约数

#include<stdio.h>

int main()

{

int a = 0;

int b = 0;

scanf_s("%d %d", &a, &b);

int r = 0;

while (a % b)

{

r = a % b; //18%24=18

a = b;

b = r;

}

printf("%d\n", b);

return 0;

}

//4.题目名称: 打印闰年(要想知道多少个闰年count++就行)

// 题目内容:打印1000年到2000年之间的闰年

#include<stdio.h>

int main()

{

int i = 0;

int count = 0;

for (i = 1000; i <= 2000; i++)

{

//判断i是否为闰年(两个条件用if和else if)(也可以if(()||())

//1.能被4整除并且不能被100整除是闰年

//2.能被400整除是闰年

if (i % 4 == 0 && i % 100 != 0)

{

printf("%d ", i);

count++;

}

else if (i % 400 == 0)

{

printf("%d ", i);

count++;

}

}

if (((i % 4 == 0) && (i % 100 != 0)) || (i % 400 == 0))

{

printf("%d ", i);

count++;

}

}

printf("\ncount=%d\n", count);

return 0;

}

//5.题目名称:打印素数

// 题目内容:写一个代码:打印100-200之间的素数

#include<stdio.h>

int main()

{

int i = 0;

int count = 0;

for (i = 100; i <= 200; i++)

{

//判断i是否为素数

//素数判断的规则

//1.试除法

//产生2->i-1个数

int j = 0;

for (j = 2; j < i; j++)//j<i的意思就是从2到i-1的范围

{

if (i % j == 0)

{

break;

}

}

//1.break跳到这里来

//2.都是素数时到这里来

//固定一个

if (j == i)

{

printf("%d ", i);

count++;

}

}

printf("\ncount=%d ", count);

return 0;

}

//优化算法(开平方)即a和b中至少有一个数字<=开平方i(i=a*b);也可以在奇数里找,偶数肯定不是素数

//6.题目名称:数9的个数

// 题目内容:编写程序数一下1到100的所有整数中出现多少个数字9

#include<stdio.h>

int main()

{

int i = 0;

int count = 0;

for (i = 1; i <= 100; i++)

{

if (i % 10 == 9)

count++;

if (i / 10 == 9)

count++;

}

printf("%d ", count);

return 0;

}

//7.题目名称:分数求和

// 题目内容:计算1/1-1/2+1/3-1/4...+1/99-1/100的值,打印出结果

#include<stdio.h>

int main()

{

int i = 0;

int b = 1;

double a = 0;

double sum = 0.0;

for (i = 1; i <= 100; i++)

{

a = 1.0 / i;

sum += b * a;

b = -b;

}

printf("%lf ", sum);

return 0;

}

//8.题目名称:求最大值

// 题目内容:求10个整数中最大值

#include<stdio.h>

int main()

{

int arr[] = { -1,-2,-3,-4,-5,-6,-7,-8,-9,-10 };

int max = arr[0];//认为max就是最大值,再把里面每个元素跟max比较,再互换

int i = 0;

int a = 0;

int sz = sizeof(arr) / sizeof(arr[0]);

for (i = 0; i < sz; i++)

{

if (max < arr[i])

{

a = max;

max = arr[i];

arr[i] = a;

}

}

printf("%d ", max);

return 0;

}

//9.题目名称:乘法口诀表

// 题目内容:在屏幕上输出9*9乘法口诀表

//1*1=1

//2*1=2 2*2=4 a*b=m 先确定行 再确定列

#include<stdio.h>

int main()

{

int i = 0;

//确定打印9行

for (i = 1; i <= 9; i++)

{

//打印一行

int j = 0;

for (j = 1; j <= i; j++)

{

printf("%d*%d=%-2d ", i, j, i*j);

}

printf("\n");

}

return 0;

}

//10.题目名称:二分查找

// 题目内容:编写代码再一个整形有序数组中查找具体的某个数

// 要求:找到了就打印数字所在的下标,找不到则输出:找不到

#include<stdio.h>

int main()

{

int arr[] = { 1,2,3,4,5,6,7,8,9,10 };

int k = 7;

int left = 0;

int sz = sizeof(arr) / sizeof(arr[0])-1;

int right = sz;

int mid = 0;

while (left <= right)//加一个循环,因为要一直找

{

mid = (left + right) / 2;

if (arr[mid] > k)

{

right = mid - 1;

}

else if (arr[mid] < k)

{

left = mid + 1;

}

else

break;

}

if (left <= right)

printf("找到了,下标是%d\n", mid);

else

printf("找不到\n");

return 0;

}

//11.题目名称:猜数字游戏

// 题目内容:1.电脑会生成一个随机数

// 2.猜数字

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

void game()

{

//1.生成一个随机数

int ret = 0;

int guess = 0;//接收猜的数字

//拿时间戳来设置随机数的生成起始点

//time_t time(time_t *timer)

//time_t

ret = rand() % 100 + 1;//生成1-100之间随机数

//2.猜数字

while (1)

{

printf("请猜数字:>");

scanf_s("%d", &guess);

if (guess > ret)

{

printf("猜大了\n");

}

else if (guess < ret)

{

printf("猜小了\n");

}

else

{

printf("恭喜你,猜对了\n");

break;

}

}

}

void menu()

{

printf("*************************************\n");

printf("**** 1.play 0.exit ****\n");

printf("*************************************\n");

}

int main()

{

int input=0;

srand((unsigned int)time(NULL));

do {

menu();

printf("请选择:>");

scanf_s("%d",&input);//要是输入1或0没问题,但是输入其他数有问题要用default所以想到switch语句

switch (input)

{

case 1:

game();

break;

case 0:

printf("退出游戏\n");

break;

default:

printf("选择错误,请重新选择\n");

break;

}

} while (input);

return 0;

}

12.题目名称:关机程序

题目内容:写一个关机程序

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

int main()

{

char input[10] = { 0 };

//shutdown - s - t 60

//cmd command-命令行

//system()-执行系统命令的

system("shutdown -s -t 60");

again:

printf("请注意,你的电脑将在1分钟内关机。如果输入:我是猪,就取消关机\n请输入:>");

scanf("%s", &input);

if (strcmp(input,"我是猪") == 0)//比较两个字符串-strcmp()

{

system("shutdown -a");

}

else

{

goto again;

}

return 0;

}

相关推荐
东方冷哥17 分钟前
考研数据结构——C语言实现归并排序
c语言·数据结构·考研
weixin_4464732519 分钟前
代码随想录算法训练营第31天| 56. 合并区间;738.单调递增的数字;968.监控二叉树 ; 总结
算法
景鹤19 分钟前
【算法】分治:归并之 912.排序数组(medium)
数据结构·算法
已经成为了代码的形状20 分钟前
线性基学习DAY2
学习·算法
Violet永存20 分钟前
算法:按既定顺序创建目标数组
java·数据结构·算法
陈小唬20 分钟前
算法——二分查找
java·数据结构·算法
2401_857297911 小时前
招联金融内推-2025校招
java·前端·算法·金融·求职招聘
2401_857297911 小时前
2025秋招内推|招联金融
java·前端·算法·金融·求职招聘
狗都不写1 小时前
洛谷P1789MC生存插火把
c语言·学习
panxianzhan1 小时前
VS开发 - 静态编译和动态编译的基础实践与混用
c语言·c++·windows·visual studio