| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 522 人关注过本帖
标题:紧急求助
只看楼主 加入收藏
WJbobo
Rank: 1
等 级:新手上路
帖 子:85
专家分:3
注 册:2008-4-10
结帖率:76.92%
收藏
 问题点数:0 回复次数:3 
紧急求助
//用结构体输入数据,输入1继续输入,2结束,并按照书名排序输出。
#include"stdio.h"
#include"string.h"
//结构体
struct Book{
    char name[20];
    int price;
    int num;
    int amout;
}book[20];
int count=3;
//输出
void output(struct Book book[],int sum  )
{
    int i;
    for(i=0;i<sum;i++)
    {
        printf("书名是:\t");printf("单价是:\t");printf("数量是:\t");printf("该书的总价是:\t");
        printf("\n");
        printf("%s\t\t",book[i].name);
        
        printf("%d\t\t",book[i].price);
        
        printf("%d\t\t",book[i].num);
        
        printf("%d,%d,%d\t",book[i].amout=book[i].num*book[i].price);
        printf("\n");
    }
    return;
}
//排序
void sort(struct Book book[], int sun)
{
   struct Book zemp;
   int i;
   for(i=0;i<sun;i++)
   {
       if(strcmp(book[i].name,book[i+1].name)<0)
       {
           zemp=book[i];
           book[i]=book[i+1];
           book[i+1]=zemp;
       }
   }
    output(book,count);
   return;

}
void main()
{
    int i,y;//i 变量
     
   for(i=0;i<count;i++)
    {   
      printf("请输入图书的书名:\n");
      scanf("%s",book[i].name);
      printf("请输入图书的价格:\n");
      scanf("%d",&book[i].price);
      printf("请输入图书的数量:\n");
      scanf("%d",&book[i].num);
       do{
      
      printf("是否继续增加一本书的信息:(1/2)");
      scanf("%d",&y);

      
      
          }while(y==1);
   
}
      printf("***********************************************\n");
      printf("排序前\n");
      output(book,count);
      printf("***********************************************\n");
      printf("按书名排序后为:\n");
      //printf("按书名排序为:\n");
      sort(book,count);
      //printf("***********************************************\n");
      //printf("按书名排序后为:\n");
      //output(book,count);
 
 

}
有几个问题我控制不住.
1.count 不应该是具体的值。它是当输入2时,结束并统计count的值。输出
2。排序,好像没什么错啊。可是排不出来
3。就是输入1继续,输入2结束,
搜索更多相关主题的帖子: include 结构体 price count 
2008-09-10 08:09
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
排序算法有问题啊...

2008-09-10 12:25
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
#include"stdio.h"
#include"string.h"
//结构体
struct Book{
    char name[20];
    int price;
    int num;
    int amout;
}book[20];
int count=0;//这里有问题...
//输出
void output(struct Book book[],int sum  )
{
    int i;
    for(i=0;i<sum;i++)
    {
        printf("书名是:\t");printf("单价是:\t");printf("数量是:\t");printf("该书的总价是:\t");
        printf("\n");
        printf("%s\t\t",book[i].name);
        
        printf("%d\t\t",book[i].price);
        
        printf("%d\t\t",book[i].num);
        
        printf("%d,%d,%d\t",book[i].amout=book[i].num*book[i].price);
        printf("\n");
    }
    return;
}
//排序
void sort(struct Book book[], int sun)
{
    struct Book zemp;
    int i,j;
    for(i=0;i<sun-1;i++)
        for(j=i+1;j<sun;j++)  //这里出了问题...
        {
            if(strcmp(book[i].name,book[j].name)<0)
            {
                zemp=book[i];
                book[i]=book[j];
                book[j]=zemp;
            }
        }
        output(book,count);
        return;
        
}
void main()
{
    int y=1;//i 变量
    
    while(y==1)//这里有问题...
    {   
        printf("请输入图书的书名:\n");
        scanf("%s",book[count].name);
        printf("请输入图书的价格:\n");
        scanf("%d",&book[count].price);
        printf("请输入图书的数量:\n");
        scanf("%d",&book[count].num);
        count++;
        printf("是否继续增加一本书的信息:(1/2)");
        scanf("%d",&y);        
    }
    printf("***********************************************\n");
    printf("排序前\n");
    output(book,count);
    printf("***********************************************\n");
    printf("按书名排序后为:\n");
    //printf("按书名排序为:\n");
    sort(book,count);
    //printf("***********************************************\n");
    //printf("按书名排序后为:\n");
    //output(book,count);
    
    
    
}

2008-09-10 12:42
blueboy82006
Rank: 5Rank: 5
来 自:幻想世界
等 级:贵宾
威 望:16
帖 子:1227
专家分:57
注 册:2007-7-23
收藏
得分:0 
我标注有问题的地方都给你改过来了...你看下吧...
这样,基本能实现你的想法...
但有几个问题你还得解决...
这在这里提一下...
首先,价格定义为int 实在不合适吧...
其次,你计算总价格时出问题了...
最后,就是你还可以再把代码优化一下...

2008-09-10 12:45
快速回复:紧急求助
数据加载中...
 
   



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

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