C语言X天学习计划——撸码篇(一)

全篇都是很多书上的源码和一些自己模仿的代码

  • 第一个程序:计算圆的周长
/*
	2021年1月14日18:33:47	自己所写
	计算圆周长.c
*/
# include <stdio.h>
# define PI 3.14

int main(void)
{
	float circle;
	float R;

	printf("请输入一个圆的半径:");
	scanf("%f", &R);

	circle = 2 * PI * R;
	printf("圆的周长为:%.3f\n", circle);

	return 0;
}

/*
-----------------------------------------
在VC++6.0中运行结果为:
请输入一个圆的半径:20.3
圆的周长为:127.484
-----------------------------------------
*/
/*
	2021年1月14日19:00:37
	计算圆周长.c			《C语言从入门到精通》
*/
# include <stdio.h>		
# include <math.h>
# define PI 3.14

int main(void)
{
	int radius;
	float circum;

	radius = 2;
	circum = 2 * PI * radius;

	printf("变量 radius 地址是:%d\n", &radius);
	printf("半径开方值:%f\n", sqrt(radius));
	printf("半径是%d 周长是%f\n", radius, circum);

	return 0;
}

/*
---------------------------------------------------
在VC++6.0中运行的结果为:
变量 radius 地址是:1703724
半径开方值:1.414214
半径是2 周长是12.560000
---------------------------------------------------
*/
  • 第二个程序:平均成绩、分数等级
/*
	2021年1月15日14:56:38

	题目:输入不确定个数的学生的成绩,输入负数时程序结束。
	根据输入的数据计算全班的平均成绩,并统计90分以上的学生
	的个数,80-90分学生的个数,70-80分学生的个数,60-70学
	生的个数,以及不及格的学生的个数。
	
	编程过程中的错误:非输出控制符与scanf连用
	例:scanf("%d\n", &m)
*/
# include <stdio.h>

int main(void)
{
	float sum = 0.0, avg = 0.0;
	int count, num, c91, c81, c71, c61,c0;
	count = num = c91 = c81 = c71 = c61 = c0 = 0;

	scanf("%d", &num);
	while (num >= 0 && num < 101)		// 输入负数时程序结束
	{
		sum += num;			// 总成绩
		count += 1;			// 人数

		if (num >= 90)
			c91 += 1;
		else if	(num >= 80 && num < 90)
		{
			c81 += 1;
		}
		else if (num >= 70 && num < 80)
		{
			c71 += 1;
		}
		else if (num >= 60 && num < 70)
		{
			c61 += 1;
		}
		else 
		{
			c0 += 1;
		}

		scanf("%d", &num);	// 再次输入成绩
	}

	avg = sum / count;			// 平均值

	printf("本班的平均值为:%f\n", avg);
	printf("90分以上的人数是:%d\n", c91);
	printf("80分以上的人数是:%d\n", c81);
	printf("70分以上的人数是:%d\n", c71);
	printf("60分以上的人数是:%d\n", c61);
	printf("  不及格的人数是:%d\n", c0);

	return 0;
}

/*
-----------------------------------------------
在VC++6.0中运行结果为:
96
86
84
98
75
65
68
92
84
73
-5
本班的平均值为:82.100000
90分以上的人数是:3
80分以上的人数是:3
70分以上的人数是:2
60分以上的人数是:2
  不及格的人数是:0
-----------------------------------------------
*/
/*
	2021年1月15日14:56:38

	题目:输入不确定个数的学生的成绩,输入负数时程序结束。
	根据输入的数据计算全班的平均成绩,并统计90分以上的学生
	的个数,80-90分学生的个数,70-80分学生的个数,60-70学
	生的个数,以及不及格的学生的个数。

	《C语言从入门到精通》

*/
# include <stdio.h>

