求最高同学位置—C语言版
时间: 1ms 内存:128M
描述:
设一维数组存放了n(<100)名同学的身高,编写函数求身高最高同学的位置,如果结果有多个,需要输出所有人的位置。
部分代码已给定如下,只需要提交缺失的代码。
#include<stdio.h>
int main()
{
int getHeight(float height[],int n,int result[]);
float height[100];
int result[100];
int i,num,n;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%f",&height[i]);
num=getHeight( height,n,result);
for(i=0; i<num; i++)
printf("%d:%d\n",i+1,result[i]);
return 0;
}
输入:
n和n名同学的身高
输出:
身高最高同学的位置,多个结果每行显示一个。
示例输入:
10
1.7 1.69 1.82 1.59 1.93 1.77 1.93 1.78 1.93 1.72
示例输出:
1:5
2:7
3:9
提示:
参考答案(内存最优[1092]):
#include<stdio.h>
int main()
{
int getHeight(float height[],int n,int result[]);
float height[100];
int result[100];
int i,num,n;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%f",&height[i]);
num=getHeight( height,n,result);
for(i=0; i<num; i++)
printf("%d:%d\n",i+1,result[i]);
return 0;
}
int getHeight(float height[],int n,int result[])
{
float max=height[0];
int i,j=0;
int count=0;
for(i=0;i<n;i++)
if(height[i]>max)
max=height[i];
for(i=0;i<n;i++)
if(height[i]==max)
{
count++;
result[j++]=i+1;
}
return count;
}
参考答案(时间最优[0]):
#include<stdio.h>
int main()
{
int getHeight(float height[],int n,int result[]);
float height[100];
int result[100];
int i,num,n;
scanf("%d",&n);
for(i=0; i<n; i++)
scanf("%f",&height[i]);
num=getHeight( height,n,result);
for(i=0; i<num; i++)
printf("%d:%d\n",i+1,result[i]);
return 0;
}
int getHeight(float height[],int n,int result[])
{
float max=height[0];
int i,j=0;
int count=0;
for(i=0;i<n;i++)
if(height[i]>max)
max=height[i];
for(i=0;i<n;i++)
if(height[i]==max)
{
count++;
result[j++]=i+1;
}
return count;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。