c语言问题
1、编写函数,根据公式1公里=5/8英里,把英里数转换为公里数。2、编写函数,实现计算n个元素组成的整型数组中去掉一个最大值和一个最小之后的平均值(如有多个相同的最大值和...
1、编写函数,根据公式1公里=5/8英里,把英里数转换为公里数。
2、编写函数,实现计算n个元素组成的整型数组中去掉一个最大值和一个最小之后的平均值(如有多个相同的最大值和最小值,只要去掉一个,且设n大于2)。
3、设计函数,求整数n的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式:
y=1!+3!+5!+7! 展开
2、编写函数,实现计算n个元素组成的整型数组中去掉一个最大值和一个最小之后的平均值(如有多个相同的最大值和最小值,只要去掉一个,且设n大于2)。
3、设计函数,求整数n的阶乘,并在主函数中调用该函数(通过循环结构)计算下列多项式:
y=1!+3!+5!+7! 展开
3个回答
展开全部
#include <stdio.h>
#include<malloc.h>
//英里数转换为公里数
double mtok(double miles)
{
if(miles>0)return miles*8/5;
return 0;
}
//去除最大值最小值函数,n表示整型数组array的大小,array,newArray处理前后两个数组的第一个元素首地址即可
int RemoveMaxMin(int* array,int* newArray,int n)
{
if(n<=2||array==NULL||newArray==NULL)return 0;
int max,min;max=min=0;
for(int i=1;i<n;i++)
{
if(array[i]>array[max])
max=i;
else
min=i;
}
int j=0;
for(int k=0;k<n;k++)
{
if(k!=max&&k!=min)
newArray[j++]=array[k];
}
return 1;
}
//阶乘函数
long Factorial(int n)
{
long res=1;
if(n<0) return 0;
if(n==0)return 1;
for(int i=1;i<=n;i++)
res*=i;
return res;
}
int main(void)
{
double miles=2009.421;
double km=mtok(miles);
printf("%f 英里等于%f千米.\n\n",miles,km);
int oldArray[10]={1,2,3,4,5,6,7,8,9,10};
int newArray[8]={0};
if(!RemoveMaxMin(&oldArray[0],&newArray[0],10))return 0;
printf("处理前的数组为:\n");
for(int i=0;i<10;i++)
printf("%d ",oldArray[i]);
printf("\n");
printf("处理后的数组为:\n");
for(int j=0;j<8;j++)
printf("%d ",newArray[j]);
printf("\n\n");
long sum=0;
for(int k=1;k<=7;k+=2)
sum+=Factorial(k);
printf("1!+3!+5!+7!=%ld\n",sum);
return 1;
}
#include<malloc.h>
//英里数转换为公里数
double mtok(double miles)
{
if(miles>0)return miles*8/5;
return 0;
}
//去除最大值最小值函数,n表示整型数组array的大小,array,newArray处理前后两个数组的第一个元素首地址即可
int RemoveMaxMin(int* array,int* newArray,int n)
{
if(n<=2||array==NULL||newArray==NULL)return 0;
int max,min;max=min=0;
for(int i=1;i<n;i++)
{
if(array[i]>array[max])
max=i;
else
min=i;
}
int j=0;
for(int k=0;k<n;k++)
{
if(k!=max&&k!=min)
newArray[j++]=array[k];
}
return 1;
}
//阶乘函数
long Factorial(int n)
{
long res=1;
if(n<0) return 0;
if(n==0)return 1;
for(int i=1;i<=n;i++)
res*=i;
return res;
}
int main(void)
{
double miles=2009.421;
double km=mtok(miles);
printf("%f 英里等于%f千米.\n\n",miles,km);
int oldArray[10]={1,2,3,4,5,6,7,8,9,10};
int newArray[8]={0};
if(!RemoveMaxMin(&oldArray[0],&newArray[0],10))return 0;
printf("处理前的数组为:\n");
for(int i=0;i<10;i++)
printf("%d ",oldArray[i]);
printf("\n");
printf("处理后的数组为:\n");
for(int j=0;j<8;j++)
printf("%d ",newArray[j]);
printf("\n\n");
long sum=0;
for(int k=1;k<=7;k+=2)
sum+=Factorial(k);
printf("1!+3!+5!+7!=%ld\n",sum);
return 1;
}
展开全部
有点愤怒…… 楼主 学一门语言要好好学 别指望去网上找这些问题的答案 大家一眼就看出 这是题目,估计没人愿意回答的,大家不是苦力,而是合力解决问题的好朋友
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
嘻嘻,如果分高一点我倒愿意。反正也这么简单。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询