質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.74%

  • C++

    3239questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

リスト処理のコードを書いているのですがエラーがいくつも出てしまい困っています。

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 103

sakamotoaaa

score 2

/*Program :list.c */

include <stdio.h>

struct vertex{
int name, key;
struct vertex *next;
} *top;

main()
{
struct vertex *new;
int n, k, ans;

printf("\n");
printf("::::::::: リストへのデータ入力 :::::::::");
printf("\n");

printf(" 各要素を入力してください\n");
top = NULL;
while(1){
printf(" name の値を入力してください: ");
scanf("%d" ,&n);
if(n < 0) break; /* nが負ならばwhile文を終了 */
printf(" key の値を入力してください: ");
scanf("%d" ,&k);
if(find_key(k) ==  1){
printf("   key: %d は既登録です\n", k);
printf("    key が %d のものを削除しますか?\n",k);
printf("    YES: 1 / No: 0 == ");
scanf("%d",&ans);
if (ans == 1) delete_key(k);
else printf("    もう一度nameの値から入力して下さい\n");
}
else{
new = (struct vertex *)malloc(sizeof(struct vertex));
new->name = n;
new->key = k;
new->next = top;
top = new;
}
}
printf("\n");
printf("---------------------------------\n");
printf(" 入力したデータ ([name, key]の順番で");
printf("ヘッドに近いvertexから出力)\n");
while(top !=NULL){
printf("[%d, %d] ",top->name,top->key);
top = top->next;
}
printf("\n");
}
find_key(k)
int k;
{
struct vertex *w;

w = top;
while(w != NULL){
if (k == w->key)
return(1);
w = w->next;
}
}    return(0);

delete_key(k)
int k;
{
struct vertex *w, *prev, *tmp;
if(k == top->key){    /* topはNULLではない */
tmp = top;
top = top->next;
while(w != NULL){
if (k == w->key){
prev->next = w->next;
free(w);
break;
}
prev = w;
w = w->next;
}
}
}
イメージ説明

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • mather

    2018/05/23 10:51

    このままだとコードが大変読みにくいのでMarkdown記法でコードブロックを書きましょう。また、スクリーンショットを見る限りエラーは1件だけで残りは警告です。面食らうかもしれませんがよくエラーコードをみて対処してみましょう。

    キャンセル

  • LouiS0616

    2018/05/23 10:54 編集

    これはまた、随分古いコードですね... それはさておき、画像の背景に個人情報が写ってしまっています。エラーおよびソースコードはテキストとして貼り付けるようにしてください。

    キャンセル

  • キャンセル

回答 1

0

エラーの内容は、find_key関数の外にreturn(0);を記載してしまっていることが原因と考えられます。

こういった文法ミスは、モダンなエディタ(VS CodeやAtomなど)でオートインデントしていれば大概見つけられます。
いかがでしょうか。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.74%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 受付中

    C言語 動的メモリ確保とリスト(構造体)を利用したプログラム

    現在このような結果で表示されるプログラムの作成を試みています。 >0p↲ >p >1d↲ >pd >0i↲ >ipd >2a↲ >ipad というように、格納位置

  • 解決済

    単方向連結リストを双方向連結リストに変更

    こちらのソースコードは単方向連結リストです。このソースコードを双方向連結リストに拡張してノードを末尾に挿入する方法が分かりません。どなたか説明込みで教えていただけませんか。 /*

  • 解決済

    C言語で「 -> 」の意味がわかりません

    C言語のプログラムで以下のようなプログラムを見たのですが、「a -> next」の「 -> 」が何を指しているのかがわかりませんでした。 検索もしてみたのですが、"->"でヒットし

  • 解決済

    【C言語】スタックをリストで実現するプログラム

    毎度お世話になっております。 高橋麻奈さんの「やさしいC アルゴリズム」をみて勉強しているのですが、リストを使ったスタックのコードで、がコンパイルエラーになってしまいました。 コ

  • 解決済

    構造体のリストについて

    いつもお世話になっています。C言語初心者でただいま勉強中です。構造体について質問させていただきます。 typedef struct{ int ID; char na

  • 解決済

    オーバーフローします...

    前提・実現したいこと アルファベット順に表示したいです どうやったらアルファベット順に表示できますか? もし,このままでいいならオーバーフローを直して欲しいです... アル

  • 解決済

    線形リストでの単語の並べ替えがうまくいきません。

    前提・実現したいこと 単語の線形リストを作成し、同じ単語には1つのstruct word構造体を用い、単語の出現回数を数える。そして、出現単語を辞書順に並べ替える。 合っているかは

  • 解決済

    char型の配列変数にchar型の変数を代入したい

    使用言語 C 環境 Visual Studio 2017 初めての質問です。 独学でプログラミングを始めたのですがわからないところがあり困っています。 char型の配列変数の使い方

同じタグがついた質問を見る

  • C++

    3239questions

    C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

  • トップ
  • C++に関する質問
  • リスト処理のコードを書いているのですがエラーがいくつも出てしまい困っています。