【余贞侠】- c语言程序设计第五章课后习题答案

#include <stdio.h>

int main(void)
{
	int i, j, n;
	int pro = 1, sum = 0;
	scanf("%d", &n);
	
	for ( i=1; i<=n; i++ ) {
		for ( j=1; j<=i; j++ ) {
			pro = pro * j;
//			if ( j < i ) {
//				printf("%d * ", j);
//			} else {
//				printf("%d = %d\n", j, pro);
//			}
		}
		sum += pro;
		pro = 1;
	}
	printf("sum = %d\n", sum);

	return 0;
}
#include <stdio.h>

int main(void)
{
	int i, j;
	int sum = 0;
	for ( i = 1; i < 1000; i++ ) {
		for ( j = 1, sum = 0; j < i; j++ ) {
			if ( i % j == 0 ) {
				sum += j;
			}
		}
		if ( sum == i ) {
			printf("%d是完数\n", i);
		}
	}

	return 0;
}
#include <stdio.h>

int main(void) 
{
	int m, n, temp;
	printf("请输入正整数m、n:");
	scanf("%d%d", &m, &n);

	while ( m * n != 0 ) {
		temp = m % n;
		m = n;
		n = temp;
	}
	
	printf("最大公约数为:%d\n", m);
	

	return 0;
}
#include <stdio.h>

int main(void)
{
	int i;
	double sum,h;
	h=100;
	sum=100;
	
	for ( i = 1; i <= 8; i++){
		h /= 2;
		sum += h * 2;
	}
	printf("总经过长度%.2lf,第8次反弹高度为%.2lf", sum, h);
	
	return 0;
}
#include <stdio.h>

int main(void) 
{
	char ch;
	int sum1 = 0, sum2 = 0, sum3 = 0;
	
	while ( (ch = getchar()) != '\n' ) {
		if ( ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z' ) {
			sum1++;
		} else if ( ch >= '0' && ch <= '9' ) {
			sum2++;
		} else {
			sum3++;
		}
	}
	
	printf("英文字母有%d个\n数字有%d个\n其他字符有%d个\n", sum1, sum2, sum3);

	return 0;
}
#include <stdio.h>

int main(void)
{
	int num, min, max;
	scanf("%d", &num);
	while ( num == -888 ) {
		return 0;	
	}
	min = max = num;
	
	while ( num != -888 ) {
		if ( num > max ) {
			max = num;
		} else if ( num < min ) {
			min = num;
		}
		scanf("%d", &num);
	}
	printf("max = %d,min = %d\n", max, min);
	return 0;
}

第一种比较麻烦

#include <stdio.h>

int main(void) 
{
	int i, j, k;
	for ( i = 5; i <= 100/10; i++ ) {
		for ( j = 5; j <= (100 - i*10)/5; j++ ) {
			for ( k = 5; k <= (100 - i*10 - j * 5 ); k++ ) {
				if ( i*10 + j*5 + k == 100 ) {
					if ( i%5==0 && j%5==0 && k%5==0 ) {
						printf("%d*10 + %d*5 + %d = 100\n", i, j, k);
					}
				}
			}
		}
	}

	return 0;
}

第二种:

#include <stdio.h>

int main(void){
	
	int one, five, ten;
	for ( ten = 5; ten <= 10; ten += 5 ) {
		for ( five = 5; five <= 20; five += 5 ) {
			for ( one = 5; one <= 100; one += 5) {
				if ( one + five * 5 + ten * 10 == 100 ) {
					
					printf("一元的要%d张,五元的要%d张,十元的要%d张\n", one, five, ten);
				}
			}
		}
	}
		
	return 0
}

#include <stdio.h>

int main(void)
{
	int i, j, k;
	for ( i = 1; i <= 100; i++  ) {
		for ( j = 1; j <= 100; j++ ) {
			for ( k = 1; k <= 100; k ++  ) {
				if ( (i*5 + j*3 + k/3 == 100) && (i + j + k == 100) && k%3==0 ) {
					printf("公鸡 %2d 只,母鸡 %2d 只,小鸡 %2d 只\n", i, j, k);
				}
			}
		}
	}

	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值