首页 > 编程语言 >用函数实现模块化程序设计习题

用函数实现模块化程序设计习题

时间:2024-11-18 14:41:11浏览次数:1  
标签:1024 函数 int 模块化 void ++ printf 程序设计 习题

写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入


//写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
#include <stdio.h>

int getGCD(int a, int b)
{
	int iMax = 0, iMin = 0;//定义最大最小值并初始化
    
	if (a > b)//分别获取最大最小值
	{
		iMax = a;
		iMin = b;
	}
	else
	{
		iMax = b;
		iMin = a;
	}

	int iRet = iMax % iMin;//取余

	while (iRet)
	{
		iMax = iMin;//余数不为0时,用最小值去对余数取余
		iMin = iRet;
		iRet = iMax % iMin;
	}

	return iMin;//余数为0则输出最小值
}

int getLCM(int a, int b)
{
	return a * b / getGCD(a, b);//LCM = num1 * num2 / GCD
}

int main(void)
{
	int a = 0, b = 0;//定义并初始化

	scanf("%d%d", &a, &b);//输入
	printf("GCD:%d\nLCM:%d\n", getGCD(a, b), getLCM(a, b));//调用求取GCD和LCM并输出

	return 0;
}

在VS编译器内会报C4996错误,解决见下文:(下同)

C4996 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. - EricsT - 博客园 (cnblogs.com)

运行结果:

 

求方程 ax^2+bx+c=0 的根,用三个函数分别求当:b^2-4ac大于0,等于0和小于0时的根并输出结果。从主函数输入 a,b,c 的值


//求方程 ax ^ 2 + bx + c = 0 的根,用三个函数分别求当:
//b ^ 2 - 4ac大于0,等于0和小于0时的根并输出结果。从主函数输入 a, b, c 的值
#include <stdio.h>
#include <math.h>

void Dmin(int a, int b, int iDera)//两个不等的复数根
{
	double x1 = (0 - b) / (2.0 * a);
	double x2 = pow(-iDera, 0.5) / (2.0 * a);
    
	printf("\nx1 = %lf+%lfi\nx2 = %lf-%lfi\n", x1, x2, x1, x2);
}

void Dmax(int a, int b, int iDera)//两个不等的实数根
{
	double x1 = ((0 - b) + pow(iDera, 0.5)) / (2.0 * a);
	double x2 = ((0 - b) - pow(iDera, 0.5)) / (2.0 * a);

	printf("\nx1 = %lf\nx2 = %lf\n", x1, x2);
}

void Dequal(int a, int b)//两个相等的实数根
{
	double x = (0 - b) / (2.0 * a);
    
	printf("\nx = %lf\n", x);
}

int main(void)
{
	int a = 0, b = 0, c = 0;//定义并初始化

	scanf("%d%d%d", &a, &b, &c);//输入

	int iDera = b * b - 4 * a * c;//求取△

	if (0 == iDera)
		Dequal(a, b);
	else if (iDera > 0)
		Dmax(a, b, iDera);
	else
		Dmin(a, b, iDera);

	return 0;
}

运行结果:

两个不等的实数根:

两个相等根:

两个不等的复数根:

 

写一个判断素数的函数,在主函数输入一个整数时,输出是否为素数的信息


//写一个判断素数的函数,在主函数输入一个整数时,输出是否为素数的信息
#include <stdio.h>

bool isPrimeNumber(int num)
{
	for (int i = 2; i < num; i++)
	{
		if (0 == num % i)//能整除则不为素数
			return false;
	}

	return true;//都不能整除则为素数
}

int main(void)
{
	int num = 0;//定义并初始化

	scanf("%d", &num);//输入
    
	if (isPrimeNumber(num))
		printf("yes\n");
	else
		printf("no\n");

	return 0;
}

运行结果:

 

写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换


//写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换
#include <stdio.h>

void Trans(int arr[3][3])
{
	printf("\n\n");
	for (int j = 0; j < 3; j++)//倒置输出
	{
		for (int i = 0; i < 3; i++)
			printf("%d ", arr[i][j]);
		printf("\n");
	}
}

int main(void)
{
	int arr[3][3] = { 0 };//定义并初始化

	for (int i = 0; i < 3; i++)//输入
		for (int j = 0; j < 3; j++)
			scanf("%d", &arr[i][j]);

	Trans(arr);

	return 0;
}

运行结果:

 

写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串


//写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
#include <stdio.h>

void reverseFunc(char charBuff[1024])
{
	char ch[1024];
	int i = 0;

	for (; i < 1024; i++)//备份
	{
		ch[i] = charBuff[i];

		if ('\0' == charBuff[i])
			break;
	}

	for (int j = 0; j <= i - 1; j++)//反转
		charBuff[j] = ch[i - j - 1];
}

int main(void)
{
	char chBuff[1024];

	scanf("%s", chBuff);//输入
	reverseFunc(chBuff);//反转
	printf("%s\n", chBuff);//输出

	return 0;
}

运行结果:

 

写一个函数,将两个字符串连接


//写一个函数,将两个字符串连接
#include <stdio.h>

void addFunc(char charBuff1[1024], char charBuff2[1024], char charBuff3[2048])
{
	int i = 0;
	for ( ; i < 1024; i++)
	{
		if ('\0' == charBuff1[i])//到达末尾退出,结束符不添加
			break;

		charBuff3[i] = charBuff1[i];
	}

	for (int j = 0; j < 1024; j++)
	{
		charBuff3[i + j] = charBuff2[j];
		if ('\0' == charBuff2[j])//到达末尾退出,结束符添加
			break;
	}
}

