検索結果 5 件

by hanoha1631
2年前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストにおける重複要素の削除方法について
返信数: 2
閲覧数: 4176

連結リストにおける重複要素の削除方法について

ソートされていない連結リストから重複する要素を削除するコードを自分なりに書いてみましたがコンパイルを突破できません。ミスの指摘をお願いしたいです。 #include<stdio.h> typedef struct data{ int x; struct data *next; }DATA DATA *current=NULL,*current2=NULL; void delete(DATA*); DATA d,d1,d2,d3,d4; int count=0; current=d; current2=d; d.next=&d1; d1.next=&d2; d2.next=&d3; d3.nex...
by hanoha1631
2年前
フォーラム: C言語何でも質問掲示板
トピック: 文字列比較のアルゴリズムについて
返信数: 4
閲覧数: 6239

文字列比較のアルゴリズムについて

c言語 以下のコードについて質問です。///////////////から始まるループ部分のアルゴリズムについて誤りがあるようなのですがこれ以上間違いを見つけることができません。 指摘してくれると助かります... //文字列を二つ読み込むaiueoとiueoa、aiueoとueoaiだったら一致と出力、aiueoとiueoのように切れていたりしたら不一致と出力する //アルゴリズム概要 /*二つの文字列を読み込む この時点で文字数が違うなら不一致 片方の文字列について、先頭を最後尾の後ろに回す、空いた先頭を詰めるように全体前進 これともう片方の文字列を比較、真なら一致だめなら全てのループを越え不...
by hanoha1631
2年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 7083

Re: Segmentation fault (core dumped)の解決方法

#include<stdio.h> #include<stdlib.h> int main(){ char *str; int i,j,count=0; str=malloc(1024000); scanf("%s",str); for(i=0;*(str+i)!='\0';i++){ for(j=0;*(str+j)!='\0';j++)if(*(str+i)==*(str+j))count++; if(count>=2){ printf("重複あり\n"); goto a; } count=0; } printf("重複なし\n"); a: return 0; } count=0;の処理を...
by hanoha1631
2年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 7083

Re: Segmentation fault (core dumped)の解決方法

回答ありがとうございます。不定な場所への入力は総じてSegmentation fault (core dumped)なんですね。エラー処理の件も心がけるようにします。
また重ねての質問失礼します。不定回避によってこのエラーはでなくなりましたが1文字の入力以外は全て重複ありと表示されてしまいます。
おそらくアルゴリズム自体に問題があると思うのですがそこを直せばいいのか分かりません。よろしければ教えていただけると嬉しいです。
$ ./a.out
w
重複なし

$ ./a.out
a
重複なし

$ ./a.out
aq
重複あり

$ ./a.out
aa
重複あり
by hanoha1631
2年前
フォーラム: C言語何でも質問掲示板
トピック: Segmentation fault (core dumped)の解決方法
返信数: 4
閲覧数: 7083

Segmentation fault (core dumped)の解決方法

以下は入力された文字列におい重複する文字はないか判定するコードです。コンパイルは通るのですが実行時入力後にSegmentation fault (core dumped)と表示され正しく実行されません。これはどこを誤ってしまっているのですか? 回答よろしくお願いします。 #include<stdio.h> int main(){ char *str; int i,j,count=0; scanf("%s",str); for(i=0;*(str+i)!='\0';i++){ for(j=0;*(str+j)!='\0';j++)if(*(str+i)==*(str+j))count++; if...

詳細検索ページへ移動する