一:编写程序,从键盘输出三角形的3条边,调用三角形面积函数求出其面积,并输出结果。
二:编写函数,求出从主调函数传来的数值i的阶乘值,然后将其传回主调函数并输出。
三:编写程序,从键盘输入两个整数,调用gcd()函数求它们的最大公约数,并输出结果。
四:输入函数n,输出高度为n的等边三角形。
#include <stdio.h>
#include <math.h>
float area(float a,float b,float c)
{
float s,p,area;
s=(a+b+c)/2;
p=s*(s-a)*(s-b)*(s-c);
area=sqrt(p);
return (area);
}
main()
{
float x,y,z,ts;
printf("请输入三角形的三条边:");
scanf("%f%f%f",&x,&y,&z);
if(x+y>z||x-y<z)
{
ts=area(x,y,z);
printf("area=%f",ts);
}
else
{
printf("输入数据有误!");
}
}
#include <stdio.h>
long function(int i)
{
static int f=1;
f=f*i;
return (f);
}
main()
{
int i,n,p;
printf("请输入需要计算阶乘的数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
p=function(i);
printf("%d的阶乘是:%d\n",i,p);
}
}
#include<stdio.h>
int gcd(int a,int b)
{
int t,r;
if(a<b)
{
t=b;
b=a;
a=t;
}
r=a%b;
while(r!=0)
{
a=b;
b=r;
r=a%b;
}
return (b);
}
main()
{
int x,y;
int fac;
printf("please input two integers: ");
scanf("%d%d",&x,&y);
fac=gcd(x,y);
printf("The great common divisor is:%d",fac);
}
#include <stdio.h>
void trangle(int n)
{
int i,j,k;
for(i=1;i<=n;i++)
{
for(j=1;j<n+1-i;j++)
{
printf(" ");
}
for(k=1;k<=i*2-1;k++)
{
printf("*");
}
printf("\n");
}
}
main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
trangle(n);
}
问题:实验三中运行不出结果;实验四的函数调用有一点儿问题。
解决方法:实验三中在外部调用函数的while里加上remainder=a%b,即可使运行结果正常。实验四也可以使用其他的算法来实现功能。
#include <stdio.h>
int facsum(int m)
{
int sum=1,f=2;
while(f<=m/2)
{
if(m%f==0)
{
sum=sum+f;
}
f+=1;
}
return sum;
}
main()
{
int m=3,n,k;
while(m<=500)
{
n=facsum(m);
k=facsum(n);
if(m==k&&m<=n)
{
printf("%d,%d\n",m,n);
}
m++;
}
}
本实验没有遇见问题。
原文:https://www.cnblogs.com/ylpforever/p/10809882.html