C语言编程入门——综合练习(二)

解一元二次方程:

# include <stdio.h>
# include <math.h>

int main(void)
{
	double a;
	double b;
	double c;
	double x1;
	double x2;
	double det;
	char ch;
	do
	{
		printf("请输入a b c 三个系数的值:\n");

		printf("a = ");
		scanf("%lf", &a);

		printf("b = ");
		scanf("%lf", &b);

		printf("c = ");
		scanf("%lf", &c);

		det = b*b - 4*a*c;

		if (det > 0)
		{
			x1 = (-b + sqrt(det)) / 2*a;
			x2 = (-b - sqrt(det)) / 2*a;
			printf("方程有两个解:x1 = %lf x2 = %lf\n", x1, x2);
		}
		else if(det == 0)
		{
			x1 = (-b + sqrt(det))/2*a;
			printf("方程有一个解: x1 = x2 = %lf\n", x1);
		}
		else
		{
			printf("方程没有解\n");
		}
		printf("您想继续吗?(Y/N)\n");
		scanf(" %c", &ch); //ch前必须加一空格 (空白符问题)
	}while ('y' == ch || 'Y' == ch);

		return 0;
}

分数等级判断程序:

# include <stdio.h>

int main(void)
{
	int i;

	printf("请输入您的成绩:");
	scanf("%d", &i);

	if (i > 100)
		printf("一切皆有可能!!!\n");
	else if(i >= 90 && i <= 100)
		printf("您的等级是:优秀\n");
	else if (i >= 80 && i < 90) // <= 所得结果为一逻辑值,是布尔型 其值为0或1,永远小于90,即此式永远成立! 其值永远为真(1)
		printf("您的等级是:良好\n");
	else if (i >= 60 && i < 80)
		printf("您的等级是:及格\n");
	else if (i >= 0 && i < 60)
		printf("抱歉!您的等级是:不及格\n");
	else
		printf("请不要开玩笑!\n");

	return 0;
}

三个数字排序(if语句实现,这个程序很啰嗦,只为练习if语句所写):

# include <stdio.h>

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

	printf("请输入三个数(中间以空格隔开):");
	scanf("%lf %lf %lf", &i, &j, &k);

	if (i > j)
	{
		if (i > k)
		{
			printf("最大值为:%lf\n", i);
			if (j > k)
				printf("数的大小顺序为:%lf > %lf > %lf\n", i, j, k);
			else
				printf("数的大小顺序为:%lf > %lf > %lf\n", i, k, j);

		}
		else
		{
			printf("最大值为:%lf\n", k);
			printf("数的大小顺序为:%lf > %lf > %lf\n", k, i, j);
		}
	}
	else
	{
		if (j > k)
		{
			printf("最大值为:%lf\n", j);
			if (i > k)
				printf("数的大小顺序为:%lf > %lf > %lf\n", j, i, k);
			else
				printf("数的大小顺序为:%lf > %lf > %lf\n", j, k, i);
		}
		else
		{
			printf("最大值为:%lf\n", k);
			printf("数的大小顺序为:%lf > %lf > %lf\n", k, j, i);
		}
	}
	return 0;
}

判断一个数是否为回文数:

# include <stdio.h>

int main(void)
{
	int val;
	int m;
	int sum = 0;

	printf("请输入需要判断的数:");
	scanf("%d", &val);

	m = val;
	while (m) //while循环为重点!
	{
		sum = sum * 10 + m % 10;
		m /= 10;
	}

	if (sum == val)
	{
		printf("此数是回文数!\n");
	}
	else
	{
		printf("此数不是回文数!\n");
	}

	return 0;
}

递归求阶乘之和:

# include <stdio.h>

int jieCheng(int n);

int main(void)
{
	int i, n;
	int mul = 1;
	int sum = 0;

	printf("请输入n:");
	scanf("%d", &n);

	for (i=1; i<=n; ++i)
	{
		mul *= i;
		sum += mul;
	}

	printf("阶乘之和为:%d\n", sum);

	return 0;
}

//递归
int jieCheng(int n)
{
	int mul;

	if (1 == n)
	{
		return mul;
	}
	else
	{
		mul=n*jieCheng(n-1);
	}

	return mul;
}

生成随机数,进行概率预测:

目前计算机中的随机数都是伪随机数

# include <stdio.h>
# include <stdlib.h>
# include <time.h>

enum Random
{
	Up, Down, Left
};

