C でコードを書いていますが、エラーは発生しませんが、目的の結果が得られません。
元素の周期表の 1 つの元素を表す構造型 element_t を定義します。コンポーネントには原子番号 (整数) を含める必要があります。名前、化学記号、およびクラス (文字列)。原子量の数値フィールド。各シェルの電子数の整数の 7 つの要素の配列。以下は、ナトリウムの element_t 構造体のコンポーネントです。11 ナトリウム Na アルカリ金属 22.9898 2 8 1 0 0 0 0 I/O 関数 scan_element および print_element を定義してテストします。
コードをコンパイルしてテストすると、次の出力が得られます 11 ÿ sodNa Na 22.989800 2810000%
ご覧のとおり、要素名や要素のクラスはわかりません。
これが私のコードです:
#include <stdio.h>
#include <string.h>
#define ELEM_NAME 15
#define ELEM_CLASS 20
#define ELECT 7
typedef struct
{
int atom_num;
char name[ELEM_NAME];
char symbol[3];
char class_of_metal [ELEM_CLASS];
double atomic_weight;
nt elec[ELECT];
} element_t;
element_t scan_element();
void print_element(element_t my_element);
element_t
scan_element();
int main(void)
{
int i = 0;
element_t my_element;
printf("enter the atomic number:\n");
scanf("%d", &my_element.atom_num);
printf("enter element name:\n");
scanf("%s", &my_element.name[ELEM_NAME]);
printf("enter symbol:\n");
scanf("%s", &my_element.symbol[3]);
printf("enter type of metal:");
scanf("%s", &my_element.class_of_metal[ELEM_CLASS]);
printf("enter atomic weight:");
scanf("%lf", &my_element.atomic_weight);
printf("enter number of electrons in each shell:");
scanf("%d", &my_element.elec[ELECT]);
/* output */
printf("%d %s %s %s %lf %d", my_element.atom_num,
my_element.name,
my_element.symbol,
my_element.class_of_metal,
my_element.atomic_weight,
my_element.elec[ELECT]);
return (0);
}