検索結果 23 件

by KTN19
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...
by KTN19
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...
by KTN19
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 ...
by KTN19
9年前
フォーラム: C言語何でも質問掲示板
トピック: 構造体を用いて表示させる
返信数: 7
閲覧数: 5183

Re: 構造体を用いて表示させる

確かにいい答えであると思います。バッファオーバーランも考慮したscanfの書き方を知りませんでしたので、感嘆してました。 '\n'を無視するという答えがわからないではなく、無視するまでの過程の書き方が思いつかないの間違いです、失礼いたしました。 ------------------------------------------------------------------------------------------------- T11_3.c:40:107: warning: format specifies type 'char *' but the argument has ty...
by KTN19
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 に...
by KTN19
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...
by KTN19
9年前
フォーラム: C言語何でも質問掲示板
トピック: 入力したものを反転させて出力
返信数: 3
閲覧数: 2027

Re: 入力したものを反転させて出力

細心にわたるご教授ありがとうございます。
一度、紙に書いてみるのも手ですね!

コード:

void str_copy_reverse( char dst[], char src[], int size )
{
	int i, j;
	char tem;
	
	for( i = 0, j = 1; i < size; i++, j++ ){
		dst[ i ] = src[ size - j ];	
	}
	dst[ i ] = '\0';
}
by KTN19
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...
by KTN19
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( ...
by KTN19
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( "入力せよ>>" );...
by KTN19
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...
by KTN19
9年前
フォーラム: C言語何でも質問掲示板
トピック: 文字の途中の数字を表示させたい
返信数: 9
閲覧数: 4487

Re: 文字の途中の数字を表示させたい

box さんが書きました:

コード:


int getNumOfDigit(char *str)
{
    int digit, i;

    for (digit = i = 0; str[i]; i++) {
        if (isdigit(str[i])) digit++;
    }
    return digit;
}

質問ですが,ループの継続条件のstrはどういう意味があるのですか?
by KTN19
9年前
フォーラム: C言語何でも質問掲示板
トピック: 文字の途中の数字を表示させたい
返信数: 9
閲覧数: 4487

Re: 文字の途中の数字を表示させたい

入力は半角英数字だけで良いです.英字の次に数字が来るとして,それを表示させるにはどのように書き換えれば良いでしょうか?
by KTN19
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 ) {...
by KTN19
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(...
by KTN19
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, ...
by KTN19
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...
by KTN19
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...
by KTN19
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,...
by KTN19
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"...
by KTN19
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...
by KTN19
9年前
フォーラム: C言語何でも質問掲示板
トピック: 公約数を全て表示するプログラムです
返信数: 8
閲覧数: 6703

Re: 公約数を全て表示するプログラムです

お早い返信とアドバイスをありがとうございます。

書いたプログラムについてですが、このサイトを見かける前に悩み、頭を通さずに書いたものでした。汗
by KTN19
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...

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