当前位置: 代码迷 >> C语言 >> 帮忙编一个有趣的程序02!
  详细解决方案

帮忙编一个有趣的程序02!

热度:97   发布时间:2008-01-03 22:23:54.0
帮忙编一个有趣的程序02!
帮忙编一个有趣的程序!
请高手们按一下原则帮忙编一个程序:
有N个人,分别为:number1,number2,number3,number4.....numberN.
各自有苹果分别为:N1,N2,N3,N4..............................
对他们拥有的苹果进行由多到少排序,输出时按名字输出,
例如:
名字为:张三,李四,王五,老刘:
分别有的苹果数为:3,6,1,9;
按拥有的苹果数多少进行排序应为:老刘,李四,张三,王五
怎样编程序才能按人名输出????
即输出:老刘,李四,张三,王五 而不是输出:9,6,3,1
搜索更多相关的解决方案: 苹果  李四  张三  

----------------解决方案--------------------------------------------------------
结构体+排序.
----------------解决方案--------------------------------------------------------
nuciewth
版主说的好!
我刚学C语言
能把算法说的详细点吗?
----------------解决方案--------------------------------------------------------
struct info{
    char name[20];
    int num;
}

直接对info.num排序.
----------------解决方案--------------------------------------------------------
我明白你的意思了!
但是现在人很多,例如:name[4096];分别是:number1,
number2,number3,number4,..........
这时用什么语句对name[4096]赋值比较好?
----------------解决方案--------------------------------------------------------
那就用文件操作嘛,
----------------解决方案--------------------------------------------------------
那就用文件操作嘛! 什么意思?
----------------解决方案--------------------------------------------------------
把数据放在文件了,然后文件操作把数据导入程序
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

struct motif
{
  char name[20];
  int  number;
} lead[4]={"aa",0,"ag",0,"ac",0,"at",0};

void main()
{    
  int i=0,j=0,k=0;
  char lead_name[20];
  for(i=0;i<10;i++)
  {
   scanf("%s",lead_name);
   for(j=0;j<4;j++)
   {
   if(strcmp(lead_name,lead[j].name)==0) lead[j].number++;
   }  
  }    
for(k=0;k<4;k++)    
printf("%s:%d\n",lead[k].name,lead[k].number);
}

下一步怎么排序?才能按名字输出
----------------解决方案--------------------------------------------------------
别怕我烦,我太笨了!
还有另一个问题:
lead[4]={"aa",0,"ag",0,"ac",0,"at",0};
这样赋值太麻烦了!
当lead[4]编程lead[400]时,
怎样从文件导入???
----------------解决方案--------------------------------------------------------
  相关解决方案