検索結果 38 件

by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リスト構造の任意の位置に要素を挿入するプログラム
返信数: 2
閲覧数: 2326

リスト構造の任意の位置に要素を挿入するプログラム

あるリストと値nと挿入する要素を受け取ってリストのn番目にそれを挿入する関数を作ったのですが、これは正しく動くのですが struct node *list_add(struct node *list ,long n,long data){ struct node* head = list; long i; node *add = (node *)malloc(sizeof(node)); add->data = data; if(n == 1){ add->next = list; list = add; head = add; }else{ for(i = 0; i < n-2; i++){...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストを使ってキュー構造を作るプログラム
返信数: 1
閲覧数: 3506

連結リストを使ってキュー構造を作るプログラム

enqueue(int i)はキューの末尾にiをもつ要素を挿入する関数で、dequeue()は先頭の要素を削除する関数、print()はリスト全てを表示させる関数です。 mainの操作をして結果を表示させたいのですが、コンパイルして実行するとセグメンテーション違反と出てしまいます。どこがおかしいのか教えて下さい。 #include <stdio.h> #include<stdlib.h> typedef struct cell{ int element; struct cell *next; }cell; cell *queue = NULL; void enqueue(int i){ cel...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストに名前、身長のデータを入力して、ENDで始まる文字列を入力したら終了するプログラム
返信数: 2
閲覧数: 2852

リストに名前、身長のデータを入力して、ENDで始まる文字列を入力したら終了するプログラム

キーボードから名前,年を入力して,それまでに入力した氏名と年齢を年齢の小さい順に表示し,次の入力を促す.ENDで始まる文字を入力すると終了する. というプログラムを作りたいのですが、並べ替えて表示するのはできたのですが、ENDを入力しても終了させることができません。 何が間違っているのか教えてください。 #include<stdio.h> #include<stdlib.h> #include<string.h> struct list{ char name[20]; int age; struct list *next; }; int main(void){ struct list *hea...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを使って入力順に値を格納するプログラム
返信数: 8
閲覧数: 3820

Re: リストを使って入力順に値を格納するプログラム

やっと理解できました。
わざわざ絵まで書いてもらってありがとうございます。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを使って入力順に値を格納するプログラム
返信数: 8
閲覧数: 3820

Re: リストを使って入力順に値を格納するプログラム

1行目と2行目でcurrentとprevにheadを代入しているのでcurrentとprevには毎ループごとにNULLが入るのですか?

コード:

current = head;
    prev = head;
 
  while( current!=NULL){
    prev = current;
    current = current->next;
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを使って入力順に値を格納するプログラム
返信数: 8
閲覧数: 3820

Re: リストを使って入力順に値を格納するプログラム

勘違いしていました。
headの次に1番目に入力したデータ、その次に2番目に入力したデータ・・・といった風に格納されていきます。
プログラムで下の部分が何をしているのかがわかりません

コード:

current = head;
    prev = head;
 
  while( current!=NULL){
    prev = current;
    current = current->next;
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを使って入力順に値を格納するプログラム
返信数: 8
閲覧数: 3820

Re: リストを使って入力順に値を格納するプログラム

すいません先頭ではなくheadの次に入力順に格納されていきます
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: リストを使って入力順に値を格納するプログラム
返信数: 8
閲覧数: 3820

リストを使って入力順に値を格納するプログラム

リストを使って新しく入力された値を先頭に格納するプログラムなのですが、どのような仕組みで動いているのか全くわかりません。 どういう仕組みで動いているのか詳しく教えてくれるとありがたいです。 #include<stdio.h> #include<stdlib.h> #include<string.h> struct list{ char name[20]; int age; struct list *next; }; int main(void){ struct list *head; struct list *dummy, *new, *prev, *current; dummy = (str...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 入力された値と、構造体のある1つのメンバの値を比べ、それに最も近いものを表示するプログラム
返信数: 7
閲覧数: 3133

Re: 入力された値と、構造体のある1つのメンバの値を比べ、それに最も近いものを表示するプログラム

条件文に出力をする関数を使っていたのがまずかったようなので、出力をする関数と、値を返す関数とを別々にして条件文に値だけを返す関数を使ったところうまくいきました。
みけCATさん、boxさん、Zackさんありがとうございました。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 入力された値と、構造体のある1つのメンバの値を比べ、それに最も近いものを表示するプログラム
返信数: 7
閲覧数: 3133

入力された値と、構造体のある1つのメンバの値を比べ、それに最も近いものを表示するプログラム

氏名,年齢[歳],身長[cm](整数),体重[kg](整数)の4つのデータをメンバにして,構造体keisokuを宣言し, キーボードから入力された身長の値に一番近い人のデータを出力するというプログラムです。 ファイルから構造体に値を入力します。そのファイルの中身は 25 佐藤 41 189 97 鈴木 22 178 61 高橋 47 178 80 田中 14 180 80 渡辺 33 192 94 伊藤 12 150 51 山本 55 185 98 中村 17 170 88 小林 35 187 77 加藤 49 179 91 吉田 36 182 61 山田 44 184 71 佐々木 15 1...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で配列の添え字と要素を交換するプログラム
返信数: 7
閲覧数: 3039

Re: c言語で配列の添え字と要素を交換するプログラム

すいません勘違いをしていました 
何も問題ありません、解決しましたありがとうございました
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で配列の添え字と要素を交換するプログラム
返信数: 7
閲覧数: 3039

Re: c言語で配列の添え字と要素を交換するプログラム

zackさん
それだと上の例で最初にa[0] = 3がa[3] = 0になり元のa[3] = 2という情報が失われる気がしますが
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: c言語で配列の添え字と要素を交換するプログラム
返信数: 7
閲覧数: 3039

c言語で配列の添え字と要素を交換するプログラム

a[0]=3
a[1]=0
a[2]=1
a[3]=2
a[4]=4
というような配列の要素が重複なく、0から配列の要素数の範囲になっている配列aを
a[3]=0
a[0]=1
a[1]=2
a[2]=3
a[4]=4
といった風に添え字と要素を交換するプログラムを書きたいのですが、どのように書けばいいのか見当がつきません
方針を教えてくれると助かります
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

Re: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

解決しました。
ファイルの入出力の書式について理解していませんでした。
回答してくださった
みけCATさん、かずまさん、boxさんありがとうございました。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

Re: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

すいません。ファイルの入出力についてよくわかっていないので書式の重要性を知りませんでした ファイルの中身は 25 佐藤 41 189 97 鈴木 22 178 61 高橋 47 178 80 田中 14 180 80 渡辺 33 192 94 伊藤 12 150 51 山本 55 185 98 中村 17 170 88 小林 35 187 77 加藤 49 179 91 吉田 36 182 61 山田 44 184 71 佐々木 15 151 81 山口 50 188 93 松本 17 178 68 井上 13 144 81 斎藤 17 163 55 木村 23 175 105 林 29 16...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

Re: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

ファイルの中身は 25 佐藤 41 180 71 鈴木 15 174 65 ・・・ といったようなものになっています 結果は ファイル名を入力して下さい list.txt 10代の平均身長は-214748364.8,平均体重は-214748364.8です. 20代の平均身長は-214748364.8,平均体重は-214748364.8です. 30代の平均身長は-214748364.8,平均体重は-214748364.8です. 40代の平均身長は-214748364.8,平均体重は-214748364.8です. 50代の平均身長は-214748364.8,平均体重は-214748364.8です....
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

Re: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

ファイルの先頭は25という数字が入っています 書き忘れていました 25行目の書式を直したのですが、うまくいきませんでした。 構造体に直接値を代入して計算してみたところ結果は正しいものとなっていたので計算部分は合っていて、ファイルの入力の部分が間違っていると思われます。 どこがおかしいのでしょうか・・ #include<stdio.h> #include<stdlib.h> typedef struct { char name[10]; int age; int stature; int weight; } keisoku; keisoku a[25]; int main(void){ FILE...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

Re: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

filenameをファイル名とするファイルを入力するプログラムでした書き間違えてましたすいません。 言われた通りなおしてみたのですがうまく動いてくれませんでした どこがおかしいのでしょうか、 #include<stdio.h> #include<stdlib.h> typedef struct { char name[10]; int age; int stature; int weight; } keisoku; keisoku a[25]; int main(void){ FILE *fp; char filename[10]; printf("ファイル名を入力して下さい\n"); sca...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム
返信数: 11
閲覧数: 6542

構造体を作り、ファイルからデータを入力してその値の平均値を求めるプログラム

氏名,年齢,身長(整数),体重(整数)の4つのデータをメンバにして,構造体keisokuを宣言しキーボードから入力された文字列file[]をファイル名とするファイルからデータを入力して年代ごとの平均身長と平均体重をそれぞれ小数点以下第1位(第2位以下切り捨て)まで求めて表示するプログラムを作ったのですが、結果が正しく出力されません。ファイルの中身は {"佐藤", 41, 189, 97}, {"鈴木", 22, 178, 61}, {"高橋", 47, 178, 80}, {"田中", 14, 180, 80}, {"渡辺", 33, 192, 94}, {"伊藤", 12, 150, 51}...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 特定の文字列から始まる文字列を入力したときに、文字列の入力を終了するプログラム
返信数: 2
閲覧数: 1843

特定の文字列から始まる文字列を入力したときに、文字列の入力を終了するプログラム

最大10行の2次元配列に文字列を入力していくプログラムで、ENDという文字列から始まる文字列を入力したら入力を終了するプログラムを作ったのですが、ENDから始まる文字列を入力しても続行されてしまいます。 どこが間違っているのか教えてください #include <stdio.h> int main(void) { char a[10][30]; int i = 0; while(((a[i][0] != 'E'|| a[i][1] != 'N')|| a[i][2] != 'D')&& i <= 9){ scanf("%s", a[i]); i++; } int k; for(k = 0; k<...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 任意のサイズの配列を入力してその配列の中身の最小公倍数を求めるプログラム
返信数: 3
閲覧数: 1971

Re: 任意のサイズの配列を入力してその配列の中身の最小公倍数を求めるプログラム

みけCATさん

ありがとうございます、解決しました。
rの初期化を忘れていました。
あと最小公倍数というのはこちらの書き間違いですすいません。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 任意のサイズの配列を入力してその配列の中身の最小公倍数を求めるプログラム
返信数: 3
閲覧数: 1971

任意のサイズの配列を入力してその配列の中身の最小公倍数を求めるプログラム

キーボードから入力された整数をaをサイズとする中身がすべて自然数の配列を入力して、その最小公倍数を求めるプログラムを作ったのですが、配列のサイズが3つ以上だと結果がおかしなことになってしまいます。 ユークリッドの互除法を使って配列の先頭の2つの自然数の最小公倍数を求めて、次に3つ目の配列の要素と前に求めた最小公倍数との最小公倍数を求めて・・・と繰り返して全体の最小公倍数を求めようというプログラムです。 プログラムのどこが間違っているのか教えてください。 #include<stdio.h> #include<stdlib.h> int euclid(int a, int b){ int r; i...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム
返信数: 12
閲覧数: 4675

Re: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム

単純に入力終わりに^Zを入力しなければならないことをしらなかったのが原因でした。
みけCAT様、ISLe()様 
入力についてのコマンドプロンプトの仕様を教えていただきありがとうございました。
超初級者様
プログラムの例を書いてくださりありがとうございました。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム
返信数: 12
閲覧数: 4675

Re: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム

上の結果と同じ結果を、終了させるコマンドなしで表示させる、上記のものとは別のプログラムを作ることができるかという意味です。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム
返信数: 12
閲覧数: 4675

Re: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム

Ctrl+Zを使ったらコンパイルできました。
ありがとうございます。
あと質問なんですがこのようなループを終了させるコマンドなしでこの上記のプログラムの結果を表示させることは可能ですか?
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム
返信数: 12
閲覧数: 4675

Re: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム

コンパイルは学習用C言語開発環境で行いました。
入力は何回もAAA等同じ文字の連続やadsaha等ランダムなものまで試してみましたがいずれも結果が返ってきませんでした。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: 複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム
返信数: 12
閲覧数: 4675

複数の文字列の入力から、その文字列に含まれるアルファベットの合計を返すプログラム

複数のアルファベット(大文字と小文字)からなる文字列を任意の数だけ入力し、その複数の文字列に含まれるアルファベットの使われた回数の合計をアルファベットの種類別ごとに表示するプログラムを作ったのですが、結果が帰ってきません。どこが間違っているのか教えてくれます¥せんか? 出したい結果は  a: 2 b: 3 c: 5 ・ ・ ・ z: 4 といったような感じです。 #include<stdio.h> int count(char s[], char ch){// 文字列に含まれる文字chの数を返す int i; int a = 0; for(i = 0; s[i]!= '\0'; i++){ i...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?
返信数: 5
閲覧数: 8804

Re: scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?

ISLe()様
ありがとうございました。
scanfに戻り値があることを知りませんでした。
書いてくれたプログラムの通りにやったら無事解決しました。
みけCAT様
具体的なプログラムまで書いてくださりありがとうございます。
yoko様
回答ありがとうございました。
今後の参考になりました。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?
返信数: 5
閲覧数: 8804

Re: scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?

すいません指定し忘れてましたがC言語についての質問です。
回答ありがとうございます。
でも今回知りたいのは純粋に文字列だけ入力して処理させたいのです。
ループを終了させる条件のためno特定の値を入力するといったような操作はできない場合どうしたらいいのでしょうか?
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?
返信数: 5
閲覧数: 8804

scanfで複数(具体的な数は不明)の文字列を入力し、処理するプログラムはどう作ればよいのですか?

入力する側が任意の数だけ文字列を入力し、その文字列一つ一つについて関数に入れて処理をするプログラムを作りたいのですが、scanfで入力を複数、任意の数だけ受け付けるプログラムの作り方がわかりません。
入力の際、何個の入力をするかの具体的な数の入力を受け付けない場合、どのような構成でプログラムを書けばいいのでしょうか?
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: <解決しました>全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプログラム
返信数: 8
閲覧数: 4749

Re: <解決しました>全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプ

へにっくす様 ありがとうございました。 配列を受け取る関数を作るとき、1次元目の要素数は省略できるけれどそれ以降は省略できないことを知らなかったので起きた間違いでした。 修正してもらったとおり、show_data以降の引数がstate[][]と2次元目に具体的な数が入っていなかったので、state[MATRIX_SIZE][MATRIX_SIZE]とすることで解決しました。 最後の入力はこちら側の間違いでした。 box様 すいません。 次からはより具体的にわかりやすく質問します。 みけCAT様、naohiro19様 すいません 利用の際のルールをよく把握していませんでした。以後気を付けます。 ...
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: <解決しました>全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプログラム
返信数: 8
閲覧数: 4749

Re: 全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプログラムが動きま

解決しました。ありがとうございました。
二次元配列の関数への渡し方がよくわかっていなかったのが原因でした。
あと最後の入力は6じゃなく8でした。
by po_po
8年前
フォーラム: C言語何でも質問掲示板
トピック: <解決しました>全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプログラム
返信数: 8
閲覧数: 4749

<解決しました>全ての要素が1である10×10行列の要素をある条件に従って0にし、要素の合計を表示するc言語のプログラム

入力は、初めにいくつの命令があるか、次に命令の種類、その次に行列の要素を0にする範囲を指定しています 入力が1,1,3,2,6のときは95 2,1,3,2,6,1,3,4,7なら94 4,1,3,2,6,2,6,3,8,1,8,2,6,2,2,3,6なら82を表示すれば正しいのですが、違った値が表示されます。 プログラムのどこが間違っているのか教えてください。 #include <stdio.h> // 配列にサイズを定義する。 #define MATRIX_SIZE (10) void show_data(int state[MATRIX_SIZE][MATRIX_SIZE]) { int ...

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