实验5 函数程序设计
二、基础编程题
(4)最大公约数和最小公倍数
////须牢牢掌握该求最大公约数的方法!!!!!!!!!
#include<stdio.h>
int gcd(int m,int n)
{
int yu,t;
y=m%n;
while(yu)
{
m=n;n=yu;yu=m%n;
}
return n;
}
int lcm(int m,int n)
{
return (m*n)/gcd(m,n);
}
int main(void)
{
int m,n;
scanf("%d%d",&m,&n);
printf("gcd=%d\n",gcd(m,n));
printf("lcm=%d\n",lcm(m,n));
return 0;
}
(5)求[m,n]∈N区间的素数和
#include<stdio.h>
#include<math.h>
#include<string.h>
static char each[20000];static char t,str_j;
int prime(int j)
{
int i;
if(j<=1)
return 0;
else if(j==2)
return 1;
else
{
for(i=2;i<=ceil(sqrt(j));i++)
if(j%i==0){return 0;break;}
return 1;
}
}
int prime_sum(int m,int n)
{
int j,k=0,sum=0;
for(j=m;j<=n;j++)
if(prime(j)){
sum+=j;
//str_j=(char)j;//k++;
//puts(str_j);
//putchar('\n');
//char *strcat(char *each,char *str_j);
//strcat(each,'j');
//each[k]=each+str_j;
}
return sum;
}
/////////试着找一下可不可以通过数字转字符串连接得到
/*int main(void)
{
int m,n;
char each;
printf("Enter m,n:");
scanf("%d%d",&m,&n);prime_sum(m,n);
printf("Sum of(%s)=%d\n",each,prime_sum(m,n));
return 0;
}*/
int main()
{
int m,n,p; scanf("%d %d",&m,&n);
printf("Sum of(");
for(p=m;p<=n;p++){
if(prime(p)!=0)
printf("%d ",p);
}
printf(")=%d\n", prime_sum(m,n));
return 0;
}
四.拓展编程题
(1)空心金字塔
//正
#include<stdio.h>
void hollow_pyramid(int n)
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-1+i;j++)
{
if(i==n)
printf("%d",i);
else if(i<n)
if(j==n+1-i||j==n-1+i)
printf("%d",i);
else
putchar(' ');
}
putchar('\n');
}
}
//负
#include<stdio.h>
void hollow_pyramid(int n)
{
int i,j;
for(i=5;i>=1;i--)
{
for(j=1;j<=n-1+i;j++)
{
if(i==n)
printf("%d",i);
else if(i<n)
if(j==n+1-i||j==n-1+i)
printf("%d",i);
else
putchar(' ');
}
putchar('\n');
}
}
int main(void)
{
int n;
printf("Enter n:");
scanf("%d",&n);
hollow_pyramid(n);
return 0;
}
网友评论