[英]I am getting a couple errors with my C program. Please assist me with whatever I am doing wrong
[英]Two errors I'm getting in this C program. Deals with structures, arrays, and bubble sorting
前两个错误:
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
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.