PTA实验八函数 验证哥德巴赫猜想函数求直角三角形的斜边长并以保留两位小数的形式输出给定正整数打印从1到N全部偶数主函数中输入日期的年月日求当年的第几天函数打印乘法口诀表输出等腰三角形倒数字金字塔
我最近考试比较多,所以可能没啥时间写解析了,我准备把题目答案发一下,解析的话考完试再看看吧。
1.下面代码通过函数调用对4到N(1000>=N>=4)之间的偶数,验证哥德巴赫猜想,请补充代码。哥德巴赫猜想:即任一大于2的偶数都可写成两个素数之和。
m%i==0
scanf(“%d”,&N);
isprime(i)==1&&isprime(n-i)==1
break
2.编写函数,求直角三角形的斜边长并以保留两位小数的形式输出。两条直角边(两个正整数)由键盘输入,以空格分隔,由被调函数计算斜边长。
float f(int a,int b)
{
float c;
c=sqrt(a*a+b*b);
return c;
}
3.本题要求实现一个函数,对给定的正整数N(N>=1),打印从1到N(包含N)的全部偶数(用一个空格分隔)。
void PrintN(int n)
{
int i;
for(i=1;i<=n;i++)
if(i%2==0)
printf("%d ",i);
return;
}
4.本题要求实现一个函数,在主函数中输入一个日期的年、月、日的值(空格分隔),然后在被调函数中求出这一天是当年的第几天,在主函数中输出结果。
int sumdays(int y,int m,int d)
{
int i;
int a[12]={31,28,31,30,31,30,31,31,30,31,30};
int sum=0;
for(i=0;i<=m-2;i++)
sum+=a[i];
sum+=d;
if((((y%4==0)&&(y%100!=0))||y%400==0)&&m>2)
sum+=1;
return sum;
}
5.要求实现一个函数,打印乘法口诀表,输入正整数n(9>=n>=1),输出n行口诀表,每个等式中的乘积值占三个字符宽度,左对齐
#include
void print(int x)
{
int i,j;
for(i=1;i<=x;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%-2d ",j,i,j*i);
printf("\n");}
}
6.在主函数中输入一个字符ch和一个正整数n(20>=n>=1),然后在被调函数中输出由n行字符ch构成的等腰三角形。
void printstar(char ch,int n)
{
int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n-i;j++)
printf(" ");
for(j=1;j<=2*i-1;j++)
printf("%c",ch);
printf("\n");
}
return;
}
7.在主函数中输入一个正整数N(9>=N>=1),然后在被调函数中输出由N行数字构成的倒数字金字塔。
void printN(int n)
{
int i,j;
for(i=n;i>=1;i--)
{
for(j=0;j<n-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("%d",j);
for(j=i-1;j>=1;j--)
printf("%d",j);
if(i!=1)
printf("\n");
}
return;
}
8.修改下面程序中的错误,使通过函数调用来求两个正整数的最大公约数(限定不使用全局变量)。
#include
int gcd(int a,int b)
{int m,n,r;
m=a;
n=b;
while(1)
{r=m%n;
if(r==0)
return n;
m=n;
n=r;
}
}
int main(void)
{int a,b,g;
scanf("%d%d",&a,&b);
g=gcd(a,b);
printf("%d\n",g);
return 0;
}
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!