【问题标题】:I want to multiply two different structures in c language我想用c语言将两个不同的结构相乘
【发布时间】:2015-06-14 13:25:55
【问题描述】:

我是计算机科学学士学位的学生。我正在研究库存系统,这是我大学的第一个项目。但是我在结束库存时遇到了一个问题。我想添加开仓和买入,然后从中减去卖出。但我做不到。请帮我解决这个问题。

【问题讨论】:

  • 欢迎来到 StackOverflow。你能提供更多细节和一些与你的问题相关的代码吗?
  • 向我们展示问题所在的代码,告诉我们它做了什么以及应该做什么...... sscce.org
  • 我无法打印 dev C++ 中两个不同结构中使用的两个不同值.....我想在一行中打印它
  • 结构库存数据; { 字符 ID[10];字符项[20];整数;国际成本; };结构库存数据[20];结构库存数据1[20];我想添加结构库存数据的int quant[20];和结构库存数据1[20];我想

标签: c


【解决方案1】:

考虑结构:

struct inventory
{
    char id[10];
    char item[20];
    int  quant;
    int cost;
} data[20], data1[20];

现在,我们通过商店获取物品库存,然后我们通过仓库获取另一个库存。然后我们想要一个总库存(数据和数据1)。我们可以执行以下操作,包括打印输出:

int total;
for (i = 0; i < 20; i++)
{
    total = data[i].quant + data1[i].quant;
    printf("Item %s, ID %s: ", data[i].item, data[i].id);
    printf("Store: %5d  Warehouse: %5d  Total: %6d\n",
           data[i].quant, data1[i].quant, total)
}

所以,total 是两个结构的总和(我假设每个数据数组的第 i 个元素用于相同的项目 - 您可能应该在打印输出之前检查一下)。打印输出将出现在一行上(因为在第一个 printf 的末尾没有 \n)。

现在,如果你想操纵结构的元素,那也很简单。考虑:

struct items
{
    int opening, purchase, sell;
} element;

int remaining;
// Calculate the remaining items:
remaining = element.opening + element.purchase - element.sell;

// ... <other processing>
// Do printouts, etc. with information
// ...

// Now update structure for the next cycle.
element.opening  = remaining;
element.purchase = 0;
element.sell     = 0;

这个例子展示了对结构元素的操作。你也可以使用一个函数来做同样的事情并传递一个指向结构的指针。这实际上更灵活,因为它不关心或知道您拥有多少不同的库存物品:

int getRemaining(struct items *item)
{
    int remaining;
    remaining = item->open + item->purchase - item->sell;
    item->open = remaining;
    item->purchase = 0;
    item->sell     = 0;
    return remaining;
}

你去吧 - 一种跨结构的多个实例访问结构元素的方法,以及一种访问和操作结构内元素的方法。

祝你好运

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2015-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 2012-04-27
    • 1970-01-01
    相关资源
    最近更新 更多