Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何按字母顺序对结构进行冒泡排序_C_Sorting_Data Structures - Fatal编程技术网

C 如何按字母顺序对结构进行冒泡排序

C 如何按字母顺序对结构进行冒泡排序,c,sorting,data-structures,C,Sorting,Data Structures,我需要写一个代码,在一个结构中,我注册了车牌,型号,品牌,年份和每日价值的汽车。注册完这些数据后,我需要根据汽车牌照对整个结构进行排序,然后在屏幕上显示给用户。例如: 汽车1 车牌号:IZA-2929 车型:全球技术法规 汽车品牌:日产 车年:2016年 汽车日价值:100辆 汽车2 车牌:BCC-1234 车型:花冠 汽车品牌:丰田 车年:2014年 汽车每日价值:50 订购 汽车2 车牌:BCC-1234 车型:花冠 汽车品牌:丰田 车年:2014年 汽车日价值:50 汽车1 车牌号:IZA

我需要写一个代码,在一个结构中,我注册了车牌,型号,品牌,年份和每日价值的汽车。注册完这些数据后,我需要根据汽车牌照对整个结构进行排序,然后在屏幕上显示给用户。例如:

汽车1

车牌号:IZA-2929
车型:全球技术法规
汽车品牌:日产
车年:2016年
汽车日价值:100辆

汽车2

车牌:BCC-1234
车型:花冠
汽车品牌:丰田
车年:2014年
汽车每日价值:50

订购

汽车2
车牌:BCC-1234
车型:花冠
汽车品牌:丰田
车年:2014年
汽车日价值:50

汽车1
车牌号:IZA-2929
车型:全球技术法规
汽车品牌:日产
车年:2016年
汽车日价值:100辆

#包括
#包括
#包括
卡罗结构
{
char placa[50];
char marca[50];
charmodelo[50];
charano[50];
char Valordaria[50];
};
int main()
{
struct carro汽车[5];
结构卡罗温度[5];
strcpy(car[0].placa,“IZA-2929”);
strcpy(car[1].普拉卡,“HJZ-1234”);
strcpy(汽车[2].普拉卡,“XCV-3478”);
strcpy(car[3].普拉卡,“BSD-8329”);
strcpy(car[4].普拉卡,“AHG-8332”);
strcpy(汽车[0].marca,“雪佛兰”);
strcpy(汽车[1].marca,“大众”);
strcpy(汽车[2]。马卡,“法拉利”);
strcpy(汽车[3]。马卡,“日产”);
strcpy(汽车[4]。马卡,“福特”);
strcpy(car[0].modelo,“Onix”);
strcpy(汽车[1].modelo,“高尔夫”);
strcpy(car[2].modelo,“Enzo”);
strcpy(汽车[3].modelo,“全球技术法规”);
strcpy(car[4].modelo,“Ka”);
strcpy(car[0].ano,“2013”);
strcpy(car[1].ano,“2008”);
strcpy(car[2].ano,“2004”);
strcpy(car[3].ano,“2017”);
strcpy(car[4].ano,“2015”);
strcpy(car[0].valordaria,“45”);
strcpy(car[1].valordaria,“60”);
strcpy(car[2].valordaria,“80”);
strcpy(car[3].valordaria,“200”);
strcpy(car[4]),Valordaria,“65”);
int q=0;
int i,j,l,x;
在这里,我按原样显示结构,尚未排序

(x=0;x<5;x++)的

{
printf(“\n指令:”);
printf(“\nPlaca:%s”,car[q].placa);
printf(“\nMarca:%s”,car[q].marca);
printf(“\nModelo:%s”,car[q].modelo);
printf(“\nAno:%s”,car[q].ano);
printf(“\nValor da diaria:R$%s”,car[q].valordaria);
}
这是我的气泡排序结构,这就是我遇到的问题

泡泡糖:泡泡糖// 对于(j=0;j<5-1;j++) { 对于(i=0;i<5-1;i++) { if(strcmp(car[i].placa,car[i+1].placa)>0) { 温度=汽车[i]; 汽车[i]=汽车[i+1]; 汽车[i+1]=温度; } } } 在这里,我展示了所有有序的结构

(x=0;x<5;x++)的

