1.写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。
#include<stdio.h>
int maxyue(int a,int b)
{
int c;
while(b!=0)
{
c=a%b;
a=b;
b=c;
}
return a;
}
int maxbei(int a,int b)
{
int s;
s=a/maxyue(a,b)*b;
}
int main()
{
int a,b,s,n;
scanf("%d%d",&a,&b);
s=maxyue(a,b);
n=maxbei(a,b);
printf("%d ",s);
printf("%d",n);
return 0;
}
2.求方程ax2 + bx + c = 0的根,用3个函数分别求当b2-4ac大于零、等于零、和小于零时的方程的根并输出结果。要求从主函数输入a,b,c的值.
#include<stdio.h>
#include<math.h>
//x1为第一个根,x2为第二个根
float x1, x2, disc, p, q;
void greater_than_zero(float a, float b)
{
float m = sqrt(disc);
x1 = (-b + sqrt(disc)) / (2 * a);
x2 = (-b - sqrt(disc)) / (2 * a);
}
void equal_to_zero(float a, float b)
{
x1 = x2 = (-b) / (2 * a);
}
void smaller_than_zero(float a, float b)
{
p = -b / (2 * a);
q = sqrt(-disc) / (2 * a);
}
int main()
{
int a, b, c;
printf("请输入 a b c:");
scanf("%d %d %d", &a, &b, &c);
printf("表达式为: %d*x^2+%d*x+%d = 0\n", a, b, c);
disc = b*b - 4 * a*c;
if (disc > 0)
{
greater_than_zero(a, b);
printf("disc>0的根为: x1=%f x2=%f\n", x1, x2);
}
else if (disc == 0)
{
equal_to_zero(a, b);
printf("disc==0的根为:x1=%f x2=%f\n", x1, x2);
}
else
{
smaller_than_zero(a, b);
printf("disc<0的根为:x1=%f+%f x2=%f-%f\n", p, q, p, q);
}
return 0;
}
3.写一个判素数的函数,在主函数输入一个整数,输出是否为素数的信息.
#include <stdio.h>
int main()
{
void prime_number(int n);
int a;
printf("请输入一个数: ");
scanf("%d",&a);
prime_number(a);
return 0;
}
void prime_number(int n)
{
int i;
for(i=2;i<=n-1;i++)
if(n%i==0)
break;
if(i==n)
printf("%d 是一个素数.\n",n);
else
printf("%d 不是一个素数.\n",n);
}
4.输出以下图案,菱形*
#include <stdio.h>
int main()
{int i,j,k;
for (i=0;i<=3;i++)
{for (j=0;j<=2-i;j++)
printf(" ");
for (k=0;k<=2*i;k++)
printf("*");
printf("\n");
}
for (i=0;i<=2;i++)
{for (j=0;j<=i;j++)
printf(" ");
for (k=0;k<=4-2*i;k++)
printf("*");
printf("\n");
}
return 0;
}
5.一个数如果恰好等于它的因子之和,这个数就称为完数。例如,6的因子为1,2,3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并按下面格式输出其因子:
#include<stdio.h>
int main()
{
int data, fator, sum; /* data表示要判断的数,fator表示因子,sum表示因子之和*/
for (data = 2; data <= 1000; data++)
{
//1是所有整数的因子,所以因子之和从1开始
sum = 1;
for (fator = 2; fator <= data / 2; fator++)
{
/* 判断data能否被fator整除,能的话fator即为因子 因子不包括自身 */
if (data % fator == 0)
{
sum += fator;
}
}
// 判断此数是否等于因子之和 */
if (sum == data)
{
printf("%d its factors are 1, ", data);
for (fator = 2; fator <= data / 2; fator++)
{
if (data % fator == 0)
{
printf("%d, ", fator);
}
}
printf("\n");
}
}
return 0;
}
© 版权声明
THE END
暂无评论内容