前两个错误:
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/