08/12/31 08:02:03 BE:378684285-PLT(43140)
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】 URLリンク(chomework.sakura.ne.jp)
【wiki】 URLリンク(www23.atwiki.jp)
前スレ
C/C++の宿題を片付けます 120代目
スレリンク(tech板)
2:デフォルトの名無しさん
08/12/31 15:00:12
janeの隠し機能
1.書き込みウィンドウを出し半角入力に切り替える
2.Wキーを押しっぱなしにする
3.Wキを押しっぱなしにしながらsageのチェックするところをおもむろにクリック
3:デフォルトの名無しさん
08/12/31 15:03:11
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
4:デフォルトの名無しさん
08/12/31 15:03:57
ひっかかった
5:デフォルトの名無しさん
08/12/31 15:23:55
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
6:デフォルトの名無しさん
08/12/31 15:58:20
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
7:デフォルトの名無しさん
08/12/31 18:33:49
南蛮戦時だよまったく
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
8:デフォルトの名無しさん
08/12/31 18:38:19
wwwwwwwwwwwwwwwwwwwwwww
9:デフォルトの名無しさん
08/12/31 22:20:15
やっぱ冬休みだから少ないのかね
10:デフォルトの名無しさん
09/01/01 02:32:12
wの数が?
11:デフォルトの名無しさん
09/01/01 02:41:43
Grass
wWWwwww
12:デフォルトの名無しさん
09/01/01 03:49:57
[1] 授業単元: プログラミング演習2
[2] 問題文(含コード&リンク):
引数として、「char型のポインタ(a)、int型整数(b)、int型2048以下の整数(c)」を渡し、
関数内で、受け取ったポインタ(a)の指定された位置のビット(b)から、11ビットで指定された整数(c)を書き込む。
というプログラム(関数)を書くのですが、どうもうまくいきません。よろしくおねがいします。
例えば引数が「*a, 3, 5」だったときは、
*aの3ビット目から11ビットで5(0000 0000 101)を書き込む。という感じです。
説明下手ですいません。
[3] 環境
[3.1] OS: WindowsXP home sp3
[3.2] コンパイラ名とバージョン: VisualC++6.0
[3.3] 言語: C
[4] 期限: 1月11日(できれば早いほうが助かります。)
[5] その他の制限: 特に無いです。
13:デフォルトの名無しさん
09/01/01 03:58:39
この前
10進数を16進数に変換せよ
って課題に
cin >> a;
cout << hex << a;
で提出したら課題が増えた
14:デフォルトの名無しさん
09/01/01 04:06:04
へーーっくすょん、なんか寒いな・・・
15:デフォルトの名無しさん
09/01/01 05:25:25
>>12
void unko(char * a, int b, int c)
{
int mask, i;
assert(0 <= c && c <= 2048);
for (mask = 2048; !(mask & c); mask >>= 1);
for (i = b - 1; 0 <= i && mask; --i, mask >>= 1) {
*a |= (c & mask ? 1 : 0) << i;
}
}
こういうことでいいのか?
16: 【小吉】 【1233円】 株価【45】
09/01/01 09:13:40
>>15
いったい何ビットの整数を扱うつもりなんだw
まあ、元がcharだから1バイトしか使えないが
>>12
その説明ではどうとでも取れる
書き込み後のバイト列を具体的に書け
ポインタ(b)で指定されたアドレスのMSBが1ビット目としてビッグエンディアンか?
それとも、LSBを1ビット目としてリトルエンディアンか?
17:デフォルトの名無しさん
09/01/01 09:40:00
>>16
そういう解釈もあるのか
何も考えずにシフト演算ならどっちでもいい気がしたんだが
18:デフォルトの名無しさん
09/01/01 12:10:53
[1] 授業単元:実践プログラミング 8.2 競馬
[2] 問題文(含コード&リンク):
(先生の配慮により問題が易しくなったようなのでもう一度)
次の課題A,Bから一方を選び,そこに書かれている数値について,
問(1) 100.0以上1000未満の数
問(2) 1000以上10000未満の数
問(3) 10000以上の数
はそれぞれいくつあるか数え表示するプログラムを完成せよ.
課題[A] JRAのホームページから左にある「競争成績」をクリックし,
下部にある過去の競争成績(カレンダー)から5阪(12月7日阪神)をクリック,
下のほうにスクロールすると11Rとあるがそこをクリックせずにその行の一番右にある
「最終オッズ」をクリック,その後,「3連単オッズ」をクリック.そこに表示されるページの表について。URLを入力するなどして
他のレースの数値についても同様にすぐに数値を数えられるプログラムにすること。(激難)
課題[B] 課題[A]が難しいので,通常はこちらを解くとよい.次のテキストは課題[A]の数値の一部を
コピー・アンド・ペーストしたものである.これを[Ctrl+C]でコピーし,scanfの入力において
[Ctrl+V]で貼り付け,[Ctrl+D]を入力すると入力を終え,数え始めるようにせよ.他の数値を入力
するときも,[Ctrl+D]を入力することで入力を終え,カウントできるように.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:2008年1月4日中山第11R(中山金杯)の発売締め切り時刻を提出期限とする.
[5] その他の制限:次回は「8.3 パチンコ」を学習します. 、だそうです。
19:デフォルトの名無しさん
09/01/01 12:33:19
>>18
回答を用意しているかどうか聞いとけ
20:デフォルトの名無しさん
09/01/01 16:53:32
>>18
前スレで言われたことわかってないな
URL入力では絶対に不可能なんだよ
21:デフォルトの名無しさん
09/01/01 17:29:10
>>18
#include <stdio.h>
int main()
{
double val;
int count[3] = {0};
while (scanf("%lf", &val) != -1) {
if (100.0 <= val && val < 1000) {
count[0]++;
} else if (1000 <= val && val < 10000) {
count[1]++;
} else if (10000 <= val) {
count[2]++;
}
}
printf("問(1) 100.0以上1000未満の数 : %d\n", count[0]);
printf("問(2) 1000以上10000未満の数 : %d\n", count[1]);
printf("問(3) 10000以上の数 : %d\n", count[2]);
return 0;
}
B
22:デフォルトの名無しさん
09/01/01 18:00:58
>>20
HTMLとJAVASCRIPTの知識があればできるんじゃね?
23:デフォルトの名無しさん
09/01/01 18:10:14
>>22
そうじゃなくて結果表示のページがPOSTリクエストの結果表示だから
URLだけじゃ不可能なんだよ
24:デフォルトの名無しさん
09/01/01 18:16:33
doActionとかいうメソッドの第二引数に何を渡すのかを探るのが重要であって、URLはそれほど重要じゃないってことだろ
25:デフォルトの名無しさん
09/01/01 18:22:30
>>23
確かに
26:デフォルトの名無しさん
09/01/01 18:25:11
でもブラウザにそのままソースを貼り付けてやったらちゃんと動いたけどこれじゃだめなの?
C言語でPOSTするプログラムを書くとかはできないのかな?
27:デフォルトの名無しさん
09/01/01 18:31:53
それリクエストの結果から動的に作成されたhtmlソース(AccessO)でしょ?
AccessOのURLだけを入手しても、リクエストの結果が埋め込まれてないから無意味。
28:デフォルトの名無しさん
09/01/01 18:51:16
*
***
*****
*******
*********
***********
*************
***************
*****************
*******************
この三角形を出力するプログラムを教えてください。
forを使った場合とwhileを使った場合。
29:デフォルトの名無しさん
09/01/01 18:54:24
>>26
そもそも cname を何処からか取得しなくてはいけないが、法則性が不明。
おそらく、競走成績のページ(accessS.html)から辿って行くしかない。
あと、おそらく宿題のフリした図抜けたバカのリクエスト。
30:デフォルトの名無しさん
09/01/01 18:54:30
断る
31:デフォルトの名無しさん
09/01/01 18:55:48
>>28 for の場合
#include <stdio.h>
int main()
{
int i, j, n;
n = 10;
for(i = 0; i < n; i++){
for(j = 0; j < n + i + 1; j++)
if(j <= n - (i + 1))
putchar(' ');
else
putchar('*');
putchar('\n');
}
return 0;
}
32:デフォルトの名無しさん
09/01/01 20:56:38
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
33:デフォルトの名無しさん
09/01/01 21:06:44
>>32>>34
何このアホ
34:デフォルトの名無しさん
09/01/01 21:15:31
?
35:デフォルトの名無しさん
09/01/01 21:17:54
forとwhileってどっちの方が
いいんですか?
36:デフォルトの名無しさん
09/01/01 21:20:08
どっちでもいいよ
ループの境界条件に関して
一定の形式でまとめられるforの方が
可読性がいいのではないかという意見もあるけど
まぁどっちでも
37:デフォルトの名無しさん
09/01/01 21:21:28
>>35
機械にとっては大差ないんじゃね?
forの方が決まりが多いから、その分、読み手に分かりやすく書けると思う。
38:デフォルトの名無しさん
09/01/01 21:25:39
一般的にどちらの方が多く使われてるとか
ありますか?
39:デフォルトの名無しさん
09/01/01 21:26:24
>>38
アンケートをとってきなさい
40:デフォルトの名無しさん
09/01/01 22:35:12
>>31
解くコツとかあるんですか?
俺そんなすぐにはとけません・・
41:デフォルトの名無しさん
09/01/01 22:43:40
>>40
絵に描いて考えればわかるんじゃない?
42:デフォルトの名無しさん
09/01/01 22:45:14
>>41
えっ!?
43:デフォルトの名無しさん
09/01/01 23:01:20
>>40
別解だが山を二つに区切っちゃおう というのがあるよ
頂点の*の右側を垂直に直線を下ろし、それを境界として考える
上からx行目の空白は10-x個、右側の*はx個、左側の*はx-1個
int i,j,k; // iは空白、jは右側の*、kは左側の*
int line; //行数をカウント
for(line = 1;line <= 10;line++) {
for(i = 10;i > line;i--) printf(" "); //まず空白
for(j = 1;j <= line;j++)printf("*") //左側の個数の*を出力
for(k = 1;k <= line - 1;k++)printf("*") //右側の個数の*を出力 k <= line - 1 に注目
putchar('\n'); //改行
}
テストしてないけどまあ大丈夫じゃね?
44:デフォルトの名無しさん
09/01/01 23:10:15
つセミコロン
45:デフォルトの名無しさん
09/01/01 23:11:24
それやるんだったら
x行目の空白は10-x個、*は2x-1個でいいじゃん
何のために分割してんの?
46:デフォルトの名無しさん
09/01/01 23:12:11
ついでに、空白の数をwhileの停止条件にすれば、
forとwhileの両方を満たせるなw
47:デフォルトの名無しさん
09/01/01 23:23:57
まあひとつずつ書いていった結果じゃね?w
分割はちょいイミフだがw
48:デフォルトの名無しさん
09/01/02 00:06:36
きっと>>43は宿題出した教授で
何人コピペしてくるか調べたいんだよw
49:デフォルトの名無しさん
09/01/02 00:08:08
>>40
コツってわけじゃないけど、おれの場合こんな流れかな
問題を見つける(質問投稿から 106秒)
空白と*が左上から順に1つずつ表示される様子をイメージする(+20秒)
複数行にまたがる出力なので、そこでまず for ループ1個書く(+10秒)
1行の中でで処理を反復するのでそこでも for ループを1個書く(+10秒)
ループに必要な変数を記述(+20秒)
どういう条件で*が出るかを考えて(+20秒)
実際に書き下す(+10秒)
コンパイル(+3秒)
実行(+2秒)
頂点が1つ足りないので条件を修正(+10秒)
コンパイル(+3秒)
実行(+2秒)
*の右側にも空白を書いていたことに気づく(+15秒)
内側の for ループの条件を修正(+20秒)
コンパイル(+3秒)
実行(+2秒)
出力は問題なさそうだが、main の return 0; を忘れていたので加筆(+2秒)
コンパイル(+3秒)
実行(+2秒)
Janeの書き込みボタンを押してウィンドウを開く(+2秒)
一言書く(+4秒)
ソースを全選択してコピー(+1秒)
書き込みウィンドウにペースト(+1秒)
書き込み投下(+1秒)
50:デフォルトの名無しさん
09/01/02 00:32:21
そして一生の後悔
51:デフォルトの名無しさん
09/01/02 01:03:30
別解示すならこれくらいでないと
取りあえず、2重ループを排除
char *s = "*******************";
char *p;
int n;
for(n = 10, p = s + 18; n < 20; n++, p -= 2) {
printf("%*s\n", n, p);
}
52:デフォルトの名無しさん
09/01/02 07:45:41
>>28
while使った場合
#include <stdio.h>
int main(void)
{
int i = 0, j;
while(j = 10 - i++) {
while(--j > 0) putchar(' ');
while(++j < i << 1) putchar('*');
putchar('\n');
}
return 0;
}
53:デフォルトの名無しさん
09/01/02 08:59:25
while(j = 10 - i++) (・∀・)
54:デフォルトの名無しさん
09/01/02 09:26:18
>>53
55:デフォルトの名無しさん
09/01/02 09:30:05
54 名前:デフォルトの名無しさん 投稿日:2009/01/02(金) 09:26:18
>>53
56:デフォルトの名無しさん
09/01/02 09:31:23
while(j = 10 - i++) while(j = 10 - i++) while(j = 10 - i++)
while(j = 10 - i++) while(j = 10 - i++) while(j = 10 - i++)
今年一発目の・・・なぁ~にぃ~!?やっちまったな!
57:デフォルトの名無しさん
09/01/02 09:31:49
>53-55が何を言いたいのか理解できない
58:デフォルトの名無しさん
09/01/02 09:33:50
やべえ>>52程度が理解できないバカがいるとはw
59:デフォルトの名無しさん
09/01/02 10:10:58
C言語の0以外ならばTRUEという仕様を利用しているんでしょ。
60:デフォルトの名無しさん
09/01/02 10:18:03
=だけ見て脊髄反射したのか
61:デフォルトの名無しさん
09/01/02 10:42:43
#include <stdio.h>
int main(void){
int i;
printf("%d\n", i = 10);
return 0;
}
62:デフォルトの名無しさん
09/01/02 10:48:34
>>59=>>60
あの程度の不備が理解できないなら、プログラミングなんてやらない方が良いぞ、ド素人
63:本当の馬鹿
09/01/02 10:50:08
58 名前:デフォルトの名無しさん 投稿日:2009/01/02(金) 09:33:50
やべえ>>52程度が理解できないバカがいるとはw
やべぇ、あのコードの不備が理解できない知ったか大馬鹿がいるとはw
人間、年を取ると自信過剰になって、指摘する人間に圧力をかければ
自分が正当化され、正しいことを言っていると勘違いするようだな。
まるで、あの集団のように。ただ、行き過ぎて、自分らが間違っていることに
選挙で負けて気づくと。
64:デフォルトの名無しさん
09/01/02 10:55:57
>>52 は都合よくコンパイラが解釈して通すが、繰り返しの条件判定としては不適切。
指摘されて、気づかないくらい、自分が正しいと思い込んでいるんでしょうね。
逆に、指摘した側が知らないと思い込んでもいるようだし。
65:デフォルトの名無しさん
09/01/02 10:57:40
>>64
何かと勘違いしてるんだろうけど、評価順は決まってるよ。
66:デフォルトの名無しさん
09/01/02 11:08:20
インクリメントでコンパイラ依存になるのってどんな場合だったっけ?思い出せない
67:デフォルトの名無しさん
09/01/02 11:11:37
>>58
知能が低い奴ほど罵倒発言を平気でする。自分が馬鹿だと言う事にも気づかず、
擁護してくれる人がいないからって、IDのない板で、自作自演で複数を装うやり方もするしな。
コンパイラが通すんだから良いんだろ?って考えだろ。while文の括弧の中は、
本来は条件式が入るんだが、それは代入だろ。例え括弧で代入式を括っても、
それに対して条件式にあう措置をとるべき。
まぁ、コンパイラ任せの未熟者がプログラミングに手を出す時代になったってことだな。
68:デフォルトの名無しさん
09/01/02 11:16:06
>>67
だから代入したあとにその代入した値が評価値になるんだろ?>>61見ろよ。
69:デフォルトの名無しさん
09/01/02 11:18:58
while(j = 10 - i++) 代入と条件判定式の区別がつかないゆとり?
70:デフォルトの名無しさん
09/01/02 11:23:39
>>69
0以外がTRUEだから条件文は10でも100でも1000でも-1000でもいいの
#include <stdio.h>
int main(void){
int i;
if(i = 10) printf("Hello World!");
return 0;
}
71:デフォルトの名無しさん
09/01/02 11:25:49
>>67
whileの括弧の中は条件式じゃなく、値だ。
そして代入演算子の値は代入後の変数の値。
なんかコンパイラが都合よく解釈してくれていると勘違いしているようだが、
>>52は完全にCの文法に合致してるぞ。
72:デフォルトの名無しさん
09/01/02 11:30:19
if(A) を if(A > 0) と書いちゃう人だから相手にすんな
73:デフォルトの名無しさん
09/01/02 11:30:40
それは自由だ。
74:デフォルトの名無しさん
09/01/02 11:46:49
>>66
こんなか?
#include <stdio.h>
int main(){
int i=10;
i=10;
i=(i++);
printf("%d\n",i);
i=10;
i=(i++)+0;
printf("%d\n",i);
//
i=(i++)+100;
printf("%d\n",i);
i=10;
i=(i++)+(i++);
printf("%d\n",i);
//
i=10;
int j;
j=(i++)+100;
printf("%d\n",j);
i=10;
j=(i++)+(i++);
printf("%d\n",j);
return 0;
}
75:デフォルトの名無しさん
09/01/02 11:51:14
相手を罵倒したり、必死に否定して間違っている自分を正当化する奴は、余計に信じられない。
不適切、適切の区別もつかないような奴がプログラミングをやると、最悪、予期できるのに
自らの不手際で考えられないバグを出すから困る。
76:デフォルトの名無しさん
09/01/02 11:54:02
>>74
これもか?
#include <stdio.h>
int main(){
int i=10;
i=(++i);
printf("%d\n",i);
i=10;
i=(++i)+0;
printf("%d\n",i);
//
i=(++i)+100;
printf("%d\n",i);
i=10;
i=(++i)+(++i);
printf("%d\n",i);
//
i=10;
int j;
j=(++i)+100;
printf("%d\n",j);
i=10;
j=(++i)+(++i);
printf("%d\n",j);
return 0;
}
77:デフォルトの名無しさん
09/01/02 11:55:08
>>75
世の中にバカがひとりも居ないなら兎も角、
全員が間抜けなのに、何を言っているんだ?
78:デフォルトの名無しさん
09/01/02 11:59:40
なにやら喚いてる奴は
if( !( fp = fopen( ~ ) ) )
とかも許せないんだろうか
79:デフォルトの名無しさん
09/01/02 12:03:22
>>77
こんにちは、間抜け
80:デフォルトの名無しさん
09/01/02 12:10:53
>>79
ディルバートの法則も読んだことが無いなんて・・・
81:デフォルトの名無しさん
09/01/02 12:37:34
>>76
>i=(i++)+100;
の前にi=10;が抜けているな。
>>74も
82:デフォルトの名無しさん
09/01/02 12:38:15
>>80
ユークリッドの原論も読んだことがないようだな
83:デフォルトの名無しさん
09/01/02 12:42:56
弱い犬ほどよく吠える とは言ったものだ。素人以下の基地外が、こんな時期に
寂しく過疎ってるスレで、IDが出ないからって自作自演で擁護してファビョってやがるぜ。
84:デフォルトの名無しさん
09/01/02 14:20:40
麻呂の初暴れか
大喜びで揚げ足とったつもりで自分だけが間違うって、何度やっても学習しないな。
85:デフォルトの名無しさん
09/01/02 14:57:10
>>67
条件判定式が返す「値」で判定するんであって、判定式が必須じゃないんだがw
よく無限ループで使われるwhile(1)についてはどう思ってるの?
86:デフォルトの名無しさん
09/01/02 20:12:52
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:1月9日
[5] その他の制限:特にないです。
87:デフォルトの名無しさん
09/01/02 20:38:19
>>86
URLリンク(kansai2channeler.hp.infoseek.co.jp)
88:86
09/01/02 21:48:44
>>87
ありがとうございました。
89:デフォルトの名無しさん
09/01/03 02:39:12
>>85
知ったか無知乙。whileの中が条件式ではなく、代入式なんだが?w
それから、条件式の真偽でif文にしろ判定していることくらい、周知のこと。
何を指摘されたか分からないなら、黙ってろ。
>>84=本物の馬鹿麻呂
自分で言ってて恥ずかしくない?お前にとって、指摘する奴=麻呂って何それ?w
90:デフォルトの名無しさん
09/01/03 02:41:12
さらに、条件式でなくても、while(1)などで分かるように、そこに変数を用いて
その変数が0か否かで判定するやり方も知っているが、
>>52は
while(j = 10 - i++) {
どーーーー考えても代入式です、ありがとうございますたwwwwwww
さてと、自信過剰知ったか無知は以後放置よろ。質問スレでも大ボケかましたよ。
識 別 子 (笑)
91:デフォルトの名無しさん
09/01/03 02:42:53
眠いね
92:デフォルトの名無しさん
09/01/03 02:44:02
a = b = 10;
93:デフォルトの名無しさん
09/01/03 02:47:44
>>90
横槍ですまんが、>>52の
int i = 0, j;
while(j = 10 - i++){
これって10回ループしたら抜けないの?
俺の知識がおかしいのか…
94:デフォルトの名無しさん
09/01/03 02:50:12
while(*dst++=*src++);
この有名な文字列コピーの手法はどう見ても代入式ですw
95:デフォルトの名無しさん
09/01/03 02:51:57
>>93
冬休みなだけだよ
96:デフォルトの名無しさん
09/01/03 02:52:46
>>95
こいつは年中無休だからw
97:デフォルトの名無しさん
09/01/03 02:54:03
>>93
jに代入される数が10から0まで減っていくから、問題なくループは終了するよ。
98:デフォルトの名無しさん
09/01/03 02:54:10
[1] 授業単元:cプログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 日曜午後6時
[5] その他の制限:よろしくお願いします。
99:デフォルトの名無しさん
09/01/03 02:54:53
明らかにこの辺と呼応してるし。同じヤツだろ。
普段いるやつじゃないよ。
スレリンク(tech板:503番)
100:デフォルトの名無しさん
09/01/03 02:55:36
>>95 >>97
そっか
ありがとー
101:デフォルトの名無しさん
09/01/03 02:57:01
52はwhileの中に代入式を書くという技巧を見せつけたかったってことでいいじゃないか。
規格上何ら問題なくコンパイルは通るのも事実だし、
それを初心者に見せびらかして自慢すべき事柄ではないのもその通り。
102:デフォルトの名無しさん
09/01/03 03:01:17
>>99
最近この板に来た人?
こいつは何年もC系のスレでファビョりまくってるアホだから。
103:デフォルトの名無しさん
09/01/03 03:09:51
俺は52なんだが、まさかこんなことになるとは思わなかった。
単に行数減らしたかったから()内で代入しただけなんだが。
>>92
まさかこの程度のことで技巧とか自慢とか言われるとは思わなかったw
104:デフォルトの名無しさん
09/01/03 03:10:21
>>92ってなんだw
>>101の間違いね
105:デフォルトの名無しさん
09/01/03 03:15:06
while(j = 10 - i++)
どう考えても、while文の中は代入式で、条件式ではありません。
コンパイラも、ここの部分に対しては警告を出しているし。
while文の使い方や説明を見直すことを、お勧めします。
何を指摘されたのか分からないなら、今すぐプログラミングなんて
お止めになった方が、今後の人生のためですよ。人間、適性なんて
やってみなければわからないものですからね。これ以上、自分の
適性に合わないプログラミングは、死ぬまでの人生を無駄にしますよw
106:デフォルトの名無しさん
09/01/03 03:19:39
while()の括弧内が代入式でもCの規格として何の問題もありません。
代入式でなければいけないと主張するのならば、根拠を示してください。
107:デフォルトの名無しさん
09/01/03 03:20:05
>>105
別にコンパイラが警告出したっていいんじゃない?
動くし。
FILE *fp;
if(!(fp = fopen("hoge.txt", "r"))) return 1;
みたいなのと一緒だと認識してる
違うんかな?
108:デフォルトの名無しさん
09/01/03 03:22:17
while(j = 10 - i++)
jが0か否かで判定するのもありだが、これはどう考えても
代入式
だ罠。分からないなんて、どこのクズ講師だよ?
変な自身を持っているのも、迷惑だな、生徒が。
こんな奴にだけは、絶対に習いたくないね。
教える立場だから、間違っては困るにしろ、間違っていても
指摘した人間を陰湿に罵倒して正当化する性格になってしまったんだね。
生徒も低レベルなんだろうけど。
109:デフォルトの名無しさん
09/01/03 03:22:56
代入式で警告出るのは==を=にするミスが多すぎたからじゃなかったっけ?
昔は出なかったから、定数を左に書くテクニックとかあったわけだし。
110:デフォルトの名無しさん
09/01/03 03:23:40
>>108
>>94についてはどう思う?
111:デフォルトの名無しさん
09/01/03 03:28:26
誰も j = 10 - i++ が代入式じゃないとは言ってないのに。
Cの規格として代入式でも全く問題ないって言ってるのが理解できないのか?
112:デフォルトの名無しさん
09/01/03 03:31:08
いや・・・・どうみてもこいつは・・・・・
つられるなよお前ら・・・・・・・・・
113:デフォルトの名無しさん
09/01/03 03:32:20
>>111
お前こそ、それが規格上問題ないということに誰も異論を述べていないことに気付け。
推奨される書き方ではないからやめろと言われ続けているだけだ。
114:デフォルトの名無しさん
09/01/03 03:33:22
まぁ、議論(?)はそのくらいにして
みんなで>>98でもやろうぜ。
fgetsでchar型配列を使わないってなんだろ
ポインタ使えってことかな
115:デフォルトの名無しさん
09/01/03 03:37:05
>>98
#include <stdio.h>
int main() {
int k, c, l, n, m=0;
for (k = 0; k < 3; k ++) {
for (n = l = 0; (c = getchar()) != '\n'; l ++) {
if (l == 0 && c == '-') {
printf("Error!!負の数\n");
return 1;
}
if (l < 8) {
if (c < '0' || c > '9') {
printf("Error!!数字文字以外の入力\n");
return 1;
}
n = n * 10 + c - '0';
}
}
if (l == 0) {
printf("Error!!改行のみの入力\n");
return 1;
}
m += n;
}
printf("合計は%d\n", m);
return 0;
}
116:デフォルトの名無しさん
09/01/03 03:37:24
fgetcの間違いなんじゃね?
117:デフォルトの名無しさん
09/01/03 03:41:17
代入式を使う場合のヒント
(FILENAMEはファイル名を示すものとする)
if( (fp=fopen(FILENAME , "r")) == NULL )
何かついているよね?fp=fopen() だけで、果たして通用するかにゃ~? ( ^ω^)
fpの中身で条件判定するにしても、何かあるよにゃ~♪
118:デフォルトの名無しさん
09/01/03 03:43:10
真である事を条件にするならfp=fopen()で通用するだろ。
119:デフォルトの名無しさん
09/01/03 03:51:46
真:0以外
偽:0
これが全てじゃね?
120:デフォルトの名無しさん
09/01/03 03:53:52
コードが多くて申し訳ありません。
[1] 授業単元:画像処理演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
mypgm.hのコード:URLリンク(kansai2channeler.hp.infoseek.co.jp)
minutiae.cのコード:URLリンク(kansai2channeler.hp.infoseek.co.jp)
labeling.cのコード:URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題に用いる画像サンプル:URLリンク(www.uploda.org)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:09年1月11日24:00まで
[5] その他の制限:説明文が下手ですいません。C言語の基礎的な関数のみでお願いします。
121:デフォルトの名無しさん
09/01/03 03:55:58
結局、文法上 while(式) のところを while(代入式) だと勘違いしていただけでしたとさ。
122:デフォルトの名無しさん
09/01/03 03:57:06
違った、代入式じゃなくて条件式に訂正。
123:デフォルトの名無しさん
09/01/03 04:10:14
そもそも、ifだのwhileだのforだの、C言語に限ったことじゃないから
プログラミングをお止めになった方がよろしいかと?思われているんだが。
124:デフォルトの名無しさん
09/01/03 04:13:15
>>56
>>62
>>63
>>64
>>67
>>69
>>75
>>83
>>89
>>90
>>105
>>108
>>113
>>117
>>123
お前が止めろw
125:デフォルトの名無しさん
09/01/03 04:13:56
!= == < > <= >=のことなら比較演算子、それを使った式は比較式というほうが正確だよ。
whileやifの中身の意味で条件という言葉の用法もあるから混同しないで。
>>123
大抵のよその言語はコンパイルエラーになるから親切だ。
126:デフォルトの名無しさん
09/01/03 04:17:22
どこにC言語以外の話があったのかわからない
127:デフォルトの名無しさん
09/01/03 04:20:35
123という書きこみ自体だけだな
128:デフォルトの名無しさん
09/01/03 04:21:40
だからぁ、議論(?)は止めて>>120でもやろうぜ。
俺?
眠いからパス
129:デフォルトの名無しさん
09/01/03 04:23:23
どこの講師か知らんが、まじウザッ。while文も適切に使えない、教えられないで
教師なんてやるなよw
130:デフォルトの名無しさん
09/01/03 04:32:39
思い込みの激しい>>129に適切にwhileを教えることのできる教師なんていないだろうなw
131:デフォルトの名無しさん
09/01/03 04:33:55
分かったからそういうスレでやれ
132:デフォルトの名無しさん
09/01/03 04:58:14
これからは、このスレでは while(代入式) でも良いそうですよ?w
133:デフォルトの名無しさん
09/01/03 07:35:14
ほっほっほ、麻呂の今朝の食事は、スパゲッティーミートクソースでおじゃるが、何でおじゃる?
麻呂は余計な口出しはしないでおじゃるよ。勝手に議論してたもう。
ただし、このスレのスレタイを読んで、スレ違いだと気づいて、それ相応のスレで
議論するでおじゃるよ。いつまでも譲らない二者で。第三者を巻き込まないでたもう。
134:デフォルトの名無しさん
09/01/03 07:50:10
>>78
それは括弧がついているんだが?w
135:デフォルトの名無しさん
09/01/03 07:53:13
>>134
代入式を真偽として扱うのがいやなわけじゃないんだな
136:デフォルトの名無しさん
09/01/03 08:54:13
>>101
アホか
137:デフォルトの名無しさん
09/01/03 08:59:23
みんな、落ち着けよ。
代入式が値を持つことを知らないCプログラマなんて、いるワケ無いだろ。
138:デフォルトの名無しさん
09/01/03 09:26:55
今北産業
139:デフォルトの名無しさん
09/01/03 10:14:52
>>134
OKOK、じゃあ
if( fp = fopen( ~ ) ) printf("ファイルオープン成功\n");
にするよw
実用的なところだとassert( fp = fopen( ~ ) )とかどうよw
140:デフォルトの名無しさん
09/01/03 10:25:58
j=10-i++ が代入式ではなく、条件式なんだってさー えーーーっ!?
141:デフォルトの名無しさん
09/01/03 10:28:48
>>140
Cの条件式が論理演算子を必要としないのは最初に習うだろ。
142:デフォルトの名無しさん
09/01/03 11:25:42
>>120
もっと他に情報ないの?
143:デフォルトの名無しさん
09/01/03 11:35:30
>139
> 実用的なところだとassert( fp = fopen( ~ ) )とかどうよw
そして NDEBUG を定義するとまともに動作しないプログラムができあがるわけだな。
assert 内で副作用のある式を評価しちゃ駄目。
144:デフォルトの名無しさん
09/01/03 11:55:59
スレリンク(tech板:395-399番)
やっぱり気持ち悪がられてるw
145:139
09/01/03 12:42:18
('A`)
たしかに、全然実用的じゃなかった
いつもは>>78だからなあ
146:デフォルトの名無しさん
09/01/03 12:43:33
なんで「文法上問題ない」はスルーなんだよw
147:デフォルトの名無しさん
09/01/03 14:08:39
>>137でFAなんだがな
みんなわかってるよな?
148:デフォルトの名無しさん
09/01/03 14:10:42
暴れてるのがCプログラマじゃないとしたら?
149:デフォルトの名無しさん
09/01/03 15:53:58
>>120
URLリンク(cis.k.hosei.ac.jp)
まず、「真マニューシャ」「偽マニューシャ」の定義がわからん。
下記では、"true minutiae"はエキスパートが抽出したマニューシャ、
"false minutiae"はアルゴリズムが抽出した点で、"true minutiae"に含まれて居ないもの。つまりハズレ。
URLリンク(books.google.co.jp)
「選別」と言うのは、minutiae.cの結果から、本来の定義のマニューシャだけを残すということのようだが、
pdfの18ページをみると「真マニューシャ」に含まれない端点の基準とかが分からない。
150:デフォルトの名無しさん
09/01/03 17:12:38
>>147
コンパイラの警告が見えない馬鹿ですね?w
151:デフォルトの名無しさん
09/01/03 17:13:45
>>150
警告がどうしたんだ?
152:デフォルトの名無しさん
09/01/03 17:17:39
つべこべ言ってないで
>>52を正しく直してみろ!!
153:デフォルトの名無しさん
09/01/03 17:17:53
最近は似非プログラマーがC言語を扱っているノカー、時代は変わったもんだな。
while文すらまともに使えないなんて、終わってますね。進路を変えな、今すぐ。
その程度じゃ人生を失敗するぞ。
154:デフォルトの名無しさん
09/01/03 17:22:06
>>152
正しいから、これ以上、直らないだろ。
155:デフォルトの名無しさん
09/01/03 17:28:58
>>153
さすが人生失敗してる人が言うと説得力が違うw
156:デフォルトの名無しさん
09/01/03 17:41:44
>>120
labelsetの処理はなんとかならんもんかね。
>>149
多分、>>120の講義では指紋照合についてプログラムを書くということをやってるっぽい(ググった)。
・指紋の線の端点だと確定できる点を真マニューシャ
・指紋の線の端点だと確定できない点を偽マニューシャ
と定義してるくさい。
指紋認証だと、スキャナに指を押し付ける力加減により、スキャンする指の画像が変わってくる。
画像の境界線上にできる点を偽マニューシャと呼びたいたいのではないかと思う。
そこで、問題の意図としては、「その境界線をどうやって判断するのか?」を解かせようとしてるのかも
(処理思いつかんが)。
つーか、ほとんど推理ゲーだな。
157:156
09/01/03 17:56:33
>>149
すまん。
境界線ではなく、同じラベル中で距離が近い点を全部消してるのかも。
どの程度の距離かは不明だけど。
158:デフォルトの名無しさん
09/01/03 21:57:05
>>157
稜線上の距離が基準だとすると、以下の二つの扱いが納得できない。
URLリンク(up2.viploader.net)
URLリンク(up2.viploader.net)
下の点は、本当に消えるべき点なのだろうか?
159:デフォルトの名無しさん
09/01/03 23:08:03
実用とほとんど関係の薄い問題を解かせて何が楽しいんだろ。教授の自己満足か。
160:デフォルトの名無しさん
09/01/03 23:10:21
>>159
技術ありき
実用にするかどうかはアイディア次第
161:デフォルトの名無しさん
09/01/03 23:12:16
>>159
パターン認識の実用がどんなか知らないが、これは指紋の照合では基礎なのでは?
162:157
09/01/03 23:39:52
>>158
申し訳ありません。
距離を基準とすると下の点は消えるべきではないですね。
取り下げさせていただきます。
163:デフォルトの名無しさん
09/01/04 00:02:47
>>162
依頼にも「同じ隆線上で近接して出現 したマニューシャは」云々と書いてあるし、なにかしてるはずだけど・・・
pdfに載ってる処理結果を見ると、他にも何か処理をしていなくては、辻褄が合わない。
それこそ境界線上の端点の除外とか。
工夫を考えろと言うことなのかな。
164:デフォルトの名無しさん
09/01/04 01:57:57
>>143
詳説もとめます。
165:120
09/01/04 02:03:11
山ほど説明不足でホントにすいませんでした。マニューシャの定義などは、すべて下のファイルに入っています。
ただ、課題でHilditch.cを使うかは分かりません。
URLリンク(www1.axfc.net)
(pass:1)
マニューシャについては11のpdf、Hilditch.cをつかって,細分化するコードについては10のpdfに書いてあります。
丸投げでごめんなさい。
166:デフォルトの名無しさん
09/01/04 02:05:11
訂正:URLリンク(www1.axfc.net)の He_177945.zip です。(pass:1)
何度も迷惑かけてすいません・・・
167:デフォルトの名無しさん
09/01/04 02:12:06
>>164
>>143ではないが、assert(expr)は、NDEBUGが#defineされているときにはexprが評価されない。
実装によるが、たいていマクロだから副作用がある式を評価させてはならない。
とりあえず、自分の環境のassert() (多分assert.hにでも書いてある)を読んでみるといいよ。
168:デフォルトの名無しさん
09/01/04 02:48:09
>>166
学校のサイトはもう見つけた。>>149
169:デフォルトの名無しさん
09/01/04 02:50:36
>167
一応補足。
C言語規格 9899:1999 7.2/1 によれば #include <assert.h> 時に NDEBUG が定義されている場合、assert は以下のように定義される。
#define assert(ignore) ((void)0)
ということで、expr 部分(上だと ignore だが)全体が消滅する。
# ちなみに 7.2/2 では関数じゃなくてマクロで実装しろと規定されている。
そもそも assert とはプログラムのバグ(ロジックエラー)を引っかけるものであって、実稼働中に発生するようなエラーに対処するものではない。
ということで例えば VC++ だと Release ビルドでは既定で NDEBUG が定義されたりする。
結果、assert 内に副作用のある式を記述してしまうと、Debug ビルドと Release ビルドで挙動が異なるコードを生み出してしまう。
170:デフォルトの名無しさん
09/01/04 02:53:30
>169 != >167 で >169 では >164 に対する返答補足のつもり。
171:デフォルトの名無しさん
09/01/04 03:07:44
HTMLテキストデータから数値(浮動小数点)のみを順に抽出して
いきたいのですが、どういう風にすればよろしいでしょうか?
ご教授ください。
172:デフォルトの名無しさん
09/01/04 03:10:41
>>1
173:デフォルトの名無しさん
09/01/04 03:10:42
>>171
HTMLテキストデータのサンプルくらい提示して欲しいもんだ
174:デフォルトの名無しさん
09/01/04 03:26:16
>>171
後付で条件足すなよ!
#include<iostream>
#include<iterator>
#include<string>
#include<cstdlib>
#include<cctype>
int main(){
std::string src;
copy(std::istreambuf_iterator<char>(std::cin),std::istreambuf_iterator<char>(),back_inserter(src));
for(const char*s=src.c_str();;){
if(*s=='\0')break;
if(std::isspace(*s))++s;
char*next=const_cast<char*>(s);
std::strtod(s,&next);
if(s == next){++s;continue;}
std::cout.write(s,next-s);
std::cout << std::endl;
s = next;
}
}
175:デフォルトの名無しさん
09/01/04 03:29:27
2箇所訂正
#include<algorithm>
が抜けているのでcctypeの下に追加
if(std::isspace(*s))++s;
が空白1つにしか対応できていないので
任意個数の空白に対応するためにcontinueするする
if(std::isspace(*s)){++s;continue;}
176:デフォルトの名無しさん
09/01/04 04:54:08
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:特にはありません。よろしくお願いします。
177:デフォルトの名無しさん
09/01/04 05:25:09
>>176
一応元のコードをベースにしたけどこんなんでおk?
#include <stdio.h>
#include <math.h>
int main(void)
{
{ int i, n, Limit;
n = 0x7FFFFFFF;
for(;;--n){
Limit=(int)sqrt(n);
for (i=Limit;i>1;i--)
if (n%i == 0)break;
if (i==1)break;
}
printf("int型の最大の素数は%dです\n",n);
}{ unsigned int i, n, Limit;
n = 0xFFFFFFFF;
for(;;--n){
Limit=(unsigned int)sqrt(n);
for (i=Limit;i>1;i--)
if (n%i == 0)break;
if (i==1)break;
}
printf("unsigned int型の最大の素数は%uです\n",n);
}
return 0;
}
178:デフォルトの名無しさん
09/01/04 05:32:48
INT_MAXとかを使った方がいいと思う
179:デフォルトの名無しさん
09/01/04 05:42:11
>>178
それを使うか悩んだんだけど、limits.hを授業でやったか分からない。
それとintのサイズが32bitであると問題文でわざわざ定義されている。
そんな感じで、今回はマジックナンバーを決めうちで実装した。
180:デフォルトの名無しさん
09/01/04 06:24:02
麻呂のクソースではおじゃるね、まずそれぞれの変数に-1を入れてやんよ?
さすれば、何ビットだろうとその変数が扱える最大のFFFF・・・になるでおじゃるし。
え?邪道?それがクソースでおじゃっ!
181:デフォルトの名無しさん
09/01/04 06:32:22
unsigned int uint=-1;
signed int sint=uint>>1;
printf("uint:%u \nsing:%d\n",uint,sint);
きんもぉ~★なクソースでおじゃっ
182:デフォルトの名無しさん
09/01/04 07:06:07
>>176
URLリンク(kansai2channeler.hp.infoseek.co.jp)
183:デフォルトの名無しさん
09/01/04 07:36:40
[1] 授業単元:アルゴリズムの基礎および演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年1月10日12:00まで
[5] その他の制限:特にありません。
よろしくお願いします。
184:デフォルトの名無しさん
09/01/04 09:47:19
丸投げキター!
1段1次のRunge-Kuttaと称してEuler法で解いてやりたい
185:176
09/01/04 10:19:18
>>177
>>182
ありがとうございます。
助かりました。
186:デフォルトの名無しさん
09/01/04 11:52:08
>>120
(2)だけ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
(1)は、結局、求められているものが分からない。
ろだからファイル消してるくらいだから、もう此処見てないかも知れないけど・・・
187:C初心者
09/01/04 12:12:38
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):ポインタを用いた二分探索木の作成
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:データはファイルから読み込むものとしています。
他のスレでも質問させてもらったのですがどうしてもわからないので、ここで質問させて頂きます。
宿題ではあったのですが、もう期限は過ぎています。
ただどうしても知りたいのでどなたかお願いします。あとオススメの参考書等教えていただけると嬉しいです。
188:デフォルトの名無しさん
09/01/04 12:31:13
>>187
URLリンク(oku.edu.mie-u.ac.jp)
>『C言語による最新アルゴリズム事典』
189:C初心者
09/01/04 17:37:39
>>188
ありがとうございます。 早速注文しました。
プログラムはわかりませんか??
190:デフォルトの名無しさん
09/01/04 17:40:01
>>189
今すぐ買って来いバカ
191:おねがいしますw
09/01/04 17:44:13
[1] 授業単元: アルゴリズムデータ構造Ⅱ
[2](コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
問題文
[1]list3.cの演習の部分を埋め、完成させ動作を確認せよ
[2]逆順に整列入力するようにプログラムを作り変えよ
[3]環状リストの処理をダミーノードを設定せずに作ってみよ
[4]双方向リストの処理をダミーノードを設定せずに作ってみよ
問題は以上です お願いします
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C言語)
[4] 期限: ([1月6日9:00までに願いします] )
192:デフォルトの名無しさん
09/01/04 21:57:00
>>191
元からバグってるとかねーだろ。
193:デフォルトの名無しさん
09/01/04 22:15:05
そんなこと無いよ。deleteに小さい値渡すとsegfaultになるとか絶対ないよ
194:デフォルトの名無しさん
09/01/04 22:22:56
そんなこと無いよ。insertに先頭と同じ値を渡してもリストは壊れるとか絶対ないよ
195:デフォルトの名無しさん
09/01/04 22:32:06
見辛いし、全部作り変えたほうがいいじゃんwww
196:デフォルトの名無しさん
09/01/05 00:10:56
>>189
リンク先のtree.cってソースがそれだろ?
197:デフォルトの名無しさん
09/01/05 00:20:19
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
文字データの入力と出力 Visual Studioを用いてConsoleApplicationを作成せよ。
以下の条件を満たすものを作成する事。
最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語:C
[4] 期限: 1月5日6時まで
[5] その他の制限: 構造体習い始めた程度の能力
198:デフォルトの名無しさん
09/01/05 00:52:18
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年1月5日午前10時
[5]特になし。
199:197 ◆brUNnJvSqY
09/01/05 01:10:31
>>197
訂正
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
【文字データの入力と出力】
Visual Studioを用いてConsoleApplicationを作成せよ。
以下の条件を満たすものを作成する事。
最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: visualC++2005
[3.3] 言語:C
[4] 期限: 2009年1月5日6時まで
[5] その他の制限: 構造体を習い始めた程度の能力
200:デフォルトの名無しさん
09/01/05 01:15:44
>>198
#include <stdio.h>
int main()
{
printf("sum { 1, 3, ... , 99 } = %d\n", 50 * (1 + 99) / 2);
printf("sum { 2, 4, ... , 100 } = %d\n", 50 * (2 + 100) / 2);
return 0;
}
201:デフォルトの名無しさん
09/01/05 01:53:41
>>199
/* ちょっと気持ち悪く書いてみたよ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ENTER_MAX 10
#define NAME_LEN 256
#define AGE_LEN 4
#define BUFF_SIZE (NAME_LEN + AGE_LEN + 1)
int main(void)
{
char table[ENTER_MAX][BUFF_SIZE];
char buff[BUFF_SIZE];
int n;
int i;
do {
printf("登録数 (1 から %d) >> ", ENTER_MAX);
} while ((n = atoi(fgets(buff, BUFF_SIZE, stdin))) > ENTER_MAX);
for (i = 0; i < n; ++i) {
int len;
printf("名前 >> "); fgets(table[i], NAME_LEN, stdin);
len = strlen(table[i]);
printf("年齢 >> "); fgets(&table[i][len + 1], AGE_LEN, stdin);
table[i][len - 1] = ','; table[i][len] = ' ';
}
for (i = 0; i < n; ++i) printf("%s", table[i]);
return 0;
}
202:デフォルトの名無しさん
09/01/05 02:09:03
>>186
親切な解答、ありがとうございました。1はまた考えてみます。
失礼しました。
203:197 ◆brUNnJvSqY
09/01/05 02:12:10
>>201
ありがとうございます。
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
という、エラーが出てしまいます。回避法はありますでしょうか?
出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。
204:デフォルトの名無しさん
09/01/05 02:13:16
>>203
#include <stdafx.h> をソースの頭に書け
あと氏ね
205:デフォルトの名無しさん
09/01/05 02:32:12
[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限: 朝まで
[5] その他の制限: よろしくお願いします
206:デフォルトの名無しさん
09/01/05 02:47:14
>>205
/* 意味が良くわからないけどこういうことかな */
#include <stdio.h>
#define N 1024
const char const *str
= "#include <stdio.h>\n\nint main() {\nint k, c, n, i;int l;int m = 0;\n\
\tfor (k = 0; k < 3; k ++) {\n\t\tfor (n = l = 0;\n\t\t\
(c = getchar()) != '\\n';l++) {\n\t\t\tif (l == 0 && c == '-') {\n\t\t\tprintf(\"Error!!負の数\\n\");\
\n\t\treturn 1;\n\t}\n\tif (l < 8) {\n\t\tif (c < '0' || c > '9') {\n\
\t\tprintf(\"Error!!数字文字以外の入力\\n\");\n\treturn 1;\n}\n\
\tn = n * 10 + c - '0';\n\t}\n}\n\tif (l == 0) {\n\tprintf\
(\"Error!!改行のみの入力\\n\");\nreturn 1;\n}\n\tm += n;\n\t}\n\
\tprintf(\"合計は%d\\n\", m);\nreturn 0;\n}\n";
int main(void)
{
int x[N], i;
for (i = 0; str[i]; ++i) x[i] = str[i];
return 0;
}
207:デフォルトの名無しさん
09/01/05 03:23:15
ちょ、そのクワイン的発想は何w
208:デフォルトの名無しさん
09/01/05 03:36:17
字義通りだと、こうだろ?
むしろ、他の解釈を聞かせて欲しい。
209:デフォルトの名無しさん
09/01/05 03:42:07
ビルド済みのバイナリかソースのどちらかだろうとは考えた
210:C初心者
09/01/05 11:00:16
>>196
すいません、リンク先に行けなくて見れてないです。
211:デフォルトの名無しさん
09/01/05 12:52:12
[1] 授業単元: c
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:夕方
[5] その他の制限: よろしくです
212:デフォルトの名無しさん
09/01/05 13:00:26
>>211
何周目だよ。死ねよ。
213:デフォルトの名無しさん
09/01/05 13:16:18
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
も読めない基地外って何?別にお前個人を指定、特定して答えろなんて
誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。
214:デフォルトの名無しさん
09/01/05 13:21:06
スレタイも読めないようだな。ここで丸投げの宿題が書き込まれるのは
分かりきっていることなのに、自分が気に入らないとファビョって
訳も分からないクレームをつける奴って何?そんなんだから
一生、成功しないままこの世を去るんだろ?w
そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ?
ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、
今何をしてる?少なくともお前以上の出世はしただろうねw
お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。
人生終わってら。
215:デフォルトの名無しさん
09/01/05 13:44:35
>>211
/* たぶん大丈夫だと思う */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define L 3
#define N 8
#define M (N * sizeof(int))
int main(void)
{
int *x[L], total = 0, i;
for (i = 0; i < L; ++i) {
int n;
x[i] = (int *)malloc(M);
printf(" input number >> ");
if ((n = atoi(fgets((char *)(x[i]), M, stdin))) > (int)pow(10, N))
printf("%d\n", n %= (int)(pow(10, N)));
if (n < 0 || (n == 0 && x[i][0] != '0')) {
fprintf(stderr, "Error!\n"); return 1;
}
total += n;
}
printf("answer = %d\n", total);
return 0;
}
216:デフォルトの名無しさん
09/01/05 13:45:57
下から9行目の
printf("%d\n", n %= (int)(pow(10, N)));
は
n %= (int)(pow(10, N));
に直して。
217:デフォルトの名無しさん
09/01/05 14:17:06
>>211
#include <stdio.h>
int input() {
char c;int a = 0;int cnt = 0;
while(1) {
c = getchar();
if(c == '\n') break;
if('0'<=c && c<='9') a = a*10 + c-'0'; else cnt=9;
cnt++;
}
if(cnt==0 || cnt>=9) return -1; else return a;
}
//
int main(void) {
int a[3],i;
printf("8桁までの整数を3つ入力してね\n");
for(i=0;i<3;i++) {
a[i] = input();
if(a[i]<0) {
fprintf(stderr,"Error : 8桁までの整数を入力してくださいませ\n");
return -1;
}
}
printf("合計 %d + %d + %d = %d\n",a[0],a[1],a[2],a[0]+a[1]+a[2]);
return 0;
}
218:デフォルトの名無しさん
09/01/05 14:19:49
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Stdio 2005
[3.3] 言語: C
[4] 期限: 1/5 21:00
よろしくお願いします。
219:デフォルトの名無しさん
09/01/05 14:29:53
[1] 文字列の格納、比較
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp) (設問もzipに入っています。)
このプログラムをポインタとstrchr関数を使わない形に書き換えていただけないでしょうか。
あと、コメントアウトでややこしいところ、ループの箇所等に説明をつけていただけるとありがたいです。
[3] 環境
[3.1] WinXP
[3.2] Borland C++ Compiler 5.5
[3.3] 言語:C言語
[4] 期限:[2008年1月15日00:00まで]
[5] 原則的にgoto 文は使用しない。
do while ループに関してはできるかぎり使用せず、while に統一する。
※キーボードからの入力は、scanf 関数およびgets 関数を使用せず、getchar 関数または、
fgets 関数を使用すること。
220:デフォルトの名無しさん
09/01/05 14:33:13
>>213
221:デフォルトの名無しさん
09/01/05 17:03:15
>>219
しね
222:デフォルトの名無しさん
09/01/05 18:22:05
>>218
こんな感じでいかが?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
223:デフォルトの名無しさん
09/01/05 19:26:03
>>211
もう前スレで解答してあるはずだが
224:218
09/01/05 20:03:05
>>222
自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です
ありがとうございました
225:デフォルトの名無しさん
09/01/05 22:33:58
[1] 授業単元: 計算機工学
[2] 問題文(含コード&リンク): 下記
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 2009年01月15日19:00まで
[5] その他の制限: なし
■問題
指定した部品数で建てられる家の最大面積を求めるプログラムを作成して下さい。
窓、ドア、壁の3タイプの部品があり、部品の長さは2m。
次のルールを満たさなくてはいけません。
1)1面にはドアは1つまで
2)家には少なくとも1つのドアが必要
3)ドアの両脇は壁部品でなくてはならない
4)窓の両脇は壁部品でなくてはならない
5)家は四角型
6)部品はそれぞれ50個が上限
int MaxArea(int NumWall,int NumWin,int NumDoor)
このように各部品の数を指定し、面積を返す関数を作ってください。
例)
MaxArea(8,0,1) = 12
---
| |
-D-
226:デフォルトの名無しさん
09/01/05 23:14:44
文字型配列を、"OKINAWA"を初期値として宣言し、文字列を
反転させて、"AWANIKO"と出力するプログラムを作りなさい。
227:デフォルトの名無しさん
09/01/05 23:25:18
>>226
char str[]="OKINAWA"; reverse(str); printf("%s",str);
228:226
09/01/05 23:32:05
自己解決しました。
229:デフォルトの名無しさん
09/01/05 23:35:47
>>226
for使っての解き方誰かわかりますか?
230:デフォルトの名無しさん
09/01/05 23:38:45
>>225
Google Code Jam 2004のHousePartyってヤツだな。
231:デフォルトの名無しさん
09/01/05 23:44:51
>>229
reverse(char *str) {
int i; for(i=0; i<len(str)/2; i++) { char c=str[i]; str[i]=str[len(str)-i-1]; str[len(str)-i-1]=c;}
}
232:デフォルトの名無しさん
09/01/05 23:48:51
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2009年1月6日午前8時
[5]特になし。
233:デフォルトの名無しさん
09/01/06 00:16:37
>>232
for(int i=0; i <= 100 ; i++ )if( i * ( i + 1 ) / 2 >= N ) { printf("%d\n",i); break;}
while( i * ( i + 1 ) / 2 < N ) { i++; }
234:デフォルトの名無しさん
09/01/06 00:17:14
whileの方の初期化忘れたw
235:デフォルトの名無しさん
09/01/06 00:18:23
>>232
#include<stdio.h>
int main() {
int i=0, n;
scanf("%d", &n);
while ((n-=++i)>0) /* または for(;(n-=++i)>0;) */
if (i==100) {printf("100まで加算してもだめだった\n"); return 0;}
printf("%dまで加算すればおk\n", i);
return 0;
}
236:デフォルトの名無しさん
09/01/06 00:19:31
>>232
int func_for(int n) {
int i;for(i=1;i<=100;i++) if(i*i+i >= 2*n) return i; return -1;
}
int func_while(int n) {
int i=0; while(++i<=100) if(i*i+i >= 2*n) return i; return -1;
}
main() {
int i,ans;scanf("%d",&i);ans = func_for(i);if(ans>=0) printf("answer = %d\n",ans); else printf("not found\n");
}
237:デフォルトの名無しさん
09/01/06 01:09:51
>>225
URLリンク(kansai2channeler.hp.infoseek.co.jp)
一応、例題の計算結果には合致するようだが、理屈は分からん。
238:デフォルトの名無しさん
09/01/06 01:11:59
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月9日
[5] その他の制限:特にありません。
よろしくお願いします。
239:デフォルトの名無しさん
09/01/06 02:18:23
[1]プログラミング
[2]int 型(符号つき32 ビット整数)および、unsigned int 型(符号なし32 ビット整数)のそれぞれの最大の素数を求めよ。
[3]環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名bcc
[3.3] 言語:C言語
[4]特になしですが早めで。
[5]制限:エラトステネスを用いずに素数を求める。
どうか、よろしくお願いします。
240:デフォルトの名無しさん
09/01/06 03:38:59
>>239
>>177あたりでどう?
241:デフォルトの名無しさん
09/01/06 04:40:34
>>240
みのがしてました。ありがとうございますです。
242:デフォルトの名無しさん
09/01/06 08:19:55
スイマセン、どなたか>>200の
(99+1)/2
の処理の意図を教えて頂けないでしょうか・・後から質問でスイマセン。
243:デフォルトの名無しさん
09/01/06 08:32:30
>>242
等差数列の和=項数*(初項+末項)/2
244:デフォルトの名無しさん
09/01/06 08:44:07
>>239 >>182 辺りが良いでおじゃるよ?
245:デフォルトの名無しさん
09/01/06 09:03:46
>>238
URLリンク(kansai2channeler.hp.infoseek.co.jp)
246:デフォルトの名無しさん
09/01/06 10:03:14
>>242
URLリンク(www.kwansei.ac.jp)
247:デフォルトの名無しさん
09/01/06 12:31:15
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):氏名と年齢を扱うプログラムを作りたい。これらのデータはリスト構造を用いて管理したいので、
1.リスト構造の要素となる構造体の型宣言を行え
2.上記構造体によって構築されたリスト構造の適切な箇所に新しい要素を追加する関数を作成せよ
なお、以下の点も守ること
・リスト構造は単方向リストとすること
・リスト構造のデータは年齢順に並ぶようにすること
・リスト構造はポインタ変数rootから始まるようにすること
・関数は新しい要素を受け取って、それをリスト構造に追加する形式にすること
・変数rootはグローバル変数とし、関数に渡さなくてもよい
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visualC++2005
[3.3] 言語:C/C++
[4] 期限:1月7日12:00まで
[5] その他の制限:特になし
よろしくお願いします。
248:デフォルトの名無しさん
09/01/06 12:38:29
麻呂のクソースを改変するでおじゃるよ
249:デフォルトの名無しさん
09/01/06 15:05:44
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC2005
[3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限:for,if等基本的なものを使う。strは禁止。
それではよろしくお願いします。
250:デフォルトの名無しさん
09/01/06 15:08:14
>strは禁止。
str~系関数のこと?
最初std::stringかと思ったが・・・
251:デフォルトの名無しさん
09/01/06 16:35:41
[1] 授業単元:プログラミング
[2] 問題文
Step 1. float型配列の先頭アドレスを受け取り,その配列内から最大の値を探して,
それを関数値として戻す関数 float max(float data[], int n) を定義せよ.ここで,nは配列data[]に入っている有効なデータの数(有効な配列要素は,0~n-1)である.
またデータに負の値はないものとする.
Step 2. main()関数内で,要素数100程度のfloat型配列を宣言し,課題11-2で作成したデータ入力関数のinput()関数を再利用してデータを配列に入力するようにプログラムする.
次に,Step1で作成した関数をmain()関数内呼び出して最大値を表示せよ.
[3] 環境
[3.1] OS:Windows vista
[3.2] コンパイラ名とバージョン:VC2008
[3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限 特になし
よろしくお願いします
252:デフォルトの名無しさん
09/01/06 17:01:44
>>251
問題文も読まずに丸投げとは・・・
253:デフォルトの名無しさん
09/01/06 17:08:38
まだスレタイも読めない奴がいるのか
254:デフォルトの名無しさん
09/01/06 17:12:52
[1] 授業単元:プログラミング演習Ⅱ
[2] 問題文:
以下の仕様で収支残高管理プログラムを作成せよ.ただし,残高処理の関数を独自で定義すること.
その際,ファイルポインタについてはグローバル変数として宣言しても良い.
初期状態を除いてプログラム実行時に既存の残高額のファイル(balance.txt)を読み込む.
ファイルが存在する場合に限り,balance.txt)を読み込む処理をすれば良い.
各処理を選択するメニュー画面を残高額とともに表示する.可能であれば,残高は桁区切りカンマを用いて表示すること.
終了時にその時点の残高額をファイル(balance.txt)に書き込む.
ヒント:最初にbalance.txtを読み込みモードで開いて読み込んだ後は,即座にファイルを閉じ,最後の書き込み時に,改めて書き込みモードで開いて同名のファイルに書き込みをすれば良い.
また,ファイルからの金額の読み込みにはfscanfを,書き込みにはfprintfを使用すると良い.
255:254
09/01/06 17:15:48
>>254続き
[実行例]
***** 収支残高管理 *****
残高は \0 です.
[1] 収入
[2] 支出
[99] 終了
処理を選択してください:1
収入金額:12345
***** 収支残高管理 *****
残高は \12,345 です.
[1] 収入
[2] 支出
[99] 終了
256:254
09/01/06 17:16:27
>>255続き
処理を選択してください:2
支出金額:20000
***** 収支残高管理 *****
残高は \-7,655 (赤字)です.
[1] 収入
[2] 支出
[99] 終了
処理を選択してください:99
終了します.
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio.Net 2003
[3.3] 言語:C++
[4] 期限:2009年1月8日
[5] その他の制限:特になし
よろしくお願いします。
257:デフォルトの名無しさん
09/01/06 17:21:54
>>253
258:デフォルトの名無しさん
09/01/06 17:38:13
>>251
#include<iostream>
#include<algorithm>
float max(float data[], int n){
if(n<=0) return -1.0;
return *std::max_element(data, data+n);
}
int input(float data[], int data_num_max){
int data_num;
for(data_num=0;data_num<data_num_max;){
float value;
if(!(std::cin >> value)) break;
data[data_num++]=value;
}
return data_num;
}
int main(void){
float data[100];
int data_num, data_num_max=sizeof(data)/sizeof(data[0]);
data_num=input(data, data_num_max);
std::cout << max(data, data_num) << std::endl;
return 0;
}
259:デフォルトの名無しさん
09/01/06 18:26:57
[1] 授業単元: プログラミング入門演習
[2] 問題文(含コード&リンク):
複数の整数のうち、指定した数で割り切れる整数の個数を求めるプログラムを作成せよ。
入力に関して
キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する。
次に指した数の整数をスペース1つずつ開けて1行で入力し、改行する。
最後に1つ整数を入力し、改行する。この最後に入力した値で割り切れるかどうか
判定する。この一連の入力時,例題や解答例のような入力を保す文字等は決して表示
しないこと。
出力に関して
割り切れる整数の個数を数値のみ(+改行)を出力する。指定した数値・改行以外の
文字等の出力は一切行わないこと。
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:Visual Stdio 2008
[3.3] 言語:C言語
[4] 期限: 1/8 12:00
[5] その他の制限:C言語の基礎を習っています。
よろしくお願いします
260:デフォルトの名無しさん
09/01/06 19:07:31
>>250
説明不足でごめんなさい
strlen関数のことです
#include <stdio.h>
void main(){
char moji[100];
int i=0,x;
printf("文字列を入力:");
gets(moji);
printf("\n\n");
while(moji[i] != '\0'){
i;
i++;
}
x=i+1;
printf("文字列の長さ=%d",x);
printf("\n\n");
}
という求め方を習ったのですが、strlen関数は習っていないので・・・
261:デフォルトの名無しさん
09/01/06 19:38:19
>>260
C++?
262:デフォルトの名無しさん
09/01/06 19:46:33
>>243
>>246
ありがとうございました
助かりましたw
263:つばめ
09/01/06 20:35:24
分からない問題があります。
正の整数nを入力し、nの約数の和を表示するプログラムを作る問題です。
初心者なので、宜しくお願いします。
264:デフォルトの名無しさん
09/01/06 20:40:56
一つの整数の約数って・・・・1からnまで全部足せばいいのか?w
265:デフォルトの名無しさん
09/01/06 20:52:19
>>263
#include <stdio.h>
int sum(int n){ return n == 0 ? 0 : n + sum(n - 1); }
int main(int n){ return scanf("%d", &n), printf("%d\n", sum(n)); }
266:デフォルトの名無しさん
09/01/06 20:55:10
約数の意味がわからないアホがここで何してんの?
267:265
09/01/06 20:56:12
アッー
>>264に騙された
268:デフォルトの名無しさん
09/01/06 21:00:21
>>263
#include <stdio.h>
int main(void)
{
int i, n, sum;
scanf("%d", &n);
for(i=1,sum=n; i<n; i++) if(!(n%i)) sum += i;
printf("%d", sum);
return 0;
}
269:デフォルトの名無しさん
09/01/06 21:14:41
>>259
#include<stdio.h>
int main(void){
int data[128], data_num;
int i, div;
scanf("%d", &data_num);
for(i=0;i<data_num;i++) scanf("%d", &data[i]);
scanf("%d", &div);
for(i=0;i<data_num;i++) if(data[i]%div==0) printf("%d\n", data[i]);
return 0;
}
270:デフォルトの名無しさん
09/01/06 21:17:12
表示するのは個数だろ
271:デフォルトの名無しさん
09/01/06 21:27:20
>>261
返事遅くなって毎度毎度すいません・・・
C++です
272:つばめ
09/01/06 21:31:50
質問回答ありがとうございます。
C++ではなく、C言語の方です。
273:デフォルトの名無しさん
09/01/06 21:38:08
>>270
このツンデレが!
274:デフォルトの名無しさん
09/01/06 21:39:56
なんでもツンデレ言うアホにはうんざりだ
275:デフォルトの名無しさん
09/01/06 21:43:58
じゃあ世話焼きで俺のことが大好きな妹で
276:デフォルトの名無しさん
09/01/06 21:59:37
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月7日AM7時
よろしくお願いします
277:デフォルトの名無しさん
09/01/06 22:06:46
[1] 授業単元: 情報処理応用
[2] 問題文(含コード&リンク):
DirectShowを用いてtest.aviなどファイルから再生している動画をout.aviなど別ファイルとして保存する
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C++
[4] 期限: 1月7日
[5] その他の制限:
スレ違いかもしれませんができればお願いします
278:デフォルトの名無しさん
09/01/06 22:08:05
>>276
#include <stdio.h>
int main(void)
{
int i, j = 0;
while (j < 2 && scanf("%d", &i) != EOF) {
if (i < 0) {
puts("negative value");
j++;
}
else {
j = 0;
printf("%d\n", 2*i);
}
}
return 0;
}
279:デフォルトの名無しさん
09/01/06 22:12:58
[1] 授業単元:アルゴリズムの基礎および演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年1月10日12:00まで
[5] その他の制限:特にありません。
よろしくお願いします。
280:デフォルトの名無しさん
09/01/06 22:26:15
>>279
1. URLリンク(kansai2channeler.hp.infoseek.co.jp)
2. URLリンク(kansai2channeler.hp.infoseek.co.jp)
281:デフォルトの名無しさん
09/01/06 23:07:11
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月7日AM9時
よろしくお願いします
282:デフォルトの名無しさん
09/01/06 23:10:01
>>279
3. URLリンク(kansai2channeler.hp.infoseek.co.jp)
4. URLリンク(kansai2channeler.hp.infoseek.co.jp)
283:デフォルトの名無しさん
09/01/06 23:29:31
>>281
スレリンク(tech板:601番)
284:デフォルトの名無しさん
09/01/06 23:57:36
>>283
これを利用しろということですか?
285:デフォルトの名無しさん
09/01/07 00:04:29
>>278
ありがとうございます
ちなみにfor文の方はどうなっているのでしょうか?
286:デフォルトの名無しさん
09/01/07 00:11:58
[1] 授業単元:C言語
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:09年1月7日24:00まで
[5] その他の制限:丸投げですいません。基礎的な関数のみでよろしくお願いします。
287:デフォルトの名無しさん
09/01/07 00:14:42
>>285
#include <stdio.h>
int main(void)
{
int i, j = 0;
for (;j < 2 && scanf("%d", &i) != EOF;) {
if (i < 0) {
puts("negative value");
j++;
}
else {
j = 0;
printf("%d\n", 2*i);
}
}
return 0;
}
こんな感じでどうかな
288:デフォルトの名無しさん
09/01/07 01:03:59
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C
[4] 期限: 1月7日
[5] その他の制限: 特になし
よろしくお願いします
289:デフォルトの名無しさん
09/01/07 01:10:06
>>288
課題7-3がないと無理
290:デフォルトの名無しさん
09/01/07 01:17:22
>>289
無視してかまわないです
追記
データ入力数は最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする
291:デフォルトの名無しさん
09/01/07 01:21:38
[1] 授業単元:計算機工学
[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C
[4] 期限: 1月15日
[5] その他の制限: 特になし
■
検索問題
データ数10万 ランダムな対象を1万回検索する
先頭から検索すると平均で1000秒かかった
高速化するにはどうしたらよいか
ソートされてる場合とされてない場合のそれぞれについて答えよ
292:デフォルトの名無しさん
09/01/07 01:26:38
>>291
ソートされてない場合
まずソートする、 このとき オーダーが n log になるようなまともなソートを使う
これを二分探索する
ソートされてる場合
二分探索する
293:デフォルトの名無しさん
09/01/07 01:27:09
オーダーは n * log (n) ね
294:デフォルトの名無しさん
09/01/07 01:28:24
>>286
URLリンク(kansai2channeler.hp.infoseek.co.jp)
295:デフォルトの名無しさん
09/01/07 01:31:32
>>288
URLリンク(kansai2channeler.hp.infoseek.co.jp)
296:デフォルトの名無しさん
09/01/07 01:42:34
>>291
それは本当にプログラミングの課題なのか?
考察ではなく実際に試したとしたら、116日ほどかかった計算になるんだが
297:デフォルトの名無しさん
09/01/07 01:42:55
>>295
ありがとうございます
298:デフォルトの名無しさん
09/01/07 01:54:29
>>249
URLリンク(kansai2channeler.hp.infoseek.co.jp)
299:デフォルトの名無しさん
09/01/07 02:31:06
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
キーボードから入力した整数と小数(それぞれ1つずつ)を乗算した結果を表示するプログラムを、
ポインタによる間接参照演算子を用いて作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:1月7日24時
[5] その他の制限: 入力、乗算、表示部分全てでポインタを用いる
よろしくお願いします。
300:デフォルトの名無しさん
09/01/07 02:50:01
>>296
その発想はなかったわ。
301:デフォルトの名無しさん
09/01/07 03:09:50
>>299
設問者の意図がよく分からんが、こういうことか
#include <stdio.h>
int main(void) <%
char buf<:256:>;
int n;
double d;
int *np = &n;
double *dp = &d;
printf("input interger number: ");
fgets(buf, 256, stdin);
sscanf(buf, "%d", np);
printf("input decimal number: ");
fgets(buf, 256, stdin);
sscanf(buf, "%f", dp);
printf("%d times %f equals %f.\n", *np, *dp, *np**dp);
%>
302:デフォルトの名無しさん
09/01/07 03:56:04
宿題出てるんですがよくわかりません
よろしくお願いします
次のように、整数値を表すクラスを設計する
データメンバ
x:xの座標(ただし 0-1000とする)
y:yの座標(ただし 0-1000とする)
z:zの座標(ただし 0-1000とする)
メンバ関数
void setX(int a): xの座標を設計する(範囲外の値は、error messageを出力する)
void setY(int b): Yの座標を設計する(範囲外の値は、error messageを出力する)
void setZ(int c) Zの座標を設計する(範囲外の値は、error messageを出力する)
int getX(): Xの座標値を得る
int getY(): Yの座標値を得る
int getZ(): Zの座標値を得る
結果は、次のように表示する
Please Input X
3
Please Input Y
1000067
The value of Y is a mistake, Please input Y again!
5
Please Input Z
7
The result is: (3,5,7)
303:デフォルトの名無しさん
09/01/07 04:01:54
>>302
テンプレ嫁
304:デフォルトの名無しさん
09/01/07 09:05:19
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: WindowsVista SP1
[3.2] コンパイラ名とバージョン:StadyC
[3.3] 言語: C
[4] 期限: 2009年1月7日 21時まで
[5] その他の制限: 特になし
『ジョーカーを除くトランプ52枚(1~13×4種)からランダムに5枚を抜き出した時、
・ワンペア(同じ数字が2枚)
・ツーペア(同じ数字が2枚のものが2組)
・スリーカード(同じ数字が3枚)
・ストレート(5枚連続した数値、[10,11,12,13,1]や[1,2,3,4,5]はOKだが[12,13,1,2,3]など1をまたぐケースはNG)
・フラッシュ(5枚とも同種)
・フルハウス(ワンペアとスリーカードの組み合わせ)
・フォーカード(同じ数字が4枚)
・ストレートフラッシュ(ストレートとフラッシュの組み合わせ)
それぞれの役が発生する確率(実際には試行した回数)をモンテカルロ法により求めるプログラムを作成する。
ただし、上位(記載が下にあるもの)の役と下位の役を同時に満たす場合は上位の役を優先する。
因数にポインタを含む関数を適当に作成し、利用すること。
メイン関数直下での処理はできるだけ避けることが望ましい
入力に関して
キーボードから、試行回数(+改行のみ入力する)。
最大でもint型に収まる数値とする。
このとき、入力を促す文字などは決して表示しないこと。
出題に関して
試行したうち、上記の8つの役の成立回数(+改行)のみワンペアから順に1行ずつ出力(計8行)。
指定した数値・改行以外の文字などの出力は一切行わないこと。
』
305:デフォルトの名無しさん
09/01/07 09:06:33
>>304
マルチ死ね
306:デフォルトの名無しさん
09/01/07 09:11:56
>>305
>>1
307:デフォルトの名無しさん
09/01/07 09:23:49
>>280
ありがとうございます。
308:304
09/01/07 09:26:40
なんとか自力で出来ました
どうもお手数おかけしました
309:デフォルトの名無しさん
09/01/07 11:08:04
>>300
エンジニアにむいてないな、オマエ。
310:デフォルトの名無しさん
09/01/07 11:10:14
>>306
311:デフォルトの名無しさん
09/01/07 11:27:55
>>310
>>1
312:デフォルトの名無しさん
09/01/07 11:27:59
>>304
引数を「いんすう」と読んでる教育機関なんか存在しないんじゃね?
313:デフォルトの名無しさん
09/01/07 11:28:11
>>311
314:回答する気もないくせに居座るだけの無能、粘着基地外
09/01/07 11:35:04
313 名前:デフォルトの名無しさん 投稿日:2009/01/07(水) 11:28:11
>>311
315:デフォルトの名無しさん
09/01/07 11:36:28
>>312
そこから考えると、
コイツは前のスレッドで同じ宿題二度投げてるやつじゃね?
316:デフォルトの名無しさん
09/01/07 11:36:35
>>314
317:デフォルトの名無しさん
09/01/07 11:36:44
>>314
>>1
318:デフォルトの名無しさん
09/01/07 11:38:12
>>304
スレリンク(tech板:128番)
319:デフォルトの名無しさん
09/01/07 11:43:13
>>304
URLリンク(detail.chiebukuro.yahoo.co.jp)
320:デフォルトの名無しさん
09/01/07 11:52:44
マルチ先を貼られた途端におとなしくなった。
321:デフォルトの名無しさん
09/01/07 12:00:17
>>317
322:デフォルトの名無しさん
09/01/07 12:01:14
>>321
323:デフォルトの名無しさん
09/01/07 12:01:20
>>319
うわぁ~~~、質問する側もどうかと思うが、それを見つけてくる粘着基地外暇人も
きめぇ~~~
324:デフォルトの名無しさん
09/01/07 12:01:40
>>323
>>1
325:デフォルトの名無しさん
09/01/07 12:34:32
巡回先が複数あるやつは多いだろ
特に質問系のスレは
326:デフォルトの名無しさん
09/01/07 13:13:30
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:Visual Stdio 2008
[3.3] 言語:C言語
[4] 期限: 1/8 12:00
[5] その他の制限:なし。
中央値を求める関数を作成し、その関数を使用して中央値を出力する
プログラムを作成せよ。関数は下記の通りとする。
int median(int *in,int num)
in 複数の整数値が格納された配列(先頭)ポインタ
num 入力値の数
戻り値 中央値
入力に関して
キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する。
次に指定した数の整数をスペース1つずつ開けて1行で入力し、改行する。
よろしくお願いします。
327:デフォルトの名無しさん
09/01/07 13:22:16
>>298
できました。ありがとうございます。
ですが
URLリンク(kansai2channeler.hp.infoseek.co.jp)
こういった形にできますでしょうか?
なるべくforじゃなくてwhileを使いたいのですが・・・
328:デフォルトの名無しさん
09/01/07 13:23:13
>>326
C/C++の宿題を片付けます 101代目
スレリンク(tech板:929番)
329:デフォルトの名無しさん
09/01/07 13:25:14
1年前ワロタww
330:デフォルトの名無しさん
09/01/07 13:28:44
毎年同じ内容の講義なんて当たり前だろ?
331:デフォルトの名無しさん
09/01/07 13:32:07
>>330
注目点は、環境がStudy Cなところじゃね?
>>304今年の学生はそれもつづれないようだけど。
332:デフォルトの名無しさん
09/01/07 13:38:33
>>326
#include <stdio.h>
int median(int *in, int num)
{
int i, j, temp;
for(i=num-1; i > 0; i--) {
for(j=0; j<i; j++) {
if(in[i] > in[j]) {
temp = in[i];
in[i] = in[j];
in[j] = temp;
}}}
return num & 1 ? in[num/2] : (in[num/2-1] + in[num/2]) / 2;
}
int main(void)
{
int i, num, in[128];
scanf("%d", &num);
for(i=0; i<num; i++) scanf("%d", in + i);
printf("%d", median(in, num));
return 0;
}
333:デフォルトの名無しさん
09/01/07 14:15:43
>>299です
>>301
解答ありがとうございました。
自分の知らない関数を使っているので、この解答を参考にしながら
書いてみます。
334:デフォルトの名無しさん
09/01/07 15:59:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下に記載
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:Visual C++ 2005 ver8.0
[3.3] 言語: C++
[4] 期限:1/10 24:00
[5] その他の制限:特になし
次のように、整数値を表すクラスを設計する
データメンバ
x:xの座標(ただし 0-1000とする)
y:yの座標(ただし 0-1000とする)
z:zの座標(ただし 0-1000とする)
メンバ関数
void setX(int a): xの座標を設計する(範囲外の値は、error messageを出力する)
void setY(int b): Yの座標を設計する(範囲外の値は、error messageを出力する)
void setZ(int c): Zの座標を設計する(範囲外の値は、error messageを出力する)
int getX(): Xの座標値を得る
int getY(): Yの座標値を得る
int getZ(): Zの座標値を得る
結果は、次のように表示する
Please Input X
3
Please Input Y
1000067
The value of Y is a mistake, Please input Y again!
5
Please Input Z
7
The result is: (3,5,7)
335:デフォルトの名無しさん
09/01/07 16:22:14
>>334わからないながらも自分で考えてみたものの途中です
#include<iostream>
using namespace std;
class Dimension{
private:
int x;
int y;
int z;
public:
void setX(int a);
void setY(int b);
void setZ(int c);
int getX();
int getY();
int getZ();
void show();
};
void Dimension::setX(int a){
x = a;
if(a>=0 && a<=1000){
cout<<"Please Input X\n";
cin>>a;
}
else{
cout<<"The value of X is a mistake.Please input X again!"<<"\n";
cin>>a;
}
}