写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出效果。两个整数由键盘输入- //写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入
- #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;
- }
复制代码 运行效果:
写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串
[code]//写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串#include void reverseFunc(char charBuff[1024]){ char ch[1024]; int i = 0; for (; i < 1024; i++)//备份 { ch = charBuff; if ('\0' == charBuff) break; } for (int j = 0; j |