帮忙编一个有趣的程序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]时,
怎样从文件导入???
----------------解决方案--------------------------------------------------------