int main(void)
{
	char chBuff1[1024], chBuff2[1024], chBuff3[2048];//定义

	scanf("%s%s", chBuff1, chBuff2);//输入
	addFunc(chBuff1, chBuff2, chBuff3);//拼接
	printf("%s\n", chBuff3);//输出

	return 0;
}

运行结果:

写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出


//写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出
#include <stdio.h>

void copyFunc(char charBuff1[1024], char charBuff2[1024])
{
	int iCount = 0;
	for (int i = 0; i < 1024; i++)
	{
		if ('\0' == charBuff1[i])//遇到结束符则退出循环
			break;

		if (('a' == charBuff1[i]) ||
			('e' == charBuff1[i]) ||
			('i' == charBuff1[i]) ||
			('o' == charBuff1[i]) ||
			('u' == charBuff1[i]))
		{
			charBuff2[iCount] = charBuff1[i];//元音字母复制
			iCount++;
		}
	}

	charBuff2[iCount] = '\0';//添加结束符
}

int main(void)
{
	char chBuff1[1024], chBuff2[1024];//定义

	scanf("%s", chBuff1);//输入
	copyFunc(chBuff1, chBuff2);//寻找元音字母
	printf("%s\n", chBuff2);//输出

	return 0;
}

运行结果:

写一个函数,输入一个4位数字,要求输出这4个数字字符,但每个数字间空一个空格


//写一个函数,输入一个4位数字,要求输出这4个数字字符,但每个数字间空一个空格
#include <stdio.h>

void Func(int arr[4])
{
	for (int i = 0; i < 4; i++)//输出
		printf("%d ", arr[i]);

	printf("\n");
}

int main(void)
{
	int arr[4];//定义

	for (int i = 0; i < 4; i++)//输入
		scanf("%d", &arr[i]);

	Func(arr);

	return 0;
}

运行结果:

标签:1024,函数,int,模块化,void,++,printf,程序设计,习题
From: https://www.cnblogs.com/EricsT/p/18548422

相关文章

  • 第八章习题
    习题8.4importnumpyasnpimportpandasaspdimportsympyasspsp.init_printing(use_latex=True)fromscipy.integrateimportodeintimportmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['TimesNewRoman+SimSun+WFMSansSC......
  • 第七章例题及习题
    例7.3importnumpyasnpimportpylabaspltfromscipy.interpolateimportlagrangeyx=lambdax:1/(1+x**2)deffun(n):x=np.linspace(-5,5,n+1)p=lagrange(x,yx(x))returnpx0=np.linspace(-5,5,100)plt.rc('text',usetex=True)plt.rc(&......
  • Scala字符串练习题
    objectStringManipulationExamples{defmain(args:Array[String]):Unit={//问题1valfloatString="3.14"valfloatValue=floatString.toFloatvalbackToString=floatValue.toStringprintln(backToString)//问题2v......
  • C语言习题~day16
    1.关于函数调用说法不正确的是:()A.函数可以传值调用,传值调用的时候形参是实参的一份临时拷贝B.函数可以传址调用,传址调用的时候,可以通过形参操作实参C.函数可以嵌套定义,但是不能嵌套调用D.函数可以嵌套调用,但是不能嵌套定义答案解析:A:正确,形参按照值的方式传递,将来形参就......
  • 第五章习题
    学号后四位:30185.4:点击查看代码importcvxpyascpimportnumpyasnpimportpandasaspdfromscipy.optimizeimportminimizeimportsympyasspsp.init_printing(use_unicode=True)importmatplotlib.pyplotaspltplt.rcParams['font.sans-serif']=['Ti......
  • 第二章习题
    学号后四位:30182.1:点击查看代码importmathimportpylabaspltimportnumpyasnpplt.rc('text',usetex=True)#调用字库x=np.linspace(-10,10,100)y1=np.cosh(x)y2=np.sinh(x)y3=math.e**x/2plt.plot(x,y1,label='$\\mathrm{cosh}(x)$'......
  • python基础练习题----练手
    python—练手题—40题#01-helloworldprint('helloworld!')#如果3大于0,则打印'ok'和'yes'if3>0:print('ok')print('yes')x=3y=4print(x+y)#02-printprint('helloworld!')print(�......
  • 学期2024-2025-1 学号20241424 《计算机基础与程序设计》第8周学习总结
    学期2024-2025-1学号20241424《计算机基础与程序设计》第8周学习总结作业信息|这个作业属于2024-2025-1-计算机基础与程序设计||-- |-- ||这个作业要求在[2024-2025-1计算机基础与程序设计第8周作业](https://www.cnblogs.com/rocedu/p/9577842.html#WEEK08||这个作业的目......
  • 《计算机基础与程序设计》第八周学习总结
    学期(如2024-2025-8)学号(如:20241404)《计算机基础与程序设计》第八周学习总结作业信息这个作业属于哪个课程https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP这个作业要求在哪里(如2024-2025-1计算机基础与程序设计第八周作业)这个作业的目标<功能设计与面......
  • 2024-2025-1 20241406 刘书含《计算机基础与程序设计》第8周学习总结
    2024-2025-120241406《计算机基础与程序设计》第8周学习总结这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计这个作业要求在哪里 如2024-2025-1计算机基础与程序设计第八周作业这个作业的目标 功能设计与面向对象设计>面向对象设计过程面向对象语言三要素汇编、编......