代码:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
void q4_3() {
int m, n, a, b, temp;
scanf_s("%d,%d", &m, &n);//也可以使用scanf
a = m, b = n;
//使用辗转相除法求最大公约数
if (a < b) {//使a为大值b为小值
temp = a;
a = b;
b = temp;
}
while (b != 0) {//辗转相除
temp = a % b;
a = b;
b = temp;
}
printf("最大公约数:%d", a);
//最小公倍数,两数相乘除以最大公约数就是最小公倍数
printf("最小公倍数:%d", m*n/a);
}
void q4_4() {
char str[256];
int i = 0;
int word = 0, space = 0, number = 0, other = 0;
printf("input string:\n");
fgets(str,256,stdin);//获取输入
while (str[i] != '\n') {
if (str[i] == 32) {
space++;
}
else if ((str[i] >= 65 && str[i] <= 90) || (str[i] >= 97 && str[i]<=122)) {
word++;
}
else if (str[i] >= 48 && str[i] <= 57) {
number++;
}
else {
other++;
}
i++;
}
printf("英文字母:%d,空格:%d,数字:%d,其他字符:%d",word,space,number,other);
}
//迭代法求平方根
void q4_13() {
double a,m,n;
scanf_s("%lf", &a);//double类型要用lf获取输入,否则会变为负值
m = a/2; // 选取xn为a/2
n = (m + a / m) / 2;
while (fabs(m - n) >= 10e-5) {
m = n;
n = (m + a / m) / 2;
}
printf("平方根为:%7.2f", n);//保留两位小数
}
//牛顿迭代法求根
//公式为 x2 = x1 - f(x1)/f(x1)'
void q4_14() {
double x1 = 0, x2;
double fx1, fx2;
x2 = 1.5;
while (fabs(x1 - x2) >= 1e-6)
{
x1 = x2;
fx1 = 2 * x1*x1*x1 - 4 * x1*x1 + 3 * x1 - 6;//f(xn)题目已给出
fx2 = 6 * x1*x1 - 8 * x1 + 3; //f(xn)'
x2 = x1 - fx1 / fx2;
}
printf("value:%lf", x2);
}
double q4_15_f(double x) {//计算函数值
return 2 * x*x*x - 4 * x*x + 3 * x - 6;
}
void q4_15() {
double m = -10, n = 10, mid;//区间
while(1){
mid = (m + n) / 2;
if (fabs(q4_15_f(mid)) < 10e-5) {//精度(这里加绝对值很重要,因为函数值可能为负)
printf("根为%f", mid);//本题要求根,所以直接输出了,如果是一般情况,需要输出根的范围
break;
}
if ( q4_15_f(m)*q4_15_f(n) < 0) {//零点定理判断区间内有无根
if (q4_15_f(mid)*q4_15_f(m) < 0) {
n = mid;
}
else if (q4_15_f(mid)*q4_15_f(n) < 0) {
m = mid;
}
}
else {
printf("无根");
}
}
}
//乒乓球队比赛
void q4_17() {
char i, j, k;//假设C对手为i,B对手为k,A对手为j
for (i = 'X'; i <= 'Z'; i++) {
if (i != 'X' && i != 'Z') {//先满足c的条件再往下执行
for (j = 'X'; j <= 'Z'; j++) {
if (j != 'X' && j != i) { //a的对手不是x,而且不能和c的对手重复
for (k = 'X'; k <= 'Z'; k++) {
if (k != i && k != j) { //b的对手不能喝a,c的对手重复
printf("A vs %c; B vs %c ;C vs %c\n", j, k, i);
}
}
}
}
}
}
}
int main() {
//q4_3();
//q4_4();
//q4_13();
//q4_14();
//q4_15();
q4_17();
system("pause");
return 0;
}
运行:
4.3
4.4
4.13
4.14
4.15
4.17