有一些C语言题,求高人给做一下,这周就要重修考试了,老师就给了这几道题,我一看就头痛……

2025-02-11 22:32:41
推荐回答(7个)
回答1:

1.//这是用冒泡排序做的,你也可以用其他方法比如插入排序等
#include
void main()
{
int a[11];
int i,j,temp;
printf("please in put ten numbers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
for(j=0;j<9-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
printf("结果是:\n");
for(i=0;i<10;i++)
printf("%3d",a[i]);
printf("\n");
}
2.
n即为你输入得值,你可以设置为20就是题目的答案了
#include
void main()
{
int n,i,j;
float sum=0,l=1.0;
scanf("%d",&n);
for( i=1;i<=n;i++)
{
l=1.0;
for( j=1;j<=i;j++)
{
l=l*j;

}
sum+=1.0/l;
}
printf("%f",sum);
}

3.//这是判断素数的函数具体实现自己做
int prime(int n)
{
int m,i=2,t;
t=(int)sqrt(n);
for(;i<=t;i++)
if(n%i==0)
{
m=0;
break;
}
if(i>t)
m=1;
else
m=0;
return m;
}
4.
#include
int f(int a,int b)
{
int y;
y=a%b;
return(y);
}
int g(int num1,int num2)
{
int h,a;
h=num1*num2/a;
return(h);
}
void main()
{
int num1,num2,a,b,temp;
printf("please input two number:\n");
scanf("%d%d",&num1,&num2);
if(num1>num2)
{
temp=num1;num1=num2;num2=temp;
}
a=num1;b=num2;
while(b!=0)
{temp=f(a,b);a=b;b=temp;}
printf("最大公约数:%d\n",a);
printf("最小公倍数:%d\n",g(num1,num2));
}
//希望你能学到,不仅是为了考试,更为方便自己编程,考试不重要,重要的是自己要懂得!并再不看答案的同时能编出来!希望你考试成功!

回答2:

很简单,全部原创:

1:
#include
#include
using namespace std;
int main()
{
int a[11];
for(int i = 0;i<10;++i)
scanf("%d",a+i);
sort(a,a+10);
for(i = 0;i<10;++i)
printf("%d",*(a+i));
return 0;
}

2:
#include
__int64 fac[21];
int main()
{
double sum;
fac[0] = 1;
for(int i = 1;i<21;++i)
fac[i] = i*fac[i-1];
for(int j = 1;j<21;++j)
sum += 1.0/fac[j];
printf("%lf",sum);
return 0;
}

3:
#include
#include
using namespace std;
bool is_prime_fun(int n);
int main()
{
for(int i = 201;i<300;++i)
if(is_prime_fun(i))
printf("%d",i);
return 0;
}
bool is_prime_fun(int n)
{
bool flag(true);
for(int i = 2;i*i if(!(j%i)){flag=false;break;}
if(flag) return true;
else return false;
}

4:
#include
int gcdfun(int a,int b)
{
if(b==0) return a;
else return gcdfun(b,a%b);
}

int main()
{
int x,y;
scanf("%d %d",&x,&y);
int result;
result = gcdfun(x,y);
printf("%d",result);
return 0;
}

觉得好就采纳吧………………

回答3:

第一题:
#include

#define MaxLen 10

void main(void)
{
int i,j;
int tmp;
int flag;
int arr[MaxLen];

printf("请输入10个整数:\n");
for (i=0; i {
scanf("%d", &arr[i]);
}

for (i=0; i {
flag = 1;
for (j=0; j {
if (arr[j] > arr[j+1])
{
flag = 0;
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}

if (flag)
{
break;
}
}

printf("输出结果为:\n");
for (i=0; i {
printf("%d ", arr[i]);
}

printf("\n");

return;
}
第二题:
#include

#define MaxLen 20

void main(void)
{
int i;
double fac = 1.0;
double sum = 0.0;

for (i=1; i<=MaxLen; i++)
{
fac *= i;
sum += 1.0 / fac;
}

printf("sum = %f\n",sum);
}
第三题:
#include

#define MaxLen 300

int primes(int num);

void main(void)
{
int i;

for (i=MaxLen-100; i<=MaxLen; i++)
{
if (primes(i))
{
printf("%d\n",i);
}
}
}

int primes(int num)
{
int i;

for (i=2; i {
if (num % i == 0)
{
return 0;
}
}

return 1;
}
第四题:
#include

int Maximum(int numA, int numB);

void main(void)
{
int numA;
int numB;

printf("请输入numA和numB:");
scanf("%d%d", &numA, &numB);

printf("Maximum = %d\n", Maximum(numA, numB));
}

int Maximum(int numA, int numB)
{
int i;
int min;

min = numA > numB ? numB : numA;

for (i=min; ; i--)
{
if ((numA % i == 0) && (numB % i == 0))
{
return (i);
break;
}
}
}

如果对你有所帮助,请记得采纳最佳答案,谢谢!

回答4:

1..#define N 10
main()
{int i,j,min,tem,a[N];
/*input data*/
printf("please input ten num:\n");
for(i=0;i{
printf("a[%d]=",i);
scanf("%d",&a[i]);}
printf("\n");
for(i=0;iprintf("%5d",a[i]);
printf("\n");
/*sort ten num*/
for(i=0;i{min=i;
for(j=i+1;jif(a[min]>a[j]) min=j;
tem=a[i];
a[i]=a[min];
a[min]=tem;
}
/*output data*/
printf("After sorted \n");
for(i=0;iprintf("%5d",a[i]);
}
#include

#define MaxLen 20

void main(void)
{
int i;
double fac = 1.0;
double sum = 0.0;

for (i=1; i<=MaxLen; i++)
{
fac *= i;
sum += 1.0 / fac;
}

printf("sum = %f\n",sum);
}
#include "math.h"
main()
{
int m,i,k,h=0,leap=1;
printf("\n");
for(m=200;m<=300;m++)
{ k=sqrt(m+1);
for(i=2;i<=k;i++)
if(m%i==0)
{leap=0;break;}
if(leap) {printf("%-4d",m);h++;
if(h%10==0)
printf("\n");
}
leap=1;
}
printf("\nThe total is %d",h);
}
4.main()
{
int a,b,num1,num2,temp;
printf("please input two numbers:\n");
scanf("%d,%d",&num1,&num2);
if(num1 { temp=num1;
num1=num2;
num2=temp;
}
a=num1;b=num2;
while(b!=0)/*利用辗除法,直到b为0为止*/
{
temp=a%b;
a=b;
b=temp;
}
printf("gongyueshu:%d\n",a);
}

回答5:

你这没分,我一看也头疼

回答6:

分少了,程序太多了

回答7:

问题不大