0
我無法解釋這個練習的邏輯...如何比較和寄存器,它被複制
的練習要求我在一個結構 註冊5「品牌」陣列值和輸出必須展示如何每個品牌重複多次,如果它已經註冊不止一次。
#include <stdio.h>
#include <stdlib.h>
#define C 5
typedef struct
{
int id;
char brands[30];
} Something;
Something a[C];
int main()
{
int i=0, j=0;
//input
for(i=0;i<C;i++)
{
a[i].id = i;
printf("BRAND: ");
fflush(stdin);
gets(a[i].brands);
}
for(i=0;i<C;i++)
{
for(j=0;j<C;j++)
{
if (strcmp(a[i].brands, a[j].brands)==0)
//
}
}
return 0;
}
品牌輸入值不是恆定的,它可以是任何東西。
所以我想通過搜索來看看,比較是否有相同的品牌和增加每個櫃檯。 (此計數器是我卡住了,因爲我不知道有多少不同的品牌會在註冊表中)...
例如1
輸入
Ford
Ferrari
Ford
Nissan
Nissan
輸出應該是這樣的:
Ford 2x
Ferrari 1x
Nissan 2x
例如2
輸入
Ford
Ford
Ford
Ford
Nissan
輸出:
Ford 4x
Nissan 1x
請更具體一些。你不明白什麼?它有助於建議你在你的結構中放置一個計數器嗎?然後對於每個輸入,搜索'Something'列表。如果輸入已經存在,則增加計數器。否則,爲該輸入填充一個新的結構(其計數設置爲1)。 – kaylum
在C中搜索Set和Bag之間的區別使用Bag,應該很容易輸出引用的數量,並用較少的內存管理多個註冊。 – Myst
「品牌輸入不是恆定的」。你是什麼意思「不恆定」?你的意思是*輸入數*不是常數?如果是這樣,那麼有兩種一般方法:1.使用動態內存分配。 2.使用靜態MAX值分配數據結構內存。顯然,前者總體上好得多。 – kaylum