求最高同学位置—C语言版

求最高同学位置—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;

}

输入:

nn名同学的身高

输出:

身高最高同学的位置,多个结果每行显示一个。

示例输入:

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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注