int main(void)
{
	float sum = 0.0, avg = 0.0;
	int count, num, c91, c81, c71, c61,c0;
	count = num = c91 = c81 = c71 = c61 = c0 = 0;

	scanf("%d", &num);
	while (num >= 0 && num < 101)
	{
		sum += num;			// 总成绩
		count += 1;			// 人数
		if (num >= 90)
			c91 += 1;
		else
		{
			if (num >= 80 && num < 90)
				c81 += 1;
			else
			{
				if (num >= 70 && num < 80)
					c71 += 1;
				else
				{
					if (num >= 60 && num < 70)
						c61 += 1;
					else c0 += 1;
				}
			}
		}
		
		scanf("%d", &num);	// 再次输入成绩
	}

	avg = sum / count;			// 平均值

	printf("本班的平均值为:%f\n", avg);
	printf("90分以上的人数是:%d\n", c91);
	printf("80分以上的人数是:%d\n", c81);
	printf("70分以上的人数是:%d\n", c71);
	printf("60分以上的人数是:%d\n", c61);
	printf("  不及格的人数是:%d\n", c0);

	return 0;
}

/*
-----------------------------------------------
在VC++6.0中运行结果为:
96
98
97
65
45
72
82
-6
本班的平均值为:79.285714
90分以上的人数是:3
80分以上的人数是:1
70分以上的人数是:1
60分以上的人数是:1
  不及格的人数是:1
-----------------------------------------------
*/
  • 第三个程序:是否为闰年
/*
	2021年1月16日10:08:48
	判断是不是闰年
	《C语言从入门到精通》
*/


# include <stdio.h>

int main(void)
{
	int year;

	printf("请输入年份:");
	scanf("%d", &year);
	if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
		printf("%d 是闰年!\n", year);
	else
		printf("%d 不是闰年!\n", year);

	return 0;
}

/*
------------------------------------------------
在VC++6.0中运行结果为:
请输入年份:2028
2028 是闰年!
------------------------------------------------
*/
  • 第四个程序:方程的计算

    a=1 , b=5 x由用户自定义
/*
	2021年1月16日14:25:35
	计算给定方程的值
	《C语言从入门到精通》
*/

# include <stdio.h>

int main()
{
	int a = 1;
	int b = 5;
	float x, y;
	
	printf("请输入任意一个数字:");
	scanf("%f", &x);
	y = x >= -10 ? (-a * (b + x)) : (3.0/((a*a*a + x*x*x) * b)); // 三目运算符
	
	printf("y = %f\n", y);

	return 0;
}

/*
------------------------------------------------------------------------
在VC++6.0中运行结果为:
请输入任意一个数字:4
y = -9.000000

请输入任意一个数字:-20
y = -0.000075
------------------------------------------------------------------------
*/
  • 第五个程序:鸡兔同笼问题
    在这里插入图片描述
/*
	2021年1月16日15:33:08
	鸡兔同笼问题(顺序结构)
	《C语言从入门到精通》
*/

# include <stdio.h>

int main()
{
	int m;	// 鸡的个数
	int n;	// 兔的个数
	int h;	// 鸡兔总头数
	int f;	// 鸡兔总脚数

	printf("输入一共有多少头鸡和兔:");
	scanf("%d", &h);
	printf("输入鸡和兔一共有多少脚:");
	scanf("%d", &f);

	m = (4 * h - f) / 2;
	n = (f - 2 * h) / 2;

	printf("共有鸡 %d 只 共有兔 %d 只\n", m, n);
	
	return 0;
}

/*
-------------------------------------------------
在VC++6.0中运行结果为:
输入一共有多少头鸡和兔:10
输入鸡和兔一共有多少脚:32
共有鸡 4 只 共有兔 6 只
-------------------------------------------------
*/
  • 第六个程序:水仙花数 153= 1 * 1 * 1 + 5 * 5 * 5 + 3 * 3 * 3
/*
	2021年1月17日11:51:32
	判断输入的数字是否为水仙花数
*/

# include <stdio.h>

void main()
{
	int n, a, b, c;

	printf("请输入一个三位数:");
	scanf("%d", &n);

	a = n / 100;
	b = n % 100 / 10;
	c = n % 10;

	if (a * a * a + b * b * b + c * c * c == n)	
		printf("%d 是水仙花数!\n", n);
	else
		printf("%d 不是水仙花数!\n", n);
}

/*
-------------------------------------------------------
在VC++6.0中运行结果为:
请输入一个三位数:153
153 是水仙花数!
请输入一个三位数:370
370 是水仙花数!
请输入一个三位数:250
250 不是水仙花数!
-------------------------------------------------------
*/

