C语言程序:冒泡排序(降序,从大到小) 选择排序
C语言程序:冒泡排序(降序,从大到小)选择排序输入两个正整数m和n,求最大公约数和最小公倍数任取1~9中四个互不相同的数,使它们和为12请不要网上查,我会在这里问就说明我...
C语言程序:冒泡排序(降序,从大到小)
选择排序
输入两个正整数m和n,求 最大公约数和最小公倍数
任取1~9中四个互不相同的数,使它们和为12
请不要网上查,我会在这里问就说明我查过了。 展开
选择排序
输入两个正整数m和n,求 最大公约数和最小公倍数
任取1~9中四个互不相同的数,使它们和为12
请不要网上查,我会在这里问就说明我查过了。 展开
3个回答
展开全部
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int sort1(int *d,int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=0;j<n-i-1;j++)
{
if(d[j+1]>d[j])
{
temp=d[j+1];
d[j+1]=d[j];
d[j]=temp;
}
}
}
return 0;
}
int sort2(int *d,int n)
{
int i,j,temp;
for(i=0;i<n;i++)
{
for(j=i;j<n;j++)
{
if(d[j]>d[i])
{
temp=d[j];
d[j]=d[i];
d[i]=temp;
}
}
}
return 0;
}
int common_divisor(int m,int n)
{
int i,temp;
if(m>n)
{
temp=m;
m=n;
n=temp;
}
for(i=m;i>=1;i--)
{
if(m%i==0&&n%i==0)
{
printf("\n%d是%d和%d的最大公约数\n",i,m,n);
break;
}
}
printf("%d是%d和%d的最最小公倍数\n",(m*n)/i,m,n);
return 0;
}
int diff12()
{
int i,j,k,m;
//int d[4];
for(i=1;i<=9;i++)
for(j=i;j<=9;j++)
for(k=j;k<=9;k++)
for(m=k;m<=9;m++)
{
if(i!=j&&i!=k&&i!=m&&j!=k&&j!=m&&k!=m&&i+j+k+m==12)
{
printf("%d+%d+%d+%d=12\n",i,j,k,m);
}
}
return 0;
}
float sum20()
{
int n,t,a=2,b=1,number=20;
float s=0;
for(n=1;n<number;n++)
{
s=s+a*1.0f/b;
t=a;//保留前一项的分子,因为前一项的分子是后一项的分母
a=a+b;//a要发生变化,所以前面用t保留前一项的分子
b=t;//前一项的分子存储在t中,这里赋值给下一项的分母
}
printf("前%d项之和为%f\n",number,s);
return s;
}
int main()
{
int data[10];
int i;
srand(time(NULL));
for(i=0;i<10;i++)
{
data[i]=rand()%100;
}
printf("原来的数组为:\n");
for(i=0;i<10;i++)
{
printf("%-4d",data[i]);
}
sort1(data,10);
printf("\n冒泡法数组为:\n");
for(i=0;i<10;i++)
{
printf("%-4d",data[i]);
}
sort2(data,10);
printf("\n选择法数组为:\n");
for(i=0;i<10;i++)
{
printf("%-4d",data[i]);
}
common_divisor(10,4);
diff12();
sum20();
return 0;
}
追问
看的不是很清楚,能写的条理清晰些吗?
追答
里面有注释
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询