| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2548 人关注过本帖
标题:关于在循环语句中数组数据的大小比较问题。求助各位大侠
只看楼主 加入收藏
kingwoeway
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-6-24
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:4 
关于在循环语句中数组数据的大小比较问题。求助各位大侠
下面一段代码所要表达的意思就是,类似于选举投票的机制。
对于内置的“三个人”,分别为wang,zhang,wu。
然后终端输入这些人名,系统记录“投票”次数。最后输出每个人名的最终次数。

但是,我想做出一些创新,也就是,在这段代码中,加入一段代码,来实现最后可以
将每个人的得票次数进行排序的功能。但是由于是新手,不知道怎么实现这个想法。
故来求助各位大师。。
在线等。。
#include <stdio.h>
#include <string.h>
struct person
{
   char name[20];
   int count;
}leader[3]={"wang",0,"zhang",0,"wu",0};

main()
{
   int i ,j;
   char leader_name[20];

   printf("This is an election,wang,zhang,wu are included.\nPlease input a name of person,limited by five times,and press Enter:\n");

   for(i=1;i<=5;i++)
   {
     scanf("%s",leader_name);

     for(j=0;j<3;j++)
if(strcmp(leader_name,leader[j].name)==0)
     leader[j].count++;
   }
   printf("\nFinal Result:\n");
   for(i=0;i<3;i++)
   printf("%s:%d\n",leader[i].name,leader[i].count);
}
搜索更多相关主题的帖子: zhang 在线 
2011-03-03 21:14
『点点滴滴』
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
帖 子:168
专家分:1035
注 册:2007-7-9
收藏
得分:10 
#include <stdio.h>
#include <string.h>
struct person
{
    char name[20];
    int count;
}leader[3]={"wang",0,"zhang",0,"wu",0};
void sort( person *leader )  //排序
{
    int i , j ;
    for( i = 0 ; i < 2 ; ++i )
    {
        for( j = i ; j < 2 ; ++j )
        {
            if( leader[j].count < leader[j+1].count )  //确定升序还是降序
            {
                person p = leader[j] ;
                leader[j] = leader[j + 1] ;
                leader[j + 1] = p ;
            }
        }
    }
}
int main()
{
    int i ,j;
    char leader_name[20];
   
    printf("This is an election,wang,zhang,wu are included.\nPlease input a name of person,limited by five times,and press Enter:\n");
   
    for(i=1;i<=5;i++)
    {
        scanf("%s",leader_name);
        
        for(j=0;j<3;j++)
            if(strcmp(leader_name,leader[j].name)==0)
                leader[j].count++;
    }
    printf("\nFinal Result:\n");
    sort( leader ) ;
    for(i=0;i<3;i++)
        printf("%s:%d\n",leader[i].name,leader[i].count);
    return 0 ;
}
2011-03-03 21:25
kingwoeway
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-6-24
收藏
得分:0 
回复 2楼 『点点滴滴』
为什么编译出错了。。
2011-03-03 21:44
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:10 
#include <stdio.h>
#include <string.h>
struct person
{
   char name[20];
   int count;
}leader[3]={{"wang",0},{"zhang",0},{"wu",0}};

void main()
{
   int i ,j,temp_count;
   char leader_name[20],temp_name[20];

   printf("This is an election,wang,zhang,wu are included.\nPlease input a name of person,limited by five times,and press Enter:\n");

   for(i=1;i<=5;i++)
   {
     scanf("%s",leader_name);

     for(j=0;j<3;j++)
     {
     if(strcmp(leader_name,leader[j].name)==0)
     leader[j].count++;
     }
   }
   for(i=0;i<2;i++)
   for(j=i+1;j<3;j++)
   {
     if(leader[i].count<leader[j].count)
      {
        temp_count=leader[i].count;
        leader[i].count=leader[j].count;
        leader[j].count=temp_count;
        strcmp(temp_name,leader[i].name);
        strcmp(leader[i].name,leader[j].name);
        strcmp(leader[j].name,temp_name);
       }
     }
   printf("\nFinal Result:\n");
   for(i=0;i<3;i++)
   printf("%s:%d\n",leader[i].name,leader[i].count);
}

   唯实惟新 至诚致志
2011-03-03 21:59
kingwoeway
Rank: 1
等 级:新手上路
帖 子:14
专家分:0
注 册:2010-6-24
收藏
得分:0 
回复 4楼 qq1023569223
十分感谢!
2011-03-03 22:30
快速回复:关于在循环语句中数组数据的大小比较问题。求助各位大侠
数据加载中...
 
   



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

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