int main(void)
{
	int r;

	//定义枚举变量数组,包含10个元素,产生的随机数r作为其下标
	Random rd[10] = {Up, Up, Up, Up, Up, Down, Down, Down, Left, Left};

	srand((int)time(0));  //初始化随机数种子
	r=(int)(rand()%9+1);  //得到0到9中的一个随机数

	//printf("%d\n", r);  //测试随机数r

	//使用switch判断选择情况
	switch (rd[r])
	{
		case Up:
			printf("您的选择是向上走!\n");
			break;
		case Down:
			printf("您的选择是向下走!\n");
			break;
		case Left:
			printf("您的选择是向左走!\n");
			break;
	}

	return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-05 22:56:03

C语言编程入门——综合练习(二)的相关文章

C语言编程入门——综合练习(一)

至此,C语言的基础知识已经基本学完了,然而你会发现学完C语言,却什么也做不了,当时我学到这里时也是这样,学习编程是一个漫长的过程,前面只是编程语言的基础,后面还会有很长的路要走,希望能够坚持下去. 这里,我们做一些小程序练习,再大的程序也是由小程序组装起来的,正如:不不积跬步,无以至千里. 求菲波拉契亚数列: # include <stdio.h> int main(void) { int n; long f1, f2, f3; int i; f1 = 1; f2 = 2; printf(&q

C语言编程入门——综合练习(三)学生管理系统

C语言学生管理系统: 此程序综合了链表,排序等知识,可以说是一个综合练习. # include <stdio.h> # include <malloc.h> # include <stdlib.h> typedef struct Student { char name[20]; char sex; int age; int score; char sid[20]; struct Student * pNext; }ST, *PST; void print(void);

C语言编程入门——综合练习(四)上机考试题

这份程序是我们学院C语言上机考试题库中的部分题,由我同学总结,并共享给大家.(Word中的程序,排版有些问题,还请见谅) 求n个(项)数据之和或积 //求n个数据的和(或积) #include <stdio.h> int main() { int a[100];  int i = 0; int n; printf("此程序将实现累和还有累积的功能,请输入项数\n"); scanf("%d", &n); printf("请输入各项\n&q

《Go语言编程入门》视频课程开课了

作为拥有多年工作经验的运维老鸟,我没有选择运维常用的Python作为我今后的主要使用语言.Python编写运维程序的开发效率虽然很高,但随着代码量的增大,以及Python的缩进式语法结构,可读性和维护性并不很高.加之Python本身的设计,并不原生支持多线程多核,我考虑到当程序代码达到一定规模时,必然会考虑它的执行效率和维护成本.最终放弃了Python,选择语言的过程中被Google新出的Go语言吸引了.Go本身脱胎于C,语法和C比较像,我本身就一直学习和编写C和PHP程序,习惯了大括号的语法结

linux 操作系统下c语言编程入门

2)Linux程序设计入门--进程介绍 3)Linux程序设计入门--文件操作 4)Linux程序设计入门--时间概念 5)Linux程序设计入门--信号处理 6)Linux程序设计入门--消息管理 7)Linux程序设计入门--线程操作 8)Linux程序设计入门--网络编程 9)Linux下C开发工具介绍 1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编

(转载)VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)

上一节中鸡啄米讲了GDI对象之画刷CBrush,至此图形图像的入门知识就讲完了.从本节开始鸡啄米将为大家带来Ribbon界面开发的有关内容.本文先来说说如何创建Ribbon样式的应用程序框架. Ribbon界面就是微软从Office2007开始引入的一种为了使应用程序的功能更加易于发现和使用.减少了点击鼠标的次数的新型界面,从实际效果来看,不仅外观漂亮,而且功能直观,用户操作简洁方便. 鸡啄米将以图文结合的方式来说明利用MFC向导创建Ribbon样式的单文档应用程序框架的过程,其实Ribbon应

VS2010/MFC编程入门之五十二(Ribbon界面开发:创建Ribbon样式的应用程序框架)

上一节中鸡啄米讲了GDI对象之画刷CBrush,至此图形图像的入门知识就讲完了.从本节开始鸡啄米将为大家带来Ribbon界面开发的有关内容.本文先来说说如何创建Ribbon样式的应用程序框架. Ribbon界面就是微软从Office2007开始引入的一种为了使应用程序的功能更加易于发现和使用.减少了点击鼠标的次数的新型界面,从实际效果来看,不仅外观漂亮,而且功能直观,用户操作简洁方便. 鸡啄米将以图文结合的方式来说明利用MFC向导创建Ribbon样式的单文档应用程序框架的过程,其实Ribbon应

C语言编程入门——动态内存分配

内存管理,是指软件运行时对计算机内存资源的分配和使用的技术.其最主要的目的是如何高效,快速的分配,并且在适当的时候释放和回收内存资源.内存管理是C语言编程中重要的组成部分,C语言中的内存需要手动分配,手动释放,一般遵循分配多少,释放多少,以免造成内存泄漏.内存管理是一项重要且复杂的事情,理解内存管理,对后面课程及项目的学习会有很大的作用. 之前创建变量,是系统自动分配的内存,放在栈内存中,销毁后被系统自动回收,手动分配的内存,放在堆内存中,需要手动释放.千万不要忘记销毁对象手动将内存释放并将指针

C语言编程入门——枚举与宏定义

枚举是编程人员自己定义的一种基本数据类型,这种类型的变量只能取枚举中的值,好处就是能够防止变量的错误赋值.用法:enum 类型名{变量1,变量2,变量3,...} C语言中宏定义是定义在程序头部,作预处理用,有无参和有参两种,可以看作是一个过程的调用,与函数调用不一样,不涉及入栈出栈问题,调用速度快.用法:#define 替换名 原名 宏定义示例1: # include <stdio.h> #define DD "%d" //宏定义,在以下书写中可用DD代替"%d