前两个错误:

cs1713p3.c:129: error: incompatible types in assignment
cs1713p3.c:131: error: conversion to non-scalar type requested


第129行和第131行是我编写的冒泡排序函数的一部分,该函数旨在对称为“股票”的结构数组进行排序。这是股票结构的代码:

typedef struct
{
    char        szStockNumber[7];           // Stock Number for a stock item
    long        lStockQty;                  // quantity in stock
    double      dUnitPrice;                 // price per unit of stock
    char        szStockName[31];            // name of the stock item
} Stock;


这是我为排序编写的代码:

void sortInventory(Stock stockM[], int iStockCnt)
 {
     Stock *temp;
     int i;
     int j;
     int bChange = 1;
     for(i = 0; i < (iStockCnt - 1) && bChange == 1; i++)
     {
         bChange = 0;
         for(j = 0; j < (iStockCnt - i - 1); j++)
         {
             if(strcmp(stockM[i+1].szStockNumber, stockM[i].szStockNumber) < 0)
             {
                 temp = stockM[i]; //line 129
                 stockM[i] = stockM[i+1];
                 stockM[i+1] = (Stock)temp; //line 131
                 bChange = 1;
             }
         }
    }
}


是的,我尝试在每行的等号后立即使用(Stock)强制转换每个作业,但这没用。

感谢任何帮助的人!我不知道出了什么问题,而且我似乎无法在互联网上找到任何相关信息,我认为这太过具体了,哈哈。

最佳答案

stockM是类型为Stock的数组。另一方面,temp是类型为Stock*的数组。因此,您基本上是在尝试将类型为Stock的变量的值分配给类型为Stock*的变量,这是不允许的。

temp的类型更改为Stock

关于c - 我在此C程序中遇到两个错误。处理结构,数组和气泡排序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29189444/

10-13 05:45