King_0823 2021-12-29 19:00 采纳率: 66.7%
浏览 45
已结题

c语言鲜花销售信息系统错误

img

img


这个不知道为什么不能有排序的功能,虽然可以正常运行。

img

这个不知道咋改,改了好几次,都不行

这是最新的

img

img

img

img


这个全部值变为零了

代码全部:

img

代码全部:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 3

struct flower
{
    int num;  //编号
    char name[20];  //鲜花名称
    char kind[20];   //种类
    int price;  //价格
    int amount;  //销售数量
    char man[20];   //销售人员
};struct flower f[80];

int count=N;
void sort(); //定义排序函数
void number_serch();  //定义按编号查询鲜花信息函数
void number_delete(); //定义按编号删除鲜花信息函数
int menu()
{
    int a;
    printf("------------鲜花销售信息系统------------\n");
    printf("\n");
    printf("|        1.录入鲜花销售信息            |\n");
    printf("|        2.显示鲜花销售信息            |\n");
    printf("|        3.按照销售数量从高到低排序    |\n");
    printf("|        4.按编号查询某一鲜花销售信息  |\n");
    printf("|        5.按编号删除鲜花信息          |\n");
    printf("|        7.退出程序                    |\n");
    printf("---------------------------------------\n");
    printf("请选择1到7:");
    scanf("%d",&a);
    return a;
}
struct flower flo[10];  //定义输入鲜花信息子函数
void in_record()
{
    int i;
    for(i=0;i<count;i++)
    {
        printf("input %d num:\n",i+1);
        scanf("%d",&flo[i].num);
        printf("input %d name:\n",i+1);
        scanf("%s",flo[i].name);
        printf("input %d kind:\n",i+1);
        scanf("%s",flo[i].kind);
        printf("input %d price:\n",i+1);
        scanf("%d",&flo[i].price);
        printf("input %d amount:\n",i+1);
        scanf("%d",&flo[i].amount);
        printf("input %d man:\n",i+1);
        scanf("%s",flo[i].man);
    }
}
void out_record()   //定义鲜花输出子函数
{
    int i;
    printf("编号\t鲜花名称\t种类\t价格\t销售数量\t销售人员\n");
    for(i=0;i<count;i++)
    {
        printf("%d\t",flo[i].num);
        printf("%s\t\t",flo[i].name);
        printf("%s\t",flo[i].kind);
        printf("%d\t",flo[i].price);
        printf("%d\t\t",flo[i].amount);
        printf("%s\t",flo[i].man);
        printf("\n");
    }
}
void sort() //按销售数量从高到低排序
{
    struct flower temp;
    int i,j;
    for(i=0;i<count;i++)
        for(j=0;j<count-1;j++)
            if(f[j].amount>f[j+1].amount)
            {
                temp=f[j];
                f[j]=f[j+1];
                f[j+1]=temp;
            }
        printf("编号\t鲜花名称\t种类\t价格\t销售数量\t销售人员\n");
    for(i=0;i<count;i++)
    {
        printf("%d\t%s\t\t%s\t%d\t%d\t\t%s\n",f[i].num,f[i].name,f[i].kind,f[i].price,f[i].amount,f[i].man);
        printf("\n");
    }     
 } 
void number_serch()    //按编号查询某一鲜花信息
{
    int i;
    int num1;
    printf("请输入编号:");
    scanf("%d",&num1);
    for(i=0;i<count;i++)
    {
        if(num1==flo[i].num)
        printf("编号:%d\n鲜花名称:%s\n种类:%s\n价格:%d\n销售数量:%d\n销售人员:%s\n",flo[i].num,flo[i].name,flo[i].kind,flo[i].price,flo[i].amount,flo[i].man);
        printf("\n");
    }

}
void number_delete()   //按编号删除鲜花信息函数
{
    int i,k,num1;
    printf("请输入删除鲜花的编号:");
    scanf("%d",&num1);
    for(i=0;i<count;i++)
        if(num1==f[i].num)
            k=i;
    for(i=k;i<count;i++)
    {
        f[i].num=f[i+1].num;
        strcpy(f[i].name,f[i+1].name);
        strcpy(f[i].kind,f[i+1].kind);
        f[i].price=f[i+1].price;
        f[i].amount=f[i+1].amount;
        strcpy(f[i].man,f[i+1].man);
    }
    count--;
    printf("删除成功,请选择2查看结果:\n");
}
void main()  //主函数
{
    int choice;
    while(1)
    {
        choice=menu();
        switch(choice)
        {
        case 1:in_record();
            break;
        case 2:out_record();
            break;
        case 3:sort();
            break;
        case 4:number_serch();
            break;
        case 5:number_delete();
            break;
        case 7:exit(0);
        }

    }
}


  • 写回答

1条回答 默认 最新

  • fuill 2021-12-29 19:09
    关注

    man在这里是字符串类型,不能用=来赋值,应该用strcpy(a,b),b复制到a

    排序中,第一个循环,i<count-1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 1月7日
  • 已采纳回答 12月30日
  • 修改了问题 12月30日
  • 修改了问题 12月30日
  • 展开全部

悬赏问题

  • ¥15 使用ESP8266连接阿里云出现问题
  • ¥15 被蓝屏搞吐了,有偿求帮解答,Ai回复直接拉黑
  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并