C Primer Plus编程练习答案(Chapter9)

9.11.1

#include <stdio.h>
double min(double F1, double F2) {
	return (F1 > F2) ? F2 : F1;
}
int main() {
	double f1, f2;
	printf("Please enter two float number: ");
	scanf_s("%lf %lf", &f1, &f2);
	printf("the min of f1 and f2 is: %.2lf", min(f1, f2));
}

 9.11.2

#include <stdio.h>
void chline(char ch, int i, int j) {
	int I, J;
	for (J = 0; J < j; J++) {
		for (I = 0; I < i; I++)
			printf("%c", ch);
		printf("\n");
	}
}
int main() {
	int i = 15, j = 13;
	char ch = '*';
	chline(ch, i, j);

	return 0;
}

 9.11.3

#include <stdio.h>
void function1(char CH, int I, int J) {
	int i, j;
	for (j = 0; j < J; j++) {
		for (i = 0; i < I; i++)
			printf("*");
		printf("\n");
	}
}
int main() {
	char ch = '*';
	int i = 15, j = 13;  // i为一行中打印字符的次数,j为打印字符打印的行数。
	function1(ch, i, j);

	return 0;
}

9.11.4

#include <stdio.h>
double haverage(double n1, double n2) {
	n1 = 1.0 / n1;
	n2 = 1.0 / n2;
	return 1 / (n1 + n2);
}

int main() {
	double n1, n2;

	printf("Please enter two float number: ");
	scanf_s("%lf %lf", &n1, &n2);
	printf("The harmonic of %.2lf and %.2lf is %.2lf", n1, n2, haverage(n1, n2));

	return 0;
}

9.11.5

#include <stdio.h>
void larger_of(double * ptr1, double * ptr2) {
	*ptr1 = (*ptr1 > *ptr2) ? *ptr1 : *ptr2;
	*ptr2 = *ptr1; 
}

int main() {
	double n1, n2;
	
	printf("Please enter two float number: ");
	scanf_s("%lf %lf", &n1, &n2);
	larger_of(&n1, &n2);
	printf("%.2lf %.2lf", n1, n2);

	return 0;
}

 9.11.6

#include <stdio.h>
void range(double* p1, double* p2, double* p3) {
	double temp;
	if (*p1 > *p2) {
		temp = *p1;
		*p1 = *p2;
		*p2 = temp;
		if (*p2 > *p3) {
			temp = *p2;
			*p2 = *p3;
			*p3 = temp;
		}
	}
}

int main() {
	double f1, f2, f3;
	
	printf("Please enter three float numbers: ");
	scanf_s("%lf %lf %lf", &f1, &f2, &f3);
	range(&f1, &f2, &f3);
	printf("%.2lf %.2lf %.2lf", f1, f2, f3);

	return 0;

}

 9.11.7

暂时搁置

9.11.8

#include <stdio.h>
double power(double n1, int n) {
	int i;
	double result = 1.0;
	if (n == 0) {
		if (n1 == 0)
			return -1;
		return 1;
	}
	else if (n > 0) {
		for (i = 0; i < n; i++)
			result *= n1;
		return result;
	}
	else {
		for (i = 0; i < -n; i++)
			result *= 1 / n1;
		return result;
	}
}

int main() {
	int n;
	double n1, result;
	printf("Please enter number and power: ");
	scanf_s(" %lf %d", &n1, &n);
	result = power(n1, n);
	if (result == -1.0)
		printf("That's not defined.");
	else
		printf("The result is :%.2lf", result);

	return 0;
}

 9.11.9

#include <stdio.h>
double power(double n1, int n) {
	int i;
	double result = 1.0;
	if (n == 0) {
		if (n1 == 0)
			return -1;
		return 1;
	}
	else if (n == 1)
		return n1;
	else if (n > 1) 
		return n1 * power(n1, n - 1);
	else if (n == -1)
		return 1 / n1;
	else if(n < -1)
		return 1 / n1 * power(n1, n + 1);
}

int main() {
	int n;
	double n1, result;
	printf("Please enter number and power: ");
	scanf_s(" %lf %d", &n1, &n);
	result = power(n1, n);
	if (result == -1.0)
		printf("That's not defined.");
	else
		printf("The result is :%.2lf", result);

	return 0;
}

9.11.10

暂时搁置

9.11.11

#include <stdio.h>
int Fibonacci(int n) {
	int a = 1, b = 1, temp;
	int i;
	if (n == 1 || n == 2)
		return 1;
	else
		for (i = 1; i < n - 1; i++) {
			temp = a + b;
			a = b;
			b = temp;
		}
	return temp;
}
int main() {
	int n, result;
	printf("please enter number: ");
	scanf_s("%d", &n);
	result = Fibonacci(n);
	printf("The No.%d number is: %d", n, result);

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值