【发布时间】:2017-05-20 04:27:12
【问题描述】:
为了一个教育软件项目(基本上是一个测验),我必须在 C 中为元素周期表建模。
我已经创建了一个结构并声明了所有元素。现在我必须编写一个随机选择一个元素的函数。
这是我的结构:
typedef struct{
char name[15];
char shortname[3];
int group;
int period;
}element;
element hydrogen={"hydrogen", "H", 1, 1}, helium={"Helium", "He", ...
我已经尝试将它们组合成一个数组,然后生成一个随机索引:
element elements[118];
elements[1] = {"hydrogen", "H", 1, 1};
但这只是给了我错误:(
有什么想法吗?
【问题讨论】:
-
你可以定义一个数组,例如像这样:
element table[118] = { {"hydrogen", "H", 1, 1}, ... }; -
注意:
char shortname[3];对于temporary systematic IUPAC symbol 来说太小了,例如"Uue"。最好使用#define SHORTNAME_N 4 ... char shortname[SHORTNAME_N ];char name[15];看起来也很小。 -
OTOH "Rutherfordium" 似乎是最长的
char name[NAME_N];需要#define NAME_N (14 /* or more */)。
标签: c arrays pointers struct c99