私はC初心者クラスの割り当てを持っています:1つの変数(値という名前)とリストへのポインタを持つ構造体を作成することになっています。私は5つの値を入力としてプロンプトを表示し、それらをリンクされたリストに格納することになっています。次に、リストを印刷します。私はどのようにリストに入力を格納するのか分かりません。私は5つの値を初期化するプログラムを書くことができました。しかし、私は入力を受け入れてリストに格納する方法を知らない。リンクリストへのユーザ入力の格納 - C
は、ここで私は値を初期化作業プログラムです:
#include <stdio.h>
struct list
{
double value;
struct list *nextVal;
};
int main()
{
struct list v1 = {10};
struct list v2 = {17.97};
struct list v3 = {166};
struct list v4 = {2};
struct list v5 = {387.55};
struct list *first;
first = &v1;
v1.nextVal = &v2;
v2.nextVal = &v3;
v3.nextVal = &v4;
v4.nextVal = &v5;
v5.nextVal = NULL;
printf("All the values are: %.2f, %.2f, %.2f, %.2f, %.2f.",
first->value,v1.nextVal->value,v2.nextVal->value,
v3.nextVal->value,v4.nextVal->value);
return 0;
}
ここで私は、ユーザー入力を取得し、リストにそれを保存しようとしたプログラムです。 (私は5の代わりに2つの値しか持っていません。それを動作させようとすると、それを扱う方が簡単です。)このプログラムをコンパイルすると、エラーは発生しません。私がそれを実行するとき、私は2つの入力値のために適切に促される。しかし、プログラムが出力した出力が両方の値に対して0を書き込んだ場合。私の前提は、実際にどのように行われたのかわからないので、値をリストに間違って格納しているということです。 (私の教科書やオンラインの情報は見つけられません)昨夜、誰かが別の質問にコメントしました。私はブレークポイントを使って、どこに問題があるのかを正確に突き止めなければなりませんでした。それをどうやって行うのか分からない。 (私はそれが非常にシンプルなものだと仮定していますが、どこでも私はオンラインで見て、人々は彼らが何を話しているかを知っているように見えるように説明します - 私はそうではありません - そして正直なところ、それを理解することができます、私はまだその情報をどうしたらいいのか分からないでしょう、私はちょうどリンクされたリストにユーザーの入力を格納する方法に関する情報を見つけることができません。)とにかく、両方の最終値に対して0を返します。
#include <stdio.h>
struct list
{
double value;
struct list *nextVal;
};
int main()
{
double val1,val2;
printf("Please enter a number: ");
scanf("%f",&val1);
printf("Please enter a number: ");
scanf("%f",&val2);
struct list v1 = {val1};
struct list v2 = {val2};
struct list *first;
first = &v1;
v1.nextVal = &v2;
v2.nextVal = NULL;
printf("The two values entered are %.2f and %.2f.",
first->value,v1.nextVal->value);
return 0;
}
ありがとうございます!そして、私は初心者です。とても簡単なものを提案しても、私はそれが何であるかを知りません。ありがとうございました!
関数mallocについて知っていますか? –