検索結果 17 件

by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: AOJの問題です。
返信数: 2
閲覧数: 2167

Re: AOJの問題です。

みけCAT さんが書きました:処理の内容はチェックしていないですが少なくとも、テストケースは1000行を超えているのにmain関数で1000回しか処理をしないようにしているのがダメですね。
余計な条件を入れず、(nに1が入るまでの)無限ループにしてみてください。
無限ループにしたら通りました。本当にありがとうございました。またお願いします。
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: AOJの問題です。
返信数: 2
閲覧数: 2167

AOJの問題です。

AOJの問題(http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=1154&lang=jp)を解いているのですが、テストケースなどでは正確に答えが出ているのですが、WAになってしまいます。 考え方は、約数であるものをまず見つけて、その後、素数であるかを判定しています。そして見つかったものをvに入れて、最後に出力しています。 色々なケースで試してみたのですが、WAになる原因がわからないので、教えてくれると助かります。お願いします。 #include <iostream> #include <string> #include <algo...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 競技プログラミング
返信数: 3
閲覧数: 2492

Re: 競技プログラミング

たとえば 1 4 を入力すると、解がない条件には該当せず、heikinが2でも3でもないので、 59行目で未初期化の自動変数otona, baba, babyの値を用い、未定義動作を起こします。 明らかにC言語ではないコードを囲むcodeタグに、明示的に言語としてcを指定するのは、良くないと思います。 なるほど。heikin == 4の時の処理がどこにも書いてありませんね。 #include <iostream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <s...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 競技プログラミング
返信数: 3
閲覧数: 2492

Re: 競技プログラミング

たとえば 1 4 を入力すると、解がない条件には該当せず、heikinが2でも3でもないので、 59行目で未初期化の自動変数otona, baba, babyの値を用い、未定義動作を起こします。 明らかにC言語ではないコードを囲むcodeタグに、明示的に言語としてcを指定するのは、良くないと思います。 なるほど。heikin == 4の時の処理がどこにも書いてありませんね。 #include <iostream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <s...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 競技プログラミング
返信数: 3
閲覧数: 2492

競技プログラミング

atocoderのこの問題(http://abc006.contest.atcoder.jp/tasks/abc006_3)を解いているのですが、 一部waしてしまい、何故なのかわかりません。 #include <iostream> #include <string> #include <algorithm> #include <functional> #include <vector> #include <stack> #include <queue> #include <set> #include <bitset> #include <map> #include <cstdio> #inc...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: }がないとエラーが出る
返信数: 3
閲覧数: 2651

Re: }がないとエラーが出る

a5ua さんが書きました:77行目のelseに対応する'}'が無いように見受けられます。
エラーなくなりました。
ありがとうございました。
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: }がないとエラーが出る
返信数: 3
閲覧数: 2651

}がないとエラーが出る

#include <iostream> #include <cstdio> #include <algorithm> #include <string> #include <vector> #include <functional> #include <bitset> #include <queue> using namespace std; typedef long long ll; int c[110][110]; //C[H][W] int brack[110][110]; int white[110][110]; int cnt = 0; int H, W; void slove(i...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

Re: 8クイーン問題

追加で質問です
19行めで%sとしているということは、文字列として扱っているということですね?
文字列の場合改行があればそこで、文字列が終了したことになり、次のループに進むということなんですか?
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

Re: 8クイーン問題

このような表を扱うときに、もうすこしやりやすい方法などないでしょうか? 配列の大きさに余裕を持たせて、行を先に処理される添字にすると、1行を1回のscanfで読み込むことができます。 /* 入力の練習 */ #include <iostream> #include <cstdio> #include <string> using namespace std; char board[10][10]; //ボードの配列を作成 int kimatteru_x[5]; //決まっているQの位置を保存しておく int kimatteru_y[5]; //決まっているQの位置を保存しておく int ma...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

Re: 8クイーン問題