/*
	2021年1月17日12:01:39
	找出 100 -999 之间所有的水仙花数
	《C语言从入门到精通》
*/

# include <stdio.h>

int main(void)
{
	int i, a, b, c;

	for (i=100; i<999; i++)
	{
			
		a = i / 100;
		b = i % 100 / 10;
		c = i % 10;

		if (a*a*a+b*b*b+c*c*c == i)
			printf("水仙花数有:%d\n", i);
	}

	return 0;
}

/*
---------------------------------------------
在VC++6.0中运行结果为:
水仙花数有:153
水仙花数有:370
水仙花数有:371
水仙花数有:407
---------------------------------------------
*/

  • 第七个程序:一个数的阶乘
/*
	2021年1月17日12:16:00
	一个数的阶乘
	《C语言从入门到精通》
*/

# include <stdio.h>

int main(void)
{
	int n, i;
	int sum = 1;
	
	printf("轻输入任意一个数字用于计算这个数的阶乘:");
	scanf("%d", &n);
	
	for (i=1; i<=n; i++)
	{
		sum *= i;
	}

	printf("这个数的阶乘为:%d\n", sum);

	return 0;
}

/*
------------------------------------------
轻输入任意一个数字用于计算这个数的阶乘:5
这个数的阶乘为:120
------------------------------------------
*/

累加与累乘是最常见的一类算法,这类算法需要设置两个变量,一个用来作为循环变量控制自然数的增减变化,另一个作为存放累加累乘的结果,通过循环变量变成下一个数的累加或累乘。所以一般求阶乘时存放阶乘的变量初值为1,求累加初值应设置为0。


  • 第八个程序:计算1/2 + 2/3 + 3/4…… 前20项的和
/*
	2021年1月17日15:57:25
	计算1/2 + 2/3 + 3/4 …… 前20项的和
	《C语言从入门到精通》
*/

# include <stdio.h>

int main(void)
{
	double i;
	double sum = 0;

	i = 1.0;
	while (i <= 20)
	{ 
		sum += i / (i+1);
		i++;
	}
	printf("前20项和是:%f\n", sum);

	return 0;
}

/*
---------------------------------------
在VC++6.0中运行结果为:
前20项和是:17.354641
---------------------------------------
*/
  • 第九个程序:求两数的最大公约数、最小公倍数
/*
	2021年1月17日18:10:59
	辗转相除法求两数的最大公约数、最小公倍数
	《C语言从入门到精通》
*/

# include <stdio.h>

int main(void)
{
	int m, n, t, r;
	int m1, n1, d;

	printf("请输入第一个数:");
	scanf("%d", &m);
	printf("请输入第二个数:");
	scanf("%d", &n);

	// 保存原始数据
	m1 = m;
	n1 = n;

	if (m < n)
	{
		t = m;
		m = n;
		n = t;
	}

	// 辗转相除法求最大公约数
	do
	{
		r = m % n;
		m = n;
		n = r;
	}while(r != 0);
	d = m1 * n1 / m;		// 最小公倍数

	printf("%d和%d的最大公约数是:%d 最小公倍数是:%d\n", m1, n1, m, d);


	return 0;
}

/*
---------------------------------------------------------
在VC++6.0中运行结果为:
请输入第一个数:24
请输入第二个数:36
24和36的最大公约数是:12 最小公倍数是:72
---------------------------------------------------------
*/

  • 第十个程序:金字塔
/*
	2021年1月17日18:35:37
	*型金字塔
	《C语言从入门到精通》
*/

# include <stdio.h>

int main(void)
{
	int i, j, k;

	// 控制行数
	for (i=1; i<=5; i++)
	{
		// 输出空格
		for (j=1; j<=5-i; j++)
			printf(" ");
		// 输出* 号
		for (k=1; k<=2*i-1; k++)
			printf("*");
		printf("\n");	// 回车
	}

	return 0;
}

/*
-----------------------------------
在VC++6.0中运行结果为:
    *
   ***
  *****
 *******
*********
-----------------------------------
*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想前

看客 多少意思意思

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值