C/C++教程

余贞霞C语言程序设计课后参考答案

本文主要是介绍余贞霞C语言程序设计课后参考答案,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

第五章(答案仅供参考),欢迎大家一起讨论,一起进步。


5.2//输出一千以内的完数(完数指除了自身以外的因子之和)
#include<stdio.h>
void wanshu(int i);
int main()
{
	int i;
	//printf("n=");
	//scanf("%d",&n);
	for(i=1;i<=1000;i++)
	{
		wanshu(i);
		//printf("sum=%-4d",sum);
	}putchar('\n');
	return 0;
}
void wanshu(int i)
{
	int j, sum=0;
	for(j=1;j<i;j++)
	{
		if(i%j==0)
		{
			sum=sum+j;
		}
	}
	if(sum==i)
	{
		printf("sum=%-3d",i);	
	}
	
}
5.3//输入两个正整数m和n,计算并输出其最大公约数
#include<stdio.h>
int Max(int m,int n);
int Min(int m,int n,int max);
int main()
{
	int m,n,max,min;
	printf("m,n==\n");
	scanf("%d%d",&m,&n);
	max=Max(m,n);
	min=Min(m,n,max);
	printf("max=%d\nmin=%d\n",max,min);
	return 0;
}
int Max(int m,int n)
{
	int i,temp,max=0;
	if(m>n)
	{
		temp=m;
		m=n;
		n=temp;
	}
	for(i=1;i<=m;i++)
	{
		if(m%i==0&&n%i==0)
		{
			max=i;
		}
	}
	return max;
}
int Min(int m,int n,int max)
{
	int min;
	int i,j=0,s;
	i=m;
	//j=n;
	do{
		s=i;
		i=n%i;
		j=s;
	}
	while(i!=0);
	min=m*n/j;
	return min;
}

5.5//输入一行字符,分别统计其中英文字母,数字和其他字符的个数;
#include<stdio.h>
int main()
{
	char c;
	int letters=0,space=0,digit=0,others=0;
	while((c=getchar())!='\n')
	{
		if(c>='a'&&c<='z'||c>='A'&&c<='Z')
		{
			letters++;
		}
		else if(c>='0'&&c<='9')
		{
			digit++;
		}
		else if(c=='\t'||c==' '||c=='\b')
		{
			space++;
		}
		else
		{
			others++;
		}
	}
	printf("letters=%-4ddigit=%-4dspace=%-4dothers=%-4d\n",letters,digit,space,others);
	return 0;
}
	
5.6//从键盘输入任意个整数,以-888结束(不计入),计算并输出其中的最大数和最小数
#include<stdio.h>
int main()
{
	int i,max,min;
	printf("please input some numbers:");
	scanf("%d",&i);
	if(i==-888)
	{
		printf("重新输入\n");
		scanf("%d",&i);
	}
	max=i;
	min=i;

	while(i!=-888)
	{
		if(max<i)
		{
			max=i;
		}
		if(min>i)
		{
			min=i;
		}
		scanf("%d",&i);
	}
	printf("max=%-4dmin=%-4d\n",max,min);
	return 0;
}
5.7//将100元换成1元,5元,10元零钱,每种零钱张数大于0,且为五的倍数,输出所有可能的换法;
#include<stdio.h>
int main()
{
	int a,b,c;
	int i,j,h;
	a=1;
	b=5;
	c=10;
	for(i=1;i<100/c;i++)
	{
		for(j=1;j<100/b;j++)
		{
			for(h=1;h<100/a;h++)
			{
				if(i*c+j*b+h*a==100&&(i%5==0&&j%5==0&&h%5==0))
				{
					printf("%3d个10元,%3d个5元,%3d个1元\n",i,j,h);
				}
			}
		}
	}
	return 0;
}
5.8//百钱买百鸡,100钱买100只鸡,公鸡一只5钱,母鸡一只3钱,小鸡三只1钱,输出所有可能的卖法(每种鸡至少买一只)
#include<stdio.h>
int main()
{
	int cock,hen,chick;
	for(cock=1;cock<=100/5;cock++)
		for(hen=1;hen<=100/3;hen++)
			for(chick=3;chick<=99;chick++)
			{
				if(cock+hen+chick==100)
					if(cock*5+hen*3+chick/3==100)
						if(chick%3==0)
					{
						printf("%dcock+%dhen+%dchick\n",cock,hen,chick);
					}
			}
	return 0;
}

这篇关于余贞霞C语言程序设计课后参考答案的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!