構造体の定義に問題があります。構文は理解できますが、正しく使用してプログラムを作成することはできません。私の割り当てはelement_t
、周期表の要素の1つを表す構造タイプを定義することです。コンポーネントには、原子番号、名前、記号、クラス、重量、および各シェルの電子数の整数の7要素配列を含める必要があります。以下は、element_t
ナトリウムの構造の構成要素です。
11 Sodium Na alkali_metal 22.9898 2 8 1 0 0 0 0
scan_element
I/O機能とを定義してテストしprint_element
ます。これが私のコードです...しかし、うまくいきません。element_tを初期化していないとコンパイラが言う理由がわかりません。前もって感謝します。
***次のコードで終わり、適切なループと&記号も追加されましたが、以下には示されておらず、すべてが正常に機能しました。私のクラスのパワーポイントスライドが、ループの代わりに{2 8 1 0 000}を使用してint配列にデータを入力する方法を知りたいと思いました。私が使用している本もループメソッドを使用していますが、{}の方法を試してみたかったのです。再度、感謝します。
#include <stdio.h>
#include <string.h>
typedef struct {
int atomic_num;
char* element_name; revised: char element_name[25];
char* element_symbol; revised: element_symbol[2];
char* element_class; revised: char element_class[25];
double atomic_weight;
int electrons[7];
} element_t;
int scan_element(); revised: element_t scan_element();
void print_element(element_t my_element);
int scan_element() {
element_t my_element;
printf("Enter Atomic Number> ");
scanf("%d", my_element.atomic_num);
printf("Enter Element Name> ");
scanf("%s", my_element.element_name);
printf("Enter Element Symbol> ");
scanf("%s", my_element.element_symbol);
printf("Enter Element Class> ");
scanf("%s", my_element.element_class);
printf("Enter Atomic Weight> ");
scanf("%lf", my_element.atomic_weight);
printf("Enter Electons in each shell> ");
scanf("%d", my_element.electrons);
print_element(my_element);
return 0;
}
void print_element(element_t my_element) {
printf("%d %s %s %s %lf %d \n",my_element.atomic_num,my_element.element_name, my_element.element_symbol,my_element.element_class,my_element.atomic_weight,&my_element.electrons);
}
int main()
{
scan_element(); revised: print_element(scan_element());
return 0;
}