2015-06-14 61 views
-6

我是BS計算機科學的學生。我正在研究庫存系統,這是我從uni開始的第一個項目。但是我在結束庫存時遇到了一個問題。我想添加開盤和購買,然後減去賣出。但我無法這樣做。請幫我解決這個問題。我想在c語言中乘以兩種不同的結構

+1

歡迎來到StackOverflow。你能提供更多細節和一些與你的問題相關的代碼嗎? – johnnyRose

+0

向我們展示問題所在的代碼,告訴我們它做了什麼以及它應該做些什麼... http://sscce.org – Arkku

+0

我無法在dev C++中打印兩個不同結構中使用的兩個不同值... ..我想打印它在一行 –

回答

0

考慮結構:

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) 
} 

所以,一共是從兩種結構(我假設每個數據數組的第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; 
} 

而且你去那裏 - 一種方法來訪問跨結構的多個實例的結構元素和方式訪問和操作結構中的元素。

好運

+0

謝謝親愛的朋友........ –