前言:
●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!
时间转换:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> //给定秒数 seconds ,把秒转化成小时、分钟和秒 //包括一个整数,即给定的秒数。 //包含三个整数,依次为输入整数对应的小时数、分钟数和秒数(可能为零),中间用一个空格隔开 int main() { int h = 0;//小时数 int m = 0;//分钟数 int s = 0;//秒数 int seconds = 0; //输入 scanf("%d", &seconds); //计算 h = seconds / 3600; m = (seconds % 3600) / 60; s = (seconds % 3600) % 60; //s = seconds % 60; //输出 printf("%d %d %d", h ,m, s); return 0; }
编辑
求5个整数平均值:
#include <stdio.h> //求5个整数平均值 int main() { //输入 方法:1.放入数组 2.接收即相加计算 int score = 0; int sum = 0; int i = 0; float avg = 0.0f; for (i = 0; i < 5; i++) { scanf("%d", &score); sum += score; } //计算 avg = sum / 5.0; //avg = sum / 5; //输出 printf("%.1f\n", avg);//%.1f表示保留小数一位 //printf("%f\n", avg); return 0; }
编辑
#include <stdio.h> //求5个整数平均值 int main() { int data[5] = { 0 }; int sum = 0; int i = 0; float avg = 0.0f; for (i = 0; i < 5; i++) { scanf("%d", &data[i]); } for (i = 0; i < 5; i++) { sum += data[i]; } avg = sum / 5.0; printf("%.1f\n", avg); return 0; }
编辑
输出学生信息:
#include <stdio.h> //输出学生信息 int main() { printf("Name Age Gender\n"); printf("---------------------\n"); printf("Jack 18 man \n"); return 0; }
编辑
反向输出一个四位数:
#include <stdio.h> //反向输出一个四位数 int main() { int n = 0; scanf("%d", &n); while (n) { printf("%d", n % 10); n = n / 10; } return 0; }
编辑
扩展:
八进制:%8、/8 十六进制:%16、/16
解法 2:反向输出一个四位数
#include<stdio.h> int main() { int a, b, c, d; scanf("%1d%1d%1d%1d", &a, &b, &c, &d); printf("%d%d%d%d", d, c, b, a); }
编辑
编辑编辑
switch语句:
#include <stdio.h> int main() { int x = 3; int y = 3; switch (x % 2) { case 1: switch (y) { case 0: printf("first"); case 1: printf("second"); break; default: printf("hello"); } case 2: printf("third"); } //hellothird return 0; }
编辑
写代码将三个整数按从大到小输出:
//写代码将三个整数按从大到小输出 #include <stdio.h> int main() { int a = 0; int b = 0; int c = 0; scanf("%d %d %d", &a, &b, &c); //最大值放在a中,最小值放在c中 //a和b的较大值放在a中 if (a < b) { int tmp = a; a = b; b= tmp; } //把a和c的较大值放在a中 if (a < c) { int tmp = a; a = c; c = tmp; } //把b和c的较大值放在b中 if (b < c) { int tmp = b; b = c; c = tmp; } printf("%d %d %d", a,b,c); }
编辑
打印1-100中3 的倍数:
#include<stdio.h> int main() { int i = 0; //方法1 //for (i = 1; i <= 100; i++) //{ // //判断i是否是3的倍数 // if (i % 3 == 0) // { // printf("%d\t", i); // } //} //方法2 for (i = 3; i <= 100; i+=3) { printf("%d\t", i); } return 0; }
求两个数的最大公约数:
方法1 #include<stdio.h> int main() { int m = 0; int n = 0; scanf("%d %d", &m, &n); //求最大公约数 int ret = 0; //1. 求m和n 较小值,假设就是最大公约数 if (m > n) ret = n; else ret = m; while (1) { if (m % ret == 0 && n % ret == 0) { break; } ret--; } //打印 printf("%d\n", ret); return 0; } }
//方法2——辗转相除法 #include<stdio.h> int main() { int m = 0; int n = 0; scanf("%d %d", &m, &n);//18 24 //求最大公约数 int ret = 0; while (ret=m%n) { m = n; n = ret; } printf("%d\n", n); return 0; }
编辑
打印1000-2000之间的闰年:
//闰年判断的规则 //1. 能被4整除,并且不能被100整除是闰年 //2. 能被400整除是闰年 // int main() { int y = 0; int count = 0; for (y = 1000; y <= 2000; y++) { //判断y是不是闰年 //if (y % 4 == 0 && y % 100 != 0) //{ // count++; // printf("%d ", y); //} //if (y % 400 == 0) //{ // count++; // printf("%d ", y); //} if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400==0)) { count++; printf("%d\t", y); } } //输出个数 printf("\ncount = %d\n", count); return 0; }
编辑
打印100-200之间的素数:
代码9 打印100~200之间的素数 素数也是质数 只能被1和他本身整除的数字就是素数 7 2 3 4 5 6 #include <stdio.h> int main() { int y = 0; for (y = 100; y <= 200; y++) { //判断y是不是素数 //拿2~y-1的数字去试除y就行 int n = 0; int flag = 1;//假设y是素数 for (n = 2; n < y; n++) { if (y % n == 0) { flag = 0;//y不是素数 break; } } if (flag == 1) printf("%d\t", y); } return 0; }
//打印素数优化 #include <stdio.h> #include <math.h> int main() { int y = 0; int count = 0; for (y = 101; y <= 200; y+=2) { //判断y是不是素数 //拿2~y-1的数字去试除y就行 int n = 0; int flag = 1;//假设y是素数 for (n = 2; n <= sqrt(y); n++) { if (y % n == 0) { flag = 0;//y不是素数 break; } } if (flag == 1) { printf("%d ", y); count++; } } printf("\ncount = %d\n", count); return 0; }
编写代码实现,模拟用户登录情景,并且只能登录三次。(只允许输入三次密码,如果密码正确则 提示登录成,如果三次均输入错误,则退出程序
//strcmp - string compare //返回0,说明2个字符串相等 //返回大于0的数字 //返回小于0的数字 // #include<stdio.h> #include <string.h> int main() { int i = 0; char password[20] = ""; //假设密码是"123456" for (i = 0; i < 3; i++) { printf("请输入密码:>"); scanf("%s", password);//password不取地址的原因是password是数组名,数组名本来就是地址 if (strcmp(password, "123456") == 0)//比较2个字符串是否相等,不能使用==,而应该使用strcmp这个函数 { printf("登陆成功\n"); break; } else { printf("密码错误\n"); } } if (i == 3) { printf("三次密码均错误,退出程序\n"); } return 0; }
编辑
//strcmp - string compare
//返回0,说明2个字符串相等
//返回大于0的数字
//返回小于0的数字
猜数字游戏程序:
//猜数字游戏 //电脑随机生成一个1~100之间的数字 //猜数字 //玩家猜小了,电脑会告诉:猜小了 //玩家猜大了,电脑会告诉:猜大了 //玩家猜对了,电脑会告诉:恭喜你,猜对了 //C语言中生成的随机数的方式是rand函数 //0~RAND_MAX 0x7fff //0~32767 #include<stdio.h> #include <stdlib.h> #include <time.h> void menu() { printf("***************************\n"); printf("***** 1. play ******\n"); printf("***** 0. exit ******\n"); printf("***************************\n"); } void game() { int guess = 0; //猜数字游戏的过程 //生成随机数 int r = rand() % 100 + 1;//0~99-->1~100 //猜数字 while (1) { printf("猜数字:>"); scanf("%d", &guess); if (guess < r) { printf("猜小了!\n"); } else if (guess > r) { printf("猜大了!\n"); } else { printf("恭喜你,猜对了!\n"); break; } } } int main() { int input = 0; srand((unsigned int)time(NULL));//时间-设置随机数的生成器 do { //打印菜单 menu(); printf("请选择:>"); scanf("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出游戏!\n"); break; default: printf("选择错误!\n"); break; } } while (input); return 0; }
编辑
注:
1.C语言中生成的随机数的方式是rand函数
2.srand((unsigned int)time(NULL));//时间-设置随机数的生成器
srand要放在主函数内!