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 <stdio.h>
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 <stdio.h>
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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值