一个C语言题
#include<stdio.h>voidmain(void){inta[10];floatprocess(int*);voidinputdata(int*);input...
#include<stdio.h>
void main(void)
{
int a[10];
float process(int *);
void inputdata(int *);
inputdata(a);
printf("Score:%f\n",process(a));
}
float process(int *p)
{
int i,maxindex,minindex;
float aver=0;
maxindex=minindex=0;
for(i=1;i<10;i++)
{
if(*(p+maxindex)<*(p+i))
maxindex=i;
if([ ])
minindex=i;
}
*(p+maxindex)=0,*(p+minindex)=0;
for(i=0;i<10;i++)
aver=aver+*(p+i);
return *(p+minindex)>[ ];
}
void inputdata(int *k)
{
int i;
for(i=0;i<10;i++)
scanf("%d",k+i);
}
程序填空题:
tk505.c中有整形数组a[ ]。通过调用函数inputdata(),给a[ ]数组元素输入数据;通过调用函数process(),
实现去掉数组中一个最大数值和一个最小数值的元素,返回其余元素的平均值。
请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。不得增加行或删除行,也不得更改程序结构。 展开
void main(void)
{
int a[10];
float process(int *);
void inputdata(int *);
inputdata(a);
printf("Score:%f\n",process(a));
}
float process(int *p)
{
int i,maxindex,minindex;
float aver=0;
maxindex=minindex=0;
for(i=1;i<10;i++)
{
if(*(p+maxindex)<*(p+i))
maxindex=i;
if([ ])
minindex=i;
}
*(p+maxindex)=0,*(p+minindex)=0;
for(i=0;i<10;i++)
aver=aver+*(p+i);
return *(p+minindex)>[ ];
}
void inputdata(int *k)
{
int i;
for(i=0;i<10;i++)
scanf("%d",k+i);
}
程序填空题:
tk505.c中有整形数组a[ ]。通过调用函数inputdata(),给a[ ]数组元素输入数据;通过调用函数process(),
实现去掉数组中一个最大数值和一个最小数值的元素,返回其余元素的平均值。
请在括号[ ]处补充完整程序,并删除[ ],运行测试,实现上述要求。不得增加行或删除行,也不得更改程序结构。 展开
1个回答
展开全部
第一个[]:*(p+minindex)>*(p+i)
第二个[],你确定题目第二[]前(return 后面)有“*(p+minindex)>[ ]”这个东西么,如果有>的话[]里填什么都会返回bool值。
如果没有的话,return 后面应该填:aver/8
程序应该为
#include<stdio.h>
void main(void)
{
int a[10];
float process(int *);
void inputdata(int *);
inputdata(a);
printf("Score:%f\n",process(a));
}
float process(int *p)
{
int i,maxindex,minindex;
float aver=0;
maxindex=minindex=0;
for(i=1;i<10;i++)
{
if(*(p+maxindex)<*(p+i))
maxindex=i;
if(*(p+minindex)>*(p+i))
minindex=i;
}
*(p+maxindex)=0,*(p+minindex)=0;
for(i=0;i<10;i++)
aver=aver+*(p+i);
return (aver/8);
}
void inputdata(int *k)
{
int i;
for(i=0;i<10;i++)
scanf("%d",k+i);
}
第二个[],你确定题目第二[]前(return 后面)有“*(p+minindex)>[ ]”这个东西么,如果有>的话[]里填什么都会返回bool值。
如果没有的话,return 后面应该填:aver/8
程序应该为
#include<stdio.h>
void main(void)
{
int a[10];
float process(int *);
void inputdata(int *);
inputdata(a);
printf("Score:%f\n",process(a));
}
float process(int *p)
{
int i,maxindex,minindex;
float aver=0;
maxindex=minindex=0;
for(i=1;i<10;i++)
{
if(*(p+maxindex)<*(p+i))
maxindex=i;
if(*(p+minindex)>*(p+i))
minindex=i;
}
*(p+maxindex)=0,*(p+minindex)=0;
for(i=0;i<10;i++)
aver=aver+*(p+i);
return (aver/8);
}
void inputdata(int *k)
{
int i;
for(i=0;i<10;i++)
scanf("%d",k+i);
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询