上のようにgetcharを使い、入力表のEOFを飛ばして、配列に入らないようにすれば良いということですか? いいえ、飛ばすのはEOFではなく改行文字(LF、ASCIIコードなら0x10)です。 なるほど。char型で文字を受けとっていくと、改行文字も配列に入れてしますので、それを飛ばさないといけないわけですね。 このような表を扱うときに、もうすこしやりやすい方法などないでしょうか? 問題は新しいboardの配列を用意したら解けました。 /* 深さ優先探索 再帰関数 はじめから与えられている3点は無視してまずはただ単に問題を解き、回答が出たらその答えが 3点を含むものかどうかを調べて同じならo...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

Re: 8クイーン問題

入力の読み込み方が間違っているので、うまく入力を保存できないだけでなく範囲外アクセスを起こします。 入力のQを消さずにそのまま処理に使っているため、確かめてはいないですが誤判定の原因になるかもしれません。 入力が間違っているということなので、以下のようなプログラムを作って試してみました。 /* 入力の練習 */ #include <iostream> #include <cstdio> #include <string> using namespace std; char board[10][10]; //ボードの配列を作成 int main(void){ int cnt = 0; //入力...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

Re: 8クイーン問題

入力の読み込み方が間違っているので、うまく入力を保存できないだけでなく範囲外アクセスを起こします。 入力のQを消さずにそのまま処理に使っているため、確かめてはいないですが誤判定の原因になるかもしれません。 入力が間違っているということなので、以下のようなプログラムを作って試してみました。 /* 入力の練習 */ #include <iostream> #include <cstdio> #include <string> using namespace std; char board[10][10]; //ボードの配列を作成 int main(void){ int cnt = 0; //入力...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: 8クイーン問題
返信数: 9
閲覧数: 5767

8クイーン問題

atocoderというサイトで8クイーン問題を見つけたので、解いています 問題(http://arc001.contest.atcoder.jp/tasks/arc001_3) この問題を全探索と再帰関数を使い解を探索し(はじめから与えられている3点は無視してまずはただ単に問題の解を探す)、回答が出たらその答えがはじめに与えられた3点を含むものかどうかを調べて同じなら求める解とすればいいというような考え方でとこうと思いプログラムを書いたのですがうまく動きません。どこがいけないのでしょうか。ご教授お願いします。 #include <iostream> #include <cstdio> #inc...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: %cと%sの違い
返信数: 2
閲覧数: 35112

%cと%sの違い

大文字と小文字の組み合わせが同じであるかどうかを調べるプログラムを書いているのですが、その時に scanf("%c %c", &C, &c); scanf("%s %s", &C, &c); のどちらにすればいいのかよくわからなくなりました。 以下が書いたプログラムです。 #include <stdio.h> #include <ctype.h> int main (void) { char C, c, numC; scanf("%c %c", &C, &c); numC = toupper(c); //小文字を大文字へ if (C == numC){ printf("Yes\n"); } e...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: array initializer must be an initializer list or string
返信数: 3
閲覧数: 8871

Re: array initializer must be an initializer list or string

char str[21] = S[0]; 検証してないのでアレですが、たぶん、 #include <string.h> を加えた上で、 char str[21]; strcpy(str, S[0]); とかせねばならないのでしょう。 #include <stdio.h> #include <string.h> //strcpyを利用するため int main (void) { int N, max, add; int i, j, k; char S[1001][21]; int P[1001]; scanf("%d", &N); for (i = 0; i < N; ++i) { scanf...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: array initializer must be an initializer list or string
返信数: 3
閲覧数: 8871

array initializer must be an initializer list or string

c言語の勉強をしているのですが、コンパイラエラーが出ていまいます。原因が分からないのですが、何がいけないのでしょうか? エラーメッセージの内容 033-2.c:18:7: error: array initializer must be an initializer list or string literal char str[21] = S[0]; #include <stdio.h> int main (void) { int N, max, add; int i, j, k; char S[1001][21]; int P[1001]; scanf("%d", &N); for (i ...
by hogged
9年前
フォーラム: C言語何でも質問掲示板
トピック: Floating point exception: 8のエラー
返信数: 9
閲覧数: 14822

Re: Floating point exception: 8のエラー

やはり多倍長整数の型を作らないといけないようですね。 いいえ。この計算なら、各計算ごとにmodをとれば多倍長整数は必要ありません。 #include <stdio.h> #include <inttypes.h> #define MOD_BY UINT32_C(1000000007) /* a * b mod MOD_BY を計算する */ uint32_t mul(uint32_t a, uint32_t b) { uint32_t result = 0; while (b > 0) { /* 今の掛ける数が奇数なら、掛けられる数を結果に足す */ if ((b & 1) != 0) { ...

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