本文主要向大家介绍了C/C++知识点之C语言编程练习题及答案分享,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
1.题目:写一个程序,判断两个浮点数是否足够精确。
/*Filename:ApproximatelyEqual
Function:ensuretheaccurcyoftwonumbers.|x-y|/min(|x|,|y|)
Time:.04.07
editedbyQJX
*/
#include
#include
doubleMinfabsnum(doublex,doubley);//Calculatetheminoffabs(x),fabs(y)
voidGiveInstruction(void);//Giveinstructionandreferencetousers
#definee0.0001//Theaccurcy
doublemain()
{
doublex,y,c;
GiveInstruction();
printf("Pleaseinput2numers:");
scanf("%lf,%lf",&x,&y);
c=Minfabsnum(x,y);
if(fabs(x-y)/c
printf("Twonumerssatisfytheaccurcy!");
else
printf("Twonumersnotsatisfytheaccurcy!");
}
doubleMinfabsnum(doublex,doubley)//Calculatetheminoffabs(x),fabs(y)
{
doublea,b;
a=fabs(x);
b=fabs(y);
if(a<=b)
returna;
else
returnb;
}
voidGiveInstruction(void)//Giveinstructionandreferencetousers
{
printf("Thisprogramcanensuretheaccurcyoftwodoublenumbers!\n");
printf("Andtheaccurcyis0.0001\n\n");
}
\
2.题目:打印杨辉三角前八行
/*Filename:PascaltriangleorYangHuitriangle
Founction:displaythe8rawsofYangHuitriangle
Time:.04.07
editedbyqjx
*/
#include
#defineN8
intFactorial(intn);
intCombinations(intn,intk);
voidGiveInstruction(void);
main()
{
intraw,i,j,k;
GiveInstruction();
printf("PleaseinputtherawsofYangHuitriangle:");
scanf("%d",&raw);
for(i=1;i<=raw;i++)
{
for(j=0;j
{
printf("");
}
for(k=0;k<=i-1;k++)//printtheYangHuitriangle
{
printf("%4d",Combinations(i-1,k));
//printf("");
}
printf("\n");
}
}
intFactorial(intn)//calculaten!
{
inti,product=1;
for(i=1;i<=n;i++)
{
product*=i;
}
returnproduct;
}
intCombinations(intn,intk)//calculateC(n,k)=n!/(k!*(n-k)!)
{
inta,b,c;
a=Factorial(n);
b=Factorial(k);
c=Factorial(n-k);
returna/(b*c);
}
voidGiveInstruction(void)
{
printf("ThisprogramcandisplaytheYangHuitriangle!\n");
printf("Forexample:\n");
printf("1\n");
printf("11\n");
printf("121\n");
}
当用更大的数据去测试时,发现最多只能到13,到需要输出14行杨辉三角时就会出现错误。
加载中...
本来以为是超出了int型的范围,但是手动计算之后并没有超出啊,而且如果超出的话,在计算12!时,就已经超出范围了。不解!
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!