{
printf(“\n指令或指令:”);
printf(“\nPlaca:%s”,car[q].placa);
printf(“\nMarca:%s”,car[q].marca);
printf(“\nModelo:%s”,car[q].modelo);
printf(“\nAno:%s”,car[q].ano);
printf(“\nValor da diaria:R$%s”,car[q].valordaria);
}
}

以下是代码本身:

#包括
#包括
#包括
卡罗结构
{
char placa[50];
char marca[50];
charmodelo[50];
charano[50];
char Valordaria[50];
};
int main()
{
struct carro汽车[5];
结构卡罗温度[5];
strcpy(car[0].placa,“IZA-2929”);
strcpy(car[1].普拉卡,“HJZ-1234”);
strcpy(汽车[2].普拉卡,“XCV-3478”);
strcpy(car[3].普拉卡,“BSD-8329”);
strcpy(car[4].普拉卡,“AHG-8332”);
strcpy(汽车[0].marca,“雪佛兰”);
strcpy(汽车[1].marca,“大众”);
strcpy(汽车[2]。马卡,“法拉利”);
strcpy(汽车[3]。马卡,“日产”);
strcpy(汽车[4]。马卡,“福特”);
strcpy(car[0].modelo,“Onix”);
strcpy(汽车[1].modelo,“高尔夫”);
strcpy(car[2].modelo,“Enzo”);
strcpy(汽车[3].modelo,“全球技术法规”);
strcpy(car[4].modelo,“Ka”);
strcpy(car[0].ano,“2013”);
strcpy(car[1].ano,“2008”);
strcpy(car[2].ano,“2004”);
strcpy(car[3].ano,“2017”);
strcpy(car[4].ano,“2015”);
strcpy(car[0].valordaria,“45”);
strcpy(car[1].valordaria,“60”);
strcpy(car[2].valordaria,“80”);
strcpy(car[3].valordaria,“200”);
strcpy(car[4]),Valordaria,“65”);
int q=0;
int i,j,x;
对于(x=0;x<5;x++)
{
printf(“\n指令:”);
printf(“\nPlaca:%s”,car[q].placa);
printf(“\nMarca:%s”,car[q].marca);
printf(“\nModelo:%s”,car[q].modelo);
printf(“\nAno:%s”,car[q].ano);
printf(“\nValor da diaria:R$%s”,car[q].valordaria);
}
//::泡泡糖糖//
对于(j=0;j<5-1;j++)
{
对于(i=0;i<5-1;i++)
{
如果(strcmp(car[q].placa,car[q+1].placa)>0)
{
温度=汽车[q];
汽车[q]=汽车[q+1];
汽车[q+1]=温度;
}
}
}
对于(x=0;x<5;x++)
{
printf(“\n指令或指令:”);
printf(“\nPlaca:%s”,car[q].placa);
printf(“\nMarca:%s”,car[q].marca);
printf(“\nModelo:%s”,car[q].modelo);
printf(“\nAno:%s”,car[q].ano);
printf(“\nValor da diaria:R$%s”,car[q].valordaria);
}
}

您的打印循环中有一个“打字错误”,您正在迭代变量x,但正在打印索引q

发生了什么你没有预料到的事情?请提供。我可以编译一些东西来帮你找到你的问题。我不打算写你剩下的代码只是为了做到这一点。改变它,谢谢!但它没有纠正它,我得到了两个错误,第一个在“temp=car[q];”中,它说“赋值到数组类型的表达式”。“car[q+1]=temp;”中的第二个,其中表示“当从类型“struct carro*”分配到类型“struct carro”时,类型不兼容”。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct carro
{
char placa[50];
char marca[50];
char modelo[50];
char ano[50];
char valordiaria[50];
};

