C语言学习笔记——P7

 

目录

前言:

 ●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!

 扩展:

 //strcmp - string compare//返回0,说明2个字符串相等//返回大于0的数字//返回小于0的数字

 注:

1.C语言中生成的随机数的方式是rand函数

2.srand((unsigned int)time(NULL));//时间-设置随机数的生成器

srand要放在主函数内!


前言:

 ●由于作者水平有限,文章难免存在谬误之处,敬请读者斧正,俚语成篇,恳望指教!

 时间转换:

#define  _CRT_SECURE_NO_WARNINGS
#include 	
        //给定秒数 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;
}

C语言学习笔记——P7_第1张图片

 求5个整数平均值:

​
#include 	//求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;
}

​

C语言学习笔记——P7_第2张图片

#include 	//求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;

}

C语言学习笔记——P7_第3张图片

 

 输出学生信息:

#include 	//输出学生信息
int main()
{
	printf("Name    Age    Gender\n");
	printf("---------------------\n"); 
	printf("Jack    18     man   \n");
	return 0;
}

C语言学习笔记——P7_第4张图片

 反向输出一个四位数:

#include 	//反向输出一个四位数
int main()
{
	int n = 0;
	scanf("%d", &n);
	while (n)
	{
		printf("%d", n % 10);
		n = n / 10;
	}
	return 0;
}

C语言学习笔记——P7_第5张图片

 扩展:

八进制:%8、/8         十六进制:%16、/16

解法 2:反向输出一个四位数

#include
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);
}

C语言学习笔记——P7_第6张图片

C语言学习笔记——P7_第7张图片C语言学习笔记——P7_第8张图片

 switch语句:

#include 
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;
}

C语言学习笔记——P7_第9张图片

 

 写代码将三个整数按从大到小输出:

//写代码将三个整数按从大到小输出
#include 	
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);

}

 C语言学习笔记——P7_第10张图片

 

 打印1-100中3 的倍数:

#include
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
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
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;
}

 C语言学习笔记——P7_第11张图片

 

打印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;
}

 C语言学习笔记——P7_第12张图片

 打印100-200之间的素数:

 

代码9
打印100~200之间的素数
素数也是质数
只能被1和他本身整除的数字就是素数
7
2 3 4 5 6

#include 
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 
#include 

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
#include 

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;
}

C语言学习笔记——P7_第13张图片

 //strcmp - string compare
//返回0,说明2个字符串相等
//返回大于0的数字
//返回小于0的数字

猜数字游戏程序:

//猜数字游戏

//电脑随机生成一个1~100之间的数字
//猜数字
//玩家猜小了,电脑会告诉:猜小了
//玩家猜大了,电脑会告诉:猜大了
//玩家猜对了,电脑会告诉:恭喜你,猜对了

//C语言中生成的随机数的方式是rand函数
//0~RAND_MAX 0x7fff
//0~32767
#include
#include 
#include 

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;
}

 C语言学习笔记——P7_第14张图片

 注:

1.C语言中生成的随机数的方式是rand函数

2.srand((unsigned int)time(NULL));//时间-设置随机数的生成器

srand要放在主函数内!

 

 

 

 

你可能感兴趣的:(C语言学习笔记,c语言)