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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C

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

Q&A

解決済

2回答

438閲覧

Segmentation Fault (core dumped)

Fuji265

総合スコア13

C

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

0グッド

0クリップ

投稿2018/07/14 08:18

#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)と出るのですがどこを直せばいいですか?

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kazto

2018/07/14 08:30

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

回答2

0

自己解決

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

がiとjでした

投稿2018/07/14 09:10

Fuji265

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

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

C

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

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

コードの書き方について

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

投稿2018/07/14 08:27

編集2018/07/14 08:30
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2018/07/14 08:39

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

2018/07/14 08:47

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

2018/07/14 08:53

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

2018/07/14 09:07

悲しいことにCしか知らない (実際にはCもろくに書けない) 教員がいるみたいです。 彼らはC以外を全く知らないので、全てCで解決できると思っているし、実際にしようとするのです。 --- 友人が卒研で微分方程式の解の可視化をしていたのですが、それにすらCを使っていました。 既存のライブラリもあるだろうに、積分もfor文でぐるぐる回して自前で計算していて。 特に酷かったのが、数式の各パラメータを調整する際、毎回手で何か所も書き直してコンパイルしているのです。 設定ファイルを用意しろと。せめてコマンドライン引数を使えと。どんなに説得しても無駄でした。 これ、教授が用意したコードなんだそうです。
LouiS0616

2018/07/14 09:18 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問