int main()
{
struct carro car[5];
struct carro temp[5];


strcpy(car[0].placa, "IZA-2929");
strcpy(car[1].placa, "HJZ-1234");
strcpy(car[2].placa, "XCV-3478");
strcpy(car[3].placa, "BSD-8329");
strcpy(car[4].placa, "AHG-8332");

strcpy(car[0].marca, "Chevrolet");
strcpy(car[1].marca, "Volkswagen");
strcpy(car[2].marca, "Ferrari");
strcpy(car[3].marca, "Nissan");
strcpy(car[4].marca, "Ford");

strcpy(car[0].modelo, "Onix");
strcpy(car[1].modelo, "Golf");
strcpy(car[2].modelo, "Enzo");
strcpy(car[3].modelo, "GTR");
strcpy(car[4].modelo, "Ka");

strcpy(car[0].ano, "2013");
strcpy(car[1].ano, "2008");
strcpy(car[2].ano, "2004");
strcpy(car[3].ano, "2017");
strcpy(car[4].ano, "2015");

strcpy(car[0].valordiaria, "45");
strcpy(car[1].valordiaria, "60");
strcpy(car[2].valordiaria, "80");
strcpy(car[3].valordiaria, "200");
strcpy(car[4].valordiaria, "65");


int q=0;
int i,j,l,x;
for( x = 0; x < 5; x++ )
{
    printf("\nStruct desordenada:");
    printf("\nPlaca: %s", car[q].placa);
    printf("\nMarca: %s", car[q].marca);
    printf("\nModelo: %s", car[q].modelo);
    printf("\nAno: %s", car[q].ano);
    printf("\nValor da diaria: R$%s", car[q].valordiaria);
}
// :::BUBBLESORT::: //

for (j = 0; j < 5 - 1; j++)
{
    for (i = 0; i < 5 - 1; i++)
    {
        if ( strcmp(car[i].placa, car[i + 1].placa ) > 0)
        {
            temp = car[i];
            car[i] = car[i+1];
            car[i+1] = temp;
        }
    }
}
for( x = 0; x < 5; x++ )
{
    printf("\nStruct Ordenana:");
    printf("\nPlaca: %s", car[q].placa);
    printf("\nMarca: %s", car[q].marca);
    printf("\nModelo: %s", car[q].modelo);
    printf("\nAno: %s", car[q].ano);
    printf("\nValor da diaria: R$%s", car[q].valordiaria);
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct carro
{
    char placa[50];
    char marca[50];
    char modelo[50];
    char ano[50];
    char valordiaria[50];
};

int main()
{
    struct carro car[5];
    struct carro temp[5];

    strcpy(car[0].placa, "IZA-2929");
    strcpy(car[1].placa, "HJZ-1234");
    strcpy(car[2].placa, "XCV-3478");
    strcpy(car[3].placa, "BSD-8329");
    strcpy(car[4].placa, "AHG-8332");

    strcpy(car[0].marca, "Chevrolet");
    strcpy(car[1].marca, "Volkswagen");
    strcpy(car[2].marca, "Ferrari");
    strcpy(car[3].marca, "Nissan");
    strcpy(car[4].marca, "Ford");

    strcpy(car[0].modelo, "Onix");
    strcpy(car[1].modelo, "Golf");
    strcpy(car[2].modelo, "Enzo");
    strcpy(car[3].modelo, "GTR");
    strcpy(car[4].modelo, "Ka");

    strcpy(car[0].ano, "2013");
    strcpy(car[1].ano, "2008");
    strcpy(car[2].ano, "2004");
    strcpy(car[3].ano, "2017");
    strcpy(car[4].ano, "2015");

    strcpy(car[0].valordiaria, "45");
    strcpy(car[1].valordiaria, "60");
    strcpy(car[2].valordiaria, "80");
    strcpy(car[3].valordiaria, "200");
    strcpy(car[4].valordiaria, "65");


    int q=0;
    int i,j,x;

    for( x = 0; x < 5; x++ )
    {
        printf("\nStruct desordenada:");
        printf("\nPlaca: %s", car[q].placa);
        printf("\nMarca: %s", car[q].marca);
        printf("\nModelo: %s", car[q].modelo);
        printf("\nAno: %s", car[q].ano);
        printf("\nValor da diaria: R$%s", car[q].valordiaria);
    }



    // :::BUBBLESORT::: //

    for (j = 0; j < 5 - 1; j++)
    {
        for (i = 0; i < 5 - 1; i++)
        {
            if ( strcmp(car[q].placa, car[q + 1].placa ) > 0)
            {
                temp = car[q];
                car[q] = car[q+1];
                car[q+1] = temp;
            }
        }
    }

    for( x = 0; x < 5; x++ )
    {
        printf("\nStruct Ordenada:");
        printf("\nPlaca: %s", car[q].placa);
        printf("\nMarca: %s", car[q].marca);
        printf("\nModelo: %s", car[q].modelo);
        printf("\nAno: %s", car[q].ano);
        printf("\nValor da diaria: R$%s", car[q].valordiaria);
    }


}