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

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

ただいまの
回答率

90.50%

  • C

    3696questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Segmentation Fault (core dumped)

解決済

回答 2

投稿

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

Fuji265

score 5

include <stdio.h>

define row 5

define column 5

int main() {
int a;
int i,j;
int mat[row][column] = {{1,1,1,1,1},{0,1,1,1,1},{0,0,1,1,1},{0,0,0,1,1,},{0,0,0,0,1}};

printf("反転する方向を選んでください(縦:0、横:1)");
scanf("%d",&a);
if(a == 0) {
for(i = 4; i >= 0; i--) {
for(j = 0; j < column; i++) {
printf("%d ",mat[i][j]);
}
printf("\n");
}
}

if(a == 1) {
for(i = 4; i >= 0; i--) {
for(j = 4; j >= 0; j--) {
printf("%d",mat[j][i]);
}
printf("\n");
}
}
else {
printf("不適切な数値が入力されました");
}
}

これを実行するとSegmentation Fault (core dumped)と出るのですがどこを直せばいいですか?

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

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

  • kazto

    2018/07/14 17:30

    コンパイル環境はどこでしょうか。

    キャンセル

回答 2

check解決した方法

0

for(j = 0; j < column; i++)

がiとjでした

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

0

Segmentation Faultが出たときは配列範囲外にアクセスしていないか重点的に確かめましょう。

for(i = 4; i >= 0; i--) {
    for(j = 0; j < column; i++) {
        ...
    }
    ...
}

内側のループの更新文、i++じゃなくてj++にするべきですね。

コードの書き方について

teratailには、コードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押してください。
C

投稿

編集

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2018/07/14 17:32

    ところで。
    全く同じ課題に見えますが、お二人は同じ講義を受けているのでしょうか。
    https://teratail.com/questions/135949

    キャンセル

  • 2018/07/14 17:39

    しかし、いまどき、初心者にCの講義って、難易度高杉だとおもうんだが。。

    キャンセル

  • 2018/07/14 17:47

    未だに結構あるみたいですよ。私の大学もそうでしたし。

    聞いた中で酷い話だと、『ポインタと構造体は難しいから触れない』って方針の講義もあるとか。
    それこそもうCをやる意味が全然ないですよね。

    キャンセル

  • 2018/07/14 17:53

    う、ううむ。。いまどきならC#をやればいいのに、とおもうんだけどねー

    キャンセル

  • 2018/07/14 18:07

    悲しいことにCしか知らない (実際にはCもろくに書けない) 教員がいるみたいです。
    彼らはC以外を全く知らないので、全てCで解決できると思っているし、実際にしようとするのです。

    ---
    友人が卒研で微分方程式の解の可視化をしていたのですが、それにすらCを使っていました。
    既存のライブラリもあるだろうに、積分もfor文でぐるぐる回して自前で計算していて。

    特に酷かったのが、数式の各パラメータを調整する際、毎回手で何か所も書き直してコンパイルしているのです。
    設定ファイルを用意しろと。せめてコマンドライン引数を使えと。どんなに説得しても無駄でした。

    これ、教授が用意したコードなんだそうです。

    キャンセル

  • 2018/07/14 18:10 編集

    『日本刀を使って料理するのをやめろ』って、何度も忠告したんですけどね。馬耳東風でした。教授の言うことだから間違いないんだそうです。虚しい。

    キャンセル

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

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

関連した質問

  • 解決済

    iOS アプリ開発でアプリをシミュレーターで起動する時に、画面が止まる

    iOSアプリ開発でアプリをシミュレーターで起動する時に、 コンパイルは通ったのですが、画面が止まってしまいました。 ログエリアには何も出力されなかったので、デバイスのコンソールを見

  • 解決済

    C++における二次元配列について

    配列について質問です。 二次元配列において、以下のプログラムでは100x100の配列で実行すると動きます。 この配列を1000x1000にすると、プログラムが止まってしまいます。

  • 解決済

    c言語 while文で直角三角形を*で描く

    前提・実現したいことc言語のwhile文(for文はダメ)で*アスタリスクで5行の直角三角形を表示したいです。使わないといけないのが#define ROWS 5 が必須です(学校の

  • 解決済

    データを整理する際の二次元配列

    2つの変数に対応するデータがある時、二次元の配列にしたいのですが、2つの変数の関数として出る値ではないため、どのようにしたらいいか困っております。 例として、 x     y   

  • 解決済

    2次元配列のポインタ関数

    大学でC言語を勉強し、プログラミング歴1年未満の初心者です。 以下のコードのmain関数内の行列の掛け算を行うような関数mat_mulを作りたいのですが、うまくいかないので問題点

  • 解決済

    Cで行列のランク計算のプログラムを作っています。

    前提・実現したいこと Cで行列のランク計算をするプログラムを作っています。 プログラムの流れは、 1.行列の行数(lnum)、列数(cnum)を入力 2.行列の各成分を

  • 解決済

    C言語でのSegmentation faultエラーについて

    以下のコードを実行すると、以下のような結果になりました。 Segmentation faultというエラーが何故出力されたのかを教えていただきたいです。 #include <s

  • 解決済

    C言語 segmentation fault

    C言語の行列の計算です. N*Nの正方行列とN*1のベクトルの掛け算で動的確保の勉強です. Nをとりあえずdefineで定義しているのですが,N=2,4,5あたりは問題なく作動する

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

  • C

    3696questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。