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