考试了帮忙写个程序:C语言 一、求最大公约数和最小公倍数 二、在一组数中找最大最小值

如题所述

1.最大公约数和最小公倍数
#include<stdio.h>
void main()
{
int a,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d%d",&num1,&num2);
int ji = num1*num2;
if(num1<num2)/////保证第一数是较大的值
{
temp=num1;
num1=num2;
num2=temp;
}
while((a=num1%num2)!=0)/*利用辗除法,直到a为0为止*/
{
num1=num2;
num2 = a;
}////////此时num2就是最大公约数

printf("the gcd is: %d\n",num2);
printf("the lcm is: %d\n",ji/num2);
}

2.在数组中找最大和最小值
void Find(int arr[],int len)
{
int max=arr[0];
int min=arr[0];
int i,t;
for(i=1;i<len;i++)//max,min都假设第一个是当前为止最大的或最小的
{
if(arr[i]>max) max=arr[i];//如果这个比我们的max大,它可能是最大的
if(arr[i]<min)min=arr[i];//比min小,他可能是最小的
}
printf("max=%d,min=%d\n",max,min);
}
如果有数组:int array[5]={5,6,3,1,2};
调用方式: Find(arr,5);
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-22
#include<stdio.h>
#include<conio.h>
int main()
{int a,b,n,m,r,t;
printf("请输入两个数:");
scanf("%d %d",&a,&b);
m=a;n=b;
if(a<b)
{a=a^b;b=a^b;a=a^b;} //交换a,b的值
r=a%b;
while(r!=0)
{a=b;b=r;
if(a<b)
{a=a^b;b=a^b;a=a^b;}
r=a%b;}
printf("这两个数的最大公约数是:%d\n",b);
t=(m*n)/b;
printf("这令个数的最小公倍数是:%d\n",t);
getch();
return 0;
}
88888888888888888888888888888888888888888888888888888888888888888888
#include<stdio.h>
#define M 5
int main()
{int a[M],i,j,t;
printf("请输入%d个数:\n",M);
for(i=0;i<M;i++)
scanf("%d",&a[i]);
for(i=0;i<M-1;i++)
for(j=i+1;j<M;j++)
if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<M;i++)
if(i==0)
printf("最大数是:%d\n",a[i]);
else if(i==M-1)
printf("最小数是:%d\n",a[M-1]);
printf("\n");
return 0;
}
两个程序是我自己花时间写的,,如果对你有帮助,就采纳啊,不明白讨论,本回答被提问者采纳
第2个回答  2013-06-22
最大公约数 #include "stdio.h"
viod main()
{int m,n,r; /*m为被除数,n为除数,r为余数。*/
printf("请输入两个正整数m和n:");
scanf("%d%d",&m,&n);
r=m%n;
while(r!=0){m=n;n=r;r=m%n;}printf("最大公约数为:%d\n",n);}
相似回答