検索結果 23 件
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: リストの動き
- 返信数: 6
- 閲覧数: 3977
Re: リストの動き
早急な返信ありがとうございます。 返信の日本語足らずな部分大変失礼いたしました。 すなわちlist_find関数内のp->val == valという条件をp->next->val == valにすればいいでしょう。 とても分かりやすく、すぐに理解できました。 list_node_t* list_find(list_node_t *head_p, int val) { list_node_t *p; for( p = head_p; p->next != NULL; p = p->next ){ if(p->next->val == val){ return p; } } return NULL...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: リストの動き
- 返信数: 6
- 閲覧数: 3977
Re: リストの動き
ご指摘ありがとうございます。 list_find関数も「その節点のポインタ」ではなく「直後が探したい値である節点のポインタ」を返す どうすれば、直後が接点のポインタに返せるのでしょうか? 以下プログラム #include <stdio.h> #include <stdlib.h> typedef struct list_node_s { int val; struct list_node_s *next; } list_node_t; static list_node_t* insert_node(list_node_t *p, int val); static void remove_nod...
- 8年前
- フォーラム: C言語何でも質問掲示板
- トピック: リストの動き
- 返信数: 6
- 閲覧数: 3977
リストの動き
数値を入力し、その数値がリストの要素にあるかないか検索する。 要素としてある場合、数値はリストに代入せず、またリストにあるその数値も削除する。 要素としてない時、リストに代入する。 と言うプログラムを書きたいのだが、 リストの動きがわからず、申し訳ないのですがご教授お願いします。 求めたい実行結果 input = 3 [ 3 ] input = 5 [ 5 3 ] input = 3 [ 5 ] input = 4 [ 4 5 ] input = 4 [ 5 ] input = ^d 自分のプログラム実行結果 input = 3 [ 3 ] input = 5 [ 5 3 ] input ...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体を用いて表示させる
- 返信数: 7
- 閲覧数: 5183
Re: 構造体を用いて表示させる
確かにいい答えであると思います。バッファオーバーランも考慮したscanfの書き方を知りませんでしたので、感嘆してました。 '\n'を無視するという答えがわからないではなく、無視するまでの過程の書き方が思いつかないの間違いです、失礼いたしました。 ------------------------------------------------------------------------------------------------- T11_3.c:40:107: warning: format specifies type 'char *' but the argument has ty...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体を用いて表示させる
- 返信数: 7
- 閲覧数: 5183
Re: 構造体を用いて表示させる
返信ありがとうございます!全角になってたんですね、エラーメッセージが分からなく気づきませんでした!助かりました!! "2015\n28\n1\n6\nwed\n" が入ります。 最初の scanf("%d", &today.year); は "2015" を読み込みます。 次の scanf("%d", &today.hyear); は "\n28" を読み込みます。 次の scanf("%d", &today.month); は "\n1" を読み込みます。 次の scanf("%d", &today.day); は "\n6" を読み込みます。 次の c = getchar(); で c に...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体を用いて表示させる
- 返信数: 7
- 閲覧数: 5183
構造体を用いて表示させる
入力したものを構造体に格納して、それをまとめて出力するというものなのですが、うまくできません。。。 どうかご教授願えませんか? #include<stdio.h> #include<string.h> typedef struct date_t{ int year; int hyear; int month; int day; char day_of_week[20]; } today; void print_day2( struct date_t today ); int main( void ) { struct date_t today; int i; char c, d[20]; pr...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 入力したものを反転させて出力
- 返信数: 3
- 閲覧数: 2027
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 入力したものを反転させて出力
- 返信数: 3
- 閲覧数: 2027
入力したものを反転させて出力
質問が続いてしまいすみません. タイトル通りのこともしたいのですが,ループ処理がうまくいかないのですがどこが間違っているのでしょうか? #include<stdio.h> #include<string.h> #define N 100 void str_copy_reverse( char dst[], char src[], int size); void get_line( char s[], int size ); int main( void ) { char s_in[ N ]; char s_out[ N ]; int len; printf( "入力せよ>>" ); get_l...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列を連結させたい
- 返信数: 3
- 閲覧数: 2497
Re: 文字列を連結させたい
ご指摘ありがとうございます。 確かに99回ループさせる処理に意味はないですね。(苦笑 int main( void ) { char s_in[ N ]; char s_out[ ( N+1 )*REPEAT ]; int i, len; printf( "入力せよ>>" ); get_line( s_in, N ); printf( "%s\n", s_in ); strcpy( s_out, s_in ); for( i = 1; i < REPEAT; i++ ){ strcat( s_out, " " ); strcat( s_out, s_in ); } len = strlen( ...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列を連結させたい
- 返信数: 3
- 閲覧数: 2497
文字列を連結させたい
文字列の入力したものをスペースの空白を用いて入力した文字を複写して,それを5回繰り返したものを出力したいのですが,わからなくなってしまいました. どうかご教授よろしくお願いします. #include<stdio.h> #include<string.h> #define N 100 void get_line( char s[], int size ); void str_cat( char s[], char t[] ); int main( void ) { char s_in[ N ]; char s_out[ N+N ]; int i, len; printf( "入力せよ>>" );...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字の途中の数字を表示させたい
- 返信数: 9
- 閲覧数: 4487
Re: 文字の途中の数字を表示させたい
くどい書き方かもしれませんが,上手く作用しました! ご教授ありがとうございます. #include<stdio.h> #include<ctype.h> int str_length( char s[] ); int str_num_count( char s[] ); void get_line( char str[] , int size ); int main( void ) { char length[ 100 ]; char a; int i, j; printf( " 入力せよ>>" ); get_line( length, 100 ); i = str_length( lengt...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字の途中の数字を表示させたい
- 返信数: 9
- 閲覧数: 4487
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字の途中の数字を表示させたい
- 返信数: 9
- 閲覧数: 4487
Re: 文字の途中の数字を表示させたい
入力は半角英数字だけで良いです.英字の次に数字が来るとして,それを表示させるにはどのように書き換えれば良いでしょうか?
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字の途中の数字を表示させたい
- 返信数: 9
- 閲覧数: 4487
文字の途中の数字を表示させたい
入力する文字の長さと数字の数を数えるプログラムを書いているのですが,上手くいきません. 例の通りになれば成功なのですが、、、 123 → 長さ 3,数字 3 個 prog → 長さ 4,数字 0 個 December 24th is Christmas Eve. → 長さ 31,数字 2個 #include<stdio.h> #include<ctype.h> int str_length( char s[] ); int str_num_count( char s[] ); void get_line( char str[] , int size ); int main( void ) {...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数に引数について
- 返信数: 11
- 閲覧数: 6134
Re: 関数に引数について
boxさん、みけCATさん、かずまさん、ご教授ありがとうございました! 新たに関数を用いて参照するというのは思いつきませんでした!! 大変役に立ちました!! #include <stdio.h> void get_line(char buff[], int size); void str_lcopy(char dst[], char src[]); char turn( char c ); int main (void) { char src[128], dst[128]; printf("Key in a string>> "); get_line(src, 128); str_lcopy(...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列を表示させたい!
- 返信数: 4
- 閲覧数: 3540
Re: 配列を表示させたい!
みけCATさんとかずまさんの意見を参考にしつつ訂正してみました. #include<stdio.h> #define NUM_POINT 100 int main( void ) { int i, j, k; int point[ NUM_POINT ] = { 1, 4, 9, 19, 8, 10, 10, 9, 15, 10, 2, 19, 20, 4, 20, 7, 3, 15, 16, 16, 17, 14, 12, 9, 2, 5, 5, 13, 1, 19, 5, 0, 3, 12, 17, 9, 1, 7, 16, 16, 15, 18, 12, 14, 20, 10, 20, ...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数に引数について
- 返信数: 11
- 閲覧数: 6134
Re: 関数に引数について
あえて関数 tolower( ) を使わないでするとするとどうしたらよいでしょうか void get_line(char buff[], int size) { int i, c; for (i=0; i<size-1; i++) { c = getchar(); if (c == EOF || c == '\n') break; buff[i] = c; } buff[i] = '\0'; } void str_lcopy(char dst[], char src[]) { int i; char a; for( i = 0; src[ i ] != '\0'; i++ ) { if( ds...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数に引数について
- 返信数: 11
- 閲覧数: 6134
関数に引数について
入力するのは,大文字を含めた December 25th Merry Christmas.という文なのです. これを関数を用いて大文字の部分のみ小文字に変換したいのですが,上手く引数をかけないのですが,どのように書けばよいのでしょうか? #include <stdio.h> void get_line(char buff[], int size); void str_lcopy(char dst[], char src[]); int main (void) { char src[128], dst[128]; printf("Key in a string>> "); get_line(sr...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列を表示させたい!
- 返信数: 4
- 閲覧数: 3540
配列を表示させたい!
配列の要素を出力したいのですが上手くいきません。 どうかご教授を願います。 #include<stdio.h> #define NUM_POINT 100 int main( void ) { int i, j, k; int point[ NUM_POINT ] = { 1, 4, 9, 19, 8, 10, 10, 9, 15, 10, 2, 19, 20, 4, 20, 7, 3, 15, 16, 16, 17, 14, 12, 9, 2, 5, 5, 13, 1, 19, 5, 0, 3, 12, 17, 9, 1, 7, 16, 16, 15, 18, 12, 14, 20, 10,...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公約数を全て表示するプログラムです
- 返信数: 8
- 閲覧数: 6703
Re: 公約数を全て表示するプログラムです
かずまさん、みけCATさん。 大変感謝します!! 一先ず課題は上手くできました!!m(_ _ )m また機会があれば、ご教授ください!! #include <stdio.h> #include<math.h> #define N 1000 int gcd( int x, int y ); void cd( int x, int y, int c[] ); int main( void ) { int x, y, i; int c[ N ]; for( i = 0; i < N; i++ ) c[ i ] = -1; printf( "自然数を大きい方を入力>>>" ); scanf( "%d"...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公約数を全て表示するプログラムです
- 返信数: 8
- 閲覧数: 6703
Re: 公約数を全て表示するプログラムです
すみません。真面目に書かれすぎて頭がパンクしました。笑 まだ、習っていない範囲のもので参考にしづらいです。苦笑 失礼極まりないですが、教科書にあったもの確認をお願いしていいですか? #include <stdio.h> #include<math.h> #define N 1000 int gcd( int x, int y ); void cd( int x, int y, int c[] ); int main( void ) { int x, y, i; int c[ N ]; for( i = 0; i < N; i++ ) c[ i ] = -1; /* 入力する数は2400,20...
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公約数を全て表示するプログラムです
- 返信数: 8
- 閲覧数: 6703
Re: 公約数を全て表示するプログラムです
お早い返信とアドバイスをありがとうございます。
書いたプログラムについてですが、このサイトを見かける前に悩み、頭を通さずに書いたものでした。汗
書いたプログラムについてですが、このサイトを見かける前に悩み、頭を通さずに書いたものでした。汗
- 9年前
- フォーラム: C言語何でも質問掲示板
- トピック: 公約数を全て表示するプログラムです
- 返信数: 8
- 閲覧数: 6703
公約数を全て表示するプログラムです
最大公約数を計算する関数(教科書p.188 リスト5.18参照) int gcd( int x, int y) を利用して,2つの自然数 x, y に対し,その公約数をすべて求め,int 型配列 c に格納する関数 void cd(int x, int y, int c[]) を作成せよ. さらに,main 関数で 2つの自然数 x,y を入力させ,関数 cd を呼び出し,配列 c に格納されたすべての公約数を表示するプログラムを作成 という問題なのですが、この問題にめちゃくちゃ悩んでいて、どうにも一人ではできそうにないので、どうかご教授願います。 #include <stdio.h> #in...