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

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

热度:134   发布时间:2008-01-04 11:17:26.0
你能编出来
这就证明你并不苯
相信你一定能做好的
----------------解决方案--------------------------------------------------------
nuciewth 版主,救救急吧!
nuciewth 版主,救救急吧!
我还是编不好,
----------------解决方案--------------------------------------------------------
关于文件操作赋值,我已解决
谢谢了!
关于排序按名字输出的问题,还是解决不了?
以下是我便出来的部分程序....
#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);
}

下一步怎么排序?才能按名字输出
----------------解决方案--------------------------------------------------------
fscanf();
文件操作没学过吗?
----------------解决方案--------------------------------------------------------
对他们拥有的苹果进行由多到少排序,输出时按名字输出
排序是num.
if(data[i].num>data[j].num)
{
    info temp;
    temp = data[i];
   data[i] = data[j] ;
   data[j] = temp;
}
....

for(....)
{
    printf("%s\n",data[i].name);
}
----------------解决方案--------------------------------------------------------
请看看我写的
#include "stdio.h"
#include "string.h"
#define N 5
struct student{
char name[15];
int num;
}stu[N];
main()
{ int i,j,min;
char stuname[15];

for(i=0;i<N;i++)
{
printf("please input the name the %d person",i+1);
scanf("%s",stu[i].name);
scanf("%d",&stu[i].num);
}
for(i=0;i<N;i++)

{
  min=stu[i].num;
  strcpy(stuname,stu[i].name);
for(j=i;j<N;j++)
{
if(stu[i].num>stu[j].num)
{
stu[i].num=stu[j].num;
stu[j].num=min;
strcpy(stu[i].name,stu[j].name);
strcpy(stu[j].name,stuname);
}
}
}
for(i=0;i<N;i++)
printf("%s\t%d\n",stu[i].name,stu[i].num);

}
这是我刚才写的,初学者,见笑了.
不过我还是满足了条件.
排序的方法我选择的是直接选择排序.
----------------解决方案--------------------------------------------------------
请问nuciewth 版主:
if(data[i].num>data[j].num)
{
    info temp;
    temp = data[i];
   data[i] = data[j] ;
   data[j] = temp;
}
您的 “info temp”是什么意思?有错吗?我运行不出来!
还有“temp = data[i]”对temp赋值是data[i]吗? 还是应该data[i].num?
我搞不懂!!!!
----------------解决方案--------------------------------------------------------
我定义的一个结构体info。
做比较时只比较num,但做交换时就要做整体info
----------------解决方案--------------------------------------------------------
程序代码:
#include<stdio.h>

typedef struct info{
    char name[20] ;
    int num ;
    } ;

void simpleSort(info *data,int n)
{
    int  i  , j  ;

    for( i = 0 ; i < n ; i++ )
    {
        for( j = i+1 ; j < n ; j++ )
        {
            if( data[i].num < data[j].num)
            {
                info temp = data[i];
                data[i] = data[j];
                data[j] = temp;
            }
        }
    }
}

void print(info *data,int n)
{
    for( int  i  = 0 ; i < n ; i++ )
    {
        printf("%s\n",data[i].name);
    }
}
int main()
{
    int n;
    info data[100];
    FILE *fp;
   
    fp=fopen("Apple.txt","r");
    fscanf(fp,"%d",&n);
    for( int i = 0 ; i < n ;i++ )
    {
        fscanf(fp,"%s%d",data[i].name,&data[i].num);
    }
    fclose(fp);
    simpleSort(data,n) ;
    print(data,n);
    return 0 ;
}
]
----------------解决方案--------------------------------------------------------
其实,C语言SHI 很EASY。。。。
C语言,,很简单的,,就这位大虾的题目,,就是一维数组。的问题。。。。。。。。。
----------------解决方案--------------------------------------------------------
  相关解决方案