1. 封装求最大公约数和最小公倍数的函数。
参考第五章 5.1
代码:
#include "stdio.h"
int getMaxDivisor(int a, int b);
int getMinMutiple(int a, int b);
void main() {
int m = 0;
int n = 0;
printf("Please input tow numbers:");
scanf("%d,%d", &m, &n);
printf("the max common divisor of %d and %d is %d\n", m, n, getMaxDivisor(m,n));
printf("the min common mutiple of %d and %d is %d", m, n, getMinMutiple(m,n));
}
int getMaxDivisor(int a, int b) {
int i = 1;
int x = 0;
while(i <= a && i <= b) {
if(a%i == 0 && b%i == 0) x = i;
i++;
}
return x;
}
int getMinMutiple(int a, int b) {
int i = a;
int y = 0;
while(i >= a || i >= b) {
if(i%a == 0 && i%b == 0) {
y = i;
break;
}
i++;
}
return y;
}
输出结果:
2. 求方程根问题
参考第二章的4(8)
代码:
#include "stdio.h"
#include "math.h"
void getRoot0(double a, double b, double c);
void getRoot1(double a, double b, double c);
void getRoot2(double a, double b, double c);
void main() {
double a = 0;
double b = 0;
double c = 0;
printf("Please input 3 values of Coefficients of bivariate linear equations:");
scanf("%lf,%lf,%lf", &a, &b, &c);
double delta = b*b - 4*a*c;
if(delta < 0) {
getRoot0(a, b, c);
} else if(delta == 0) {
getRoot1(a, b, c);
} else {
getRoot2(a, b, c);
}
}
void getRoot0(double a, double b, double c) {
printf("The equations has no result");
}
void getRoot1(double a, double b, double c) {
printf("The equations has one result:%f", (-1)*b/2/a);
}
void getRoot2(double a, double b, double c) {
double delta = b*b - 4*a*c;
printf("The equations has two result:%f and %f", ((-1)*b + sqrt(delta))/(2*a), ((-1)*b - sqrt(delta))/(2*a));
}
输出结果:
3. 求素数
参考 第六章 6.1
代码:
#include "stdio.h"
int isLnum(int num);
void main() {
int num = 0;
printf("Please input a number:");
scanf("%d", &num);
if(isLnum(num)) {
printf("Yes, %d is Legacy num", num);
} else {
printf("No, %d is not Legacy num", num);
}
}
int isLnum(int num) {
int j = 2;
while (j < num) {
if(num%j == 0) {
return 0;
}
j++;
}
return 1;
}
输出结果:
4. 矩阵转置
参考第六章6_3
代码:
#include "stdio.h"
void reverseMatrix(int a[3][3]);
void printMatrix(int a[3][3]);
void main() {
int a[3][3] = { {1,2,3},
{4,5,6},
{7,8,9}};
reverseMatrix(a);
printf("The reverse matrix is:\n");
printMatrix(a);
}
void reverseMatrix(int a[3][3]) {
for(int i = 0; i < 3; i++) {
for(int j = 0; j < i; j++){
int temp = 0;
temp = a[i][j];
a[i][j] = a[j][i];
a[j][i] = temp;
}
}
}
void printMatrix(int a[3][3]) {
for(int i = 0; i < 3; i++) {
for(int j = 0; j < 3; j++){
printf("%d ", a[i][j]);
}
printf(