さしあたりお願いしたいのは、Visual Studioでビルドおよび実行ができるソースコード
(要するにくだんの結果が出るソースコード全部のコピペ)を出していただきたい、ということです。
検索結果 1997 件
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の中身が表示されない
- 返信数: 4
- 閲覧数: 5500
Re: 配列の中身が表示されない
こんなのじゃダメですか? #include <stdio.h> int main(void) { int data1[] = { 10, 15, 22, 45, 9, 66, 71, 4, 37, 82 }; int data2[10], counter, i; for (counter = i = 0; i < 10; i++) { if (data1[i] % 2 == 1) { data2[counter++] = data1[i]; } } printf("%d odd data\n", counter); for (i = 0; i < counter; i++) { printf(...
- 5年前
- フォーラム: C言語何でも質問掲示板
- トピック: #ifdefと#endifを定義しているのですが…
- 返信数: 5
- 閲覧数: 8654
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ゲームの解析をするのにC言語は向いてますか?
- 返信数: 5
- 閲覧数: 9633
Re: ゲームの解析をするのにC言語は向いてますか?
ゲームの解析とは、何を指しているのでしょうか?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ変数
- 返信数: 14
- 閲覧数: 31230
Re: ポインタ変数
ポインター変数の書き方が
p*
というのは誤解があります。そういう書き方はありません。
int *p;
と定義した場合、「int *」型、つまりint型を指すポインター変数(中身はint型の何かの変数のアドレス)がpです。
よって、p = &p;
という書き方は真っ当です。
次に
*p
という書き方ですが、これは
int *p;
という定義と関連づけて、
「int」型が*pだという風に理解したらどうでしょう。
p*
というのは誤解があります。そういう書き方はありません。
int *p;
と定義した場合、「int *」型、つまりint型を指すポインター変数(中身はint型の何かの変数のアドレス)がpです。
よって、p = &p;
という書き方は真っ当です。
次に
*p
という書き方ですが、これは
int *p;
という定義と関連づけて、
「int」型が*pだという風に理解したらどうでしょう。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語 もっとも多く投票された品を表示するプログラム
- 返信数: 3
- 閲覧数: 7708
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: bcc32でポインタを操作した際の挙動について
- 返信数: 3
- 閲覧数: 12581
Re: bcc32でポインタを操作した際の挙動について
論拠は何ですか?a と *cは同じアドレスを差しており、
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 「 'printf' : 書式文字列 '%03d' には、型 'int' の引数が必要ですが、可変個引数 1 は型 'int *' です」というエラーについて
- 返信数: 2
- 閲覧数: 16974
Re: 「 'printf' : 書式文字列 '%03d' には、型 'int' の引数が必要ですが、可変個引数 1 は型 'int *' です」というエラーについて
warning C4477: 'printf' : 書式文字列 '%03d' には、型 'int' の引数が必要ですが、可変個引数 1 は型 'int *' です」と表示されエラーになります。 warningと書いてあるとおり、エラーではありません。警告です。 実行ファイルは作成できているはずですので、実行すれば何かが起きるでしょう。喜ばしくない結果が出るかもしれませんが…。 while (fscanf_s(fp, "%3d %1020s", &str[*Input].code[3], &str[*Input].name[1021], 1024) != EOF) code[3]とかname[...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 整数商, 余り
- 返信数: 7
- 閲覧数: 14464
Re: 整数商, 余り
例えばa = 17, b = 3ならば、整数商 = 5, あまり = 2
となるわけですが、手計算ではどのようにしますか?
となるわけですが、手計算ではどのようにしますか?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: AIZU ONLINE JUDGE (AOJ) - 0044 について
- 返信数: 4
- 閲覧数: 12347
Re: AIZU ONLINE JUDGE (AOJ) - 0044 について
何でもかんでもmain()に押し込むのではなく、
例えば今回の場合、「引数で与えた数が素数かどうかを判定する」という機能を
関数にしてみると、何か見えてくるかもしれません。
例えば今回の場合、「引数で与えた数が素数かどうかを判定する」という機能を
関数にしてみると、何か見えてくるかもしれません。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 書式指定の前にある空白について
- 返信数: 7
- 閲覧数: 12570
Re: 書式指定の前にある空白について
printf()のまえによけいな「全角」空白を入れるのはお控えください。
コンパイルできません。
さて、おたずねの件ですが、
書式文字列が
" %8s %8s\n"
でもって、"商品A", "商品B"を出力する場合、
・1バイト分空白をあける
・"商品A"を8バイト分の領域に右詰めで出力する。
・1バイト分空白をあける
・"商品B"を8バイト分の領域に右詰めで出力する。
となります。
コンパイルできません。
さて、おたずねの件ですが、
書式文字列が
" %8s %8s\n"
でもって、"商品A", "商品B"を出力する場合、
・1バイト分空白をあける
・"商品A"を8バイト分の領域に右詰めで出力する。
・1バイト分空白をあける
・"商品B"を8バイト分の領域に右詰めで出力する。
となります。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: アドレス入力
- 返信数: 2
- 閲覧数: 10267
Re: アドレス入力
#include <stdio.h> #include <stdlib.h> #define SIZE (800) int main(void) { double *p, *y; int i; p = malloc(sizeof(double) *SIZE); if (!p) printf("allocation error\n"), exit(1); for (i = 0; i < SIZE; i++) { p[i] = i; } y = p; for (i = 0; i < 10; i++) { // とりあえず最初の10個だけ確認 printf("%f\n", *y); y++; } ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: pointerを付け忘れていますとエラーメッセージが出ます。
- 返信数: 2
- 閲覧数: 13793
Re: pointerを付け忘れていますとエラーメッセージが出ます。
#if 0 こういうことがしたかったのでしょうか #endif /*外部変数を使ったプログラム*/ #include<stdio.h> int max, min; void maxmin(int data[10]); int main(void) { int data[10] = { 0, 2, 1, 4, 3, 6, 5, 8, 7, 9 }; maxmin(data); return 0; } void maxmin(int data[10]) { int i, *p; p = data; max = min = *p; for (i = 1; i < 10; i++) { if (*(...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 至急解答お願い致します。
- 返信数: 2
- 閲覧数: 10302
Re: 至急解答お願い致します。
#if 0 インクルードすべきファイル名が間違っています。studio(これじゃスタジオ) ではなくて、stdio(標準入出力standard input/output)です。 また、変なところに全角のダブルクォーテーションがあるのもいただけません。 あと、インデント(字下げ)ってご存じですか?今のようなノッペリしたコードは、 あまり読む気になれません。メリハリを付けましょう。 p.s. あまり「至急」って書かない方がいいと思う。ていうか、投稿のタイトルは、 中身がある程度わかるものにしていただきたいような気がしないでもない。 #endif #include <stdio.h> int fu...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: char型の5桁の数字をソートする方法
- 返信数: 10
- 閲覧数: 13615
Re: char型の5桁の数字をソートする方法
こんなのじゃダメですか? #include <string.h> void sortzip(Employees workers[], int size) { Employees t; int i, j; for (i = 0; i < size - 1; i++) { for (j = i; j < size; j++) { if strcmp(workers[i].zip, workers[j].zip) { t = workers[i], workers[i] = workers[j], workers[j] = t; } } } printf("\nk)\n"); for (i = 0;...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の中の特定の文字を削除して詰めるには
- 返信数: 9
- 閲覧数: 29535
Re: 配列の中の特定の文字を削除して詰めるには
例えば、要素数が10で[3]が空いたとしましょうか。このときは、
[4]~[9]を[3]~[8]へ移して、[9]には'\0'(文字列終端の印)を入れるという
操作が必要なはずです。
この処理を行なうための関数(引数は、例えば詰める部分の始めと終わり)を準備しておくとよいかもしれません。
[4]~[9]を[3]~[8]へ移して、[9]には'\0'(文字列終端の印)を入れるという
操作が必要なはずです。
この処理を行なうための関数(引数は、例えば詰める部分の始めと終わり)を準備しておくとよいかもしれません。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の中の特定の文字を削除して詰めるには
- 返信数: 9
- 閲覧数: 29535
Re: 配列の中の特定の文字を削除して詰めるには
これだけでは何とも…。lily さんが書きました: 上手くいきません。
どのようにうまくいかないのでしょうか。うまくいかないコード全体と入力データ、出力データの例を示してください。
たぶんダメでしょうね。空きができた箇所から後ろのデータを「すべて」1個前へ詰めないと…。lily さんが書きました: 詰めるというのは配列の要素に一つ隣の要素を代入するではダメなのでしょうか?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の各要素の足し算
- 返信数: 7
- 閲覧数: 11685
Re: 配列の各要素の足し算
何と何を足したらこんな結果になるんですか?t_n_y_09 さんが書きました: num3={9,9,9,9,9,9,9,9,9,9}
全然わかりません。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ ソート
- 返信数: 12
- 閲覧数: 19268
Re: ポインタ ソート
Oops!
昇順と降順を間違えてた。sort関数で、不等号の向きを逆にしてください。>質問者様
昇順と降順を間違えてた。sort関数で、不等号の向きを逆にしてください。>質問者様
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ ソート
- 返信数: 12
- 閲覧数: 19268
Re: ポインタ ソート
こんな感じなんでしょうか。 #include <stdio.h> #define NUMBER (10) void swap(double *x, double *y) { double t; t = *x, *x = *y, *y = t; } void descending_sort(double *data, int n) { int i, j; for (i = 0; i < n - 1; i++) { for (j = i + 1; j < n; j++) { if (*(data + i) > *(data + j)) { swap(data + i, data + j); } }...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列の中の特定の数値を出力するには
- 返信数: 2
- 閲覧数: 9522
Re: 配列の中の特定の数値を出力するには
「特定の数値を出力する」というタイトルと「最後の1のある要素数を出力する」が食い違っているように思えて、
何がしたいのかがよくわかりません。
また、「最後の1のある要素数」の意味もよくわかりません。要素数ではなくて要素番号ならば話はわかります。
最後の要素番号を調べたいのであれば、配列を最後からたどっていって、初めて1が見つかった要素番号を
答にすればよいでしょう。
何がしたいのかがよくわかりません。
また、「最後の1のある要素数」の意味もよくわかりません。要素数ではなくて要素番号ならば話はわかります。
最後の要素番号を調べたいのであれば、配列を最後からたどっていって、初めて1が見つかった要素番号を
答にすればよいでしょう。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ピラミッド作成 表示回数1回
- 返信数: 15
- 閲覧数: 20102
Re: ピラミッド作成 表示回数1回
シングルクォートを使っていますか?ダブルクォートではダメですよ。無名 さんが書きました:上記のプログラム、エラー(移植性のないポインタ変換)
がputcharの列にあって実行出来ないのですが…
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ピラミッド作成 表示回数1回
- 返信数: 15
- 閲覧数: 20102
Re: ピラミッド作成 表示回数1回
実行後、偶数の整数を入力してみてください。 #include <stdio.h> void pyramid(int n) { int x, y; if (n % 2 == 0) { int m = n - 1; for (y = m; y >= 0; y--) { for (x = -m; x <= m; x++) { putchar((y <= x + m && y <= -x + m) ? '*' : (x == m) ? '\n' : ' '); } } } } int main(void) { int n; scanf("%d", &n); pyramid(n); return 0; }
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタを使った配列を関数に受け渡す方法について
- 返信数: 7
- 閲覧数: 15484
Re: ポインタを使った配列を関数に受け渡す方法について
#include <stdio.h> #include <stdlib.h> #include <time.h> // mainから渡されるのはint *型 void sort(int *d, int n) { int i, j, t; for (i = 0; i < n - 1; i++) { for (j = i; j < n; j++) { if (d[i] > d[j]) { t = d[i], d[i] = d[j], d[j] = t; } } } } int main(void) { int *data; // dataはint *型、*dataはint型 int n, i; ...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体、配列、ファイル操作について
- 返信数: 3
- 閲覧数: 10602
Re: 構造体、配列、ファイル操作について
ファイルの置き場所は適切ですか?hnkto さんが書きました:ファイルから著者名などを読み込み、表示させたいのですが、ファイルオープンエラーとなってしまいます。どこがおかしいのかわからないので、分かる方いましたらお願いし
開発環境によって、使うファイルをどこのフォルダーに置いておく必要があるかは異なります。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 中央値を求めるプログラム
- 返信数: 4
- 閲覧数: 12610
Re: C言語 中央値を求めるプログラム
データの個数が偶数である場合の中央値の求め方は既出ですが、
その場合、*の付け方はどうするんでしょうね。>質問者さん
中央値を計算するためのネタとなるデータ(2個)に*を付けるんでしょうか。
その場合、*の付け方はどうするんでしょうね。>質問者さん
中央値を計算するためのネタとなるデータ(2個)に*を付けるんでしょうか。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: バブルソートを用いた問題
- 返信数: 6
- 閲覧数: 15045
Re: バブルソートを用いた問題
何でもかんでもmain()にぶち込まない方がよいと思います。 // 全面的に改変しました #include <stdio.h> #include <stdlib.h> #include <time.h> #define N (10) void makeRandomNumber(int *a, int n) { int i; for (i = 0; i < n; i++) { a[i] = rand() % 20 + 1; // 1~20の乱数を発生 } } void sortArray(int *a, int n) { int i, j, t; for (i = 0; i < n - 1; i...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: バブルソートを用いた問題
- 返信数: 6
- 閲覧数: 15045
Re: バブルソートを用いた問題
では、そのときのコードを見せてください。たぶんちょっとした修正でうまくいくと思います。mogu2522 さんが書きました: バブルソートで昇順に並び変えるのは理解できる
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 普通式から後置記法に変換でうまくコンパイルができない
- 返信数: 5
- 閲覧数: 10760
Re: 普通式から後置記法に変換でうまくコンパイルができない
今回の事象は「うまくコンパイルできない」ではなく、
「うまくコンパイルはできるけど、思ったとおりに動かない」というのが
正しそうです。
もし、「コンパイル」という用語の意味を正しく理解していないのであれば、
この機会に覚えておくとよいかもしれません。
「うまくコンパイルはできるけど、思ったとおりに動かない」というのが
正しそうです。
もし、「コンパイル」という用語の意味を正しく理解していないのであれば、
この機会に覚えておくとよいかもしれません。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 循環小数の計算について
- 返信数: 4
- 閲覧数: 12402
Re: 循環小数の計算について
1/7だったら循環節に現われる数字がすべて異なるので対処のしようがあると思いますが、
例えば1/17だったら循環節に同じ数字が複数回現われます。そこをどう切り抜けるかがポイントとなりそうです。
1/17 = 0.05882352941176470588235294117647...
例えば1/17だったら循環節に同じ数字が複数回現われます。そこをどう切り抜けるかがポイントとなりそうです。
1/17 = 0.05882352941176470588235294117647...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列をスキップする方法
- 返信数: 9
- 閲覧数: 12172
Re: 配列をスキップする方法
#include <stdio.h> int main(void) { int skip[10] = { 0 }; // skip[n] == 1のとき、その段をスキップする int s, i, j; do { printf("スキップする段を入力してください(0または1~9以外で終了)。\n"); scanf("%d", &s); if (s == 0) break; if (1 <= s && s <= 9) skip[s] = 1; } while (0 <= s && s <= 9); for (i = 1; i <= 9; i++) { if (skip[i] == 0) { fo...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 分割コンパイル時の構造体宣言
- 返信数: 6
- 閲覧数: 12571
Re: 分割コンパイル時の構造体宣言
多重インクルードガード付きのヘッダーファイルを作成するのがよさそうです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列のアルファベット順並び替え
- 返信数: 5
- 閲覧数: 14655
Re: 文字列のアルファベット順並び替え
"asrutocdgeqkfg"という文字列をアルファベット順に並び替えたいのですが下記のプログラムだとうまくいきません。よろしければアドバイスをよろしくお願いします。 for (i = 0; i < N - 1; i++) for (j = 0; j < N - 1; j++) if (ch[j] > ch[j + 1]) { ex = ch[j]; ch[j] = ch[j + 1]; ch[j + 1] = ex; } ループの中で、i がからむ処理がないのが気になります。 ・i がからむ処理をしたければ、そういうコードを書く ・処理がなくていいのなら、i のループをやめる どっちかに...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: cのプログラミング基礎
- 返信数: 9
- 閲覧数: 10774
Re: cのプログラミング基礎
for (d = 1.0; (int)d <= 9; d = d + 0.1) (int)(5.000000) = 4 (int)(6.000000) = 5 たぶん浮動小数点数の誤差でしょう。 そもそも10進の0.1を2進で表現するときから誤差が発生します。 (int) 5.000000 と表示しているところは、おそらく、正確には5.000000という数値ではなく4.999999....で、 %lfで表示すると四捨五入か何かで5.000000と表示するが実際の中身は上述のとおり4.999999...なので intにキャストすると4になってしまう、といったところではないでしょうか。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 複数回定義されているシンボル
- 返信数: 6
- 閲覧数: 8426
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字がエラーしてしまいます。
- 返信数: 3
- 閲覧数: 6069
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: コマンドプロンプトからの四則演算入力
- 返信数: 21
- 閲覧数: 11586
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体に入れた文字の出力について
- 返信数: 2
- 閲覧数: 2700
Re: 構造体に入れた文字の出力について
忍者 さんが書きました: char camera;
sscanf(line, "%d",&pa.camera);
printf("%d\n",pa.camera);
[/code]
char型で定義しているメンバーcameraに整数型で値を読んで整数型で出力しているので、
そうなるのは必然ではないかと。
cameraというメンバーをchar型で扱いたいですか?それともint型などの整数として扱いたいですか?話はそこからです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 配列とメモリ確保
- 返信数: 5
- 閲覧数: 3920
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ポインタ変数の値渡し
- 返信数: 3
- 閲覧数: 2828
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: ファイル分割と構造体
- 返信数: 7
- 閲覧数: 5342
Re: ファイル分割と構造体
何をしたときにどううまくいかないのかが全くわかりませんので、お答えのしようがありません。あらい16 さんが書きました: ファイルを分割したときに、複数のソースファイルから一つの構造体でやり取りできるようにしたいと考えているのですがどうにもうまくいきません。
せめて、ソースコードやエラーメッセージを開示してはいただけないでしょうか。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 3×3行列と3×1行列の積を求めるプログラム
- 返信数: 3
- 閲覧数: 5873
Re: 3×3行列と3×1行列の積を求めるプログラム
字下げ(インデント)の悪いくせが身に付いてしまうと、あとあとやっかいです。 今のうちから、せめて下記の感じくらいに書くようにする方がよいでしょう。 誤解しないでいただきたいのは、「何が何でも下記のように書け」ということではなく (それ言い出すと宗教論争みたくなってしまう)、質問者さんのコードと当方のコードでは どっちが見やすいですか?っていうことです。 あと、少数じゃなくって小数です。少数派とか少数精鋭とかだったら少数でいいんですけどね。 #include <stdio.h> int main(void) { double v[3][3] = { { 0.00003, 0.000144, -0...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: atoiと+でバグります
- 返信数: 4
- 閲覧数: 4313
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列に関する質問
- 返信数: 3
- 閲覧数: 3327
Re: 配列に関する質問
下記の解答のdo while文の配列の部分(13行目)が「array 」となっています。なぜ「array 」ではなく「i - 1」となるのかがわかりません。確かにこれを入れないと、データの終わりを意味すると問題で指定されている「−1」を入力しても無限ループから抜けられません。 scanf ("%d", &array[i]); ここで、array に値を代入しています。例えばi = 5としましょうか。array[5]に何かが入りました。 i++; ここで、iを1増やしています。iは6になりました。したがって、上で代入したarray[5]の値が-1かどうかを判断するには } while (arr...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++のプログラム文の結果が変なのでは?
- 返信数: 8
- 閲覧数: 5170
Re: C++のプログラム文の結果が変なのでは?
とりあえず言えることは、「プログラムは書いたとおりにしか動かない」ということです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 『C言語入力した10進数を2進数変換し、出力する
- 返信数: 7
- 閲覧数: 5819
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列検索について
- 返信数: 11
- 閲覧数: 5771
Re: 文字列検索について
せっかくこう書くのであれば、
このあたりもコンピューターに数えてもらう方がよくないですか?
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 自作関数について・・・
- 返信数: 2
- 閲覧数: 2428
Re: 自作関数について・・・
こんな風にしたい、ってことですか? #include <stdio.h> int max2(int a, int b) { int max; if (a > b) { max = a; } else { max = b; } return max; } int main(void) { int a, b; a = 30; b = 34; printf("%d", max2(a, b)); return 0; } だったら、全然問題ありません。 ちなみに、「有効範囲的に」という意味では、上記コードで、main関数におけるa, bとmax2関数におけるa, bとは 全く別物です。 main関数から...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 選択ソートについての質問です。
- 返信数: 6
- 閲覧数: 5359
Re: 選択ソートについての質問です。
21行目と22行目にある } のどっちかがいらない気がする。みけCAT さんが書きました:とりあえず、for文の中に間違って存在するコンマ2個をセミコロンにすれば、コンパイルは通りますね。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語
- 返信数: 2
- 閲覧数: 2321
Re: c言語
// こんな感じなのかな~という気がしないでもないような気がする #include <stdio.h> #include <string.h> #define N (10) void irekae(char (*a)[N], char (*b)[N]) { char t[N]; strcpy(t, *a), strcpy(*a, *b), strcpy(*b, t); } int main(void) { char a[N] = "book"; char b[N] = "amazon"; printf("a:%s, b:%s\n", a, b); irekae(&a, &b); printf...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語
- 返信数: 3
- 閲覧数: 2709
Re: c言語
自然数a1, a2, b1, b2とあるので、とりあえずこれらはint型でしょう。mac さんが書きました:c言語で、4つの自然数a1,a2,b1,b2を入力し、2つの分数 a1/b1,a2/b2 の四則演算を行い、それぞれの式と値を出力するプログラムを作成せよ。という問題についてです。
計算時にdoubleとかfloatとかにキャストする必要はあるにしても。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 文字列
- 返信数: 3
- 閲覧数: 3200
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 質問です
- 返信数: 1
- 閲覧数: 1705
Re: 質問です
if文でも使えば? #include <stdio.h> int main(void) { int i; for (i = 1; i <= 100; i++) { if ( 1 <= i && i <= 20) putchar('A'); if (21 <= i && i <= 50) putchar('B'); if (51 <= i && i <= 70) putchar('C'); if (71 <= i && i <= 90) putchar('D'); if (91 <= i && i <= 100) putchar('E'); } putchar('\n'); return 0; }
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 教えてください
- 返信数: 5
- 閲覧数: 3243
Re: 教えてください
データが失われてしまいます そうならないためにはどうしたらいいですか? kがint型なのがおかしい。double型にすべき。 インデントがグッチャングッチャンで見づらい。修正すべき。 (注)-4 -0.19のくだりは、意をくんで直しておいた。 #include <stdio.h> int main(void) { double x[] = { -1, -0.49, 0, -3.1, -8, -3, -7.5, 0, -0.98, -4, -3.21, -4, -0.19, -2.4, -3.1, -3.6, -8.5, -3.7, -1, -5.4 }, t; int i, j, n = s...
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: mallocで確保した領域に文字列を
- 返信数: 3
- 閲覧数: 2426
Re: mallocで確保した領域に文字列を
深刻なエラーが出るような領域をたまたま破壊していないだけです。あまつ さんが書きました:このプログラムでは"あいうえお"に必要な11バイトの領域をmallocで確保しています。が、2バイトや3バイトでもERRORが発生せず、出力されます。
11バイト確保したならば、そこへ格納できるのは「プログラマーの責任で」11バイトまでです。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: 教えてください
- 返信数: 7
- 閲覧数: 3627
Re: 教えてください
どういう結果がほしいのですか?
例題の座標群で提示してください。
例題の座標群で提示してください。
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: calc関数
- 返信数: 6
- 閲覧数: 4742
- 6年前
- フォーラム: C言語何でも質問掲示板
- トピック: おかしなところがあったらごしてきくださいorz
- 返信数: 6
- 閲覧数: 3818
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 至急!!演算子です。初歩の初歩ですみません
- 返信数: 3
- 閲覧数: 2141
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語プログラムを作成でわかりません
- 返信数: 8
- 閲覧数: 4799
Re: c言語プログラムを作成でわかりません
#if 0 65とか25とかマジックナンバーを書いていたり、mainの型がvoidだったりするのが イヤなので、自分ならこう書く。絶対にこうじゃなきゃいけないことはないのは承知。 #endif #include <stdio.h> #define ALPHABETS (26) int main(void) { int i, j; for (i = 'A'; i < 'A' + ALPHABETS; i++) { for (j = 'A'; j <= i; j++) { putchar(j); } putchar('\n'); } return 0; }
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 新・明解c言語の演習問題での疑問です
- 返信数: 3
- 閲覧数: 3378
Re: 新・明解c言語の演習問題での疑問です
わざわざ手打ちするよりもコピペする方が正確で楽だと思いませんか?SZK さんが書きました:質問する際に打ち間違えたようです。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体配列について
- 返信数: 4
- 閲覧数: 2715
Re: 構造体配列について
#if 0 どこが間違っているのか分からないので、助言を頂ければ幸いです。 実行例のように,5名分の学生情報(学生番号と氏名)を構造体配列に格納し,表示するプログラムを作成しなさい. 自作の関数を使う必要はありません. 文字列の代入には,標準ライブラリ関数strcpyを使いなさい. すでに記載されている部分は書き換えてはいけません. 実行例 0人目: 学生番号 11001 名前 山田 一郎 1人目: 学生番号 11002 名前 山田 二郎 2人目: 学生番号 11003 名前 山田 三郎 3人目: 学生番号 11004 名前 山田 四郎 4人目: 学生番号 11005 名前 山田 五郎 #e...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 行列とベクトルの積
- 返信数: 11
- 閲覧数: 5886
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: fscanfがうまく動きません
- 返信数: 5
- 閲覧数: 3515
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: すいません 急ぎで解答をお願いします。
- 返信数: 5
- 閲覧数: 3691
Re: すいません 急ぎで解答をお願いします。
冷やかしなどはいりません じゃあ、冷やかしでないのを。 #include <stdio.h> #include <string.h> #define LEN (20) typedef struct { char name[LEN]; int price; } Coffee; void get_price(Coffee *coffee, int kind) { char name[LEN]; int weight, i; printf("豆の種類:"), scanf("%s", name); printf("分量(g):"), scanf("%d", &weight); for (i = 0;...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: FOR文で不連続な範囲でLoopしたい
- 返信数: 13
- 閲覧数: 5987
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 2次元平面上の2点間を計算する関数について
- 返信数: 2
- 閲覧数: 3309
Re: 2次元平面上の2点間を計算する関数について
// double型にnとかiとかjとかいう変数名を付けているのが何となく違和感があったので、 // 思い切ってそういう変数を使わないようにしてみた #include <stdio.h> #include <math.h> double distance(double *p1, double *p2); int main(void) { double p1[2], p2[2]; printf("点p1の入力\n"); scanf("%lf %lf", &p1[0], &p1[1]); printf("点p2の入力\n"); scanf("%lf %lf", &p2[0], &p2[1]); ...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語 関数にポインタを引数として渡すプログラムについて
- 返信数: 29
- 閲覧数: 10480
Re: C言語 関数にポインタを引数として渡すプログラムについて
少なくとも、ASCIIコードにおいては、purin52002 さんが書きました:
'A'-'a'の意味は分かったんですけど'B'-'b'の意味が分かりませんでしたorz
'A' - 'a'
'B' - 'b'
'C' - 'c'
...
'Z' - 'z'
は、どれも同じはずです。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 円の面積と円周を求めるプログラムを作っています。
- 返信数: 2
- 閲覧数: 5279
Re: 円の面積と円周を求めるプログラムを作っています。
#include <stdio.h> #if 0 #define PI 3.14159; // 最後のカンマは不要 #endif #define PI 3.14159 float Circle_S(float r) { // この辺の余分な変数定義や初期化は不要で、単に面積の値を返せばよい // その方がプログラムが簡単になる // 同じ結果を得るんだったら、コード量が少ない方がよいと思う // float result1 = 0; // result1 = r*r*PI; // return result1; return (r < 0) ? -1 : PI * r * r; } floa...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 微分係数を求めるプログラムを作っています
- 返信数: 7
- 閲覧数: 7382
Re: 微分係数を求めるプログラムを作っています
(1) 引数 x (double型)と n (int型)を与えて x^n の値を返すdouble型の関数 powerを定義。 (2) 引数 x (double型)と n (int型)を与えて x^n の微分係数((x^n)’の値,n x^(n -1)を計算してxの値を入れる)を返すdouble型の関数 diff を定義。ただし(1)の関数powerを呼び出して使うこと。 まず、「ただし(1)の関数powerを呼び出して使うこと。」とありますが、違う計算をするのになぜ呼び出すのですか?呼び出す意味はありますか? この疑問に対する答えは、別の回答者さんからの回答のとおりです。 (2)においてべき...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 微分係数を求めるプログラムを作っています
- 返信数: 7
- 閲覧数: 7382
Re: 微分係数を求めるプログラムを作っています
数学があまり得意でない方が数学に関する投稿をしてもいっこうに差し支えないのでは?みけCAT さんが書きました: どうしてわざわざ質問にほとんど関係ない上に苦手な数学の話に寄ったのですか?
ここの掲示板には、ある分野があまり得意ではない方がその分野に関する投稿をしていけないという
ルールでもあるんですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: エラー解消されません、、、
- 返信数: 7
- 閲覧数: 6940
Re: エラー解消されません、、、
う~ん、自分のところでは、(計算式が正しければ)正しいと思われる8.5425が出ますけどね。tennga さんが書きました: 解消されましたが、結果がこうなりました
気温と周波数を入力してください。
17.0
40.0
波長はinfです。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: エラー解消されません、、、
- 返信数: 7
- 閲覧数: 6940
Re: エラー解消されません、、、
printfとかscanfとかのプロトタイプ宣言が書いてあるはずの stdio.h をインクルードすれば、 くだんの警告は出なくなるかもしれません。 #include <stdio.h> double onnsoku(double t) { return 331.5 + 0.6 * t; } double hattyou(double c, double f) { return c / f; } int main(void) { double f, t; printf("気温と周波数を入力してください。\n"); scanf("%lf %lf", &t, &f); printf("波長は%fで...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語プログラムについて
- 返信数: 3
- 閲覧数: 3345
Re: c言語プログラムについて
その操作を手で行なうとしたら、どういう手順を踏みますか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 配列を引数とする関数について
- 返信数: 14
- 閲覧数: 5984
Re: 配列を引数とする関数について
別の回答にもあるとおり、ave関数における変数nの使い方が超絶おかしいので修正。 せっかく要素数(今回はn)を引数で受け取っているのに、それを変えちゃまずいでしょう。 要素数がたまたま5であるから、正しく動いているように見えるだけ。要素数が5以外だったらどうする? 今回の場合、ave関数は、渡ってきた配列の要素数が「いくつであっても」対応できるようにしておくべき。 #include <stdio.h> double ave(int a[], int n); int main(void) { int a[5] = {3, 1, 4, 2, 5}; double ans; ans = ave(a,...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 早急にお願いします。
- 返信数: 11
- 閲覧数: 7132
Re: 早急にお願いします。
キロメートルをマイルに変換したいだけなので、オーバースペック(不要な機能を実装)。梅衣堂ひよ さんが書きました: あとはこれをマイルからキロメートルへ、キロメートルからマイルへ変換する関数として実装するだけですよ。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 早急にお願いします。
- 返信数: 11
- 閲覧数: 7132
Re: 早急にお願いします。
キロメートルをマイルに変換したいので、仕様誤り。purin52002 さんが書きました: 2、マイルを引数(double型がいいかな?)、kmを返り値(これもdouble型がいいかな?)の関数を作ります。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 急ぎです…。
- 返信数: 2
- 閲覧数: 2314
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 二つの整数を入力してその間の全整数の和を出力
- 返信数: 6
- 閲覧数: 4396
Re: 二つの整数を入力してその間の全整数の和を出力
こちらの環境で下のようなコードを実行したら、ちゃんと答えが出ます。 #include <stdio.h> int main(void) { int no, no1, no2; int max, min; int sum = 0; do { printf("正の整数を二つ入力してください。\n"); printf("整数1:"); scanf("%d", &no1); printf("整数2:"); scanf("%d", &no2); } while(no1 < 0 || no2 < 0); if (no1 > no2) { max = no1; min = no2; } else { max...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 二つの整数を入力してその間の全整数の和を出力
- 返信数: 6
- 閲覧数: 4396
Re: 二つの整数を入力してその間の全整数の和を出力
うまく起動できない、というのは、どういった状況を指していますか?
コンパイルはできるけど、実行結果が思ったとおりにならないということですか?
コンパイルはできるけど、実行結果が思ったとおりにならないということですか?
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C++言語のキューの問題のことです
- 返信数: 3
- 閲覧数: 2607
Re: C++言語のキューの問題のことです
コードをザッと見たところ、データ構造がキューではなくてスタックになっているようです。
関数名もpush()とかpop()とか、いかにもスタックを扱うかのような名前が付いてますね。
だからどうすれば?というのは、キューとか待ち行列とかでまずはググってみてはどうでしょう。
関数名もpush()とかpop()とか、いかにもスタックを扱うかのような名前が付いてますね。
だからどうすれば?というのは、キューとか待ち行列とかでまずはググってみてはどうでしょう。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c++で変数の数字を上書きせずに並べる
- 返信数: 5
- 閲覧数: 2899
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: たまに曜日が表示されないときがあります。
- 返信数: 8
- 閲覧数: 4577
Re: たまに曜日が表示されないときがあります。
hのiの値がいくつになっているか、printf()か何かで確認してみましょう。
0~6以外の値になっているような気がします。
0~6以外の値になっているような気がします。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: ファイルが作れない
- 返信数: 8
- 閲覧数: 5057
Re: ファイルが作れない
このエラーが出ているということは、たぶん、プロジェクトの設定でWindowsアプリケーションを作成するようになっているのに、boru さんが書きました:DXライブラリでfopen関数でファイルを作ろうとしてもエラーが出ます。
エラー LNK2019 未解決の外部シンボル _WinMain@16 が関数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) で参照されました。
WinMain関数がないよ、と怒られているのだと思います。
直すには、たぶん、プロジェクトの設定でコンソール・アプリケーションを作成するようにすればよいと思います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 構造体(structure)のプログラムについて。
- 返信数: 27
- 閲覧数: 9706
Re: 構造体(structure)のプログラムについて。
割り算用の関数が意図どおりに動いているのであれば、それには手を触れずに
「新たに」足し算用の関数(名前の例:Add)と引き算用の関数(名前の例:Sub)を用意するのがよいと思います。
1つの関数で足し算も引き算も割り算も実行する、というのは避ける方がよいと思います。
なお、構造体に、商とあまりの他、和と差のためのメンバーを追加する必要があると思います。
「新たに」足し算用の関数(名前の例:Add)と引き算用の関数(名前の例:Sub)を用意するのがよいと思います。
1つの関数で足し算も引き算も割り算も実行する、というのは避ける方がよいと思います。
なお、構造体に、商とあまりの他、和と差のためのメンバーを追加する必要があると思います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: cmdの結果を追加しました。 結果を適正に表示するにはどのようにコードを修正すればよいでしょうか?
- 返信数: 3
- 閲覧数: 2637
Re: cmdの結果を追加しました。 結果を適正に表示するにはどのようにコードを修正すればよいでしょうか?
11~19のかけ算をしたいのか1~19のかけ算をしたいのか、質問文からは判読不能。とりあえず1~19と解釈した。 単にかけ算の結果を表示するだけなので、配列を使う必要なし。 かけ算のときに+1するのがめんどくさいので、ループは素直に1~19で回す。 #include <stdio.h> int main(void) { int i, j; for (i = 1; i <= 19; i++) { for (j = 1; j <= 19; j++) { printf("%4d", i * j); } putchar('\n'); } putchar('\n'); return 0; }
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 1行で計算すると正しくなくて、2行に分けると正しい結果が得られる
- 返信数: 2
- 閲覧数: 2089
Re: 1行で計算すると正しくなくて、2行に分けると正しい結果が得られる
result=284480*F/L; // 1行で計算すると result= 743 となって正しくない 右辺の計算の途中で、int型で表わせる数値の範囲を超えているように思います。 result=284480; // 1行目 result=result*F/L; // 2行目 → 2行に分けると正しい結果 (9482) が得られる こっちは、1行目で__int64型の変数に値を代入「した後で」続きの計算をしていますね。このように、__int64とintが混在しているとき、 2行目の右辺の型は最も大きい__int64型となるので、何も問題がない、ということでありましょう。 1行で片づけるには...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 幾つのベクトルの大きさを小さい順に並び替えるプログラムの作り方に関してです。
- 返信数: 7
- 閲覧数: 3193
Re: 幾つのベクトルの大きさを小さい順に並び替えるプログラムの作り方に関してです。
Cで作るならこんな感じ? #include <stdio.h> #include <math.h> #define N 4 typedef struct vector { int x; int y; double r; double d; } vector; void InputData(vector *data) { data[0].x = 0; data[0].y = 3; data[1].x = 7; data[1].y = 7; data[2].x = 1; data[2].y = 5; data[3].x = 2; data[3].y = 1; } /*ベクトルの大きさを求める関数で...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: rand関数の不可解なエラーについて
- 返信数: 4
- 閲覧数: 2552
Re: rand関数の不可解なエラーについて
何を言いたいのかよくわかりません。kohei さんが書きました: 関数がない変数定義注釈~enumより上にrand関数を設定したのですが
どんなエラーですか?エラーメッセージがあれば貼ってください。kohei さんが書きました: 私では理解できないエラーが発生いたしました。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 逆順表示の関数の作成方法
- 返信数: 9
- 閲覧数: 3885
Re: 逆順表示の関数の作成方法
ほんの一例です。 #include <stdio.h> #include <string.h> void gyaku(char s[]); int main(void) { char str[20]; scanf("%19s", str); gyaku(str); return 0; } void gyaku(char s[]) { int len = strlen(s), i; for (i = len - 1; i >= 0; i--) { putchar(s[i]); } putchar('\n'); } ちなみに、別の言語だったら1行で。逆順にしたい文字列の字数に制限なしで、楽勝。 p...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 関数の作成の仕方が分かりません
- 返信数: 4
- 閲覧数: 2164
Re: 関数の作成の仕方が分かりません
こんな感じ?ベストとは限らないけど。 #include <stdio.h> #include <string.h> void yoko(char s[]); void kuuhaku(char s[], int n); void tate(char s[]); int main(void) { char name[50]; printf("名前は?(全角入力) "); scanf("%s", name); printf("\n"); yoko(name); printf("\n"); kuuhaku(name, 3); printf("\n"); tate(name); printf("\n"...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 数字を入力をしないとprintfの文が表示されない
- 返信数: 3
- 閲覧数: 3272
Re: 数字を入力をしないとprintfの文が表示されない
当該のコードを見せてください。そこで使っている変数の定義部分を含めて。maxwell さんが書きました: 順番としては、printfで行う処理の番号を表示し、scanfで入力を受け付けています。
どなたか原因と改善策をご教授ください。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: 課題について至急アドバイスをお願いします!
- 返信数: 5
- 閲覧数: 1898
Re: 課題について至急アドバイスをお願いします!
if文の勢力範囲が終わった後にelseが来ているのがよろしくなさそうです。ottochang さんが書きました: sounyuuhou.c:23: error: expected expression before ‘)’ token
sounyuuhou.c:29: error: expected declaration or statement at end of input
とでるのですが、どこが間違っているのでしょうか?
また、どうも閉じカッコ } の数が多いように見えます。それもエラーの原因だと思います。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: C言語の宿題が・・・
- 返信数: 19
- 閲覧数: 8103
Re: C言語の宿題が・・・
間違いというわけではありませんが、獅子丸 さんが書きました: また他にもおかしいところがあれば教えて欲しいです
int型の戻り値をどこでも使っていないので、思い切ってvoid型にしてみる(関数の中身はprintfするだけにして、獅子丸 さんが書きました: int printPlayData(PLAYER p)
{
return printf("%s %d %d %d %f", p.name, p.number, p.at_bat, p.hit, p.ave);
}
printPlayerData(p);
何もreturnしない)、という手はあるかもしれません。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語和暦から西暦
- 返信数: 4
- 閲覧数: 4835
Re: c言語和暦から西暦
こんな感じ? 元のコードのインデントがあまりにグッチャングッチャンだったので自分なりに直しておきました。なお、 あと、仕様上問題になりそうなのは、M46とかT16とかS65とか、実際にはなかった年を入力したときにエラーとするのか 便宜上出力するのか(M46ならば1913、T16ならば1927、S65ならば1990)といったところでしょうか。 ここは後者の策を採りました。 #include <stdio.h> int myatoi(char *p); int main(void) { int y, n; char w[50]; printf("Input Wareki: "); scanf("%...
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語和暦から西暦
- 返信数: 4
- 閲覧数: 4835
Re: c言語和暦から西暦
あと、仕様上問題になりそうなのは、M46とかT16とかS65とか、実際にはなかった年を入力したときにエラーとするのか
便宜上出力するのか(M46ならば1913、T16ならば1927、S65ならば1990)といったところでしょうか。
便宜上出力するのか(M46ならば1913、T16ならば1927、S65ならば1990)といったところでしょうか。
- 7年前
- フォーラム: C言語何でも質問掲示板
- トピック: c言語和暦から西暦
- 返信数: 4
- 閲覧数: 4835
Re: c言語和暦から西暦
文字列をintがたの整数にして返す関数はできているのですが 元号をローマ字表記したときの先頭文字からその元号が始まったり(あるいは終わったり)する西暦の取得は? 標準入力から和暦で H29(平成29年の場合)などと入力すると、それが西暦何年かを計算して表示するプログラムを作成しなさい。 入力は1文字目がアルファベットで H, S, T, M がそれぞれ平成、昭和、大正、明治を表しており、数字との間にスペースなどの区切りは無いため、ひと続きの文字列として読み込む。 文字列から数値への変換には問題1で作成した関数 myatoi をそのままコピーして使用し、main関数のみを新たに作成すること。 ...