| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1006 人关注过本帖
标题:统计最高票数
只看楼主 加入收藏
神少年
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-12-22
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:12 
统计最高票数
统计最高票数
时限:1000MS
内存限制:65536KByte
总提交:1336   测试通过:634


题目描述


信息技术学院需要票选出新生之星,经过重重选拔,最后只剩下10个候选人,编号从1-10。现在需要全体新生从这10个同学中票选出一人当选。

首先输入这次投票的总票数n,这n张票中的每张票上都写有投票者想要投的人选的编号。例如票值为1,表示投票给1号候选人。但是,总有些调皮的同学为了捣乱而投了无效票。无效票指的是票值不是1-10的那些票,例如票值为100的票就是一张无效票。现在请你编写一个程序,统计得票最高者的票数和他的编号。(为了简单起见,我们的统计中不会出现有两个候选人得票相同的情况。)


输入

开始一个正整数n表示总共有多少张票。接着是n个整数,表示对应票的票值。

输出

输出这次投票结果中,得票最多者的票数和编号,中间用一个空格分隔,并独占一行。

样例输入

10
1 1 1 2 3 4 4 1 1 100


样例输出

5 1


提示

除了需要一个变量记录当前最大值之外,还需要一个变量记录当前最大值的编号


#include<stdio.h>
int main()
{
int temp,a[100],b[100]={0},c[100],n,i,j;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{temp=a[j];a[j]=a[j+1];a[j+1]=temp;}
}
for(i=0;i<n;i++)
{for(j=0;j<n;j++)
{if(a[i]==a[j]&&a[i]<=10&&a[i]>0)
b[i]++;c[i]=a[i];}
i+=b[i];}
for(i=0;i<n-1;i++)
{for(j=0;j<n-i;j++)
if(a[j]<a[j+1])
{temp=b[j];b[j]=b[j+1];b[j+1]=temp;temp=c[j];c[j]=c[j+1];c[j+1]=temp;}
}
if(n!=0&&b[0]!=0)
printf("%d %d\n",b[0],c[0]);
return 0;
}
搜索更多相关主题的帖子: 信息技术 候选人 统计 
2010-12-22 18:28
神少年
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2010-12-22
收藏
得分:0 
自己测试运行没有问题。但是就是得不到ac。。求各位高手教教
2010-12-22 18:29
牛鼻子老道
Rank: 2
等 级:禁止发言
帖 子:26
专家分:13
注 册:2010-12-21
收藏
得分:10 
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-22 19:05
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
#include<iostream.h>
#include<stdlib.h>
struct student{
  int na;  //学生编号
  int nu;}stu[11];  //nu是票数,多定义一个学生是为了编号与票上的数字一样,第一个学生没有的
void main()
{
 int n,i,j,k,max;
 int *a=new int[n];  //数组大小不确定,这里定义a为动态数组
 cout<<"请输入票数n:";
 cin>>n;
 for(i=0;i<11;i++)  //初始化
 {
 stu[i].na=i;
 stu[i].nu=0;
 }
 cout<<"下面输入每张票上的数字,用空格分开:\n";
 for(i=0;i<n;i++)  //输入每张票上的数字
 {
 cin>>a[i];
 }
 for(i=1;i<11;i++)
       for(j=0;j<n;j++)
          {
              if(a[j]==stu[i].na)  //如果数字与编号相同,那么该编号的票数加1
                 stu[i].nu++;
          }
 max=stu[1].nu;
 k=1;
 for(i=2;i<11;i++)  //选最高的票
     if(stu[i].nu>max)
  {
     max=stu[i].nu;
     k=i;  //k记忆最后一次调换的学生号码,就是最高票的学生
  }
  cout<<max<<'\t'<<k;
  system("pause");
}
因为你的实在是看不懂,给你一个C++的,不介意吧?为了写这个,还没有吃饭呢,都凉了。
  


[ 本帖最后由 qq1023569223 于 2010-12-24 08:09 编辑 ]

   唯实惟新 至诚致志
2010-12-22 19:10
牛鼻子老道
Rank: 2
等 级:禁止发言
帖 子:26
专家分:13
注 册:2010-12-21
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-22 21:03
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:0 
三楼你不觉得你的
int a[1000000] ;
是多余的么?

樱之雪,晓之车
2010-12-22 21:31
牛鼻子老道
Rank: 2
等 级:禁止发言
帖 子:26
专家分:13
注 册:2010-12-21
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-22 21:38
马后炮
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:156
专家分:560
注 册:2010-12-17
收藏
得分:0 
引用:
我喜欢开这么大的内存空间,只要不超过要求的内存空间大小就可以了!!!


哦!!那你就是承认我说的是对的,这不就行了嘛

我建议你还是不要这么轻易的低估别人,以及态度这么不好,
事实上,你前面的代码可以缩短到原来的三分之一,并且更清晰简洁优美的,有兴趣你可以试试

樱之雪,晓之车
2010-12-22 21:46
牛鼻子老道
Rank: 2
等 级:禁止发言
帖 子:26
专家分:13
注 册:2010-12-21
收藏
得分:0 
提示: 作者被禁止或删除 内容自动屏蔽
2010-12-22 21:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 

int a[1000000] ;
  吃内存玩呢你?
牛鼻子老道   你是我菜119吧   你应该认识我

                                         
===========深入<----------------->浅出============
2010-12-22 22:20
快速回复:统计最高票数
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.043598 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved