C/C++の宿題を片付けます 121代目
レス数が1000を超えています。これ以上書き込みはできません。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】 http://chomework.sakura.ne.jp/
【wiki】 http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題を片付けます 120代目
http://pc11.2ch.net/test/read.cgi/tech/1229424329/
0002デフォルトの名無しさん
2008/12/31(水) 15:00:121.書き込みウィンドウを出し半角入力に切り替える
2.Wキーを押しっぱなしにする
3.Wキを押しっぱなしにしながらsageのチェックするところをおもむろにクリック
0003デフォルトの名無しさん
2008/12/31(水) 15:03:110004デフォルトの名無しさん
2008/12/31(水) 15:03:570005デフォルトの名無しさん
2008/12/31(水) 15:23:550006デフォルトの名無しさん
2008/12/31(水) 15:58:200007デフォルトの名無しさん
2008/12/31(水) 18:33:49wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0008デフォルトの名無しさん
2008/12/31(水) 18:38:190009デフォルトの名無しさん
2008/12/31(水) 22:20:150010デフォルトの名無しさん
2009/01/01(木) 02:32:120011デフォルトの名無しさん
2009/01/01(木) 02:41:43wWWwwww
0012デフォルトの名無しさん
2009/01/01(木) 03:49:57[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] その他の制限: 特に無いです。
0013デフォルトの名無しさん
2009/01/01(木) 03:58:3910進数を16進数に変換せよ
って課題に
cin >> a;
cout << hex << a;
で提出したら課題が増えた
0014デフォルトの名無しさん
2009/01/01(木) 04:06:040015デフォルトの名無しさん
2009/01/01(木) 05:25:25void 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;
}
}
こういうことでいいのか?
いったい何ビットの整数を扱うつもりなんだw
まあ、元がcharだから1バイトしか使えないが
>>12
その説明ではどうとでも取れる
書き込み後のバイト列を具体的に書け
ポインタ(b)で指定されたアドレスのMSBが1ビット目としてビッグエンディアンか?
それとも、LSBを1ビット目としてリトルエンディアンか?
0017デフォルトの名無しさん
2009/01/01(木) 09:40:00そういう解釈もあるのか
何も考えずにシフト演算ならどっちでもいい気がしたんだが
0018デフォルトの名無しさん
2009/01/01(木) 12:10:53[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]を入力することで入力を終え,カウントできるように.
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8505.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:2008年1月4日中山第11R(中山金杯)の発売締め切り時刻を提出期限とする.
[5] その他の制限:次回は「8.3 パチンコ」を学習します. 、だそうです。
0019デフォルトの名無しさん
2009/01/01(木) 12:33:19回答を用意しているかどうか聞いとけ
0020デフォルトの名無しさん
2009/01/01(木) 16:53:32前スレで言われたことわかってないな
URL入力では絶対に不可能なんだよ
0021デフォルトの名無しさん
2009/01/01(木) 17:29:10#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
0022デフォルトの名無しさん
2009/01/01(木) 18:00:58HTMLとJAVASCRIPTの知識があればできるんじゃね?
0023デフォルトの名無しさん
2009/01/01(木) 18:10:14そうじゃなくて結果表示のページがPOSTリクエストの結果表示だから
URLだけじゃ不可能なんだよ
0024デフォルトの名無しさん
2009/01/01(木) 18:16:330025デフォルトの名無しさん
2009/01/01(木) 18:22:30確かに
0026デフォルトの名無しさん
2009/01/01(木) 18:25:11C言語でPOSTするプログラムを書くとかはできないのかな?
0027デフォルトの名無しさん
2009/01/01(木) 18:31:53AccessOのURLだけを入手しても、リクエストの結果が埋め込まれてないから無意味。
0028デフォルトの名無しさん
2009/01/01(木) 18:51:16***
*****
*******
*********
***********
*************
***************
*****************
*******************
この三角形を出力するプログラムを教えてください。
forを使った場合とwhileを使った場合。
0029デフォルトの名無しさん
2009/01/01(木) 18:54:24そもそも cname を何処からか取得しなくてはいけないが、法則性が不明。
おそらく、競走成績のページ(accessS.html)から辿って行くしかない。
あと、おそらく宿題のフリした図抜けたバカのリクエスト。
0030デフォルトの名無しさん
2009/01/01(木) 18:54:300031デフォルトの名無しさん
2009/01/01(木) 18:55:48#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;
}
0032デフォルトの名無しさん
2009/01/01(木) 20:56:380033デフォルトの名無しさん
2009/01/01(木) 21:06:44何このアホ
0034デフォルトの名無しさん
2009/01/01(木) 21:15:310035デフォルトの名無しさん
2009/01/01(木) 21:17:54いいんですか?
0036デフォルトの名無しさん
2009/01/01(木) 21:20:08ループの境界条件に関して
一定の形式でまとめられるforの方が
可読性がいいのではないかという意見もあるけど
まぁどっちでも
0037デフォルトの名無しさん
2009/01/01(木) 21:21:28機械にとっては大差ないんじゃね?
forの方が決まりが多いから、その分、読み手に分かりやすく書けると思う。
0038デフォルトの名無しさん
2009/01/01(木) 21:25:39ありますか?
0039デフォルトの名無しさん
2009/01/01(木) 21:26:24アンケートをとってきなさい
0040デフォルトの名無しさん
2009/01/01(木) 22:35:12解くコツとかあるんですか?
俺そんなすぐにはとけません・・
0041デフォルトの名無しさん
2009/01/01(木) 22:43:40絵に描いて考えればわかるんじゃない?
0042デフォルトの名無しさん
2009/01/01(木) 22:45:14えっ!?
0043デフォルトの名無しさん
2009/01/01(木) 23:01:20別解だが山を二つに区切っちゃおう というのがあるよ
頂点の*の右側を垂直に直線を下ろし、それを境界として考える
上から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'); //改行
}
テストしてないけどまあ大丈夫じゃね?
0044デフォルトの名無しさん
2009/01/01(木) 23:10:150045デフォルトの名無しさん
2009/01/01(木) 23:11:24x行目の空白は10-x個、*は2x-1個でいいじゃん
何のために分割してんの?
0046デフォルトの名無しさん
2009/01/01(木) 23:12:11forとwhileの両方を満たせるなw
0047デフォルトの名無しさん
2009/01/01(木) 23:23:57分割はちょいイミフだがw
0048デフォルトの名無しさん
2009/01/02(金) 00:06:36何人コピペしてくるか調べたいんだよw
0049デフォルトの名無しさん
2009/01/02(金) 00:08:08コツってわけじゃないけど、おれの場合こんな流れかな
問題を見つける(質問投稿から 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秒)
0050デフォルトの名無しさん
2009/01/02(金) 00:32:210051デフォルトの名無しさん
2009/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);
}
0052デフォルトの名無しさん
2009/01/02(金) 07:45:41while使った場合
#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;
}
0053デフォルトの名無しさん
2009/01/02(金) 08:59:250054デフォルトの名無しさん
2009/01/02(金) 09:26:180055デフォルトの名無しさん
2009/01/02(金) 09:30:05>>53
0056デフォルトの名無しさん
2009/01/02(金) 09:31:23while(j = 10 - i++) while(j = 10 - i++) while(j = 10 - i++)
今年一発目の・・・なぁ〜にぃ〜!?やっちまったな!
0057デフォルトの名無しさん
2009/01/02(金) 09:31:490058デフォルトの名無しさん
2009/01/02(金) 09:33:500059デフォルトの名無しさん
2009/01/02(金) 10:10:580060デフォルトの名無しさん
2009/01/02(金) 10:18:030061デフォルトの名無しさん
2009/01/02(金) 10:42:43int main(void){
int i;
printf("%d\n", i = 10);
return 0;
}
0062デフォルトの名無しさん
2009/01/02(金) 10:48:34あの程度の不備が理解できないなら、プログラミングなんてやらない方が良いぞ、ド素人
0063本当の馬鹿
2009/01/02(金) 10:50:08やべえ>>52程度が理解できないバカがいるとはw
やべぇ、あのコードの不備が理解できない知ったか大馬鹿がいるとはw
人間、年を取ると自信過剰になって、指摘する人間に圧力をかければ
自分が正当化され、正しいことを言っていると勘違いするようだな。
まるで、あの集団のように。ただ、行き過ぎて、自分らが間違っていることに
選挙で負けて気づくと。
0064デフォルトの名無しさん
2009/01/02(金) 10:55:57指摘されて、気づかないくらい、自分が正しいと思い込んでいるんでしょうね。
逆に、指摘した側が知らないと思い込んでもいるようだし。
0065デフォルトの名無しさん
2009/01/02(金) 10:57:40何かと勘違いしてるんだろうけど、評価順は決まってるよ。
0066デフォルトの名無しさん
2009/01/02(金) 11:08:200067デフォルトの名無しさん
2009/01/02(金) 11:11:37知能が低い奴ほど罵倒発言を平気でする。自分が馬鹿だと言う事にも気づかず、
擁護してくれる人がいないからって、IDのない板で、自作自演で複数を装うやり方もするしな。
コンパイラが通すんだから良いんだろ?って考えだろ。while文の括弧の中は、
本来は条件式が入るんだが、それは代入だろ。例え括弧で代入式を括っても、
それに対して条件式にあう措置をとるべき。
まぁ、コンパイラ任せの未熟者がプログラミングに手を出す時代になったってことだな。
0069デフォルトの名無しさん
2009/01/02(金) 11:18:580070デフォルトの名無しさん
2009/01/02(金) 11:23:390以外がTRUEだから条件文は10でも100でも1000でも-1000でもいいの
#include <stdio.h>
int main(void){
int i;
if(i = 10) printf("Hello World!");
return 0;
}
0071デフォルトの名無しさん
2009/01/02(金) 11:25:49whileの括弧の中は条件式じゃなく、値だ。
そして代入演算子の値は代入後の変数の値。
なんかコンパイラが都合よく解釈してくれていると勘違いしているようだが、
>>52は完全にCの文法に合致してるぞ。
0072デフォルトの名無しさん
2009/01/02(金) 11:30:190073デフォルトの名無しさん
2009/01/02(金) 11:30:400074デフォルトの名無しさん
2009/01/02(金) 11:46:49こんなか?
#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;
}
0075デフォルトの名無しさん
2009/01/02(金) 11:51:14不適切、適切の区別もつかないような奴がプログラミングをやると、最悪、予期できるのに
自らの不手際で考えられないバグを出すから困る。
0076デフォルトの名無しさん
2009/01/02(金) 11:54:02これもか?
#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;
}
0077デフォルトの名無しさん
2009/01/02(金) 11:55:08世の中にバカがひとりも居ないなら兎も角、
全員が間抜けなのに、何を言っているんだ?
0078デフォルトの名無しさん
2009/01/02(金) 11:59:40if( !( fp = fopen( 〜 ) ) )
とかも許せないんだろうか
0079デフォルトの名無しさん
2009/01/02(金) 12:03:22こんにちは、間抜け
0080デフォルトの名無しさん
2009/01/02(金) 12:10:53ディルバートの法則も読んだことが無いなんて・・・
0081デフォルトの名無しさん
2009/01/02(金) 12:37:34>i=(i++)+100;
の前にi=10;が抜けているな。
>>74も
0082デフォルトの名無しさん
2009/01/02(金) 12:38:15ユークリッドの原論も読んだことがないようだな
0083デフォルトの名無しさん
2009/01/02(金) 12:42:56寂しく過疎ってるスレで、IDが出ないからって自作自演で擁護してファビョってやがるぜ。
0084デフォルトの名無しさん
2009/01/02(金) 14:20:40大喜びで揚げ足とったつもりで自分だけが間違うって、何度やっても学習しないな。
0085デフォルトの名無しさん
2009/01/02(金) 14:57:10条件判定式が返す「値」で判定するんであって、判定式が必須じゃないんだがw
よく無限ループで使われるwhile(1)についてはどう思ってるの?
0086デフォルトの名無しさん
2009/01/02(金) 20:12:52[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8508.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:1月9日
[5] その他の制限:特にないです。
0087デフォルトの名無しさん
2009/01/02(金) 20:38:19http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8509.txt
0089デフォルトの名無しさん
2009/01/03(土) 02:39:12知ったか無知乙。whileの中が条件式ではなく、代入式なんだが?w
それから、条件式の真偽でif文にしろ判定していることくらい、周知のこと。
何を指摘されたか分からないなら、黙ってろ。
>>84=本物の馬鹿麻呂
自分で言ってて恥ずかしくない?お前にとって、指摘する奴=麻呂って何それ?w
0090デフォルトの名無しさん
2009/01/03(土) 02:41:12その変数が0か否かで判定するやり方も知っているが、
>>52は
while(j = 10 - i++) {
どーーーー考えても代入式です、ありがとうございますたwwwwwww
さてと、自信過剰知ったか無知は以後放置よろ。質問スレでも大ボケかましたよ。
識 別 子 (笑)
0091デフォルトの名無しさん
2009/01/03(土) 02:42:530092デフォルトの名無しさん
2009/01/03(土) 02:44:020093デフォルトの名無しさん
2009/01/03(土) 02:47:44横槍ですまんが、>>52の
int i = 0, j;
while(j = 10 - i++){
これって10回ループしたら抜けないの?
俺の知識がおかしいのか…
0094デフォルトの名無しさん
2009/01/03(土) 02:50:12この有名な文字列コピーの手法はどう見ても代入式ですw
0095デフォルトの名無しさん
2009/01/03(土) 02:51:57冬休みなだけだよ
0096デフォルトの名無しさん
2009/01/03(土) 02:52:46こいつは年中無休だからw
0097デフォルトの名無しさん
2009/01/03(土) 02:54:03jに代入される数が10から0まで減っていくから、問題なくループは終了するよ。
0098デフォルトの名無しさん
2009/01/03(土) 02:54:10[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8510.txt
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: c
[4] 期限: 日曜午後6時
[5] その他の制限:よろしくお願いします。
0099デフォルトの名無しさん
2009/01/03(土) 02:54:53普段いるやつじゃないよ。
http://pc11.2ch.net/test/read.cgi/tech/1229255937/503
0100デフォルトの名無しさん
2009/01/03(土) 02:55:36そっか
ありがとー
0101デフォルトの名無しさん
2009/01/03(土) 02:57:01規格上何ら問題なくコンパイルは通るのも事実だし、
それを初心者に見せびらかして自慢すべき事柄ではないのもその通り。
0102デフォルトの名無しさん
2009/01/03(土) 03:01:17最近この板に来た人?
こいつは何年もC系のスレでファビョりまくってるアホだから。
0103デフォルトの名無しさん
2009/01/03(土) 03:09:51単に行数減らしたかったから()内で代入しただけなんだが。
>>92
まさかこの程度のことで技巧とか自慢とか言われるとは思わなかったw
0104デフォルトの名無しさん
2009/01/03(土) 03:10:21>>101の間違いね
0105デフォルトの名無しさん
2009/01/03(土) 03:15:06どう考えても、while文の中は代入式で、条件式ではありません。
コンパイラも、ここの部分に対しては警告を出しているし。
while文の使い方や説明を見直すことを、お勧めします。
何を指摘されたのか分からないなら、今すぐプログラミングなんて
お止めになった方が、今後の人生のためですよ。人間、適性なんて
やってみなければわからないものですからね。これ以上、自分の
適性に合わないプログラミングは、死ぬまでの人生を無駄にしますよw
0106デフォルトの名無しさん
2009/01/03(土) 03:19:39代入式でなければいけないと主張するのならば、根拠を示してください。
0107デフォルトの名無しさん
2009/01/03(土) 03:20:05別にコンパイラが警告出したっていいんじゃない?
動くし。
FILE *fp;
if(!(fp = fopen("hoge.txt", "r"))) return 1;
みたいなのと一緒だと認識してる
違うんかな?
0108デフォルトの名無しさん
2009/01/03(土) 03:22:17jが0か否かで判定するのもありだが、これはどう考えても
代入式
だ罠。分からないなんて、どこのクズ講師だよ?
変な自身を持っているのも、迷惑だな、生徒が。
こんな奴にだけは、絶対に習いたくないね。
教える立場だから、間違っては困るにしろ、間違っていても
指摘した人間を陰湿に罵倒して正当化する性格になってしまったんだね。
生徒も低レベルなんだろうけど。
0109デフォルトの名無しさん
2009/01/03(土) 03:22:56昔は出なかったから、定数を左に書くテクニックとかあったわけだし。
0110デフォルトの名無しさん
2009/01/03(土) 03:23:40>>94についてはどう思う?
0111デフォルトの名無しさん
2009/01/03(土) 03:28:26Cの規格として代入式でも全く問題ないって言ってるのが理解できないのか?
0112デフォルトの名無しさん
2009/01/03(土) 03:31:08つられるなよお前ら・・・・・・・・・
0113デフォルトの名無しさん
2009/01/03(土) 03:32:20お前こそ、それが規格上問題ないということに誰も異論を述べていないことに気付け。
推奨される書き方ではないからやめろと言われ続けているだけだ。
0114デフォルトの名無しさん
2009/01/03(土) 03:33:22みんなで>>98でもやろうぜ。
fgetsでchar型配列を使わないってなんだろ
ポインタ使えってことかな
0115デフォルトの名無しさん
2009/01/03(土) 03:37:05#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;
}
0116デフォルトの名無しさん
2009/01/03(土) 03:37:240117デフォルトの名無しさん
2009/01/03(土) 03:41:17(FILENAMEはファイル名を示すものとする)
if( (fp=fopen(FILENAME , "r")) == NULL )
何かついているよね?fp=fopen() だけで、果たして通用するかにゃ〜? ( ^ω^)
fpの中身で条件判定するにしても、何かあるよにゃ〜♪
0118デフォルトの名無しさん
2009/01/03(土) 03:43:100119デフォルトの名無しさん
2009/01/03(土) 03:51:46偽:0
これが全てじゃね?
0120デフォルトの名無しさん
2009/01/03(土) 03:53:52[1] 授業単元:画像処理演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8511.txt
mypgm.hのコード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8512.txt
minutiae.cのコード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8513.txt
labeling.cのコード:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8514.txt
問題に用いる画像サンプル:http://www.uploda.org/uporg1904100.pgm.html
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:09年1月11日24:00まで
[5] その他の制限:説明文が下手ですいません。C言語の基礎的な関数のみでお願いします。
0121デフォルトの名無しさん
2009/01/03(土) 03:55:580122デフォルトの名無しさん
2009/01/03(土) 03:57:060123デフォルトの名無しさん
2009/01/03(土) 04:10:14プログラミングをお止めになった方がよろしいかと?思われているんだが。
0124デフォルトの名無しさん
2009/01/03(土) 04:13:15>>62
>>63
>>64
>>67
>>69
>>75
>>83
>>89
>>90
>>105
>>108
>>113
>>117
>>123
お前が止めろw
0125デフォルトの名無しさん
2009/01/03(土) 04:13:56whileやifの中身の意味で条件という言葉の用法もあるから混同しないで。
>>123
大抵のよその言語はコンパイルエラーになるから親切だ。
0126デフォルトの名無しさん
2009/01/03(土) 04:17:220127デフォルトの名無しさん
2009/01/03(土) 04:20:350128デフォルトの名無しさん
2009/01/03(土) 04:21:40俺?
眠いからパス
0129デフォルトの名無しさん
2009/01/03(土) 04:23:23教師なんてやるなよw
0130デフォルトの名無しさん
2009/01/03(土) 04:32:390131デフォルトの名無しさん
2009/01/03(土) 04:33:550132デフォルトの名無しさん
2009/01/03(土) 04:58:140133デフォルトの名無しさん
2009/01/03(土) 07:35:14麻呂は余計な口出しはしないでおじゃるよ。勝手に議論してたもう。
ただし、このスレのスレタイを読んで、スレ違いだと気づいて、それ相応のスレで
議論するでおじゃるよ。いつまでも譲らない二者で。第三者を巻き込まないでたもう。
0134デフォルトの名無しさん
2009/01/03(土) 07:50:10それは括弧がついているんだが?w
0135デフォルトの名無しさん
2009/01/03(土) 07:53:13代入式を真偽として扱うのがいやなわけじゃないんだな
0136デフォルトの名無しさん
2009/01/03(土) 08:54:13アホか
0137デフォルトの名無しさん
2009/01/03(土) 08:59:23代入式が値を持つことを知らないCプログラマなんて、いるワケ無いだろ。
0138デフォルトの名無しさん
2009/01/03(土) 09:26:550139デフォルトの名無しさん
2009/01/03(土) 10:14:52OKOK、じゃあ
if( fp = fopen( 〜 ) ) printf("ファイルオープン成功\n");
にするよw
実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw
0140デフォルトの名無しさん
2009/01/03(土) 10:25:580141デフォルトの名無しさん
2009/01/03(土) 10:28:48Cの条件式が論理演算子を必要としないのは最初に習うだろ。
0142デフォルトの名無しさん
2009/01/03(土) 11:25:42もっと他に情報ないの?
0143デフォルトの名無しさん
2009/01/03(土) 11:35:30> 実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw
そして NDEBUG を定義するとまともに動作しないプログラムができあがるわけだな。
assert 内で副作用のある式を評価しちゃ駄目。
0144デフォルトの名無しさん
2009/01/03(土) 11:55:59やっぱり気持ち悪がられてるw
0146デフォルトの名無しさん
2009/01/03(土) 12:43:330147デフォルトの名無しさん
2009/01/03(土) 14:08:39みんなわかってるよな?
0148デフォルトの名無しさん
2009/01/03(土) 14:10:420149デフォルトの名無しさん
2009/01/03(土) 15:53:58http://cis.k.hosei.ac.jp/~wakahara/patrecX_11.pdf
まず、「真マニューシャ」「偽マニューシャ」の定義がわからん。
下記では、"true minutiae"はエキスパートが抽出したマニューシャ、
"false minutiae"はアルゴリズムが抽出した点で、"true minutiae"に含まれて居ないもの。つまりハズレ。
http://books.google.co.jp/books?id=41dm6jorJkwC&pg=PA582&lpg=PA582&dq=%22true+Minutiae%22&source=bl&ots=ElmfGX78vh&sig=ociBxDMdbmnkqe-wO5e79vhcZM4&hl=ja&sa=X&oi=book_result&resnum=3&ct=result
「選別」と言うのは、minutiae.cの結果から、本来の定義のマニューシャだけを残すということのようだが、
pdfの18ページをみると「真マニューシャ」に含まれない端点の基準とかが分からない。
0150デフォルトの名無しさん
2009/01/03(土) 17:12:38コンパイラの警告が見えない馬鹿ですね?w
0151デフォルトの名無しさん
2009/01/03(土) 17:13:45警告がどうしたんだ?
0152デフォルトの名無しさん
2009/01/03(土) 17:17:39>>52を正しく直してみろ!!
0153デフォルトの名無しさん
2009/01/03(土) 17:17:53while文すらまともに使えないなんて、終わってますね。進路を変えな、今すぐ。
その程度じゃ人生を失敗するぞ。
0154デフォルトの名無しさん
2009/01/03(土) 17:22:06正しいから、これ以上、直らないだろ。
0155デフォルトの名無しさん
2009/01/03(土) 17:28:58さすが人生失敗してる人が言うと説得力が違うw
0156デフォルトの名無しさん
2009/01/03(土) 17:41:44labelsetの処理はなんとかならんもんかね。
>>149
多分、>>120の講義では指紋照合についてプログラムを書くということをやってるっぽい(ググった)。
・指紋の線の端点だと確定できる点を真マニューシャ
・指紋の線の端点だと確定できない点を偽マニューシャ
と定義してるくさい。
指紋認証だと、スキャナに指を押し付ける力加減により、スキャンする指の画像が変わってくる。
画像の境界線上にできる点を偽マニューシャと呼びたいたいのではないかと思う。
そこで、問題の意図としては、「その境界線をどうやって判断するのか?」を解かせようとしてるのかも
(処理思いつかんが)。
つーか、ほとんど推理ゲーだな。
0158デフォルトの名無しさん
2009/01/03(土) 21:57:05稜線上の距離が基準だとすると、以下の二つの扱いが納得できない。
http://up2.viploader.net/pic3/src/vl2_090483.jpg
http://up2.viploader.net/pic3/src/vl2_090484.jpg
下の点は、本当に消えるべき点なのだろうか?
0159デフォルトの名無しさん
2009/01/03(土) 23:08:030160デフォルトの名無しさん
2009/01/03(土) 23:10:21技術ありき
実用にするかどうかはアイディア次第
0161デフォルトの名無しさん
2009/01/03(土) 23:12:16パターン認識の実用がどんなか知らないが、これは指紋の照合では基礎なのでは?
0163デフォルトの名無しさん
2009/01/04(日) 00:02:47依頼にも「同じ隆線上で近接して出現 したマニューシャは」云々と書いてあるし、なにかしてるはずだけど・・・
pdfに載ってる処理結果を見ると、他にも何か処理をしていなくては、辻褄が合わない。
それこそ境界線上の端点の除外とか。
工夫を考えろと言うことなのかな。
0164デフォルトの名無しさん
2009/01/04(日) 01:57:57詳説もとめます。
0165120
2009/01/04(日) 02:03:11ただ、課題でHilditch.cを使うかは分かりません。
http://www1.axfc.net/uploader/He/link.pl?dr=4660528869&file=He_177945.zip
(pass:1)
マニューシャについては11のpdf、Hilditch.cをつかって,細分化するコードについては10のpdfに書いてあります。
丸投げでごめんなさい。
0166デフォルトの名無しさん
2009/01/04(日) 02:05:11何度も迷惑かけてすいません・・・
0167デフォルトの名無しさん
2009/01/04(日) 02:12:06>>143ではないが、assert(expr)は、NDEBUGが#defineされているときにはexprが評価されない。
実装によるが、たいていマクロだから副作用がある式を評価させてはならない。
とりあえず、自分の環境のassert() (多分assert.hにでも書いてある)を読んでみるといいよ。
0168デフォルトの名無しさん
2009/01/04(日) 02:48:09学校のサイトはもう見つけた。>>149
0169デフォルトの名無しさん
2009/01/04(日) 02:50:36一応補足。
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 ビルドで挙動が異なるコードを生み出してしまう。
0170デフォルトの名無しさん
2009/01/04(日) 02:53:300171デフォルトの名無しさん
2009/01/04(日) 03:07:44いきたいのですが、どういう風にすればよろしいでしょうか?
ご教授ください。
0172デフォルトの名無しさん
2009/01/04(日) 03:10:410173デフォルトの名無しさん
2009/01/04(日) 03:10:42HTMLテキストデータのサンプルくらい提示して欲しいもんだ
0174デフォルトの名無しさん
2009/01/04(日) 03:26:16後付で条件足すなよ!
#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;
}
}
0175デフォルトの名無しさん
2009/01/04(日) 03:29:27#include<algorithm>
が抜けているのでcctypeの下に追加
if(std::isspace(*s))++s;
が空白1つにしか対応できていないので
任意個数の空白に対応するためにcontinueするする
if(std::isspace(*s)){++s;continue;}
0176デフォルトの名無しさん
2009/01/04(日) 04:54:08[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8516.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:特にはありません。よろしくお願いします。
0177デフォルトの名無しさん
2009/01/04(日) 05:25:09一応元のコードをベースにしたけどこんなんでお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;
}
0178デフォルトの名無しさん
2009/01/04(日) 05:32:480179デフォルトの名無しさん
2009/01/04(日) 05:42:11それを使うか悩んだんだけど、limits.hを授業でやったか分からない。
それとintのサイズが32bitであると問題文でわざわざ定義されている。
そんな感じで、今回はマジックナンバーを決めうちで実装した。
0180デフォルトの名無しさん
2009/01/04(日) 06:24:02さすれば、何ビットだろうとその変数が扱える最大のFFFF・・・になるでおじゃるし。
え?邪道?それがクソースでおじゃっ!
0181デフォルトの名無しさん
2009/01/04(日) 06:32:22signed int sint=uint>>1;
printf("uint:%u \nsing:%d\n",uint,sint);
きんもぉ〜★なクソースでおじゃっ
0182デフォルトの名無しさん
2009/01/04(日) 07:06:07http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8517.c
0183デフォルトの名無しさん
2009/01/04(日) 07:36:40[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8518.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年1月10日12:00まで
[5] その他の制限:特にありません。
よろしくお願いします。
0184デフォルトの名無しさん
2009/01/04(日) 09:47:191段1次のRunge-Kuttaと称してEuler法で解いてやりたい
0186デフォルトの名無しさん
2009/01/04(日) 11:52:08(2)だけ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8519.txt
(1)は、結局、求められているものが分からない。
ろだからファイル消してるくらいだから、もう此処見てないかも知れないけど・・・
0187C初心者
2009/01/04(日) 12:12:38[2] 問題文(含コード&リンク):ポインタを用いた二分探索木の作成
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:データはファイルから読み込むものとしています。
他のスレでも質問させてもらったのですがどうしてもわからないので、ここで質問させて頂きます。
宿題ではあったのですが、もう期限は過ぎています。
ただどうしても知りたいのでどなたかお願いします。あとオススメの参考書等教えていただけると嬉しいです。
0188デフォルトの名無しさん
2009/01/04(日) 12:31:13http://oku.edu.mie-u.ac.jp/~okumura/algo/
>『C言語による最新アルゴリズム事典』
0189C初心者
2009/01/04(日) 17:37:39ありがとうございます。 早速注文しました。
プログラムはわかりませんか??
0190デフォルトの名無しさん
2009/01/04(日) 17:40:01今すぐ買って来いバカ
0191おねがいしますw
2009/01/04(日) 17:44:13[2](コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8520.txt
問題文
[1]list3.cの演習の部分を埋め、完成させ動作を確認せよ
[2]逆順に整列入力するようにプログラムを作り変えよ
[3]環状リストの処理をダミーノードを設定せずに作ってみよ
[4]双方向リストの処理をダミーノードを設定せずに作ってみよ
問題は以上です お願いします
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (gcc)
[3.3] 言語: (C言語)
[4] 期限: ([1月6日9:00までに願いします] )
0192デフォルトの名無しさん
2009/01/04(日) 21:57:00元からバグってるとかねーだろ。
0193デフォルトの名無しさん
2009/01/04(日) 22:15:050194デフォルトの名無しさん
2009/01/04(日) 22:22:560195デフォルトの名無しさん
2009/01/04(日) 22:32:060196デフォルトの名無しさん
2009/01/05(月) 00:10:56リンク先のtree.cってソースがそれだろ?
0197デフォルトの名無しさん
2009/01/05(月) 00:20:19[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] その他の制限: 構造体習い始めた程度の能力
0198デフォルトの名無しさん
2009/01/05(月) 00:52:18[2]問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8522.txt
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年1月5日午前10時
[5]特になし。
0199197 ◆brUNnJvSqY
2009/01/05(月) 01:10:31訂正
[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] その他の制限: 構造体を習い始めた程度の能力
0200デフォルトの名無しさん
2009/01/05(月) 01:15:44#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;
}
0201デフォルトの名無しさん
2009/01/05(月) 01:53:41/* ちょっと気持ち悪く書いてみたよ */
#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;
}
0202デフォルトの名無しさん
2009/01/05(月) 02:09:03親切な解答、ありがとうございました。1はまた考えてみます。
失礼しました。
0203197 ◆brUNnJvSqY
2009/01/05(月) 02:12:10ありがとうございます。
fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
という、エラーが出てしまいます。回避法はありますでしょうか?
出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。
0204デフォルトの名無しさん
2009/01/05(月) 02:13:16#include <stdafx.h> をソースの頭に書け
あと氏ね
0205デフォルトの名無しさん
2009/01/05(月) 02:32:12[1] 授業単元: Cプログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8523.txt
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限: 朝まで
[5] その他の制限: よろしくお願いします
0206デフォルトの名無しさん
2009/01/05(月) 02:47:14/* 意味が良くわからないけどこういうことかな */
#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;
}
0207デフォルトの名無しさん
2009/01/05(月) 03:23:150208デフォルトの名無しさん
2009/01/05(月) 03:36:17むしろ、他の解釈を聞かせて欲しい。
0209デフォルトの名無しさん
2009/01/05(月) 03:42:070210C初心者
2009/01/05(月) 11:00:16すいません、リンク先に行けなくて見れてないです。
0211デフォルトの名無しさん
2009/01/05(月) 12:52:12[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8524.txt
[3] 環境
[3.1] OS: windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:c
[4] 期限:夕方
[5] その他の制限: よろしくです
0212デフォルトの名無しさん
2009/01/05(月) 13:00:26何周目だよ。死ねよ。
0213デフォルトの名無しさん
2009/01/05(月) 13:16:18> 気に入らない質問やその他や発言はスルーの方向で。
も読めない基地外って何?別にお前個人を指定、特定して答えろなんて
誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。
0214デフォルトの名無しさん
2009/01/05(月) 13:21:06分かりきっていることなのに、自分が気に入らないとファビョって
訳も分からないクレームをつける奴って何?そんなんだから
一生、成功しないままこの世を去るんだろ?w
そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ?
ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、
今何をしてる?少なくともお前以上の出世はしただろうねw
お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。
人生終わってら。
0215デフォルトの名無しさん
2009/01/05(月) 13:44:35/* たぶん大丈夫だと思う */
#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;
}
0216デフォルトの名無しさん
2009/01/05(月) 13:45:57printf("%d\n", n %= (int)(pow(10, N)));
は
n %= (int)(pow(10, N));
に直して。
0217デフォルトの名無しさん
2009/01/05(月) 14:17:06#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;
}
0218デフォルトの名無しさん
2009/01/05(月) 14:19:49[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8525.txt
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Stdio 2005
[3.3] 言語: C
[4] 期限: 1/5 21:00
よろしくお願いします。
0219デフォルトの名無しさん
2009/01/05(月) 14:29:53[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8527.zip (設問も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 関数を使用すること。
0220デフォルトの名無しさん
2009/01/05(月) 14:33:130221デフォルトの名無しさん
2009/01/05(月) 17:03:15しね
0222デフォルトの名無しさん
2009/01/05(月) 18:22:05こんな感じでいかが?
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8528.txt
0223デフォルトの名無しさん
2009/01/05(月) 19:26:03もう前スレで解答してあるはずだが
0224218
2009/01/05(月) 20:03:05自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です
ありがとうございました
0225デフォルトの名無しさん
2009/01/05(月) 22:33:58[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-
0226デフォルトの名無しさん
2009/01/05(月) 23:14:44反転させて、"AWANIKO"と出力するプログラムを作りなさい。
0227デフォルトの名無しさん
2009/01/05(月) 23:25:18char str[]="OKINAWA"; reverse(str); printf("%s",str);
0228226
2009/01/05(月) 23:32:050229デフォルトの名無しさん
2009/01/05(月) 23:35:47for使っての解き方誰かわかりますか?
0230デフォルトの名無しさん
2009/01/05(月) 23:38:45Google Code Jam 2004のHousePartyってヤツだな。
0231デフォルトの名無しさん
2009/01/05(月) 23:44:51reverse(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;}
}
0232デフォルトの名無しさん
2009/01/05(月) 23:48:51[2]問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8531.txt
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2009年1月6日午前8時
[5]特になし。
0233デフォルトの名無しさん
2009/01/06(火) 00:16:37for(int i=0; i <= 100 ; i++ )if( i * ( i + 1 ) / 2 >= N ) { printf("%d\n",i); break;}
while( i * ( i + 1 ) / 2 < N ) { i++; }
0234デフォルトの名無しさん
2009/01/06(火) 00:17:140235デフォルトの名無しさん
2009/01/06(火) 00:18:23#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;
}
0236デフォルトの名無しさん
2009/01/06(火) 00:19:31int 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");
}
0237デフォルトの名無しさん
2009/01/06(火) 01:09:51http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8532.txt
一応、例題の計算結果には合致するようだが、理屈は分からん。
0238デフォルトの名無しさん
2009/01/06(火) 01:11:59[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8533.txt
[3] 環境
[3.1] OS:windows XP
[3.2] コンパイラ名とバージョン:visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月9日
[5] その他の制限:特にありません。
よろしくお願いします。
0239デフォルトの名無しさん
2009/01/06(火) 02:18:23[2]int 型(符号つき32 ビット整数)および、unsigned int 型(符号なし32 ビット整数)のそれぞれの最大の素数を求めよ。
[3]環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名bcc
[3.3] 言語:C言語
[4]特になしですが早めで。
[5]制限:エラトステネスを用いずに素数を求める。
どうか、よろしくお願いします。
0240デフォルトの名無しさん
2009/01/06(火) 03:38:59>>177あたりでどう?
0241デフォルトの名無しさん
2009/01/06(火) 04:40:34みのがしてました。ありがとうございますです。
0242デフォルトの名無しさん
2009/01/06(火) 08:19:55(99+1)/2
の処理の意図を教えて頂けないでしょうか・・後から質問でスイマセン。
0243デフォルトの名無しさん
2009/01/06(火) 08:32:30等差数列の和=項数*(初項+末項)/2
0244デフォルトの名無しさん
2009/01/06(火) 08:44:070245デフォルトの名無しさん
2009/01/06(火) 09:03:46http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8534.txt
0246デフォルトの名無しさん
2009/01/06(火) 10:03:14ttp://www.kwansei.ac.jp/hs/z90010/sugakua/suuretu/tousasum/tousasum.htm
0247デフォルトの名無しさん
2009/01/06(火) 12:31:15[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] その他の制限:特になし
よろしくお願いします。
0248デフォルトの名無しさん
2009/01/06(火) 12:38:290249デフォルトの名無しさん
2009/01/06(火) 15:05:44[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8535.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC2005
[3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限:for,if等基本的なものを使う。strは禁止。
それではよろしくお願いします。
0250デフォルトの名無しさん
2009/01/06(火) 15:08:14str〜系関数のこと?
最初std::stringかと思ったが・・・
0251デフォルトの名無しさん
2009/01/06(火) 16:35:41[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] その他の制限 特になし
よろしくお願いします
0252デフォルトの名無しさん
2009/01/06(火) 17:01:44問題文も読まずに丸投げとは・・・
0253デフォルトの名無しさん
2009/01/06(火) 17:08:380254デフォルトの名無しさん
2009/01/06(火) 17:12:52[2] 問題文:
以下の仕様で収支残高管理プログラムを作成せよ.ただし,残高処理の関数を独自で定義すること.
その際,ファイルポインタについてはグローバル変数として宣言しても良い.
初期状態を除いてプログラム実行時に既存の残高額のファイル(balance.txt)を読み込む.
ファイルが存在する場合に限り,balance.txt)を読み込む処理をすれば良い.
各処理を選択するメニュー画面を残高額とともに表示する.可能であれば,残高は桁区切りカンマを用いて表示すること.
終了時にその時点の残高額をファイル(balance.txt)に書き込む.
ヒント:最初にbalance.txtを読み込みモードで開いて読み込んだ後は,即座にファイルを閉じ,最後の書き込み時に,改めて書き込みモードで開いて同名のファイルに書き込みをすれば良い.
また,ファイルからの金額の読み込みにはfscanfを,書き込みにはfprintfを使用すると良い.
0255254
2009/01/06(火) 17:15:48[実行例]
***** 収支残高管理 *****
残高は \0 です.
[1] 収入
[2] 支出
[99] 終了
処理を選択してください:1
収入金額:12345
***** 収支残高管理 *****
残高は \12,345 です.
[1] 収入
[2] 支出
[99] 終了
0256254
2009/01/06(火) 17:16:27処理を選択してください: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] その他の制限:特になし
よろしくお願いします。
0257デフォルトの名無しさん
2009/01/06(火) 17:21:540258デフォルトの名無しさん
2009/01/06(火) 17:38:13#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;
}
0259デフォルトの名無しさん
2009/01/06(火) 18:26:57[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言語の基礎を習っています。
よろしくお願いします
0260デフォルトの名無しさん
2009/01/06(火) 19:07:31説明不足でごめんなさい
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関数は習っていないので・・・
0261デフォルトの名無しさん
2009/01/06(火) 19:38:19C++?
0262デフォルトの名無しさん
2009/01/06(火) 19:46:33>>246
ありがとうございました
助かりましたw
0263つばめ
2009/01/06(火) 20:35:24正の整数nを入力し、nの約数の和を表示するプログラムを作る問題です。
初心者なので、宜しくお願いします。
0264デフォルトの名無しさん
2009/01/06(火) 20:40:560265デフォルトの名無しさん
2009/01/06(火) 20:52:19#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)); }
0266デフォルトの名無しさん
2009/01/06(火) 20:55:100268デフォルトの名無しさん
2009/01/06(火) 21:00:21#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;
}
0269デフォルトの名無しさん
2009/01/06(火) 21:14:41#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;
}
0270デフォルトの名無しさん
2009/01/06(火) 21:17:120271デフォルトの名無しさん
2009/01/06(火) 21:27:20返事遅くなって毎度毎度すいません・・・
C++です
0272つばめ
2009/01/06(火) 21:31:50C++ではなく、C言語の方です。
0273デフォルトの名無しさん
2009/01/06(火) 21:38:08このツンデレが!
0274デフォルトの名無しさん
2009/01/06(火) 21:39:560275デフォルトの名無しさん
2009/01/06(火) 21:43:580276デフォルトの名無しさん
2009/01/06(火) 21:59:37[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8536.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月7日AM7時
よろしくお願いします
0277デフォルトの名無しさん
2009/01/06(火) 22:06:46[2] 問題文(含コード&リンク):
DirectShowを用いてtest.aviなどファイルから再生している動画をout.aviなど別ファイルとして保存する
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C++
[4] 期限: 1月7日
[5] その他の制限:
スレ違いかもしれませんができればお願いします
0278デフォルトの名無しさん
2009/01/06(火) 22:08:05#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;
}
0279デフォルトの名無しさん
2009/01/06(火) 22:12:58[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8518.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2009年1月10日12:00まで
[5] その他の制限:特にありません。
よろしくお願いします。
0280デフォルトの名無しさん
2009/01/06(火) 22:26:151. http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8540.txt
2. http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8543.txt
0281デフォルトの名無しさん
2009/01/06(火) 23:07:11[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8538.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月7日AM9時
よろしくお願いします
0282デフォルトの名無しさん
2009/01/06(火) 23:10:013. http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8544.txt
4. http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8545.txt
0283デフォルトの名無しさん
2009/01/06(火) 23:29:31http://pc11.2ch.net/test/read.cgi/tech/1229424329/601
0284デフォルトの名無しさん
2009/01/06(火) 23:57:36これを利用しろということですか?
0285デフォルトの名無しさん
2009/01/07(水) 00:04:29ありがとうございます
ちなみにfor文の方はどうなっているのでしょうか?
0286デフォルトの名無しさん
2009/01/07(水) 00:11:58[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8546.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:09年1月7日24:00まで
[5] その他の制限:丸投げですいません。基礎的な関数のみでよろしくお願いします。
0287デフォルトの名無しさん
2009/01/07(水) 00:14:42#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;
}
こんな感じでどうかな
0288デフォルトの名無しさん
2009/01/07(水) 01:03:59[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8547.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C
[4] 期限: 1月7日
[5] その他の制限: 特になし
よろしくお願いします
0289デフォルトの名無しさん
2009/01/07(水) 01:10:06課題7-3がないと無理
0290デフォルトの名無しさん
2009/01/07(水) 01:17:22無視してかまわないです
追記
データ入力数は最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする
0291デフォルトの名無しさん
2009/01/07(水) 01:21:38[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC++2008
[3.3] 言語: C
[4] 期限: 1月15日
[5] その他の制限: 特になし
■
検索問題
データ数10万 ランダムな対象を1万回検索する
先頭から検索すると平均で1000秒かかった
高速化するにはどうしたらよいか
ソートされてる場合とされてない場合のそれぞれについて答えよ
0292デフォルトの名無しさん
2009/01/07(水) 01:26:38ソートされてない場合
まずソートする、 このとき オーダーが n log になるようなまともなソートを使う
これを二分探索する
ソートされてる場合
二分探索する
0293デフォルトの名無しさん
2009/01/07(水) 01:27:090294デフォルトの名無しさん
2009/01/07(水) 01:28:24http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8548.txt
0295デフォルトの名無しさん
2009/01/07(水) 01:31:32ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8549.txt
0296デフォルトの名無しさん
2009/01/07(水) 01:42:34それは本当にプログラミングの課題なのか?
考察ではなく実際に試したとしたら、116日ほどかかった計算になるんだが
0297デフォルトの名無しさん
2009/01/07(水) 01:42:55ありがとうございます
0298デフォルトの名無しさん
2009/01/07(水) 01:54:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8552.txt
0299デフォルトの名無しさん
2009/01/07(水) 02:31:06[2] 問題文(含コード&リンク):
キーボードから入力した整数と小数(それぞれ1つずつ)を乗算した結果を表示するプログラムを、
ポインタによる間接参照演算子を用いて作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:1月7日24時
[5] その他の制限: 入力、乗算、表示部分全てでポインタを用いる
よろしくお願いします。
0300デフォルトの名無しさん
2009/01/07(水) 02:50:01その発想はなかったわ。
0301デフォルトの名無しさん
2009/01/07(水) 03:09:50設問者の意図がよく分からんが、こういうことか
#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);
%>
0302デフォルトの名無しさん
2009/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)
0303デフォルトの名無しさん
2009/01/07(水) 04:01:54テンプレ嫁
0304デフォルトの名無しさん
2009/01/07(水) 09:05:19[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行)。
指定した数値・改行以外の文字などの出力は一切行わないこと。
』
0305デフォルトの名無しさん
2009/01/07(水) 09:06:33マルチ死ね
0306デフォルトの名無しさん
2009/01/07(水) 09:11:56>>1
0307デフォルトの名無しさん
2009/01/07(水) 09:23:49ありがとうございます。
0308304
2009/01/07(水) 09:26:40どうもお手数おかけしました
0309デフォルトの名無しさん
2009/01/07(水) 11:08:04エンジニアにむいてないな、オマエ。
0310デフォルトの名無しさん
2009/01/07(水) 11:10:140311デフォルトの名無しさん
2009/01/07(水) 11:27:55>>1
0312デフォルトの名無しさん
2009/01/07(水) 11:27:59引数を「いんすう」と読んでる教育機関なんか存在しないんじゃね?
0313デフォルトの名無しさん
2009/01/07(水) 11:28:110314回答する気もないくせに居座るだけの無能、粘着基地外
2009/01/07(水) 11:35:04>>311
0315デフォルトの名無しさん
2009/01/07(水) 11:36:28そこから考えると、
コイツは前のスレッドで同じ宿題二度投げてるやつじゃね?
0316デフォルトの名無しさん
2009/01/07(水) 11:36:350317デフォルトの名無しさん
2009/01/07(水) 11:36:44>>1
0318デフォルトの名無しさん
2009/01/07(水) 11:38:12http://pc11.2ch.net/test/read.cgi/tech/1231180205/128
0319デフォルトの名無しさん
2009/01/07(水) 11:43:13http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1422008424
0320デフォルトの名無しさん
2009/01/07(水) 11:52:440321デフォルトの名無しさん
2009/01/07(水) 12:00:170322デフォルトの名無しさん
2009/01/07(水) 12:01:140323デフォルトの名無しさん
2009/01/07(水) 12:01:20うわぁ〜〜〜、質問する側もどうかと思うが、それを見つけてくる粘着基地外暇人も
きめぇ〜〜〜
0324デフォルトの名無しさん
2009/01/07(水) 12:01:40>>1
0325デフォルトの名無しさん
2009/01/07(水) 12:34:32特に質問系のスレは
0326デフォルトの名無しさん
2009/01/07(水) 13:13:30[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行で入力し、改行する。
よろしくお願いします。
0327デフォルトの名無しさん
2009/01/07(水) 13:22:16できました。ありがとうございます。
ですが
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8553.txt
こういった形にできますでしょうか?
なるべくforじゃなくてwhileを使いたいのですが・・・
0328デフォルトの名無しさん
2009/01/07(水) 13:23:13C/C++の宿題を片付けます 101代目
http://pc11.2ch.net/test/read.cgi/tech/1197132472/929
0329デフォルトの名無しさん
2009/01/07(水) 13:25:140330デフォルトの名無しさん
2009/01/07(水) 13:28:440331デフォルトの名無しさん
2009/01/07(水) 13:32:07注目点は、環境がStudy Cなところじゃね?
>>304今年の学生はそれもつづれないようだけど。
0332デフォルトの名無しさん
2009/01/07(水) 13:38:33#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;
}
0333デフォルトの名無しさん
2009/01/07(水) 14:15:43>>301
解答ありがとうございました。
自分の知らない関数を使っているので、この解答を参考にしながら
書いてみます。
0334デフォルトの名無しさん
2009/01/07(水) 15:59:55[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)
0335デフォルトの名無しさん
2009/01/07(水) 16:22:14#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;
}
}
0336デフォルトの名無しさん
2009/01/07(水) 16:36:21http://www.google.com/search?q=%22%E5%9B%A0%E6%95%B0%E3%81%AB%E3%83%9D%E3%82%A4%E3%83%B3%E3%82%BF%E3%82%92%E5%90%AB%E3%82%80%22
ぐぐったらでてきた。
0337help me
2009/01/07(水) 16:40:29[2] 問題文: ニュートン・ラプソン法を用いて、x^3 −10x^2 +10x + 50 = 0
の解を求めよ。解の精度は有効数字5桁とする。
[3] 環境
[3.1] OS:Linux
[3.3] 言語: C
[4] 期限: 1月9日
よろしくお願いします。
0338デフォルトの名無しさん
2009/01/07(水) 16:50:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8554.txt
0339デフォルトの名無しさん
2009/01/07(水) 16:59:44#include<stdio.h>
#include<math.h>
//英語わからん
#define YUUKOUKETASUU 1e-5
double f(double x) {
return x*x*x - 10*x*x + 10*x + 50;
}
double g(double x) {
return 3*x*x - 20*x +10;
}
double NewtonMethod(double xn) {
double xn1 = xn - (f(xn)/g(xn));
if (fabs(xn1 - xn) < YUUKOUKETASUU)
return xn1;
return NewtonMethod(xn1);
}
int main(void) {
double x = NewtonMethod(0);
printf("f(x) = x^3 - 10x^2 +10x + 50\n");
printf("f(%f) = %f\n", x, f(x));
return 0;
}
0340デフォルトの名無しさん
2009/01/07(水) 17:01:19#include <stdio.h>
#include <math.h>
#define YPSILON 1e-6
#define DELTA 1e-10
double f(double x)
{
return x*x*x - 10*x*x + 10*x + 50;
}
int main(void)
{
double x0, x1, d;
x0 = 0.0;
d = (f(x0+DELTA)-f(x0))/DELTA;
x1 = x0 - f(x0)/d;
while (fabs(x0 - x1) > YPSILON) {
x0 = x1;
d = (f(x0+DELTA)-f(x0))/DELTA;
x1 = x0 - f(x0)/d;
}
printf("x = %.5f\n", x1);
return 0;
}
0341help me
2009/01/07(水) 17:04:34ありがとうございます!
0342yasu
2009/01/07(水) 17:07:23[2] 問題文(含コード&リンク):30以上500以下の整数の和を求めるプログラム作成する。
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: PAD 2
[3.3] 言語:C言語
[4] 期限: 1/9 12:00
[5] その他の制限:どうぞ宜しくお願いしますm(..)m
0343デフォルトの名無しさん
2009/01/07(水) 17:15:57#include <stdio.h>
int main(void)
{
int i,sum=0;
for (i=30; i<=500; i++)
sum += i;
printf("%d", sum);
return 0;
}
0344デフォルトの名無しさん
2009/01/07(水) 17:22:38なるほど、通常ありえないスペルミスを混入することで(ry
>>342
#include <stdio.h>
int main(void)
<%
printf("sam = %d\n", (500-30+1) * (30+500) / 2);
return 0;
%>
0345デフォルトの名無しさん
2009/01/07(水) 17:25:450346デフォルトの名無しさん
2009/01/07(水) 17:35:260347デフォルトの名無しさん
2009/01/07(水) 17:38:54なるほど、最近見かけることのないイーグルサムを混入したのですね
0348yasu
2009/01/07(水) 17:40:03助かりました!!
0350yasu
2009/01/07(水) 18:15:23[2] 問題文 nを入力し、1からnまでの3の倍数と5の倍数の和を求めるプログラム作成する。
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: PAD 2
[3.3] 言語:C言語
[4] 期限: 1/9 12:00
[5] その他の制限:できるだけ簡単な関数でお願いします。
どうぞ宜しくお願いしますm(..)m
0351デフォルトの名無しさん
2009/01/07(水) 18:28:570352デフォルトの名無しさん
2009/01/07(水) 18:36:38#include <stdio.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("%d\n", sum(n));
/*for (n=0; n<=100; n++) printf("%3d : %d\n", n, sum(n));*/
return 0;
}
int sum(int n)
{
return s(n / 3) * 3 + s(n / 5) * 5 - s(n / 15) * 15;
}
int s(int n)
{
return n * (n + 1) / 2;
}
0353デフォルトの名無しさん
2009/01/07(水) 18:38:12PAD 2 ってなんだ?
0354デフォルトの名無しさん
2009/01/07(水) 18:39:59[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下に記載
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:cygwin
[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)
0355デフォルトの名無しさん
2009/01/07(水) 18:47:08[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8555.txt
[3] 環境
[3.1] OS: win
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: c
[4] 期限: 今日21時
[5] その他 よろしくです
0356デフォルトの名無しさん
2009/01/07(水) 18:51:00何周目だよ。ホントに死ねよ。
0357デフォルトの名無しさん
2009/01/07(水) 19:04:21ましてや問題文のリンクしかみんな書かないんだから既出とかわかんねーよ
0358デフォルトの名無しさん
2009/01/07(水) 19:09:56>>1
0359デフォルトの名無しさん
2009/01/07(水) 19:11:180360yasu
2009/01/07(水) 19:17:27解答ありがとうございますm(..)m
0361デフォルトの名無しさん
2009/01/07(水) 19:36:01/* この問題、見るたびに最大桁数が小さくなってるのは気のせいだろうか */
#include <stdio.h>
#include <ctype.h>
int main(void)
{
int a[3], i, j;
for (i = 0; i < 3; ++i) {
a[i] = 0;
int c;
j = 0;
while ((c = getchar()) != '\n') {
if (!isdigit(c) || (j == 0 && c == '\n')) {
puts("error.");
return 1;
}
if (j < 5) a[i] = a[i] * 10 + c - '0';
++j;
}
}
printf("%d + %d + %d = %d\n", a[0], a[1], a[2], a[0] + a[1] + a[2]);
return 0;
}
0362デフォルトの名無しさん
2009/01/07(水) 19:37:54[2] 問題文 20から10までの整数を順番に空白で区切って、表示し改行するプログラムを作る。
whileを使うこと。
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:Visual Stdio 2008
[3.3] 言語:C言語
[4] 期限: 1/10
[5] その他の制限:できるだけ簡単な関数でお願いします
0363デフォルトの名無しさん
2009/01/07(水) 19:41:00>>1
0364デフォルトの名無しさん
2009/01/07(水) 19:43:15#include <stdio.h>
int main(void)
{
int n = 20;
while (n > 10) printf("%d ", n--);
printf("%d\n", n);
return 0;
}
0365デフォルトの名無しさん
2009/01/07(水) 19:48:08ありがとうございます!
0366デフォルトの名無しさん
2009/01/07(水) 19:48:430367デフォルトの名無しさん
2009/01/07(水) 21:55:09[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8556.txt
[3]環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:VC++ 2008
[3.3] 言語:C言語
[4] 期限:1/9
[5] その他の制限:特に無いです。
よろしくお願いします。
0368デフォルトの名無しさん
2009/01/07(水) 21:58:04ソートするのは反則じゃないか?
ハッシュ法と答えて欲しいんじゃないかと
0369yasu
2009/01/07(水) 22:00:49初心者なので、ソースを見ても分からなかったので、nを入力し1からnまでの3の
倍数の和を求めるプログラムを宜しくお願いします。
[1] 授業単元: C言語プログラミング基礎
[2] 問題文 nを入力し、1からnまでの3の倍数の和を求めるプログラム作成する。
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン: PAD 2
[3.3] 言語:C言語
[4] 期限: 1/9 12:00
[5] その他の制限:できるだけ簡単な関数でお願いします。
どうぞ宜しくお願いしますm(..)m
0370デフォルトの名無しさん
2009/01/07(水) 22:06:48#include <stdio.h>
int main(void)
{
int r = 12345, a = 997, c = 1, m = 65536;
double x, sum = 0.0;
int i;
for (i = 0; i < 100; i++) {
r = r*a + c;
r = r % m;
x = (double)r/m;
sum += x;
printf("%.4f ", x);
if (i % 10 == 9) {
putchar('\n');
}
}
printf("\nmean=%.4f\n", sum / 100.0);
return 0;
}
0371デフォルトの名無しさん
2009/01/07(水) 22:17:11審判役くらいにしか使えない。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8557.txt
0372デフォルトの名無しさん
2009/01/07(水) 22:28:58#include <stdio.h>
int main(void)
{
int n,sum=0;
int i;
do{
printf("整数nの値を入力せよ:");
scanf("%d",&n);
if(n<1)
printf("1以上の整数値を入力せよ。\n");
}while(n<1);
for(i=1; i<=n; i++)
if((i%3)==0)
sum = sum + i;
printf("\n");
printf("1から%dまでの3の倍数の和は%dです。\n",n,sum);
return 0;
}
0373nyao
2009/01/07(水) 22:31:31[3]環境
OS:Mac
コンパイラ名とバージョン:よくわかりません。g++ ファイル名で実行してます。
言語:C++言語
[4] 期限:1/10
自由課題で「かぶ」を作っています。
ベースは自分で何とか作れたんですが、条件付けが難しくてできません。このプログラム→http://sugar310.dip.jp/cgi/upload/source/up15160.txt
に、プログラム内に書いてあるルールを参考にして以下の6つの条件を付け足して欲しいです。
�@ランダムに発生する数値から0を除外する。
(0が出たら「ランダムに発生」を繰り返す。)
�Aif(v==9||w==1){
cout <<「「クッピン」で勝負だ」<<"\n";
↑
v==1||w==9でも
cout <<「「クッピン」で勝負だ」<<"\n";
�Bif(v==4||w==1){
cout << 「「シッピン」で勝負だ」<<"\n";
↑
v==1||w==4でも
cout <<「「シッピン」で勝負だ」<<"\n";
�C3が3枚のときは
cout << 「「アラシ」で勝負だ」<<"\n";
�D2枚もしくは3枚の合計が20より大きいときは
cout << 「「ブタ」で勝負だ」<<"\n";
�E2枚もしくは3枚の合計が10もしくは20になれば
cout << 「合計は10(20)だから「ニゲ」だ」 << "\n";
→1番最初のランダムに数字を発生させるところに戻る
よろしくお願いします!><
0374デフォルトの名無しさん
2009/01/07(水) 22:36:18[2] 問題文(含コード&リンク):
2項分布Pa,q(x)=Ca,b ・q^b・(1-q)^(a-b)を実装せよ。
またaを大きくして出力せよ。
[3] 環境
[3.1] OS: LINUX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 2009年1月8日
[5] その他の制限: 特になし
0375デフォルトの名無しさん
2009/01/07(水) 22:47:28誰か、このPAD 2って環境知ってる?
0376デフォルトの名無しさん
2009/01/07(水) 22:50:10[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8558.c
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月8日10時まで
[5]その他の制限:特になし
L69で適当な(文字列s の最初のn 文字のハッシュ値を返す)ハッシュ関数を定義し、mystrstr hash1() を完成させよ。
また、それを利用するメイン関数を作成し、実行せよ。
その後L71以降のローリングハッシュを用いてプログラムを改良せよ。
適切なハッシュ関数の定義だけでもお願いします。
0377yasu
2009/01/07(水) 23:07:23ソース解読できました。
解答ありがとうございます。
0378デフォルトの名無しさん
2009/01/07(水) 23:39:58[2] 問題文(含コード&リンク):行列式で二元連立方程式を解く {a1X+b1Y=C1 未知の定数:X、Y
[3] 環境 a2X+b2Y=C2 変数:a1,a2,b1,b2,C1,C2
[3.1] OS: Windows vista business
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:基礎全般はやってます。いきなりの宿題で困ってます;;
すみませんよろしくお願いします。
0379デフォルトの名無しさん
2009/01/07(水) 23:46:53[2] 問題文(含コード&リンク):
次の処理を行うプログラムを書きなさい
1; [80A1h] ← (B+C)*2??[80A0h]*3 オーバーフローは考慮不要
2; [80B3h] [80B2h] ←[80B0h] +[80B1h] *2 和を16ビットで求める(分岐命令を使用してもよい)
3; A ← B ・C + H ・L (論理演算)
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: [2009年1月8日
[5] その他の制限: なし
どれか一つでいいので教えてください
まったくわかりませんww
0380デフォルトの名無しさん
2009/01/08(木) 00:09:46定数と変数の違いとか、プログラム以前に数学を勉強した方がいい
0381デフォルトの名無しさん
2009/01/08(木) 00:13:27for (A; B; C) {
XXXXX
}
を
A;
while (B) {
XXXXX
C;
}
に機械的に置き換えればいい。
0382デフォルトの名無しさん
2009/01/08(木) 00:14:29[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8563.txt
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限:一月8日 23:59
[5] その他の制限:
よろしく願いします
0383デフォルトの名無しさん
2009/01/08(木) 00:26:51C言語じゃなくてZ80アセンブラじゃね?ww
;2
LD DE,80B1H
XOR A
LD B,A
LD H,
LD A,(HL)
LD B,A
DEC HL
LD A,(HL)
ADD A,B
ADD A,B
0384383
2009/01/08(木) 00:29:340385デフォルトの名無しさん
2009/01/08(木) 00:41:32ゴメンコンピュータはさっぱりなんだ
なんでコンピュータ系に行ったんだ・・・俺・・・
0386デフォルトの名無しさん
2009/01/08(木) 01:56:11>「0が出たら『ランダムに発生』を繰り返す」
必要性が分からない。+1すりゃいいんでないのか?
>375
不明。プログラム図面で考えろってことかね?
0387デフォルトの名無しさん
2009/01/08(木) 02:15:18L69、L71って何ですか?
0388デフォルトの名無しさん
2009/01/08(木) 03:50:41[2] 問題文(含コード&リンク):
例題12_3を参考にして,次のようなプログラムを完成せよ。
・探索キーとして名前を入力し,入力と一致した場合,その名前と年齢を印字することを繰り返す。
・Ctrl-Dが入力されたとき,プログラムを終了する。
ただし,文字列の比較のためにstrcmpを利用する。利用方法を以下に示す。
#include<string.h>
int strcmp(const char* str1,sonst char* str2);
【戻り値】str1 > str2 ならば正値(1)
str1 = str2 ならば0
str1 < str2 ならば負値(-1)
以上,問題終わり■
(^^)例題12_3(^^) http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8564.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月8日10:30まで
[5] その他の制限:デキる人にとっては難しくないらしいです。
0389デフォルトの名無しさん
2009/01/08(木) 04:55:06[2] 問題文(含コード&リンク):
2段階シンプレックス法を解くプログラムを作成せよ
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 1月9日まで
[5] その他の制限: 特になし
よろしくお願いします
0390デフォルトの名無しさん
2009/01/08(木) 09:11:55http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8566.txt
0391デフォルトの名無しさん
2009/01/08(木) 09:43:57[2] 問題文(含コード&リンク):
・関数mainから2つのint型の変数を受け取って2つの変数の中身を入れ替える関数swapを作成せよ.
#include <stdio.h>
void swap(int *a, int *b);
int main(void)
{
int x, y;
printf("x="); scanf("%d",&x);
printf("y="); scanf("%d",&y);
printf("x=%d,y=%d\n",x,y);
swap(&x,&y);
printf("x=%d,y=%d\n",x,y);
return 0;
}
void swap(
void swap(の後をお願いします。
実行例
x=9↓
y=3↓
x=9,y=3
x=3,y=9
[3] 環境 Visual C++
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ
[3.3] 言語: C言語
[4] 期限: 2009年1月11日(日)まで
[5] その他の制限: 値渡し、参照渡しは習いました。
宜しくお願いします。
0392デフォルトの名無しさん
2009/01/08(木) 09:50:09void swap(int *a, int *b) {
int x=*a;
*a=*b;
*b=x;
}
0393デフォルトの名無しさん
2009/01/08(木) 10:08:17[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8567.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C++
[4] 期限: 1月11日まで
[5]その他の制限:特になし
お手数ですがよろしくお願いします。
0394デフォルトの名無しさん
2009/01/08(木) 10:43:260395デフォルトの名無しさん
2009/01/08(木) 11:24:24[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: WindowsVista SP1
[3.2] コンパイラ名とバージョン: Visual Stdio 2008
[3.3] 言語: C
[4] 期限: 2009年1月8日 AM11:50まで
[5] その他の制限: できるだけ簡単にお願いします。ポインタや配列などは習っています
複数の整数のうち,指定した数で割り切れる整数の個数を求めるプログラムを作成せよ.
入力に関して
キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する.
次に指定した数の整数をスペース1つずつ開けて1行で入力し,改行する.
最後に1つ整数を入力し,改行する.この最後に入力した値で割り切れるかどうか判定する.
この一連の入力時,例題や解答例のような入力を促す文字等は決して表示しないこと.
出力に関して
割り切れる整数の個数を数値のみ (+改行)を出力する.指定した数値・改行以外の文字等の出力は一切行わないこと.
0396デフォルトの名無しさん
2009/01/08(木) 12:38:570397デフォルトの名無しさん
2009/01/08(木) 13:07:45Cで書いたのでよければ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8568.c
0398デフォルトの名無しさん
2009/01/08(木) 13:10:52#include <stdio.h>
int main(void)
{
int data[128];
int i, n, d, c = 0;
scanf("%d", &n);
if (n > 128) n = 128;
for (i = 0; i < n; ++i) scanf("%d", &data[i]);
scanf("%d", &d);
for (i = 0; i < n; ++i) if (!(data[i] % d)) ++c;
printf("%d\n", c);
return 0;
}
0399デフォルトの名無しさん
2009/01/08(木) 13:15:47ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8569.cpp
0400デフォルトの名無しさん
2009/01/08(木) 13:29:140401デフォルトの名無しさん
2009/01/08(木) 13:53:02(1)
日付データが入力された後、ファイルに保存するプログラムを書きなさい。
データのファイルはテキスト形式で、ファイル名は、day.txtとする。
データの形式は以下のとおり。
Y(改行)・・・データの1セットの始まりを表わす
96(改行)・・・年
07(改行)・・・月
12(改行)・・・日
以上を1セットとして入力する。
これを繰り返し入力する。Y
92
05
13
G・・・データの終わり(ファイルの終わり)を表わす。
※ファイルへの出力は、fprintf関数を使う。書式は以下のとおり。
fprintf(FILE*fp,書式指定文字列、変数、変数、・・・)
(2)
(1)でファイルに出力された日付データを構造体に読み込んで、構造体に読み込まれた日付データを画面に表示するプログラムを書きなさい。
但し、読み込むデータの個数は、ファイルに保存されているデータの個数であり、ファイルによって変化する(固定されていない)ので、それに対応できるようなプログラムであること。
[3] 環境
[3.1] OS:Linux
[3.2] Emacs
[3.3] C言語のみでお願いします。
[4] 期限:早急にお願いします。
0402デフォルトの名無しさん
2009/01/08(木) 13:58:37無期限なら、来年くらいに
0403デフォルトの名無しさん
2009/01/08(木) 14:00:12[3.2] Emacs こっちの方が突っ込みどころだと思った
>>401
gccだよな?
0404デフォルトの名無しさん
2009/01/08(木) 14:02:23来年が早急というお前の感覚を疑うぜw
0405デフォルトの名無しさん
2009/01/08(木) 14:04:52来年が早急じゃないという根拠でもあるのかね?
0406デフォルトの名無しさん
2009/01/08(木) 14:06:25>>1
0407デフォルトの名無しさん
2009/01/08(木) 14:09:29>>403
gccです。
>>402
できれば今日中にお願いします。
0408デフォルトの名無しさん
2009/01/08(木) 14:11:47じゃなくて、それを言った奴の 感覚 についてなんだが?w
0410デフォルトの名無しさん
2009/01/08(木) 14:13:20>>1
>[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
0411デフォルトの名無しさん
2009/01/08(木) 14:13:56新参はコレだから・・・
0412デフォルトの名無しさん
2009/01/08(木) 14:14:58ttp://dictionary.goo.ne.jp/search.php?MT=%C1%E1%B5%DE&kind=jn&mode=0&base=1&row=1
さっきゅう ―きふ 0 【早急】
(名・形動)[文]ナリ
非常に急ぐ・こと(さま)。至急。そうきゅう。
非常に急いで来年くらいって、時間の感覚がおかしくなったバカくらいだろうね。
0413デフォルトの名無しさん
2009/01/08(木) 14:15:56馬鹿じゃねーの?
0414デフォルトの名無しさん
2009/01/08(木) 14:20:42思われていると気づかない引きこもりが多いんだな、このスレってw
来年くらいで 早急 w
0415デフォルトの名無しさん
2009/01/08(木) 14:21:46それで、来年が早急でない根拠は?
0416デフォルトの名無しさん
2009/01/08(木) 14:22:47自分の感覚が絶対と思っているのは、
ひどい田舎者か、
引きこもりなんじゃね?
0417デフォルトの名無しさん
2009/01/08(木) 14:46:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8570.txt
0418デフォルトの名無しさん
2009/01/08(木) 14:47:19期限は2009年01月08日中にお願いします。
0419デフォルトの名無しさん
2009/01/08(木) 14:56:35……なにか不備があったのでしょうか。
0420デフォルトの名無しさん
2009/01/08(木) 15:07:01とりあえず、「sample-11-1.c」ってなんだ?
0421デフォルトの名無しさん
2009/01/08(木) 15:13:22>>417
ありがとうございます。
ただ、今さっきわかったのですが
(1)で出来たday.txtの内容が
1回目 ××/××/××
2回目 ××/××/××
3回目 ××/××/××
・
・
・
N回目 ××/××/××
といった書き方でなければいけないようです。
後、構造体の配列と構造体の関数間での受け渡しを使用しなければならないらしいので、
お手数掛けますがもう一度(1)と(2)をお願いします。
0422デフォルトの名無しさん
2009/01/08(木) 15:20:02>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
0423デフォルトの名無しさん
2009/01/08(木) 15:31:43本当にすみません。
次からは気をつけますので>>421をお願いします
0424デフォルトの名無しさん
2009/01/08(木) 15:40:53すいません。書き忘れでした
下に書いてあるプログラムの名前です
0425デフォルトの名無しさん
2009/01/08(木) 16:19:00おまえはすでにしんでいる
0426デフォルトの名無しさん
2009/01/08(木) 16:24:01[2] 問題文
m*dv/dt=mg-kv
をRunge-Kutta法で解き,抵抗係数k=0,0.1,0.15,0.3のときの
速度vの時間による変化を表せ。
なお質量m=0.1[kg],重力加速度g=9.8[m/s*s]とする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: 1月9日 11:00
[5] その他の制限:とくにないです。
かなり急ぎの課題です。よろしくお願いします。
0427424
2009/01/08(木) 16:30:18もはや「おまえはもうしんでいる」状態なのでしょうか……
0428デフォルトの名無しさん
2009/01/08(木) 16:34:020429デフォルトの名無しさん
2009/01/08(木) 16:34:32ありがとうございます
できれば簡単な関数でお願いしたいのですが……
0430デフォルトの名無しさん
2009/01/08(木) 16:35:36本当に反省しています。
とてもピンチな状況なので>>421をお願いします(;_;)
0431デフォルトの名無しさん
2009/01/08(木) 16:40:08[2] 問題文
(d*d*y)/(d*x*x)=-M/(E*I)=W/(EI)*x
をRunge-Kutta法で解き,片持ちばりのx方向におけるy方向
変異の分布を示せ。ただし,先端に集中荷重が負荷されている
ものとし,ヤング率はE-206[GPa],集中荷重はW=30[N]とする。
求める図は文章での説明になります。
一方が壁に設置されていて厚さ5mm,オクイキが100mm
壁に設置されているところから500mm突き出ている物体です。
Wは突き出ている先端に上から下に向けてかかる力で,
その点をoとします。oから壁へ向かう方向がx軸正方向,
oから下へ向かう方向をy軸正方向とします。
わかりにくくてすみません。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C
[4] 期限: 1月9日 11:00
[5] その他の制限:とくにないです。
かなり急ぎの課題です。よろしくお願いします。
0432デフォルトの名無しさん
2009/01/08(木) 16:42:04[1] 授業単元:OS
[2] 問題文(含コード&リンク):
http://www.takagi.nuie.nagoya-u.ac.jp/~nakamura/os-EN2008/thread/
の、第12回演習(生産者・消費者問題)
[3] 環境
[3.1] OS: CentOS
[3.2] コンパイラ名とバージョン: gcc 4.1.2
[3.3] 言語: C
[4] 期限: 2009/01/15
[5] その他の制限: lock,unlockシステムコールを使ってください。
リンク先のヒントに従ってもらうとうれしいです。
0433424
2009/01/08(木) 16:51:56そのNODEっていうのは恐らく二分木の問題で使われてるNodeのことみたいですね。多分
わからなかったらNode使わなくていいですよ。
とりあえず、プログラムのKEY云々て列にある数値が入った二分木から標準入力でその数があればyes、無ければNoってだすプログラム作ってくれれば幸いです
0434デフォルトの名無しさん
2009/01/08(木) 16:55:41>>1 を一億万回嫁。
0435デフォルトの名無しさん
2009/01/08(木) 16:58:37言葉では何とでも言えるよな。
>>428への回答はどうなってるんだ?
また、条件が追加されたら洒落にならんぞ。
こりゃ「おまえはもうしんでいる」状態だな。
0436デフォルトの名無しさん
2009/01/08(木) 17:06:58>>433
っていうか、オマエの中で何かが綯い交ぜになっている
0437デフォルトの名無しさん
2009/01/08(木) 17:09:21反省していますので、どうか>>421お願いします。
本当に時間がないんです。
0438424
2009/01/08(木) 17:11:30問題文これしかなくて……
0439デフォルトの名無しさん
2009/01/08(木) 17:11:58NODEとKEYを定義して、コンパイルしてみた。
KEY init_data[num_of_data]={50, 20, 70, 10, 30, 60, 100, 25, 65, 150};
で、gccだと、コンパイルエラーになる。
0440デフォルトの名無しさん
2009/01/08(木) 17:17:09[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8573.txt
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (VC2005)
[3.3] 言語: (C++)
[4] 期限: 2009年1月8日24時
[5] その他の制限: c言語の初歩の段階です。
最後の砦の2chに来ました。
質問文の方で至らないところもあると思いますがどうか教えてください。
0441デフォルトの名無しさん
2009/01/08(木) 17:27:38#include <iostream>
#include <algorithm>
int main()
{
char buf[80], a = 0;
int n = 0;
std::cout << "キーから文字を数文字入力してください";
std::cin >> buf;
std::cout << "調べる文字を入力してください= ";
std::cin >> a;
std::cout << "入力された文字列の中に m は、"
<< (n = std::count(buf, buf + 80, a))
<< " 個ありました。" << std::endl;
return 0;
}
どう見てもCじゃありません、本当にありがとうございまいました
0442デフォルトの名無しさん
2009/01/08(木) 17:30:42http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8574.c
getsは使いたくない性分で
0443デフォルトの名無しさん
2009/01/08(木) 17:38:50>>433が回答になっているとでも思っているのかw
0444デフォルトの名無しさん
2009/01/08(木) 17:41:00オマエはツリーをみてみた方が良いよ
0445デフォルトの名無しさん
2009/01/08(木) 17:54:22お前、NODEがどんなものか解るんだろ。回答してやれよ。
俺はわかんね。
0446デフォルトの名無しさん
2009/01/08(木) 17:55:27[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8575.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
[3.3] 言語:C++
[4] 期限:2009年1月9日 午前中まで
[5] その他の制限:できるだけ簡単な関数でお願いします
よろしくお願いします
0447424
2009/01/08(木) 18:10:56http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8576.txt
このプログラムがあってれば、あとは標準入力から探索して判定を出すって感じなんですが……
続きやってくれませんか
0448デフォルトの名無しさん
2009/01/08(木) 18:11:18ありがとうございます。
ちなみにgetsを使ったソースも教えてもらえると助かります。
getsの文とsizeifの文を比較してみたいので
0449デフォルトの名無しさん
2009/01/08(木) 18:27:49ありがとうございます。
色々と変えてやってみましたがこの状態で小文字数えるところでエラーがでて終了してしまいます。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8577.txt
どこがダメなんでしょうか・・・?
0450デフォルトの名無しさん
2009/01/08(木) 18:37:56while (...) {} に入る前に a=0; (>>381 のAに相当)
while (...) {} 中の最後に ++a; (>>381 のCに相当)
0451デフォルトの名無しさん
2009/01/08(木) 18:39:13while(moji[a] != '\n')
0452デフォルトの名無しさん
2009/01/08(木) 18:48:31あ、あれ。見直したら直す前のプログラムになってたorz
a=0;
while(moji[a] != '\n'){
if (moji[a] >= 'a' && moji[a] <= 'z')
++a;
}
s=a;
printf("英小文字の数 = %d\n",a);
こうでしょうか?
「文字列の長さ」の後反応がなくなるんです・・・
0453デフォルトの名無しさん
2009/01/08(木) 18:54:24gets()だと\nが入らないので終了条件を'\0'にする
while(moji[a] != '\0')
0454デフォルトの名無しさん
2009/01/08(木) 18:57:04http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8578.txt
0455デフォルトの名無しさん
2009/01/08(木) 19:07:08ありがとうございます。
やってみたところ全部小文字で入力した場合は最後までいくのですが、一文字でも大文字が入ると途中でとまってしまうんです。
hello→最後まで
Hello→途中でとまってしまう
0456デフォルトの名無しさん
2009/01/08(木) 19:11:44a=0;
while(moji[a] != '\0'){
if (moji[a] >= 'a' && moji[a] <= 'z') s++;
++a;
}
printf("英小文字の数 = %d\n",s);
0457デフォルトの名無しさん
2009/01/08(木) 19:23:04できました
本当にありがとうございました!
0458デフォルトの名無しさん
2009/01/08(木) 20:42:58[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8579.txt
[3] 環境
[3.1] OS:Windows xp
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語: C++
[4] 期限: 2009/1/9/1:00
[5] その他の制限:問題文に中にあります。
自分では全くわかりません、期限が短いですができる方おねがいします。
0460デフォルトの名無しさん
2009/01/08(木) 20:52:43C言語なら俺に聞け(入門篇)の過去ログ調べてみ
0462デフォルトの名無しさん
2009/01/08(木) 20:55:46別スレだったかも?質問してた人はちゃんと出来てた。
0463デフォルトの名無しさん
2009/01/08(木) 21:11:32ちがうだろ
0464デフォルトの名無しさん
2009/01/08(木) 21:15:03http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1121691611
http://pc11.2ch.net/test/read.cgi/tech/1229424329/777
0465デフォルトの名無しさん
2009/01/08(木) 21:25:40[2] 問題文: 配列に順番に入力した数字を代入するプログラムを作れ。
すなわち、例えば以下のようなものを作れ。
1度目にinput_number()で入力した数を、numbers[0]に代入し、
2度目にinput_number()で入力した数を、numbers[1]に代入し、
…
n 度目にinput_number()で入力した数を、numbers[n-1]に代入する。
input_number()という関数は、自分で定義するように。
[3] 環境
[3.1] OS: windows xp
[3.2] コンパイラ名とバージョン:gcc -o
[3.3] 言語: C言語
[4] 期限: 2009年1月13日 お願いしやす
0466デフォルトの名無しさん
2009/01/08(木) 21:29:35[1] 授業単元: 科学実習�T
[2] 問題文: 配列に代入された数値を小さい順に並べ変えるプログラムを作れ。
ただし、数値は配列numbers[]にすでに代入されているものとし、変数nには代入された数値の個数が代入されているものとする。
(例)
int numbers[10] = { 82, 47, 2, 29, 95, 15, 38, 66, 51, 72 };
int n = 10;
(注意) このプログラムを実行すると、並べ変えを終えた配列ができる。
この配列は、元のnumbers[]の中身が並べ変わったものでも良いし、別の配列を作って、そ
の中に並べ変えた数値が代入されているのでも良い。
出来上がった配列の要素を順に表示すると
2, 15, 29, 38, 47, 51, 66, 72, 82, 95
のようになる。
[3] 環境
[3.1] OS: windows xp
[3.2] コンパイラ名とバージョン:gcc -o
[3.3] 言語: C言語
[4] 期限: 2009年1月13日
0467デフォルトの名無しさん
2009/01/08(木) 22:21:47>>426
>>431をお願いします。
コンパイラ名ってのがよくわからないんですが
gccとか打ってコンパイルしてます
0468デフォルトの名無しさん
2009/01/09(金) 00:12:42[2] 問題文(含コード&リンク):
char str[5][10] = {
"home", "arow", "abec","bobo"
};
という二次元配列があったとして、この配列に格納されている文字列を
格納されている配列番号とともに、アルファベット順に表示させるプログラムを作れ。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
[3.3] 言語:C++
[4] 期限:特になし
[5] その他の制限:特になし
よろしくお願いします。
0470デフォルトの名無しさん
2009/01/09(金) 00:44:46#include<stdio.h>
#define N 10
int input_number() {
int v;
scanf("%d", &v);
return v;
}
int main() {
int i, v[N];
for (i = 0; i < N; i ++) {
v[i] = input_number();
}
for (i = 0; i < N; i ++) {
printf("%d\n", v[i]);
}
return 0;
}
0471デフォルトの名無しさん
2009/01/09(金) 00:49:12#include<stdio.h>
int main() {
int numbers[10] = { 82, 47, 2, 29, 95, 15, 38, 66, 51, 72 };
int n = 10, i, j, t;
for (i = 0; i < 10; i ++) { printf("%d ", numbers[i]); }
printf("\n");
for (i = 0; i < 10-1; i ++) {
for (j = i+1; j < 10; j ++)
if (numbers[i] > numbers[j]) {
t = numbers[i];
numbers[i] = numbers[j];
numbers[j] = t;
}
}
for (i = 0; i < 10; i ++) { printf("%d ", numbers[i]); }
printf("\n");
return 0;
}
0472デフォルトの名無しさん
2009/01/09(金) 00:58:13#include<iostream>
#include<string>
#include<map>
int main() {
char str[5][10] = {"home", "arow", "abec","bobo", "dummy"};
typedef std::map<std::string, int> Map;
Map m;
for (int i = 0; i < 5; i ++)
m.insert(Map::value_type(str[i], i));
for (Map::const_iterator it = m.begin(); it != m.end(); ++ it)
std::cout << it->second << ":" << it->first << std::endl;
return 0;
}
0473デフォルトの名無しさん
2009/01/09(金) 01:04:00すみません、
map関数とdummyデータを使わずにやることはできませんか?
0474デフォルトの名無しさん
2009/01/09(金) 01:07:200475デフォルトの名無しさん
2009/01/09(金) 01:12:38char str[5][10] = {"home", "arow", "abec","bobo"};
typedef std::multimap<std::string, int> Map;
0476デフォルトの名無しさん
2009/01/09(金) 01:33:24#include <cstring>
int main()
{
char *str[5] = {"home", "arow", "abec","bobo"};
char *str2[5];
std::partial_sort_copy(str, str + 4, str2, str2 + 4, strcmp);
std::copy(str2, str2 + 4, std::ostream_iterator<char *>(std::cout, "\n"));
return 0;
}
0477デフォルトの名無しさん
2009/01/09(金) 01:55:572と4が動かないんですが何が悪いんでしょうか
0478デフォルトの名無しさん
2009/01/09(金) 02:01:290479デフォルトの名無しさん
2009/01/09(金) 02:21:04おいっ、基地外、鏡を見ろよ。ほれ、何が映った?
出来の悪い面が映ったよな?それ、誰の面だ?お・ま・え・の・だ・よw
0480デフォルトの名無しさん
2009/01/09(金) 02:42:140481デフォルトの名無しさん
2009/01/09(金) 06:20:20[2] 問題文: スタックを操作する関数 push()とpop()を作れ。
(注意)次のようなmain()を使って、push(int v), int pop()の動作を確かめよ。
#include <stdio.h>
main()
{
int d;
push(1);
push(2);
push(3);
d = pop();
printf("First data = %d\n", d);
d = pop();
printf("Second data = %d\n", d);
push(4);
d = pop();
printf("Third data = %d\n", d);
push(5);
d = pop();
printf("Fourth data = %d\n", d);
d = pop();
printf("Fifth data = %d\n", d)
}
0482デフォルトの名無しさん
2009/01/09(金) 06:20:41結果は、
First data = 3
Second data = 2
Third data = 4
Fourth data = 5
Fifth data = 1
と表示します。
[3] 環境
[3.1] OS: windows xp
[3.2] コンパイラ名とバージョン:gcc -o
[3.3] 言語: C言語
[4] 期限: 2009年1月20日
0483デフォルトの名無しさん
2009/01/09(金) 07:08:38[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8581.zip
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2009年1月10日10:00まで
[5] その他の制限: 特になし
txtで保存すると図が表示されなくなってしまうので、pdfのままにしました。
zipになってしまい申し訳ないです
よろしくお願いします!
0484483
2009/01/09(金) 07:16:27コンパイラ名とバージョン:gcc -o
でお願いします
追記すいません
0486デフォルトの名無しさん
2009/01/09(金) 10:35:31#include <stdio.h>
int a[100];
int sp=0;
void push(int v){a[sp++]=v;}
int pop(){return a[--sp];}
int main(){
/*省略*/
printf("Fifth data = %d\n", d) ←>>482はセミコロン抜けてる
}
0487デフォルトの名無しさん
2009/01/09(金) 10:43:37数値解析系の宿題は需要、供給ともに少ないから
なかなか回答者は現れないだろうなあ。
0488デフォルトの名無しさん
2009/01/09(金) 11:18:04[2] 問題文
次に示すTableのデータに関して,以下の計算を行う.
(1)1次式を当てはめてその式を示す.同時に2乗累積誤差Eを求める.
(2)2次式を当てはめて上と同じことを行う.
(3)2次式を当てはめて上と同じことを行う.
Table
X=-4,Y=13.4
X=-3,Y=7.2
X=-2,Y=2.7
X=-1,Y=1.2
X=0,Y=0.6
X=1,Y=3.1
X=2,Y=6.9
X=3,Y=12.5
X=4,Y=20.8
X=5,Y=31.7
X=6,Y=44.0
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン: Microsoft Windows XP [Version 5.1.2600]
[3.3] 言語: C言語
[4] 期限: 2009年1月10日15:00まで
[5] その他の制限: ありません
よろしくお願いします.
0489デフォルトの名無しさん
2009/01/09(金) 11:22:48ルンゲクッタと書かれては問題見る気もしないんだ
お前が急いでるかどうかは回答者にはどうでもいいことなので関係ないんだ
0490デフォルトの名無しさん
2009/01/09(金) 11:47:21さっぱりわからん
http://hwm3.gyao.ne.jp/nata-coco/hokou-2.pdf
0491デフォルトの名無しさん
2009/01/09(金) 12:41:32ちなみに
v(t)=mg/k+(v0-mg/k)exp(-kt/m) (k!=0.0)
v(t)=gt (k==0.0)
だと思ふ
0492デフォルトの名無しさん
2009/01/09(金) 13:03:47[2] 問題文:1〜100の間で数当てゲーム
[3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名とバージョン:cygwin-b20
[3.3] 言語: C
[4] 期限: [2009年1月12日15:00まで]
[5] その他の制限: 標準ライブラリはなるべく使わないようにお願いします。
以上お願いします。
0493デフォルトの名無しさん
2009/01/09(金) 13:12:470494デフォルトの名無しさん
2009/01/09(金) 13:14:27期限が今日なので17時までで、できれば早めにお願いします。
構造体の関数間での受け渡しはsub関数でお願いします。
0495デフォルトの名無しさん
2009/01/09(金) 13:35:40オナニーソース。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8582.c
個人的に読み込み処理の手直しをしてみたかったんで書いた。
問題文がなくなってるんでここまで。
Linux(Debian) gcc で確認。
0496デフォルトの名無しさん
2009/01/09(金) 14:28:082乗累積誤差ってのがわからん。
式を適当に決めて誤差を求めるだけでいいのか?
それとも誤差を最小にするような式を求めろってこと?
(3)は3次式の間違い?
コンパイラは何だ?
0497デフォルトの名無しさん
2009/01/09(金) 15:01:42I の値は?
Eの値は 10^-206 * 10^9 [Pa] ? それとも - は = の typo で E=206*10^9 [Pa] ?
# 断面2次モーメントなんて知らない
0498デフォルトの名無しさん
2009/01/09(金) 15:06:26何言ってんだか分からないので無理
0499デフォルトの名無しさん
2009/01/09(金) 15:10:43[2] 問題文:http://hpgoda.eng.niigata-u.ac.jp/lecture2008/Cprogramming/12/12.html
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 2009年1月10日
[5] その他の制限: 問題ページ中の関数、プログラム例を使って作ってください。
データのグラフ化は自分でできます
以上お願いします。
0500デフォルトの名無しさん
2009/01/09(金) 15:13:05>>496
から説明不足で質問をいただいたので
式を求める必要はありません。誤差を求めることが、この課題の目的です。
また(3)は3次式の間違いでした。申し訳ないんですが訂正させてください。
コンパイラはコマンドプロンプトだと思います。
よろしくお願いします。
0501デフォルトの名無しさん
2009/01/09(金) 15:16:51コンパイラはコマンドプロンプト
コンパイラはコマンドプロンプト
だいじなところですからさんかいいいました
0502デフォルトの名無しさん
2009/01/09(金) 15:19:05すみません。よくわからないんです。
普段は「bcc32」とか打ってコンパイルしてます。
0503デフォルトの名無しさん
2009/01/09(金) 15:27:01宿題が出来ないどころか、丸投げも出来ない程度にしかならないなんて、
詐欺も良いところだな。
0504デフォルトの名無しさん
2009/01/09(金) 15:33:22言うなら「クズ」だろ。
0505デフォルトの名無しさん
2009/01/09(金) 15:36:05振り込め詐欺は家にもかかってきたが、回避したぞ
0506デフォルトの名無しさん
2009/01/09(金) 15:36:21SSEとかいわれる奴だろ?>自乗累積誤差
double e = 0;
int i;
for (i=0; i<11; i++) {
e += pow(Y[i] - f(X[i]), 2.0);
}
たぶんこんな感じ。
n次式の当てはめ(f(x)を求める)は忘れたから誰か頼む。
0507デフォルトの名無しさん
2009/01/09(金) 15:38:56一ページしか引っかからない・・・
0508デフォルトの名無しさん
2009/01/09(金) 15:43:07Y[i] = a*X[i] + b とするか(2計数)
a*X[i] + b*Y[i] + c = 0 とするか(3計数)
当てはめ(≒計数決定)をどうするのか?
上の累積二乗誤差を最小にするような計数を求めるのか? / 人間が適当に決めるのか? etc.
0509デフォルトの名無しさん
2009/01/09(金) 15:46:58最少二乗法みたいにやるのかと思ったんだけど、
式求めずに誤差求めるだけでいいってのは、
たとえば(1)で、1次式をX=0として誤差求めるだけでもいいのか?
>>501
>>488では
コンパイラ名とバージョン: Microsoft Windows XP [Version 5.1.2600]
なんだぜ
0510デフォルトの名無しさん
2009/01/09(金) 16:12:330511デフォルトの名無しさん
2009/01/09(金) 16:16:140512デフォルトの名無しさん
2009/01/09(金) 16:22:57鏡
0513デフォルトの名無しさん
2009/01/09(金) 16:24:00http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8583.txt
0515デフォルトの名無しさん
2009/01/09(金) 17:49:04[2] 問題文課題7-2
以下の条件を満たすプログラムを作成する。どの程度の機能が実装されているかなどによって加点する。以下に挙げたもの以外の機能が実装してある場合にも加点がある。
なんらかのデータを扱うプログラムであり(非常にユニークなものの場合は加点がある)、データをファイルから読み込む機能と、書き込む機能がある。
例:
自分の持っている音楽CD(コレクションしているものなど)を管理するデータベースプログラム
毎日の収入・支出を管理する(家計簿)プログラム
画像ファイルを扱うプログラム
音声ファイルを扱うプログラム
新しいデータ(もしくはデータの一部分)を追加する機能、特定のデータ(もしくはデータの一部分)を削除もしくは修正する機能がある
データのソート(並び替え)を行う機能がある。 ソートを行うことが適切でないデータの場合(音声データや画像データなど)は、 そのデータにあったなんらかの処理を加える機能でも良い
データから特定の部分のみを取り出して表示(もしくは保存)する機能がある
構造体を使用している
構造体のポインタを引数として持つ関数を使用している
enum型を使用している、もしくはプリプロセッサ「#define」を使用している
[3] 環境
[3.1] OS:Windows
[3.2]
[3.3] 言語:C
[4] 期限:2009年1月23日まで
0516デフォルトの名無しさん
2009/01/09(金) 17:49:41>>511は鏡にきもいのが写ったの?
0517デフォルトの名無しさん
2009/01/09(金) 18:00:11心当たりがあるんだろう。聞かれてもいないことをわざわざ答える、それは
認めたくないが否定している意思を他人にも認めてもらいたいという心の表れ。
要するに、反応してレスした奴は、鏡を見てキモイ面が映ったんだろうよw
0518デフォルトの名無しさん
2009/01/09(金) 18:03:21そう、自分のことを言われたわけでもないのに、反応しちゃったわけだ。
それが何を意味しているか、分かるよな?頭のおかしい奴に対して
鏡を見ろと言ったのに、自分は・・・あぁ、そうか、お前はキモイ一匹だったのかw
0519デフォルトの名無しさん
2009/01/09(金) 18:13:21何処が例で何処までが要件かわからねーよ
しね
0520デフォルトの名無しさん
2009/01/09(金) 18:14:09> 何か一匹、
「答えは筆者自身」で、FAだろ。
0521デフォルトの名無しさん
2009/01/09(金) 18:17:200522デフォルトの名無しさん
2009/01/09(金) 18:18:44何で反応したの?心当たりがあるからだろ?w
0523デフォルトの名無しさん
2009/01/09(金) 18:19:01[2] 問題文(含コード&リンク):
簡単なゲームをクラスを用いて作れ
条件
魔王のHPをランダム(300〜500の範囲)攻撃力もランダム(25〜50)で表示
勇者のHPもランダム(100〜200)で表示
攻撃力とマジックポイントをランダムで2つを足して50になるようにする
勇者は回復魔法(名前は任意)を使えることにする
消費MPは10、回復幅はランダム(30〜100)はじめに決まったHP限界値は超えないものとする
攻撃はターン制とし(先攻後攻はランダム)Enterを押すごとに進めるようにする
勇者は攻撃と回復をキーボード(例 1.攻撃 2.回復)で選べるようにする
HPは攻撃力の数値分減っていく
表示例
Maoh HP 400 Attack 40
Yusha HP 150 MP 25 Attack 25
Battle Start!!
Maoh's turn!
Yusha Damage 40 HP110
Yusha's turn!
Attack or Recovery
Maoh Damage 25 HP 375 or Yusha Recovery 80 HP 150
...
Maoh died!
You Win!!
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:Visual studio 2005 ver8.0
[3.3] 言語:c++
[4] 期限:1/10 23:59:59
[5] その他の制限: わかりやすい関数でお願いします
0524デフォルトの名無しさん
2009/01/09(金) 18:40:15#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX 1000
#define BUF 100
typedef struct XX { int number; int data;} X;
enum {FALSE = 0};
void get(char *input){
fgets(input, BUF, stdin);
strtok(input, "\n");}
int cmp_num(const void *a_, const void *b_){
const int a = ((X *)a_)->number, b = ((X *)b_)->number; return a < b ? -1 : a > b ? 1 : 0;}
int cmp_data(const void *a_, const void *b_){
const int a = ((X *)a_)->data, b = ((X *)b_)->data; return a < b ? -1 : a > b ? 1 : 0;}
int main()
{ X a[MAX] = {{0, 0}}; char input[BUF]; int number = 1, i;
while (1) {
puts("1.入力順でソートする, 2.値でソートする, " "3.表示, 4. 数字入力, それ以外は終了");
get(input);
if (!strcmp(input, "1")) qsort(a, MAX, sizeof(X), cmp_num);
else if (!strcmp(input, "2")) qsort(a, MAX, sizeof(X), cmp_data);
else if (!strcmp(input, "3")) {
for (i = 0; i < MAX; ++i) if (a[i].number != 0) printf("%3d. %10d\n", a[i].number, a[i].data);
} else if (!strcmp(input, "4")) { get(input);
for (i = 0; i < MAX; ++i)
if (a[i].number == 0) {
a[i].number = number++;
a[i].data = atoi(input);
break; }
} else break; }
return 0;}
0525デフォルトの名無しさん
2009/01/09(金) 18:40:46扱うものはただの数字
0526デフォルトの名無しさん
2009/01/09(金) 18:43:04普通にあげてやれよw
0527デフォルトの名無しさん
2009/01/09(金) 19:54:04データをDi 、Di の平均をEとして
Σ(Di - E)^2
を行っていると思います。テイラー展開とかフーリエ級数展開とかで大活躍な指数っぽいです。
0528デフォルトの名無しさん
2009/01/09(金) 20:03:25[2] 問題文:正の整数nを7進数(10桁以内とする)で入力した数値に7進数の5を加算した結果を表示するプログラム
[3] 環境
[3.1] OS: Windows ビスタ
[3.2] コンパイラ名: CPad for LSIC-86
[3.3] 言語: C言語
[4] 期限: 1月10日
[5] その他の制限:出来るだけ簡単な関数でお願いします。
0529デフォルトの名無しさん
2009/01/09(金) 20:17:00でも、オレはそれを分散と習った気がする。
あと、累積二乗誤差をググれ。
0530デフォルトの名無しさん
2009/01/09(金) 21:49:04多分だが>>488は、>>509の質問に答えるべき
0531デフォルトの名無しさん
2009/01/09(金) 22:37:41[2] エングセットの公式を計算して0.751という値を求めるプログラム
(20 C 3 )0.6^3
Pb = ---------------------- = 0.751
3
Σ ( 20 C k ) 0.6^k
k=0
[3] 環境
[3.1] WindowsXP
[3.2] VC 6.0
[3.3] C++
[4]1月13日
[5] その他の制限:式中のCというのはコンビネーションです。できるだけ簡単な関数でお願いします。
0532デフォルトの名無しさん
2009/01/09(金) 22:46:15マルチ死ね
#include <iostream>
int main()
{
std::cout << (20.0 * 19 * 18 / 1 / 2 / 3 * 0.6 * 0.6 * 0.6) /
((1 + 20.0 * 0.6+
(20.0 * 19 / 1 / 2) * 0.6 * 0.6 +
(20.0 * 19 * 18 / 1 / 2 / 3) * 0.6 * 0.6 * 0.6)) << std::endl;
}
0533デフォルトの名無しさん
2009/01/09(金) 22:47:330534デフォルトの名無しさん
2009/01/09(金) 22:48:060535デフォルトの名無しさん
2009/01/09(金) 22:53:49本当に困っています。
0536デフォルトの名無しさん
2009/01/09(金) 23:08:25金がなければ強盗するのか?
0537デフォルトの名無しさん
2009/01/09(金) 23:29:20[2] 問題文: 直径1長さ1の円柱がある。体積をモンテカルロ法で計算せよ。
一辺が1の立方体を考え、3個の乱数で立方体内の点のxyz座標を発生させ,
その点が物体の内部に落ちるかどうかを判定する。内部に落ちる確率が体積に比例することから体積が見積もれる。
[3]環境
[3.1] OS:windows xp
[3.2] コンパイラ名とバージョン:visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:1月11日まで
[5] その他の制限:特にありません。
よろしくお願いします。
0538デフォルトの名無しさん
2009/01/09(金) 23:30:13自分の頭が悪いのは承知しています。
プログラム的なことでお願いします。
0539デフォルトの名無しさん
2009/01/09(金) 23:33:17VistaでLSIC-86と言うのに吹いたので助けてやりたいが
int型が2byteだって?7^10 をどうやって格納するんだ?
まさか自分で長桁整数型を実装するのか?
他のコンパイラなら
char a[11]にscanfで文字列を受けてから
while( a[ i ] != '\0' ){ r = 7 * ( r + a[ i ] - '0' ); i++ }
で終わりのはず
0540539
2009/01/09(金) 23:34:36表示は10進でもいいんだろ?そう書いてないし。
0541デフォルトの名無しさん
2009/01/09(金) 23:42:26[2] 問題文:数字を入力して、その値の桁数を求めて、表示するプログラムを作る
[3] 環境
[3.1] OS: Windows XP
[3.3] 言語: C言語
[4] 期限: 1月11日
[5] その他の制限:簡単な関数でお願いします。
テスト前です。宜しくお願いします。
0542デフォルトの名無しさん
2009/01/09(金) 23:50:22C言語のテスト前で、その問題は過去問題です。試験対策でお願いしました。
なにぶん、まだ、素人です。細かいことは分からない部分あります。
たぶん、10進数で表示すると思います。
0543デフォルトの名無しさん
2009/01/09(金) 23:50:420544デフォルトの名無しさん
2009/01/09(金) 23:53:22long 型は普通に使えるんじゃなかろうか
0545デフォルトの名無しさん
2009/01/09(金) 23:57:310546デフォルトの名無しさん
2009/01/09(金) 23:58:06ごちゃごちゃしてるが10ケタでもOKのはずだ。
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char a[12], b[12];
scanf("%s", a+1);
a[0] = '0';
for (i=0; i<strlen(a); i++) {
b[i] = a[i] - '0';
}
b[i-1] += 5;
for (i=strlen(a)-1; i>=0; i--) {
b[i-1] += b[i]/7;
b[i] %= 7;
}
if (b[0])
putchar(b[0]+'0');
for (i=1; i<strlen(a); i++) {
putchar(b[i]+'0');
}
return 0;
}
0547デフォルトの名無しさん
2009/01/10(土) 00:04:380548デフォルトの名無しさん
2009/01/10(土) 00:15:18#include <stdio.h>
int main(void)
{
int n, i;
scanf("%d", &n);
for (i = 0; n >= 1; ++i) n /= 10;
printf("%d桁\n", i);
return 0;
}
0549デフォルトの名無しさん
2009/01/10(土) 00:18:390550デフォルトの名無しさん
2009/01/10(土) 00:51:29http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8584.txt
0551デフォルトの名無しさん
2009/01/10(土) 01:27:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8585.txt
0552デフォルトの名無しさん
2009/01/10(土) 02:51:14#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("%d digits\n", 1+(int)log10(n));
return 0;
}
0553デフォルトの名無しさん
2009/01/10(土) 03:19:35[2] 問題文(含コード&リンク):
6畳間の畳の敷き方を1つ求めるプログラムを作成せよ。
畳は1×2の長方形であり、6畳間は3×4の長方形である。
4枚の畳の角が一か所に集中する敷き方は縁起が悪いので避けること。
表示の仕方は問わない。
可能なら以下の機能を実現せよ。
・全ての敷き方を求める
・6畳間以外に対応する
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:VC++2008EE
[3.3] 言語:C、C++のどちらでも可
[4] 期限:2009/01/12 24:00:00
[5] その他の制限:コマンドプロンプトで実行できること。
よろしくお願いします。
0554デフォルトの名無しさん
2009/01/10(土) 04:28:14[2] 問題文(含コード&リンク):
簡易整数電卓プログラム
仕様は
・数式を入力すると計算結果を表示
・四則演算、括弧、べき乗、階乗、が使える
・扱うのは整数(intの範囲)
・演算子の優先順位を守る(乗法・除法が先。べき乗は後ろから計算)
・+と−の単項演算子が使える(-1+5等)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: わかりません・・・
[3.3] 言語: C
[4] 期限: 2009/01/14 23:59 提出〆
[5] その他の制限: 特にありません。
テスト前なのにこの課題1つに1週間も悩んでます・・・
検索とかしてみたのですが、どうしても解りませんでした。
長くなってしまうかもしれませんがよろしくお願いします。
0555デフォルトの名無しさん
2009/01/10(土) 05:25:07C言語にて
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8586.c
0556デフォルトの名無しさん
2009/01/10(土) 06:02:01http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8587.txt
0557デフォルトの名無しさん
2009/01/10(土) 06:20:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8588.txt
0559デフォルトの名無しさん
2009/01/10(土) 10:44:27#include <stdio.h>
typedef struct stack_ {
char d[128];
int p;
} Stack;
void push(Stack *s, char c) { s->d[(s->p)++] = c; }
void pop(Stack *s) { s->d[(s->p)--] = '\0'; }
int main(void)
{
Stack s;
s.p = 0;
push(&s, 'A'); push(&s, 'B'); push(&s, 'D'); push(&s, 'I'); pop(&s); puts(s.d);
pop(&s); push(&s, 'E'); push(&s, 'J'); pop(&s); puts(s.d);
push(&s, 'K'); push(&s, 'O'); pop(&s); puts(s.d);
pop(&s); pop(&s); pop(&s);
push(&s, 'C'); push(&s, 'F'); pop(&s); puts(s.d);
push(&s, 'G'); push(&s, 'L'); pop(&s); puts(s.d);
pop(&s); push(&s, 'H'); push(&s, 'M'); push(&s, 'O'); pop(&s); puts(s.d);
pop(&s); push(&s, 'N'); pop(&s); puts(s.d);
return 0;
}
0560デフォルトの名無しさん
2009/01/10(土) 11:21:32http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8589.c
0561デフォルトの名無しさん
2009/01/10(土) 13:25:260562デフォルトの名無しさん
2009/01/10(土) 13:33:320564デフォルトの名無しさん
2009/01/10(土) 13:45:480565デフォルトの名無しさん
2009/01/10(土) 13:46:04[2] BMP画像(カラー)をネガポジ反転するプログラムを作成せよ。
ピクセルはRGBで3つ、最大値は255とする。
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C言語
[4] 1月12日
[5] 特にありません。
よろしくお願いします。
0566デフォルトの名無しさん
2009/01/10(土) 13:50:520567デフォルトの名無しさん
2009/01/10(土) 14:11:46http://pc11.2ch.net/test/read.cgi/tech/1231180205/332
0568デフォルトの名無しさん
2009/01/10(土) 14:19:33この種の依頼をするやつは、BMPが何かも知らない。JK
0569デフォルトの名無しさん
2009/01/10(土) 14:25:14いげたのこと
0570デフォルトの名無しさん
2009/01/10(土) 14:34:200571デフォルトの名無しさん
2009/01/10(土) 14:48:480572デフォルトの名無しさん
2009/01/10(土) 14:56:26[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8593.txt
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] C
[4] 1月13日
[5]出来るだけ簡単な関数でお願いします
余裕があったらプログラムのフローチャートみたいなのを教えてださい
0573572
2009/01/10(土) 15:17:48>今n枚のカ−ドに書かれている数字を次のような数列で表すものとする。
これは依頼した問題には出てこない要素なので無視してください。
0574572
2009/01/10(土) 15:19:53環境はLinuxじゃなくてwindows XPでした……
0575デフォルトの名無しさん
2009/01/10(土) 15:38:53http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8595.c
クソースゆえ、異論は認める。
0577デフォルトの名無しさん
2009/01/10(土) 16:20:350578デフォルトの名無しさん
2009/01/10(土) 16:38:39| ヽ
/ ● ● ヾ おいしいクマ
| ( _●_)。. |
彡、 ) ヽノ.(⌒ヽ`ミ
ww/ _wWww\ \ヽw Www wwWwwwwww
(__ヽ二二フ ヽ ノ
0579デフォルトの名無しさん
2009/01/10(土) 16:41:130580デフォルトの名無しさん
2009/01/10(土) 16:53:41これできませんか?
0581デフォルトの名無しさん
2009/01/10(土) 17:55:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8596.txt
0582デフォルトの名無しさん
2009/01/10(土) 18:01:49ありがとうございます
0583572
2009/01/10(土) 18:34:280584デフォルトの名無しさん
2009/01/10(土) 18:57:23まあ、学校の宿題なら、まず、原文をアップしてくれないと
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
0586nyao
2009/01/10(土) 19:34:080587デフォルトの名無しさん
2009/01/10(土) 19:40:21プログラムの実装より物理部分の方が難しいしwww
�@厳密な数値解の式をよこせ
�A近似解を求める運動方程式をよこせ
�B解法の指定は?4次ルンゲ=クッタ?
�C振り子の軸長さはいくつ?変数は振れ角それとも座標?初期振れ角は2つあるだろ?
解答されても俺は書かないけど、少なくともこれぐらいはないと誰も書いてくれないだろ
0588デフォルトの名無しさん
2009/01/10(土) 20:06:54それ以外なら、そのまま画面に出力しなさい。
できる人お願いします。
0589デフォルトの名無しさん
2009/01/10(土) 20:08:10[2]http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8599.txt
[3] 環境
[3.1] windows XP
[3.2] gcc
[3.3] C
[4] 1月13日
[5]出来るだけ簡単な関数でお願いします
問題文の原文をそのまま上げました。
よろしくお願いします
0590デフォルトの名無しさん
2009/01/10(土) 20:11:49本当に、原文に「正の自然数」って書かれてるの?
0591デフォルトの名無しさん
2009/01/10(土) 20:17:54ちゃんとそうかいてありますね。
0592デフォルトの名無しさん
2009/01/10(土) 20:31:05ひどいもんだな。
要件も不明だし、このままなんか作っても、なんやかんやで突っ返されるだろ
0593デフォルトの名無しさん
2009/01/10(土) 20:35:260594デフォルトの名無しさん
2009/01/10(土) 20:42:380595デフォルトの名無しさん
2009/01/10(土) 20:43:31やることはa[2k]の和とa[2k+1]の和を比較するだけだから文句のつけようもなくない?
アルゴリズムは「先手の初手は問題文に書いてあるとおり・次手以降は後手の取った隣を取る」で終了だし
0596デフォルトの名無しさん
2009/01/10(土) 20:53:54勉強し始めってのもあり知識不足という訳ですが、引き分けのときのプログラムがさっぱりで……
一応、授業内容は、とにかくこういうゲームをプログラミングしろってやつなんですよ
だから、自分はn枚分の整数をユーザが標準入力して、その上で先手が勝つルールを使って先手が勝てばいいのかと思ったのですが……
突っ返されたらその時、なんとか考えますので、作ってくれませんでしょうか……
0597デフォルトの名無しさん
2009/01/10(土) 21:09:37オマエが何を理解してしまったのか心配だよ・・・
0598デフォルトの名無しさん
2009/01/10(土) 21:30:29もしそうなら、世の中にはレベルの高い大学もあるもんだなあと感心。
0599デフォルトの名無しさん
2009/01/10(土) 21:33:20コンパイラ名とバージョンにgccしか書いてないし質問主のレベルは低いと思う
0600デフォルトの名無しさん
2009/01/10(土) 21:39:280601589
2009/01/10(土) 21:59:580602デフォルトの名無しさん
2009/01/10(土) 22:15:500603 ◆DMlEnlGjq.
2009/01/10(土) 22:25:01[2] 問題文(含コード&リンク):
○プログラムを改良せよ。また、改良した部分をしるせ。
・Dコマンドで削除する時、本当に削除してよいか確認できるようにせよ。
・Iコマンドで学籍番号がちょうど4桁であることをチェックできるようにせよ。
・Iコマンドで改行だけの氏名や学籍番号になってしまう。改行だけの場合、エラーメッセージをだせ。
・Iコマンドで既に存在する学籍番号と同じ番号を入力すると二重に登録されてしまう。
二重登録されないように、エラーメッセージをだせ。
・Iコマンドを投入した後に気が変わってコマンド入力に戻ろうとしても、何か挿入しなければならない。
コマンド入力に戻れるようにせよ。
・このプログラムの構造はだらだらとわかりにくい。各コマンドに対応する関数を作り、わかりやすい形にせよ。
・「コマンド?[I(挿入),D(削除),P(表示),X(終了),W(書込み),R(読出し),X(終了)]」と毎回出るのは煩わしい。
「コマンド?」だけにして、H(ヘルプ)コマンドを投入すると、各コマンドの説明が表示されるようにしなさい。
・eメールアドレスと担当教員名のデータも格納できるようにせよ。
・P(表示)コマンドで、表示範囲を指定できるようにせよ。例えば、前後の学籍番号を指定すると、その範囲だけが表示されるようにせよ。
[3] 環境
[3.1] OS: Windows XP
[3.3] 言語: C
[4] 期限: [2009年1月22日00:00まで]
[5] その他の制限:特になし
よろしくお願いします。
0604デフォルトの名無しさん
2009/01/10(土) 22:27:02また桁外れのマヌケが到着したが、
ここでは珍しくも無い・・・
0605デフォルトの名無しさん
2009/01/10(土) 22:28:22一応できたつもり…です
0606デフォルトの名無しさん
2009/01/10(土) 22:29:51w
0607デフォルトの名無しさん
2009/01/10(土) 22:39:15そ、そうか。
> nが偶数のとき先手も後手もn/2枚を取る。nが奇数のとき先手も後手も(n−1)/2づつ取り最後に1枚が残る。
これはどうすればいいの?
その後の例では一枚ずつ取ってるように見えて。
0608デフォルトの名無しさん
2009/01/10(土) 22:39:43はあく。
0609デフォルトの名無しさん
2009/01/10(土) 22:40:41"コンピュータプラクティス"でググった結果からみたところ、
東洋大学工学部情報工学科
コンピュータ・プラクティスIIIのカード取りゲームの課題か。(・∀・)ニヤニヤ
0610デフォルトの名無しさん
2009/01/10(土) 22:44:300611デフォルトの名無しさん
2009/01/10(土) 22:44:420612デフォルトの名無しさん
2009/01/10(土) 22:46:39一年の時に仮面浪人して失敗して、プログラムさっぱりw
春休み辺りでまとめて勉強するつもりです
0613デフォルトの名無しさん
2009/01/10(土) 22:47:13なんで冬休みにまとめて勉強しなかったの?
0614#
2009/01/10(土) 22:47:53[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8600.txt
[3] 環境
[3.1] OS: Windows XP
[3.3] 言語: C
[4] 期限: [2009年1月20日24:00まで]
[5] その他の制限:特になし
宜しくお願いします。
0615585 ◆i9Dvbn/Lf6
2009/01/10(土) 22:50:17[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
教材の一部を貼っておきます。
http://up2.viploader.net/pic3/src/vl2_092922.png
http://up2.viploader.net/pic3/src/vl2_092923.png
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
0616デフォルトの名無しさん
2009/01/10(土) 22:50:41期末テストの勉強で忙しかったです
0617nyao
2009/01/10(土) 23:33:21>>373をどなたかお願いします!
0618デフォルトの名無しさん
2009/01/11(日) 00:00:11http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8601.cpp
適当だけど。少しは他人に見やすいソースを書くように、自分でもがんばろうね。
0619デフォルトの名無しさん
2009/01/11(日) 00:13:54さっぱりわからねーな
#include <stdio.h>
int main(){
int odd=0,even=0;
while (1){
int dat;
if(scanf("%d", &dat)==EOF)break;
odd+=dat;
scanf("%d", &dat);
even+=dat;
}
//大きい方を選ぶ
if(odd<even){
int temp =odd;
odd=even;
even=temp;
}
//点数
printf("先手:%d,後手:%d\n",odd,even);
//勝敗
if(odd==even){
printf("引き分け\n");
}else{
printf("先手の勝ち\n");
}
return 0;
}
0620デフォルトの名無しさん
2009/01/11(日) 00:36:52やばすぎw
0621デフォルトの名無しさん
2009/01/11(日) 00:48:09右端(or左端)と、それと最後に残る数以外の偶数番目と奇数番目合計の差との大小によってきまる。
0622デフォルトの名無しさん
2009/01/11(日) 01:19:26>>610
後手が例の戦略を取るかぎり、最後に何を残すかは先手が選べる(確かめてないけど多分どれでもOK)
ということは後手は負けそうなら例の戦略をとらなくなるので、そうすると配列依存になる
つまり、奇数の時は必勝戦略は存在しない
こうなるのかな?意外に深いゲームなのかもしれん
0623デフォルトの名無しさん
2009/01/11(日) 01:22:070624デフォルトの名無しさん
2009/01/11(日) 01:23:34ARGV[1] ARGV[2]をmain以外でファイル名を受け取りたいということです。
グローバルでchar*を宣言して、mainでそのARGV[1]のアドレスを取っておけばよい?
問題はありますか?
0625デフォルトの名無しさん
2009/01/11(日) 01:24:44ありがとうございます!ですが、先生にメールで聞いたところ
ユーザが全体のカードの枚数n(偶数になるように指定)とそのカードの書かれた数を被らないように繰り返し文使って標準入力させた上で、
奇数のカードの数の合計と偶数のカードの合計をだしてから、両方の合計を比べて、奇数が多いなら先手が奇数を引くように、というか先手という変数に奇数の数の合計を代入させる。
偶数なら先手が偶数のカードをひくようにして、偶数のカードの数の合計を先手という名の変数に代入する
最後に、先手=奇数か偶数の多い方の合計の点数
後手=少ないほうの
で、先手の勝ち。と画面出力
とやれと来ました……。引き分けの方はルールに従って列の端と端を比べて、大きい方をとっていけば勝てるので、
端と端を比べて大きい方を先手に代入、小さいを後手に代入して同じように先手(変数)と後手(変数)に計算結果を代入して、
さっきと同じように画面に出力するみたいです
で、多分自分なりにまとめると
カードの枚数=n(必ず偶数)
カードの数:
一枚目の数=ユーザがキーボードから入れた数値
二枚目の数=ユーザ(ry(どのカードの数とも必ず異なる数を入れさせるように指定)
…
n枚目の数=(ry
先手=奇数or偶数の多いほうの合計点数
後手=少ない方の数
判定
先手or後手の勝ち
というように結果を出せばいいようです
とりあえず先生のヒントを個人的にまとめてみたんですが……これでなんとかなりますか?
0626デフォルトの名無しさん
2009/01/11(日) 01:30:48なので、まず偶数のパターンからなんとかしてやってください。
0628デフォルトの名無しさん
2009/01/11(日) 01:35:17二重振り子の図がどっかにあるだろ
あと、わざわざエネルギー保存がどうこう書いてあるってことは、
シンプレックス積分でも使うのか?
速攻で落ちるvipロダを選ぶ理由も全く分からん
0629デフォルトの名無しさん
2009/01/11(日) 02:42:15ありがとうございました。
0630デフォルトの名無しさん
2009/01/11(日) 04:20:47http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8602.txt
┌─┬─┐
├┬┴┬┤
│├─┤│
└┴─┴┘
┌─┬┬┐
├┬┤││
││├┴┤
└┴┴─┘
┌┬─┬┐
│├─┤│
├┴┬┴┤
└─┴─┘
┌┬┬─┐
││├┬┤
├┴┤││
└─┴┴┘
0631学生
2009/01/11(日) 10:03:46[2] 問題文(含コード&リンク): 単語を入力するとその単語にeがいくつ含まれているか数えてくれるプログラム。
また、単語の中に含まれるeを抜かしたものも表示せよ。
実行例
単語を入力せよ:december
単語にeが3こ含まれます。
単語のeを抜かすとd c mb r
[3] 環境
[3.1] OS: Windows xp
[3.2] VC 6.0
[3.3] include<stdio.h>
main()
{
ではじめてください。
[4] 期限: 急ぎです。できれば今日の20時くらいまで
[5] その他の制限:while if for などを習いました。
よろしくお願いします。
0632デフォルトの名無しさん
2009/01/11(日) 10:13:14そもそも、扱う数値が自然数全体とかどうなのよ
0633デフォルトの名無しさん
2009/01/11(日) 10:13:39int n = 0, i = 0;
fputs("単語を入力せよ:", stdout);
scanf("%4999s", s);
for (i = 0; s[i]; ++i) {
if (s[i] == 'e')
n++;
}
printf("単語にeが%dこ含まれます。\n", n);
printf("単語のeを抜かすと");
for (i = 0; s[i]; ++i) {
if (s[i] != 'e')
putchar(s[i]);
}
putchar('\n');
}
0634デフォルトの名無しさん
2009/01/11(日) 10:18:230635デフォルトの名無しさん
2009/01/11(日) 10:21:13鏡
0636学生
2009/01/11(日) 10:22:35すばやい返信ありがとうございます。
しかし、fputs stdout putchar を習っていないためそれらを使わないでプログラムを作成することは可能でしょうか??
0637デフォルトの名無しさん
2009/01/11(日) 10:25:110638デフォルトの名無しさん
2009/01/11(日) 10:25:52しかも、これ、結局(ry
0639デフォルトの名無しさん
2009/01/11(日) 10:34:370640デフォルトの名無しさん
2009/01/11(日) 10:48:28お前が習ったものを全部挙げろ
> [3.3] include<stdio.h>
> main()
>{
>ではじめてください。
これだとコンパイルできないけどそれでもいいのか?
0641デフォルトの名無しさん
2009/01/11(日) 10:49:58あれはどうも自然数全体じゃなくて、要は小数点と分数以外の数える数を使ってって意味みたいですよ。
例えば
n=3なら
5,16,3
てな感じで。
だから、分数と小数以外で、かつ変な文字を使わない普通の数値を入れてってことみたいです。
だから変に考えないで、普通の整数だけ使えばいいかと
0642デフォルトの名無しさん
2009/01/11(日) 11:00:11プログラムを書くには、扱う数の範囲は重要だよ
0643デフォルトの名無しさん
2009/01/11(日) 11:38:22int main(void)
{
int i, amari;
for (i = 100; i >= 1; i--){
amari = 100 % i;
if( amari == 0)
printf("100 は %d で割り切れる\n", i);
i--;
}
return 0;
}
これだと100は1で割り切れるとでないのですが
なぜですか?
0644デフォルトの名無しさん
2009/01/11(日) 11:40:03i-- が二箇所にあるから
0645デフォルトの名無しさん
2009/01/11(日) 11:40:58あっ
さんきゅ
0646デフォルトの名無しさん
2009/01/11(日) 12:10:25範囲って言うと
異なる正の数とかそういう表現ならなんとかなったってことですか?
0647デフォルトの名無しさん
2009/01/11(日) 12:12:22最大値、最小値の問題じゃないかな?
総和が long の範囲内で収まるかどうか
0648デフォルトの名無しさん
2009/01/11(日) 12:36:40逆ポーランド記法で(正しく)書かれた式が入力として与えられた時、その式を評価した値を出力する、実際に動作するプログラムをC言語で作成せよ。
そのうえで、この問題を解くためのアルゴリズムの説明も書け。
[3]
[3.1] Windows
[3.3] C
[4] 1月13日正午
※データ構造として必ずスタックを使って実現させてください
よろしくお願いします。
0649デフォルトの名無しさん
2009/01/11(日) 12:40:53そういわれると、確に1〜∞じゃ普通にきついですよね…
周りは適当に、一年の時に習う配列の問題みたいに好きな数をポンポン入れて出来たーなんて言ってたから、そんな感じに出来ると思ってたけど、こんなに難しかったのか……orz
0650学生
2009/01/11(日) 12:59:18[2] 問題文(含コード&リンク): 単語を入力するとその単語にeがいくつ含まれているか数えてくれるプログラム。
また、単語の中に含まれるeを抜かしたものも表示せよ。
実行例
単語を入力せよ:december
単語にeが3こ含まれます。
単語のeを抜かすとd c mb r
[3] 環境
[3.1] OS: Windows xp
[3.2] VC 6.0
[3.3] #include<stdio.h>
main()
{
ではじめてください。
[4] 期限: 急ぎです。できれば今日の20時くらいまで
[5] その他の制限:while if for char int double sum * - + / ++ %= sqrt pow
!= && switch case などを習いました。
よろしくお願いします。
0651デフォルトの名無しさん
2009/01/11(日) 13:01:270652デフォルトの名無しさん
2009/01/11(日) 13:02:46int main(void)
{
char str1[100], str2[100];
int i = 0;
printf("文字列入力 ");
scanf("%s", str1);
do {
str2[i] = str1[i];
} while(str1[i++] != '\0');
printf("str2 = %s", str2);
return 0;
}
このプログラムのwhileの条件式って
どうゆう意味の判定ですか?
0653デフォルトの名無しさん
2009/01/11(日) 13:04:58文字列の終わりまでループする
0654デフォルトの名無しさん
2009/01/11(日) 13:08:01これ、誰なんだろうなぁ〜って長年、思っていたけど、よく考えたらそれ、
俺じゃ〜〜ん。道理で、女性からチラチラ見られたわけだ。
よく注目されて、あれ?俺なんか変なことしたかな?って思っていたけど、
なんだ、見とれていたのかw
0655デフォルトの名無しさん
2009/01/11(日) 13:23:18表示の仕方は何も習ってないわけか
無理だな
0656デフォルトの名無しさん
2009/01/11(日) 13:24:070657デフォルトの名無しさん
2009/01/11(日) 13:25:38プログラムは何かデータを受け付ける手段はあるわけで。屁理屈すまそw
0658デフォルトの名無しさん
2009/01/11(日) 13:26:210659585 ◆i9Dvbn/Lf6
2009/01/11(日) 13:29:24[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
教材の一部を貼っておきます。
http://up2.viploader.net/pic3/src/vl2_093082.png
http://up2.viploader.net/pic3/src/vl2_092922.png
http://up2.viploader.net/pic3/src/vl2_092923.png
zipで専用ロダにもあげておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
>>628
>シンプレックス積分でも使うのか?
よくわかりません…
>速攻で落ちるvipロダを選ぶ理由も全く分からん
他に長持ちするロダを知らないので
0660A
2009/01/11(日) 13:30:23#include<stdio.h>
main()
// int main(int argc, char* argv[])
{
int loop, count;
char ch;
char input[256], output[256];
printf("単語を入力せよ :");
scanf("%s", input);
// strcpy(output, input);
count=0;
for(loop=0; ;loop++) {
ch = input[loop];
output[loop] = ch;
if (ch == NULL) {
break;
}
if (ch == 'e') {
output[loop] = ' ';
count++;
}
}
printf("単語のeを抜かすと:%s\n", output);
printf("単語にeが%d個含まれます。\n", count);
return 0;
}
0661デフォルトの名無しさん
2009/01/11(日) 13:32:43>>636によると習ってないものは使っちゃいけないらしい。
さすがに>>650に挙げられているものだけでデータ入出力は無理じゃね?
#include <stdio.h>
main()
{
char s[128];
int i, c = 0;
printf("単語を入力せよ:"); scnaf("%s, s);
for (i = 0; s[i] != '\0'; i++) if (s[i] == 'e') { s[i] = ' '; c++; }
printf("単語にeが%dこ含まれます。\n", c);
printf("単語のeを抜かすと%s\n", s);
return0;
}
0662デフォルトの名無しさん
2009/01/11(日) 13:36:50つ コピペ
つ リダイレクト
つ 内部でファイルなどを指定する
まぁ、それらも習っていなければそれまでだがw
0663デフォルトの名無しさん
2009/01/11(日) 13:39:36コピペとかリダイレクトとか関係なくね?
0664デフォルトの名無しさん
2009/01/11(日) 13:41:29それにしても>>650を見る限りでは使っていい関数はsqrt()とpow()だけっぽいんだが・・・w
>>661がgdgdだったので直した
#include <stdio.h>
main()
{
char s[128];
int i, c = 0;
printf("単語を入力せよ:"); scanf("%s", s);
for (i = 0; s[i] != '\0'; i++) if (s[i] == 'e') { s[i] = ' '; c++; }
printf("単語にeが%dこ含まれます。\n", c);
printf("単語のeを抜かすと%s\n", s);
return 0;
}
0666デフォルトの名無しさん
2009/01/11(日) 15:16:01[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8605.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[5] その他の制限
[5.1]配列を使う
どなたかよろしくお願いします
0667デフォルトの名無しさん
2009/01/11(日) 15:29:57[2] 問題文(含コード&リンク):
次のプログラムで本来入れるべき処理は何か。指摘せよ。
char *pstr;
pstr = malloc(100);
sprintf(pstr,"123");
pstr=malloc(10);
sprintf(pstr,"456");
free(pstr);
[3] 環境
[3.1] OS: Windows xp
[3.3] 言語: C
[4] 期限: 1月15日
よろしくお願いいたします。
0668デフォルトの名無しさん
2009/01/11(日) 16:00:57char *pstr;
pstr = malloc(100);
sprintf(pstr,"123");
free(pstr); /*ここにfree()*/
pstr=malloc(10);
sprintf(pstr,"456");
free(pstr);
0669デフォルトの名無しさん
2009/01/11(日) 16:10:03ひでえ問題だ。
0670デフォルトの名無しさん
2009/01/11(日) 16:11:08char *pstr;
goto skip_label
pstr = malloc(100);
sprintf(pstr,"123");
pstr=malloc(10);
sprintf(pstr,"456");
free(pstr);
skip_label:
0671デフォルトの名無しさん
2009/01/11(日) 16:11:410672667
2009/01/11(日) 16:14:480673デフォルトの名無しさん
2009/01/11(日) 16:16:45pstrを使う何らかの処理だろJK
0674デフォルトの名無しさん
2009/01/11(日) 16:17:36[2]
Q1
現在の地域時間から15時間後の日時を表示するプログラムを作成せよ。
表示形式は時間が表示されれば自由とします。
Q2
以下の問いに○×で答えよ。
1.複数のソースファイルによりプログラムを作成するとき、機能や目的ごとに
ソースファイルを分割すると、長いソースと短いソースファイルができてしまうので
均等になるように作成したほうがよい。
2.プログラムを機能分割して考えるときコンピュータの話なので、プログラミングに
都合のいいように機能を考え、ユーザの業務内容を無視してもよい。
[3] 環境
[3.1] OS: Windows xp
[3.3] 言語: C
[4] 期限: 1月17日
よろしくお願いいたします。
0675デフォルトの名無しさん
2009/01/11(日) 16:19:26Q2
1.×
2.○ ベストプラクティスとか言っとけば、ありがたがる。
0676デフォルトの名無しさん
2009/01/11(日) 16:24:20Q1
#include<stdio.h>
#include<time.h>
int main(void){
time_t t;
t=time(NULL)+15*60*60;
puts(asctime(localtime(&t)));
return 0;
}
0677デフォルトの名無しさん
2009/01/11(日) 16:59:16#include <stdio.h>
#include <time.h>
int main(void) {
time_t t;
t=time(0);
t+=15*3600;
printf("%s",ctime(&t));
return 0;
}
0678学生
2009/01/11(日) 18:52:26色々とすいませんでした。
どうもありがとうございました。
0679デフォルトの名無しさん
2009/01/11(日) 19:16:24int main(void)
{
double data1 = 100.0, data2;
int i = 1;
while (i <= 10){
printf("実数値を入力 ");
scanf("%f", &data2);
if (data2 == 0.0)
continue;
data1 = data1 / data2;
printf("data1 = %f\n", data1);
if ( data1 < 1.0)
break;
else
i++;
}
return 0;
}
間違ってるとこ教えてください。
0680デフォルトの名無しさん
2009/01/11(日) 19:24:15↓
scanf("%lf", &data2);
0681デフォルトの名無しさん
2009/01/11(日) 19:26:06あざす。
0682デフォルトの名無しさん
2009/01/11(日) 21:30:56[2] 問題文(含コード&リンク): ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8606.txt
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:VC2005EE
[3.3] 言語:C++
[4] 期限:09/01/15迄
[5] その他の制限:配列を使ってやる方法もある、と先生が言っていたので、intを使ったときと、配列を使ったときの2通りのものを知りたいです。
よろしくお願いします。
0683デフォルトの名無しさん
2009/01/11(日) 22:07:31[2] 問題文(含コード&リンク):
・関数mainから配列のアドレスを受け取ってその中の最大値を返す関数maxを作成せよ.
#include <stdio.h>
int max(int a[ ]);
int main(void)
{
int x[ ] = {3,1,2,5,4};
printf("最大値は%d\n",max(x));
return 0;
}
int max(
int max(の後をお願いします。
実行例
最大値は5
[3] 環境 Visual C++
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン: C++コンパイラ,リンカ
[3.3] 言語: C言語
[4] 期限: 2009年1月12日(月)まで
[5] その他の制限: 値渡し、参照渡しは習いました。
宜しくお願いします。
0684デフォルトの名無しさん
2009/01/11(日) 22:16:110685デフォルトの名無しさん
2009/01/11(日) 22:19:09ちょっwwwwwwwwおまっwwwwwwwww
0686デフォルトの名無しさん
2009/01/11(日) 22:20:53[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8608.txt
3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月12日AM7時
[5] その他の制限:できるだけ簡単な関数でお願いします
0687デフォルトの名無しさん
2009/01/11(日) 22:37:01もとからバグってるとかないだろ。
原文でよこせ
0688デフォルトの名無しさん
2009/01/11(日) 22:40:23do{
printf("入力して下さい\n");
scanf("%d",&n);
}while(n<0);
0689デフォルトの名無しさん
2009/01/11(日) 22:42:46こんなじゃね?
#include<stdio.h>
int main(){
int n;
int flag=2;
do{
printf("入力して下さい\n");
scanf("%d",&n);
if(n<0){
flag--;
}else{
printf("%d\n",2*n);
flag=2;
}
}while(flag);
printf("終了します\n");
return 0;
}
0690585 ◆i9Dvbn/Lf6
2009/01/12(月) 00:23:57[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
教材の一部を貼っておきます。
http://up2.viploader.net/pic3/src/vl2_093082.png
http://up2.viploader.net/pic3/src/vl2_092922.png
http://up2.viploader.net/pic3/src/vl2_092923.png
zipで専用ロダにもあげておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
0691デフォルトの名無しさん
2009/01/12(月) 00:30:43数式みると拒否反応が出る
現役の時でも怪しかったというのに今となってはどうにもならんw
0694デフォルトの名無しさん
2009/01/12(月) 00:51:01自分でまいた種だw
0695デフォルトの名無しさん
2009/01/12(月) 00:53:07ぶっちゃけ式も読めない。
3枚目の1も2も付いてないΦは何の角度?
0696デフォルトの名無しさん
2009/01/12(月) 00:59:31二枚目の式に対して三枚目の近似を適用した結果だから…
どうなるんだろう
紙に書かないとわからんw
0697sage
2009/01/12(月) 00:59:35[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8610.txt
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C言語
[4] 期限: 2009年 1月 13日
[5] その他の制限:できるだけ単純なプログラムにてお願いいたします。
後できればアルゴリズムを簡単でよければプログラムの下の方に書いていただけると助かります。
まる投げとはいっても一応自分で理解できなければ意味がないと思うので。
是非よろしくお願いいたします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8610.txt
0698デフォルトの名無しさん
2009/01/12(月) 01:01:562回連続で負の数が入力されたら終了ってことでいいんだよな?
#include <stdio.h>
int main(void)
{
int n;
int flag = 0;
do {
printf("入力してください\n");
scanf("%d", &n);
if (n < 0) flag++; else { flag = 0; printf("%d\n", 2 * n); }
} while (flag != 2);
printf("終了します\n");
return 0;
}
0699デフォルトの名無しさん
2009/01/12(月) 01:02:02もしくは情報不足か
0700585 ◆i9Dvbn/Lf6
2009/01/12(月) 01:16:14これで最後なんです
0701デフォルトの名無しさん
2009/01/12(月) 01:33:22[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8611.txt
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:visualc++2005
[3.3] 言語: C言語
[4] 期限: 2009年 1月12日 12:00まで
[5] その他の制限:特になし
よろしくお願いします。
0702デフォルトの名無しさん
2009/01/12(月) 01:47:26#include<stdio.h>
#include<stdlib.h>
int min(int a, int b){
if(a<b) return a;
return b;
}
long huga(int n, int maximum){
int i;
long ret=0;
for(i=min(n, maximum);i>0;i--){
if(n-i>0) ret+=huga(n-i, min(i, maximum));
else ret++;
}
return ret;
}
long hoge(int n){
return huga(n, n);
}
int main(int argc, char *argv[]){
int n=4;
if(argc==2) n=atoi(argv[1]);
printf("払い方は %ld 通り (n=%d)\n", hoge(n), n);
return 0;
}
0703デフォルトの名無しさん
2009/01/12(月) 02:02:34#include<stdio.h>
#include<stdlib.h>
#define ADJUST(v) (((v)=='1' || (v)=='0')?(v):'X')
int myNOT(int A){
if(A=='1') return '0';
if(A=='0') return '1';
return 'X';
}
int myOR(int A, int B){
if(A=='1' || B=='1') return '1';
if(A=='0' && B=='0') return '0';
return 'X';
}
int myAND(int A, int B){
if(A=='0' || B=='0') return '0';
if(A=='1' && B=='1') return '1';
return 'X';
}
int myRSFF(int S, int R, int Q){
if(S=='0' && R=='0') return ADJUST(Q);
if(S=='1' && R=='0') return '1';
if(S=='0' && R=='1') return '0';
return 'X';
}
int main(void){
char buf[3][10];
scanf("%9s%9s%9s", buf[0], buf[1], buf[2]);
printf("S=%c R=%c Q=%c --> Q'=%c\n", buf[0][0], buf[1][0], buf[2][0], myRSFF(buf[0][0], buf[1][0], buf[2][0]));
return 0;
}
0705デフォルトの名無しさん
2009/01/12(月) 02:13:30プログラム無知の数学科出身のおれの意見を書かせてくれ
おそらく二重振り子の原理はφ_1の角度にある玉が原点方向に向かって振れる運動と
φ_2の角度にある玉が原点方向に振れる運動で初期の角度に大きな違いがある
なので一枚目の画像の青い玉の連結が連立微分方程式において重要な役割を得る
が、しかしもしΔφ=φ_1-φ_2=φ≒0ならば、青い玉の部分を考えず(二重振り子にならない)
φ_1≒φ_2になるので考える振り子の運動方程式は直線OQの単振り子のそれに近似できる
φはΔφの限りなく0に近い値のことを指していると思われる
0706デフォルトの名無しさん
2009/01/12(月) 02:14:280707703
2009/01/12(月) 02:17:30#include<stdio.h>
#include<stdlib.h>
#define ADJUST(v) (((v)=='1' || (v)=='0')?(v):'X')
int myNOT(int A){
if(A=='1') return '0';
if(A=='0') return '1';
return 'X';
}
int myOR(int A, int B){
if(A=='1' || B=='1') return '1';
if(A=='0' && B=='0') return '0';
return 'X';
}
int myAND(int A, int B){
if(A=='0' || B=='0') return '0';
if(A=='1' && B=='1') return '1';
return 'X';
}
int myNOR(int A, int B){ return myNOT(myOR(A, B)); }
int myNAND(int A, int B){ return myNOT(myAND(A, B)); }
int myXOR(int A, int B){ return myOR(myAND(myNOT(A), B), myAND(A, myNOT(B))); }
int myRSFF(int S, int R, int Q){
return myXOR(myOR(myAND(myNOR(S, R), Q), myAND(myXOR(S, R), S)), myAND(myAND(S, R), 'X'));
}
int main(void){
char buf[3][10];
scanf("%9s%9s%9s", buf[0], buf[1], buf[2]);
printf("S=%c R=%c Q=%c --> Q'=%c\n", buf[0][0], buf[1][0], buf[2][0], myRSFF(buf[0][0], buf[1][0], buf[2][0]));
return 0;
}
0709不完全なソース
2009/01/12(月) 03:11:21頭に0がつく数字を考慮しない場合
#include <stdio.h>
void main(){
int gakuban;
printf("学籍番号??? ");
scanf("%d",&gakuban);
if(999999<gakuban<10000000)
printf("学籍番号は7桁の数字で入力して下さい\n");
else
printf("e-mailアドレス: g%d@〜〜〜〜〜〜\n",gakuban);
}
で動くが、例を見る限り0が頭につく数を考慮しなきゃダメそうだね
0710デフォルトの名無しさん
2009/01/12(月) 04:01:02#include<stdio.h>
#include<math.h>
#define PI (3.1415926535897932384626433832795)
#define DELTA (0.01)
double Calc(double t, double digree){
double radian, x, y, vx0, vy0, v0=138000/3600.0, x0=0.0, y0=1.80, g=9.8;
radian=digree/180*PI;
vx0=v0*cos(radian);
vy0=v0*sin(radian);
x=x0+vx0*t;
y=y0+vy0*t-g*t*t/2;
printf("%e,%e\n", x, y);
return y;
}
int main(void){
double t, digree=0.0, *pdigree;
pdigree=&digree;
scanf("%lf", pdigree);
for(t=0.0;Calc(t, digree)>=0.0;t+=DELTA);
return 0;
}
0711デフォルトの名無しさん
2009/01/12(月) 04:40:23#include<stdio.h>
#include<stdlib.h>
typedef struct node_ { int v; struct node_ *l, *r; } node, *pnode;
pnode root = NULL;
void insert_r(pnode *t, pnode n) { if (*t) insert_r(n->v < (*t)->v ? &(*t)->l : &(*t)->r, n); else *t=n; }
void insert(int v) { pnode n = malloc(sizeof(node)); n->v=v; n->l=n->r=NULL; insert_r(&root, n); }
void erase_r(pnode *t, int v) {
if (*t)
if ((*t)->v == v) { pnode l = (*t)->l, r = (*t)->r; free(*t); *t = r; if (l) insert_r(t, l); }
else erase_r(v < (*t)->v ? &(*t)->l : &(*t)->r, v);
}
void erase(int v) { erase_r(&root, v); }
void print_r(pnode n) { if (n) { print_r(n->l); printf(" %d", n->v); print_r(n->r); } }
void print() { printf("data ="); print_r(root); printf("\n"); }
int input_value() { int v=0; printf("数値>"); scanf("%d", &v); return v; }
int menu() {
char s[100]; printf("a=追加、b=削除、c=表示 >"); scanf("%99s", s);
switch(s[0]) {
case 'a': insert(input_value()); break;
case 'b': erase(input_value()); break;
case 'c': print(); return 0;
}
return 1;
}
int main() {
int i; for (i = 0; i < 20; i ++) insert(rand()%101); print();
while (root && menu());
return 0;
}
0712デフォルトの名無しさん
2009/01/12(月) 06:01:16不要な関数とはどれのことですか?
0713デフォルトの名無しさん
2009/01/12(月) 06:40:22[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8607.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月12日AM10時
[5] その他の制限:できるだけ簡単な関数でお願いします
0714デフォルトの名無しさん
2009/01/12(月) 08:47:46お願いします
0715デフォルトの名無しさん
2009/01/12(月) 09:06:40[2] 問題文(含コード&リンク):
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8612.txt
[3] 環境
[3.1] OS: Windows XP
[3.2] コンパイラ名とバージョン: Visual Stdio 2005
[3.3] 言語: C
[4] 期限: 1/12 22:00
[5] その他の制限:ヒントを参考に作成して下さい
よろしくお願いします
0716デフォルトの名無しさん
2009/01/12(月) 09:55:21クソすぎる
そのφはφ_2のTypoだしD'とかいらないし
氏ねばいいのに
0717デフォルトの名無しさん
2009/01/12(月) 10:26:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8613.txt
0718デフォルトの名無しさん
2009/01/12(月) 10:36:54http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8614.txt
0719デフォルトの名無しさん
2009/01/12(月) 11:06:48おっしゃるとおり、0の場合も考えないといけないんです・・・
どうもintでやると先頭0だと0が消えちゃうのでintは無理なんでしょうか?
0720デフォルトの名無しさん
2009/01/12(月) 11:12:03#include <stdio.h>
#define BUFFSIZE 256
#define FGETS(buff) fgets(buff, BUFFSIZE, stdin); *(strchr(buff, '\n')) = '\0'
int main(void)
{
FILE *ifp, *ofp;
char buff[BUFFSIZE];
int i = 0;
printf("入力ファイル名を入力:");
FGETS(buff);
ifp = fopen(buff, "r");
printf("%sを入力しました。\n", buff);
printf("出力ファイル名を出力:");
FGETS(buff);
ofp = fopen(buff, "w");
printf("%sを出力しました。\n", buff);
while (fgets(buff, BUFFSIZE, ifp) != NULL)
fprintf(ofp, "%4d: %s", ++i, buff);
fclose(ifp);
fclose(ofp);
return 0;
}
0721デフォルトの名無しさん
2009/01/12(月) 11:24:14>>702
long huga(int n, int maximum){
int i;
long ret=0;
for(i=min(n, maximum);i>0;i--){
if(n-i>0) ret+=huga(n-i, min(i, maximum));
else ret++;
}
return ret;
}
の処理は何を表しているのでしょうか?
後アルゴリズムがいまいちプログラムから読み取ることができないので簡単に説明していただけると助かるのですが・・・
自分で考えても思いつかなくて。
0722デフォルトの名無しさん
2009/01/12(月) 11:27:42入力が7桁以下の場合でもOKなら
#include <stdio.h>
int main()
{
int gakuban;
printf("学籍番号??? ");
scanf("%d",&gakuban);
if(0 < gakuban && gakuban < 10000000) {
printf("e-mailアドレス: g%07d@〜〜〜〜〜〜\n",gakuban);
} else {
printf("学籍番号は7桁の数字で入力して下さい\n");
}
return 0;
}
0723デフォルトの名無しさん
2009/01/12(月) 11:32:28#include <stdio.h>
#include <ctype.h>
#define BUFFSIZE 16
#define N 7
int main(void)
{
char buff[BUFFSIZE];
int i;
printf("学籍番号??? "); fgets(buff, BUFFSIZE, stdin);
for (i = 0; buff[i] != '\0'; ++i) if (!isdigit(buff[i])) break;
if (i != N) {
printf("学籍番号は7桁の数字で入力してください\n");
return 1;
}
buff[N] = '\0';
printf("e-mailアドレス: g%s@〜〜〜〜〜〜〜〜\n", buff);
return 0;
}
0724デフォルトの名無しさん
2009/01/12(月) 11:34:160725デフォルトの名無しさん
2009/01/12(月) 11:54:35二つ目以降の数字についてはすでに使用した数字以下の数字を使うことで
順列を並べ替えたものを除外しています。そのために引数 maximum を使ってます
例) n=4 のとき
4 採用
3 1 採用
1 3 除外
2 2 採用
2 1 1 採用
1 2 1 除外
1 1 2 除外
1 1 1 1 採用
今、huga という関数が自然数 n および maximum を満たす
すべての組み合わせの数を数え上げることができると*仮定*します
ある数 i (1≦i≦n かつ i≦maximum) を使用すると決定したときの
組み合わせ数は huga(n-i, min(i, maximum)) で求まります(仮定より)
n=4 の時
4 0 → 1通り (これが else ret++;)
3 1 → huga(1, 1) 通り
2 2 → huga(2, 2) 通り
1 3 → huga(3, 1) 通り
ということで n=4 の時の総組み合わせ数は
1 + huga(1, 1) + huga(2, 2) + huga(3, 1)
になります
仮定を証明するのは自分でどうぞ
0726デフォルトの名無しさん
2009/01/12(月) 14:05:36問1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8615.txt
0727585 ◆i9Dvbn/Lf6
2009/01/12(月) 14:25:48[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
教材の一部を貼っておきます。
http://up2.viploader.net/pic3/src/vl2_093082.png
http://up2.viploader.net/pic3/src/vl2_092922.png
http://up2.viploader.net/pic3/src/vl2_092923.png
zipで専用ロダにもあげておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
さっぱりわからないので少しだけでもお願いします
0728デフォルトの名無しさん
2009/01/12(月) 14:27:11問1
出遅れたけど、せっかく作ったから
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8616.txt
問2は実行結果の何がどう間違っているかを教えてくれると解が早いんだけど。
0729デフォルトの名無しさん
2009/01/12(月) 14:40:41助かりました本当にありがとうございます。
>>728
失礼しました
実行結果が
総文字数:296
単語数:83
行数:16
となるのが正しいのですが、
自分が作ったものでは
総文字数 :315
単語数 :87
行数 :20
と、異なった結果が出てしまいます。
0730デフォルトの名無しさん
2009/01/12(月) 14:56:03>>666 を見る限り、「文章の終端」 == 「空行が2つ連続」としているから、
char word[][50] の最後にもう一つ空行を入れてやればそのコードで正しく動く。
0731デフォルトの名無しさん
2009/01/12(月) 15:13:49分かりました、ありがとうございます。
助かりました
0732デフォルトの名無しさん
2009/01/12(月) 15:25:47問題文というか、ポインタと構造体が理解できなくて苦しんでいます。
http://codepad.org/H4wmHhPj
このようなプログラムを組んだのですが。
mainでのAA[0]、AA[1]の値が、関数に行くとmainのAA[0]がAA[1]に入ってしまいます。
全く原因が分からず苦戦してます。
もしよろしければご教授願います。
やりたいこととしては32bit×32bit=64bitの桁あふれを解消するということです。
0733デフォルトの名無しさん
2009/01/12(月) 15:27:06スレ違い
帰れ
0734デフォルトの名無しさん
2009/01/12(月) 15:32:17一応課題なのでこのスレに来たのですが・・・
期限は明日です・・・
0735デフォルトの名無しさん
2009/01/12(月) 15:36:20ああもうマルチうざい
これやるから帰れ
http://codepad.org/GIUMvCMC
0736デフォルトの名無しさん
2009/01/12(月) 15:39:18死ね。
0737デフォルトの名無しさん
2009/01/12(月) 15:39:59有難うございます。
すぐに出来るってすごいですね・・・
多倍長やるのに構造体って必要ないんですか?
0738デフォルトの名無しさん
2009/01/12(月) 15:43:24やっ、やめて下さい、殺さないで下さい、通報しますよ?
0739デフォルトの名無しさん
2009/01/12(月) 15:54:39ありがとうございます
やはり配列使うしかないのでしょうか・・・
>>723
できるのですが、残念ながらbuffや、stdin,breakは習ってないのです。ごめんなさい。
0740デフォルトの名無しさん
2009/01/12(月) 16:19:09>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
0741デフォルトの名無しさん
2009/01/12(月) 16:22:30>>722でダメなのか?
0742デフォルトの名無しさん
2009/01/12(月) 17:15:20>>709は何故か7桁でも警告文がでて
>>722は7桁以下でも警告文でなくてそのまま出力しちゃうんですよね
int型で最初に0が来た場合〜ってのはできましたっけ?配列のみ?
0743デフォルトの名無しさん
2009/01/12(月) 17:33:58ifのところちょっと変えてみたら問題ありませんでした。
>>709は先頭0の7桁のときがダメで
>>722は7桁以下でも出力してしまうんです
0744デフォルトの名無しさん
2009/01/12(月) 17:54:11解決したのか?
0745デフォルトの名無しさん
2009/01/12(月) 18:07:06してないです
色々いじってみてるんですがやっぱりできないorz
0746デフォルトの名無しさん
2009/01/12(月) 18:12:49数値としての大きさじゃなくて、
ゼロパディング必須で入力しなければはじけってことね。
scanfはあきらめて、getcharでエンターまでの桁数を数えるしか・・・
0748722
2009/01/12(月) 18:31:36でもそれやると、配列を使わないってのがほとんど意味がなくなる気がするんだよね。
配列使わずに作ったとしても、>>723みたいな感じになるなら
配列使ったほうが自然だし。
俺にはほかの方法思いつかんかった。
0749デフォルトの名無しさん
2009/01/12(月) 18:35:37一文字入れるごとに、数値に換算してしまえばいい。
a=a*10+bみたいに。
結果、七文字丁度の入力でなければ、これもはじいてしまえば?
0750デフォルトの名無しさん
2009/01/12(月) 19:45:14[2] 問題文:
sum=1の2乗+2の2乗+・・・・Nの2乗
[3] 環境
[3.1] OS: Windows xp
[3.2]コンパイラ: gcc -o
[3.3] C言語
[4] 期限: 2008年12月31日まで
[5] その他の制限: 入力にscanf使用禁止
#include <stdio.h>
#include <stdlib.h>
#define SIZE 256
int main(void)
{
char buff[SIZE];
int N, sum = 0, i;
printf("N = "); N = atoi(fgets(buff, SIZE, stdin));
for (i = 1; i <= N; ++i) sum += i * i;
printf("1 x 1 + 2 x 2 + ... + %d x %d = %d\n", N, N, sum);
return 0;
}
何か1や2の時は、数式がおかしくなるって言われた。修正お願いします。
0751デフォルトの名無しさん
2009/01/12(月) 19:46:260752デフォルトの名無しさん
2009/01/12(月) 19:48:43数式がおかしくなるって意味わかるよね
なら、お前の首の上についているものを使えよw
0753デフォルトの名無しさん
2009/01/12(月) 19:50:48printf("Σ[i=1,%d](i x i) = %d\n", N, sum);
0754デフォルトの名無しさん
2009/01/12(月) 19:54:34こんなでどうだろう?
#include <stdio.h>
int main()
{
int gakuban=0;
printf("学籍番号??? ");
int c,cnt=0;
while((c=getchar())!='\n'){
if('0'<=c&&c<='9'){
gakuban=gakuban*10+c-'0';
cnt++;
}else{
gakuban=-1;
break;
}
};
if(0 < gakuban && gakuban < 10000000 && cnt==7) {
printf("e-mailアドレス: g%07d@〜〜〜〜〜〜\n",gakuban);
} else {
printf("学籍番号は7桁の数字で入力して下さい\n");
}
return 0;
}
0755デフォルトの名無しさん
2009/01/12(月) 21:32:34whileの中で文字数と数字の確認をしてreturnするしかない
0756デフォルトの名無しさん
2009/01/12(月) 21:33:39goto でも入れちまえ
0757デフォルトの名無しさん
2009/01/12(月) 21:39:04#include <stdio.h>
int main()
{
int gakuban=0;
printf("学籍番号??? ");
int c,cnt=0;
while((c=getchar())!='\n'){
if('0'<=c&&c<='9'){
gakuban=gakuban*10+c-'0';
cnt++;
}else{
gakuban=-1;
goto hell;
}
};
hell:
if(0 < gakuban && gakuban < 10000000 && cnt==7) {
printf("e-mailアドレス: g%07d@〜〜〜〜〜〜\n",gakuban);
} else {
printf("学籍番号は7桁の数字で入力して下さい\n");
}
return 0;
}
0758デフォルトの名無しさん
2009/01/12(月) 21:44:100759デフォルトの名無しさん
2009/01/12(月) 21:48:50そんな自己判断もできないクズがいるのか?
0760デフォルトの名無しさん
2009/01/12(月) 21:55:11#include <stdio.h>
int main(){
int gakuban=0;
printf("学籍番号??? ");
int c,cnt=0;
do{
c=getchar();
if('0'<=c&&c<='9'){
gakuban=gakuban*10+c-'0';
cnt++;
}else if(c!='\n'){
gakuban=-1;
c='\n';
}
}while(c!='\n');
if(0 < gakuban && gakuban < 10000000 && cnt==7) {
printf("e-mailアドレス: g%07d@〜〜〜〜〜〜\n",gakuban);
} else {
printf("学籍番号は7桁の数字で入力して下さい\n");
}
return 0;
}
0761デフォルトの名無しさん
2009/01/12(月) 22:14:55手伝ってくださった方々本当にありがとうございました。
0762デフォルトの名無しさん
2009/01/12(月) 22:27:51[2] 問題文:
99999 を読み込むまで,整数値を順次読み込んでいき,合計および平均を表示するプログ
ラムを作成しなさい.
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Microsoft Visual studio 2005
[3.3] 言語: C
[4] 期限: 2009年1月12日11時59分まで
[5] その他の制限: このような形で出力されるよう求められています。↓
http://lovestube.com/up/src/up4403.jpg
別のアップローダー利用ですみません
宜しくお願いします
0763デフォルトの名無しさん
2009/01/12(月) 22:33:09#include<stdio.h>
int main() {
int s,n,v;
printf("整数を入力してください。\n");
for (s=n=0; printf("%d:",n+1),scanf("%d",&v),v!=99999; n++,s+=v);
printf("合計は%d、平均は%dです。\n",s,s/n);
return 0;
}
0764585 ◆i9Dvbn/Lf6
2009/01/12(月) 22:36:55[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
教材の一部を貼っておきます。
http://up2.viploader.net/pic3/src/vl2_093082.png
http://up2.viploader.net/pic3/src/vl2_092922.png
http://up2.viploader.net/pic3/src/vl2_092923.png
zipで専用ロダにもあげておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
さっぱりわからないので少しだけでもお願いします
0765デフォルトの名無しさん
2009/01/12(月) 22:36:54助かりました
0767デフォルトの名無しさん
2009/01/12(月) 22:40:08これ、三枚目の式はあってんの?
0768デフォルトの名無しさん
2009/01/12(月) 22:42:48しつこいな
いくつか疑問挙げられてるんだから、まずそっち解答しない限りまともに解答でないと思うよ。
0769デフォルトの名無しさん
2009/01/12(月) 22:44:10汚いソースを書いて出すバカ乙w きめぇ
0770デフォルトの名無しさん
2009/01/12(月) 22:45:23あ〜〜うぜぇ〜なぁ、見たくなきゃ見なきゃいいのに
そんな自己判断もできないクズがいるのか?
>>759
他にも質問者、回答者がいるし、嫌でも書き込まれれば目につくんだが
配慮のない、自己中な奴って自業自得で引きこもっちゃったんだよねw
0771デフォルトの名無しさん
2009/01/12(月) 22:47:36あ〜〜うぜぇ〜なぁ、見たくなきゃ見なきゃいいのに
そんな自己判断もできないクズがいるのか?
>>770
他にも質問者、回答者がいるし、嫌でも書き込まれれば目につくんだが
配慮のない、自己中な奴って自業自得で引きこもっちゃったんだよねw
0772デフォルトの名無しさん
2009/01/12(月) 23:26:330773デフォルトの名無しさん
2009/01/12(月) 23:48:25[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8617.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 1月15日 12:00まで
[5] その他の制限: 特になし
よろしくおねがいします。
0774デフォルトの名無しさん
2009/01/12(月) 23:52:03[2] 問題文(含コード&リンク):
2進16桁の2の補数表示のデ−タと10進数を相互に変換するプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8618.txt
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月14日まで
[5] その他の制限:特に無いです。
よろしくお願いします。
0775デフォルトの名無しさん
2009/01/12(月) 23:52:38以後放置よろ。要するに、周りが見えず、うpロダも使えないヘタレPC、C言語初心者
恐らく、過去にここで世話になったせいか、恩返しのつもりでやっているんだろうけど
かなり迷惑。
0776デフォルトの名無しさん
2009/01/13(火) 00:05:39[2] 問題文(含コード&リンク): http://www.hamatyuu.no-ip.com/up_loader/img/up449.jpg
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C
[4] 期限:1月16日まで
[5] その他の制限:無し
専用ロダ使ってなくてすいません
どんな形のプログラムでもいいのでどなたかよろしくお願いします
0777デフォルトの名無しさん
2009/01/13(火) 00:11:33Rがない
あとこれ手で式解いちゃってもいいの?
0778デフォルトの名無しさん
2009/01/13(火) 00:16:13・ラーメンの待ち時間の長さ&商品によって異なる味の変化をデータベース化
例:商品Aでは4分で「麺のふにゃふにゃ感が芽生えはじめる」
というような情報に基づき柔軟に味を調節可能
データベースは、ある設定でラーメンが出来たら、感想フォームを表示、
ここに感想を入力していくことでオリジナルのデータベースが出来あがっていくという仕組み。
さらに、TCP/IP通信でこのデータベース情報を交換できる。
・ラーメンが出来るまでの時間をミニ格闘対戦ゲームで潰せる「時間があっというまに経つね」機能
TCP/IP通信で、ロビーをデディケートサーバーで提供できるような感じで。
・ラーメン作成回数・日時・商品情報から、ラーメンにおける摂取カロリー計算や
嗜好分析などを行える統計機能つき。
この統計から、「おすすめの新作カップメン」みたいな情報も表示できる。
タイムリミットは明日の6時までに適当なアプロダで、GPLで。
0780デフォルトの名無しさん
2009/01/13(火) 00:22:05すいません不足がありました。R=0の場合とR=20の場合をそれぞれ考えるという問題です
手で式を解いてもかまわないです
0781デフォルトの名無しさん
2009/01/13(火) 00:22:111も2も付いてないΦは、何の角度?
0782デフォルトの名無しさん
2009/01/13(火) 00:23:32ああ、わかんないってか。
それで式が合ってるかどうかも、分かんないと・・・
0783780
2009/01/13(火) 00:24:560785デフォルトの名無しさん
2009/01/13(火) 01:17:38[2] 問題文(含コード&リンク)
・次のプログラムは「九九」を計算する標準的なポインタ操作である。
動作原理(なぜ正しく動くのか、特に計算部分)を説明せよ。
char *p = "000";
printf("input: "), scanf("%c", p);
1[p] = (*p**p - 96**p + 2304) / 10 + 48;
2[p] = (*p**p - 96**p + 2304) % 10 + 48;
printf("%c%c\n", 1[p], 2[p]);
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:BCC 5.5.1
[3.3] 言語:C言語
[4] 期限:2009年1月20日 00:00 まで
[5] その他の制限:定数部分が何を表しているかの説明は省略してはいけない
まったく分かりません・・・「**」なんて演算子あるんですか?
0786デフォルトの名無しさん
2009/01/13(火) 01:21:46リテラルの書き換えをするなんて!
char p[]="000"; もしくは
char buf[]="000", *p=buf; ならおk
0787デフォルトの名無しさん
2009/01/13(火) 01:24:55p[1]=(p[0]-'0')*(p[0]-'0')/10+'0';
p[2]=(p[0]-'0')*(p[0]-'0')%10+'0';
の'0'を整数48に書き換えてから括弧を展開しただけでしょ。
*p**pは(*p)*(*p)、つか
全く標準的とは思えないし、九九じゃなくて平方?自乗?
0788デフォルトの名無しさん
2009/01/13(火) 01:32:09p[1] は *(p + 1) と同じ。
→ 足し算だからpと1を入れ替えてもよくね?
→ p[1] = *(p + 1) = *(1 + p) = 1[p]
0789デフォルトの名無しさん
2009/01/13(火) 01:43:50これそのまま写したんですけど、なんかやばい奴なんですか?
>>787
そう書かれたら一気に分かりました!**は演算子じゃなかったんですね!
あと、
除算してcharにする→切り捨てられるから、十の位の数字だけを出す
剰余→10で割った余り→一の位
でいいんですか?
>>788
なるほど!
何も考えずに写して、p[1]とかの書き方したしたことがなかったんで意味不明だったんですが、理解できました!
0790デフォルトの名無しさん
2009/01/13(火) 02:02:52>(*p**p - 96**p + 2304) % 10 + 48
の
>(*p**p - 96**p + 2304)
は
x^2 - 96x +2304
=(x - 48)^2
48というのは文字'0'の文字コードで
つまりx-48というのは、文字'0'~'9'を数字0~9に変換している。
これを2乗して
10で割ると自乗の1桁目、
10で剰余をとると自乗の2桁目が得られ
それにまた48を足して文字に変換している。
かなりトリッキーなコードだね
パズルみないなもんで、これがポインタの勉強になるとは思えない
1[p]とかの書き方が可能なのは知ってたけど
実際に使われているのははじめてみた
0791デフォルトの名無しさん
2009/01/13(火) 02:05:38×
10で割ると自乗の1桁目、
10で剰余をとると自乗の2桁目が得られ
○
10で割ると自乗の2桁目、
10で剰余をとると自乗の1桁目が得られ
0792デフォルトの名無しさん
2009/01/13(火) 02:08:27ありがとうございます!
C言語の入門書とかを見ても載ってなかったので、困ってました。。
こういうのって大学でしか使わない書き方なんですか?
先生は、こういうのが瞬時に分かったら優秀なプログラマだ、とか言ってましたが・・・
0793デフォルトの名無しさん
2009/01/13(火) 02:15:48「連結成分に分離する」って何すること?
0794デフォルトの名無しさん
2009/01/13(火) 02:19:28横からだけど、例1だったら
1-2-4-5-6と3に分解することじゃないの?
0795デフォルトの名無しさん
2009/01/13(火) 02:36:15優秀なプログラマだったらこれを見て瞬時に分かるかもしれませんが
これを見て瞬時に分かる人が優秀なプログラマなわけではありません
というかこんな糞コードはなかなかお目にかかれないし
当然優秀な人はこんなの書きません
0796デフォルトの名無しさん
2009/01/13(火) 05:10:04課題2はやってないです。
拡張子が化けてしまったけど、*.tar.gzでお願いします。
ついでに、講義で用いてる参考書を教えてください(今後の参考のため)。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8619.zip
0797デフォルトの名無しさん
2009/01/13(火) 06:24:17[2] 問題文:入力した3つの変数をスワップ(入れ替え)させて出力するプログラムを作りなさい
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:水曜まで
お願いします
0798デフォルトの名無しさん
2009/01/13(火) 06:45:15何を入力するのか
言語はなんなのか
0799デフォルトの名無しさん
2009/01/13(火) 09:33:01#include <iostream>
int main()
{
int a[3];
for (int i = 0; i < 3; ++i) {
std::cin >> a[i];
}
std::cout << "a = " << a[0] << ", b = " << a[1] << ", c = " << a[2] << std::endl;
std::swap(a[0], a[1]);
std::swap(a[1], a[2]);
std::cout << "after:\na = " << a[0] << ", b = " << a[1] << ", c = " << a[2] << std::endl;
return 0;
}
0800デフォルトの名無しさん
2009/01/13(火) 09:38:210801デフォルトの名無しさん
2009/01/13(火) 10:45:52ずいぶん昔の、読みにくいコードが「偉い」みたいな頃の産物だな。
実際の仕事でこんなコード書いたらリストラの対象になるので真似しないようにな。
0802デフォルトの名無しさん
2009/01/13(火) 13:35:38???
0803デフォルトの名無しさん
2009/01/13(火) 13:38:26[2] 問題文(含コード&リンク): 簡単なオセロやロールプレイングなどの簡単なゲーム。
[3] 環境
[3.1] OS: windows Vista HomeEdition
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語: C言語
[4] 期限: 水曜日の夜11時30分まで
[5] その他の制限: 関数、ポインタ、配列構造体等まで
0804デフォルトの名無しさん
2009/01/13(火) 14:01:12#include <stdio.h>
#include <stdlib.h>
int main(void)
{
srand((unsigned int)time(NULL));
printf("you %s\n", rand() % 2? "won": "lost");
return 0;
}
0805デフォルトの名無しさん
2009/01/13(火) 14:02:260806デフォルトの名無しさん
2009/01/13(火) 14:17:20宣言する。その後、str1に"Let's"を、str2に"study"を、str3に
"programming."を代入し、これらの文字をつなげて出力する
プログラムを、strcat関数を使わない場合と使った場合の
2種類作りなさい。
お願いします。
0807デフォルトの名無しさん
2009/01/13(火) 14:20:41は、いいとして、gccてGNU C Compiler の略じゃないよ?
0808デフォルトの名無しさん
2009/01/13(火) 14:23:07strcat()を使わない場合
#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[40], str2[40], str3[40];
strcpy(str1, "Let's");
strcpy(str2, "study");
strcpy(str3, "programming.");
printf("%s%s%s", str1, str2, str3);
return 0;
}
0809デフォルトの名無しさん
2009/01/13(火) 14:25:11次の問題が分かりません。どなたか分かる方がいましたら、宜しくお願い致します
1~12(月)の数字を入力をうけたら、その月の日数(28~31)=日にち。を表示し、
それ以外の入力であれば、再度入力を求める。
このようなアルゴリズムをC言語を使った形で求めたいのですが、どうすればよいでしょうか?
分かる方、宜しくお願い致しますm(__)m
0810デフォルトの名無しさん
2009/01/13(火) 14:25:280811デフォルトの名無しさん
2009/01/13(火) 14:27:48ググレカス
0812デフォルトの名無しさん
2009/01/13(火) 14:33:06ありがとうございます。
使う場合誰か教えてください。
0813デフォルトの名無しさん
2009/01/13(火) 14:33:24テンプレを読むべき
#include <stdio.h>
int main(void)
{
int d[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int m;
do {
printf("input >> ");
scanf("%d", &m);
} while (!(1 <= m && m <= 12));
printf("%d\n", d[m - 1]);
return 0;
}
0814デフォルトの名無しさん
2009/01/13(火) 14:36:50ごめん、、、読まずに聞いてしまった
ありがとう
0815デフォルトの名無しさん
2009/01/13(火) 15:25:37#include <stdio.h>
#include <string.h>
int main(void)
{
char str1[40], str2[40], str3[40];
strcpy(str1, "Let's");
strcpy(str2, "study");
strcpy(str3, "programming.");
printf("%s", strcat(str1, strcat(str2, str3)));
return 0;
}
0816デフォルトの名無しさん
2009/01/13(火) 16:22:15すげーありがとうございます
0817A
2009/01/13(火) 16:42:32scanf("%d",&m);
} while (!(1 <= m && m <= 12));
if (m==2) {
printf("閏年なら29,閏年でなく平年なら28");
} else
printf("%d\n", d[m - 1]);
0818デフォルトの名無しさん
2009/01/13(火) 17:12:50#####の箇所を埋め、実行せよ。
なお、本プログラムは、4人の構造体データを初期化入力したのち、
構造体カード member[i] を引数とする関数 bmi_keisan により、
BMI値 = 体重(Kg) / ( (身長(m))*(身長(m)) ) を計算のうえ、それぞれの構造体カード member[i] のメンバ BMI に計算結果を代入するプログラムである。
void bmi_keisan(##########){BMI値の計算と構造体への代入をする関数を実現せよ。ドット演算子、アロー演算子のいずれを用いてもよい。}
(構造体) struct bmi_calc
名前(name): 下記のデータを直接入力身長(weight): 下記のデータを直接入力体重(height): 下記のデータを直接入力
BMI (bmi): BMI値を計算する関数により算出
(一人目データ)
名前:斉藤体重(Kg):60.0身長(m):1.75BMI: 0 (初期値)
(二人目データ)名前:田中体重(Kg):80.0身長(m):1.65BMI: 0 (初期値)
(三人目データ)名前:鈴木体重(Kg):40.0身長(m):1.45BMI: 0 (初期値)
(四人目データ)名前:伊藤体重(Kg):70.0身長(m):1.9BMI: 0 (初期値)
(参考:BMI)
体重(Kg)を身長(m:メートル)の二乗で割った値。体格を把握するために用いられる計算式である。BMI <18.5 低体重18.5 < BMI < 25 普通25< BMI 肥満
【達成目標2】
ポインタや構造体を用いたプログラムが理解でき、それらを利用したプログラムが書ける。(学習・教育目標C)
0819デフォルトの名無しさん
2009/01/13(火) 17:14:07#include <stdio.h>
#define NINZUU 4
struct bmi_calc {
char name[40];
double weight;
double height;
double bmi;
};
void bmi_keisan(struct bmi_calc *calc);
int main(void){
int i;
//ここで構造体データの初期化をせよ
struct bmi_calc member[]={
{##########################},
{##########################},
{##########################},
{##########################},
};
printf("Name \t Weight \t Height \t BMI\n");
for(i=0; i<NINZUU; i++) bmi_keisan(calc); // 関数 bmi_keisan に構造体のデータを渡す
// ここでBMI値を含めた各人の構造体データを表示させる
for(i=0; i<NINZUU; i++)
printf("%s \t %f \t %f \t %f\n",
############,############,############,############); // 名前、体重、身長、BMI値を表示させる
return(0);
}
void bmi_keisan(######################)
{
#####bmi=###################################### // 構造体におけるBMI値の計算
}
0820デフォルトの名無しさん
2009/01/13(火) 17:33:46#include <stdio.h>
#define NINZUU 4
struct bmi_calc {
char name[40];
double weight;
double height;
double bmi;
};
void bmi_keisan(struct bmi_calc *calc);
int main(void)
{
int i;
struct bmi_calc member[] = {
{"斉藤", 60.0, 1.75, 0},
{"田中", 80.0, 1.65, 0},
{"鈴木", 40.0, 1.45, 0},
{"伊藤", 70.0, 1.9, 0},
};
printf("Name \t Weight \t Height \t BMI\n");
for(i = 0; i<NINZUU; i++) bmi_keisan(&member[i]);
// ここでBMI値を含めた各人の構造体データを表示させる
for(i = 0; i<NINZUU; i++)
printf("%s \t %f \t %f \t %f\n", member[i].name, member[i].weight, member[i].height, member[i].bmi);
return 0;
}
void bmi_keisan(struct bmi_calc *calc)
{
calc->bmi = calc->weight / (calc->height * calc->height);
}
0821デフォルトの名無しさん
2009/01/13(火) 17:37:21[2] 問題文(含コード&リンク):
1.エラトステネスのふるいを行うアルゴリズムを考えなさい。
2.これを用いて30万までの素数をすべて求めよ
出力例:
2 3 5 7 11 13 17 19 23 29 31
37 41 43 47 53 59 61 67 71 73 79
83 89 97 101 103 107 109 113 127 131 137
139 149 151 157 163 167 173 179 181 191 193
[3] 環境
[3.1] OS: Windows Vista
[3.2] BCC Borland C++ 5.5.1 for Win32
[3.3] 言語: C言語
[4] 期限: 14日17時頃まで
[5] その他の制限: 関数はほとんど習っていません。for if while printf scanf程度です。
0822デフォルトの名無しさん
2009/01/13(火) 17:37:49本問題と同時に配布している data.txt ファイルには、以下のようなデータが入力済みである。
// data.txt の中身
きゅうり 100 5
きゃべつ 200 3
ピーマン 120 4
レタス 140 2
ニンジン 130 3
大根 200 4
1列目は野菜名を、2列目の数字は単価を、3列目は個数である。これを踏まえて、
(1)ファイルdata.txt の内容をプログラム中に読み込む。
(2)それぞれの野菜の単価(tannka)と個数(kosuu)を掛け合わせて求めた小計を配列shoukei[i]に入力しておく
(3)すべての野菜の小計shoukei[i]の値を足し合わせた
合計値(sum)を求め、合計値(sum)を新たなファイルkekka.txtに書きこむ。
以上、3つの動作を実現するプログラムを########の箇所を埋め合わせて求め、実行せよ。
0823デフォルトの名無しさん
2009/01/13(火) 17:39:19#include <stdio.h>
int main(void)
{
FILE *fp1,*fp2; // *fp1 は入力用ファイルポインタ、*fp2 は出力用ファイルポインタ
char namae[40];
int i,no,tannka,kosuu,sum;
int shoukei[10]={0}; // 小計格納用の配列。すべて0に初期化しておく。
if ((####### = fopen("############################\\data.txt", "#####")) == NULL) // data.txtファイルのフォルダは自分で指定して
printf("\aファイルをオープンできません。\n");
else {
no=0;
printf("野菜名 \t 単価 \t 個数 \t 小計\n");
while (fscanf(fp1, "%s %d %d", namae, &tannka, &kosuu) == 3) {
shoukei[no]=#####################; // それぞれの野菜(no で指定)の小計の計算をせよ
printf("%s \t %d \t %d \t %d\n", namae, tannka, kosuu, shoukei[no]);
no++;
}
fclose(###); // data.txt ファイルのクローズ }
sum=0;
for(i=0 ; i<no ; i++) #######################; // 合計(sum)の計算
printf("\n 合計金額 %d 円です。\n",########);
printf("---------------------------------\n");
if ((######## = fopen("#####################\\kekka.txt", "#####")) == NULL) // kekka.txtファイルのフォルダは自分で指定して
printf("\aファイルをオープンできません。\n");
else {
fprintf(fp2, "合計金額は= %d 円ですよ。\n", ###); // 合計金額をファイルに書き込み
fprintf(fp2,"---------------------------------\n");
fclose(###); /* kekka.txt ファイルのクローズ */
}
return (0);
}
0824デフォルトの名無しさん
2009/01/13(火) 18:01:13#include <stdio.h>
#define N 300000
int main(void)
{
char sieve[N+1] = {0};
int i, j;
for (i = 2; i < N; i++) {
if (!sieve[i]) {
printf("%d ", i);
for (j = 2*i; j < N; j += i) {
sieve[j] = 1;
}
}
}
putchar('\n');
return 0;
}
0825デフォルトの名無しさん
2009/01/13(火) 18:06:25http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8621.c
0826デフォルトの名無しさん
2009/01/13(火) 18:08:28http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8622.cpp
0827デフォルトの名無しさん
2009/01/13(火) 18:09:17> [3.3] 言語:C言語
>>826
> 8622.cpp
0828デフォルトの名無しさん
2009/01/13(火) 18:17:20おぉう。中身はCなので拡張子を.cにしてください
0829デフォルトの名無しさん
2009/01/13(火) 18:21:46[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8620.txt
[3] 環境
[3.1] OS:LINUX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:木曜日まで
よろしくお願いします
0830デフォルトの名無しさん
2009/01/13(火) 19:55:14次のプログラムにおいて
int ######; // 変数、ポインタの宣言
########## // int型変数 e に「値」 30 を代入
########## // 変数e の「アドレス」を ポインタpointer_e に代入
######### // ポインタpointer_e が指し示すアドレスのメモリ内の「値」を 変数gに代入り
と処理したいとする。
各変数を適切に宣言し(#####を埋めよ)、e, pointer_e, g のアドレスと値の両方をprintf("### の[データ or アドレス]\n",###) 文により表示させるプログラムを完成させて実行せよ。
#include <stdio.h>
int main(void)
{
int ########## // 変数、ポインタの宣言
int e = #####; // int型変数 e に「値」 30 を代入
int e = ########## // 変数e の「アドレス」を ポインタ pointer_e に代入
char buffer[30]; // ポインタ pointer_e が指し示すアドレスのメモリ内の「値」を 変数gに代入
printf(##########);
printf(##########);
printf(##########);
printf(##########);
printf(##########);
printf(##########);
return (0);
}
0831デフォルトの名無しさん
2009/01/13(火) 20:10:13#include <stdio.h>
int main(void)
{
int e, *pointer_e, g;
e = 30;
pointer_e = &e;
g = *pointer_e;
printf("e のデータ: %d\n", e);
printf("e のアドレス: %p\n", &e);
printf("pointer_e のデータ: %p\n", pointer_e);
printf("pointer_e のアドレス: %p\n", &pointer_e);
printf("g のデータ: %d\n", g);
printf("g のアドレス: %p\n", &g);
return 0;
}
0832デフォルトの名無しさん
2009/01/13(火) 20:16:56// data.txt の中身
きゅうり 100 5
きゃべつ 200 3
ピーマン 120 4
レタス 140 2
ニンジン 130 3
大根 200 4
1列目は野菜名を、2列目の数字は単価を、3列目は個数である。これを踏まえて、
(1)ファイルdata.txt の内容をプログラム中に読み込む。
(2)それぞれの野菜の単価(tannka)と個数(kosuu)を掛け合わせて求めた小計を配列shoukei[i]に入力しておく
(3)すべての野菜の小計shoukei[i]の値を足し合わせた
合計値(sum)を求め、合計値(sum)を新たなファイルkekka.txtに書きこむ。
以上、3つの動作を実現するプログラムを########の箇所を埋め合わせて求め、実行せよ。
0833デフォルトの名無しさん
2009/01/13(火) 20:18:20int main(void)
{
FILE *fp1,*fp2; // *fp1 は入力用ファイルポインタ、*fp2 は出力用ファイルポインタ
char namae[40];
int i,no,tannka,kosuu,sum;
int shoukei[10]={0}; // 小計格納用の配列。すべて0に初期化しておく。
if ((####### = fopen("############################\\data.txt", "#####")) == NULL) // data.txtファイルのフォルダは自分で指定して
printf("\aファイルをオープンできません。\n");
else {
no=0;
printf("野菜名 \t 単価 \t 個数 \t 小計\n");
while (fscanf(fp1, "%s %d %d", namae, &tannka, &kosuu) == 3) {
shoukei[no]=#####################; // それぞれの野菜(no で指定)の小計の計算をせよ
printf("%s \t %d \t %d \t %d\n", namae, tannka, kosuu, shoukei[no]);
no++;
}
fclose(###); // data.txt ファイルのクローズ }
sum=0;
for(i=0 ; i<no ; i++) #######################; // 合計(sum)の計算
printf("\n 合計金額 %d 円です。\n",########);
printf("---------------------------------\n");
if ((######## = fopen("#####################\\kekka.txt", "#####")) == NULL) // kekka.txtファイルのフォルダは自分で指定して
printf("\aファイルをオープンできません。\n");
else {
fprintf(fp2, "合計金額は= %d 円ですよ。\n", ###); // 合計金額をファイルに書き込み
fprintf(fp2,"---------------------------------\n");
fclose(###); /* kekka.txt ファイルのクローズ */
}
return (0);
}
0834デフォルトの名無しさん
2009/01/13(火) 20:22:33いい加減、>>1くらい読めよ
0835デフォルトの名無しさん
2009/01/13(火) 20:31:25double daisuu(double jyotei, double katei, double takasa)
{
....
}
を作成し、プログラムを実行せよ。
上底(台数の上部の辺の長さ):jyotei
下底(台数の下部の辺の長さ):katei
台数の高さ(並行である対辺の距離):takasa
とする。
なお、「プロトタイプ宣言」に従ってプログラムを組むこと。
お願いします
0836デフォルトの名無しさん
2009/01/13(火) 20:36:480837デフォルトの名無しさん
2009/01/13(火) 20:42:08[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
台形(少なくとも一組の対辺が互いに平行であるような図形)の面積を計算する関数
double daisuu(double jyotei, double katei, double takasa)
{
....
}
を作成し、プログラムを実行せよ。
上底(台数の上部の辺の長さ):jyotei
下底(台数の下部の辺の長さ):katei
台数の高さ(並行である対辺の距離):takasa
とする。
なお、「プロトタイプ宣言」に従ってプログラムを組むこと。
[3] 環境
[3.1] OS: Windows
[3.3] 言語: /C++
[4] 期限: 今日まで
[5] その他の制限: プロトタイプ宣言にて
0838デフォルトの名無しさん
2009/01/13(火) 21:04:19double daisuu(double jyoutei, double katei, double takasa)
{
return (jyoutei + katei) * takasa / 2;
}
int main(void)
{
daisuu(1, 2, 3);
return 0;
}
0839デフォルトの名無しさん
2009/01/13(火) 21:26:45いい加減、>>1くらい読めよ
0840デフォルトの名無しさん
2009/01/13(火) 21:37:08[1] 授業単元: プログラミングc++
[2] 問題文(含コード&リンク):
http://www2.uploda.org/uporg1931008.txt.html
[3] 環境
[3.1] OS: Windows
[3.3] 言語: /C++
[4] 期限:本日
0841デフォルトの名無しさん
2009/01/13(火) 21:42:42何が分かったというのか全然分からんwww
あとC++じゃなくてC言語みたい
0842デフォルトの名無しさん
2009/01/13(火) 21:43:43マジで・・・・orz
もしよかったら模範解答みたいのもらえないだろうか??
本当お願いだ
0843デフォルトの名無しさん
2009/01/13(火) 21:52:17#include<stdio.h>
#include<stdlib.h> // qsort関数使用時に必要なヘッダファイル
double trim_heikin(const int a[], int kosuu); // プロトタイプ宣言
int intcmp(const void *a, const void *b);
int main(void)
{
int a[11]={20,50,10,70,30,0,80,90,40,60,100}; // 配列a[] は、このデータを使うこと
int i;
printf("ソート前データ\n");
for(i=0 ; i < 11 ; i++) printf("%d ",a[i]);
qsort(a, 11, sizeof(int), intcmp);// qsort 関数を用いてa[]配列をソートする
printf("\nソート後データ\n");
for(i=0 ; i < 11 ; i++) printf("%d ",a[i]);
printf("\nトリム平均は=%f\n",trim_heikin(a, 11)); // trim_heikin関数を用いて結果を表示せよ
return(0);
}
// トリム平均の関数をプログラムせよ
double trim_heikin(const int a[], int kosuu)
{
int sum = 0;
int i;
for (i = 1; i < kosuu - 1; ++i) sum += a[i];
return (double)sum / (kosuu - 2);
}
int intcmp(const void *a, const void *b)
{
return *(int *)a - *(int *)b;
}
0844デフォルトの名無しさん
2009/01/13(火) 21:57:02すいません
1から出直します
0845デフォルトの名無しさん
2009/01/13(火) 21:59:140846デフォルトの名無しさん
2009/01/13(火) 22:04:340 から始めてほしいもんだ
(配列的に)
0847デフォルトの名無しさん
2009/01/13(火) 22:10:59きもいな
0848デフォルトの名無しさん
2009/01/13(火) 22:33:51さもしいな
0849デフォルトの名無しさん
2009/01/13(火) 22:54:47[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8623.txt
3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月14日AM8時
[5] その他の制限:できるだけ簡単な関数でお願いします
0850デフォルトの名無しさん
2009/01/13(火) 22:58:18具体的な例を示した方が良いよ。
> 数字の合計
連続していた場合はどうするの?例えば12と並んでいたら1と2に分けるのか
連続している場合は12とするとか?
0851773
2009/01/13(火) 23:05:35ありがとうございます。
講義で使っている本は茨木俊秀のCによるアルゴリズムとデータ構造という本です。
すいませんがどなたか課題2をお願いします。
0852デフォルトの名無しさん
2009/01/13(火) 23:25:57[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8624.txt
[3] 環境
[3.1] Linux
[3.2] gcc
[3.3] 言語:C
[4] 期限:2009年1月16日20時まで。
[5] 配列まで習ったのですがどのように作れば良いのかわかりません。
どなたか教えてください。
0853デフォルトの名無しさん
2009/01/14(水) 00:01:29[1] 授業単元:ソフトウェア演習
[2] 問題文(含コード&リンク): 指定されたデータファイルから都道府県名を読み込み,連結リストに格納した後に,キーボードから入力した文字列を探索し,該当する文字列があれば表示(無ければ無い旨を表示)するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:ECLIPSE
[3.3] 言語: (C )
[4] 期限: 明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
よろしくです
0854デフォルトの名無しさん
2009/01/14(水) 00:05:32コンパイラは何だよ
ファイルの形式は?中身は?
イライラする!消せ!
0855デフォルトの名無しさん
2009/01/14(水) 00:23:30なんとなく3桁から8桁のを列挙するようにしてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8625.txt
0856デフォルトの名無しさん
2009/01/14(水) 00:34:41[2] 自由発表で、私は神経衰弱をやろうと思っています
3] 環境
[3.1] OS:Mac
[3.2] コンパイラ名とバージョン: emacs
[3.3] 言語:C++
[4] 期限:1月14日 午前8時
・5色×2ペア×2枚ずつ=計20枚
・新規でゲームを始めるごとにカードの配置を新しく
・白いカードを2枚めくり、2枚が異なる色なら白に戻す⇒また同じカードを選んだ際にまた同じ色になる
・カードの色と配置を決める関数とカードをめくる関数の2つにわけて考える
カードをめくる関数のほうは出来たのですが、色と配置の関数がなかなかできずに困っています。
20枚のカードに、5色を4枚ずつちりばめさせたいのですが…。
期限が急ですみません
よろしくお願いします。
0857デフォルトの名無しさん
2009/01/14(水) 00:35:02#include<stdio.h>
int main() {
static const char *te[] = {"グー", "チョキ", "パー"};
int you;
printf("じゃんけん・・・(1:グー、2:チョキ、3:パー)?");
scanf("%d", &you);
printf("ポン! \n あなた=%s, COM=%s\n", te[you-1], te[(you+1)%3]);
printf("あなたの負け!\n");
return 0;
}
0858デフォルトの名無しさん
2009/01/14(水) 00:35:16#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#define N (20 + 1)
int main(void)
{
char b[N];
int i, c, n;
fgets(b, N, stdin);
for (i = c = n = 0; i < N; ++i) {
if (isdigit(b[i])) { c++; n += b[i] - '0'; }
}
printf("個数:%d, 合計:%d\n", c, n);
return 0;
}
0859デフォルトの名無しさん
2009/01/14(水) 00:39:180860A
2009/01/14(水) 00:39:40#include <stdio.h>
#define N 6
static int graph[N][N];
int main(void) {
int i, j;
printf("input %d * %d matrix\n", N, N);
for(i = 0; i < N; i++) {
for(j = 0; j < N; j++) {
scanf("%1d", &graph[i][j]);
}
}
for(i = 0; i < N-1; i++) {
for(j = i+1; j < N; j++) {
if(graph[i][j] == 1) {
printf("%d : %d\n", i+1, j+1);
}
}
}
return 0;
}
0861デフォルトの名無しさん
2009/01/14(水) 00:39:40頭痛くなってきたから寝る
0862585 ◆i9Dvbn/Lf6
2009/01/14(水) 00:56:56[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
zipで専用ロダにもあげておきます
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8603.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
さっぱりわからないので少しだけでもお願いします
0863デフォルトの名無しさん
2009/01/14(水) 03:46:13The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada
ググリマシタ
0864デフォルトの名無しさん
2009/01/14(水) 03:57:4620枚のカードに、5色を4枚ずつちりばめるとこだけ。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int card[20] = {1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5};
int i, tmp, rnd;
srand(time(NULL));
for (i = 0; i < 20; i++) {
rnd = rand() % 20;
tmp = card[i];
card[i] = card[rnd];
card[rnd] = tmp;
}
return 0;
}
0865864
2009/01/14(水) 03:59:170866デフォルトの名無しさん
2009/01/14(水) 04:23:140867デフォルトの名無しさん
2009/01/14(水) 06:18:37>gcc, g++ - GNU project C and C++ Compiler
アホが
0868デフォルトの名無しさん
2009/01/14(水) 07:07:04一体何を見てアホとか言ってるんだろう。
公式ちゃんと読めてるか?
http://gcc.gnu.org/gcc-4.3/
> GCC used to stand for the GNU C Compiler, but since the compiler supports several other languages aside from C, it now stands for the GNU Compiler Collection.
CとC++だけとして見るなんて逆にGNUをバカにしてるとしか思えない
0870デフォルトの名無しさん
2009/01/14(水) 07:12:25最初はCコンパイラの略だった
後付でコンパイラコレクションの略称というのも追加設定された、と
0871デフォルトの名無しさん
2009/01/14(水) 07:31:24コンパイラ群について言いたかったらGCCって書くと思う。
0872デフォルトの名無しさん
2009/01/14(水) 08:21:390873デフォルトの名無しさん
2009/01/14(水) 08:34:350874デフォルトの名無しさん
2009/01/14(水) 09:34:44[2] 問題文: 受け取った整数を左に 4 ビットだけ桁移動(シフト)させる処理によって,元の数の何倍になるか.
受け取った整数を左に 2 ビットだけ桁移動(シフト)して xを加える処理によって,元の数の何倍になるか.
受け取った整数と2進数00001111のビットごとの論理積をとった結果によって,元の数は16の倍数になるか.
・標準入力から非負の整数を 1 つ受け取る (scanf を用いて整数を符号無し整数型 unsigned 型の変数に読み込む).
・符号無し整数型 unsigned 型の変数を二進数表示する関数 printBinary を作成する.
・処理の前後について,関数 printBinary を使って二進数表示する.
#include <stdio.h>
#include <stdlib.h>
void printBinary(unsigned x){
int i;
for (???????; ???????; i--) {
???????
}putchar('\n');}
int main(void){
unsigned n,m;
printf("Input non-negative integer: ");
scanf("%d", &n);
???????
printf("%u / %u = %d\n", m, n, m/n);
???????
printf("%u / %u = %d\n", m, n, m/n);
???????
if ( ??????? )
printf("%u %% 16 = 0 \n", n);
else
printf("%u %% 16 != 0 \n", n);
return 0;}
[3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月14日20時まで
[5] その他の制限:特に無いです。 どうかよろしくお願いします。
0875デフォルトの名無しさん
2009/01/14(水) 09:52:10ありがとうございます。
これをベースにいろいろいじってみます。
0876デフォルトの名無しさん
2009/01/14(水) 10:37:44文字化けしてませんが…
0877デフォルトの名無しさん
2009/01/14(水) 10:41:15[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8627.txt
[3] 環境
[3.1] OS:WindowsXP SP3
[3.2] コンパイラ名とバージョン:Visual Stadio.NET 2003
[3.3] 言語:C++
[4] 期限:1月15日まで
[5] その他の制限:特に無いです。できるだけ掲載してる雛形を使ってもらえると助かります。
もちろん全く的外れなプログラムになっているなら作り直していただいてもかまいません。
そろそろ追い詰められてしまっているのでお時間のある方、よろしくお願いします。
0878デフォルトの名無しさん
2009/01/14(水) 11:17:27scanf()の %f を %lf にすればOK
0879デフォルトの名無しさん
2009/01/14(水) 13:11:59アホが
0880デフォルトの名無しさん
2009/01/14(水) 14:37:46[2] 問題文(含コード&リンク):http://a-draw.com/contents/uploader2/src/up3033.txt
[3] 環境
[3.1] OS:ぃぬ
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 明日まで
[5] その他の制限: リダイレクト入力を使用してもよい。
リダイレクト入力を使ったのですが、scanfがEOFを返すまで、というループ以下がうまく動いてくれません。
どこがよろしくないのでしょうか??
0881デフォルトの名無しさん
2009/01/14(水) 14:48:42#include <stdio.h>
#include <stdlib.h>
void printBinary(unsigned x){
int i;
for (i=sizeof(unsigned)*8-1; i>=0; i--) {
putchar((x>>i&0x1)+'0');
}putchar('\n');}
int main(void){
unsigned n,m;
printf("Input non-negative integer: ");
scanf("%d", &n);
m=n<<4;
printBinary(n);printBinary(m);
printf("%u / %u = %d\n", m, n, m/n);
m=(n<<2)+n;
printBinary(n);printBinary(m);
printf("%u / %u = %d\n", m, n, m/n);
m=n;n=m&0x0f;
printBinary(m);printBinary(n);
if ( !(m%16) )
printf("%u %% 16 = 0 \n", n);
else
printf("%u %% 16 != 0 \n", n);
return 0;}
0882デフォルトの名無しさん
2009/01/14(水) 14:48:43[2] 問題文(含コード&リンク):
http://uproda.2ch-library.com/src/lib091272.txt
3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: Microsoft Visual Basic 2005
[3.3] 言語:C
[4] 期限:なし
[5] その他の制限:なし
お願いします。
0883デフォルトの名無しさん
2009/01/14(水) 14:57:58> 言語:C
あほか
0884デフォルトの名無しさん
2009/01/14(水) 14:59:15int main(void){
unsigned n;
printf("Input non-negative integer: ");
scanf("%d", &n);
printf("%u / %u = 16\n", n<<4, n);
printf("%u / %u = 5\n", n<<2 + n, n);
printf("%u %% 16 != 0 \n", n);
return 0;
}
0885デフォルトの名無しさん
2009/01/14(水) 15:01:12お願いします。
0886デフォルトの名無しさん
2009/01/14(水) 15:06:040887デフォルトの名無しさん
2009/01/14(水) 15:30:49[1] 授業単元:ソフトウェア演習
[2] 問題文(含コード&リンク): 指定されたデータファイルから都道府県名を読み込み,連結リストに格納した後に,キーボードから入力した文字列を探索し,該当する文字列があれば表示(無ければ無い旨を表示)するプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:ECLIPSE?なんなのか少しわかりません・・・
[3.3] 言語: (C )
[4] 期限: 1月14日19時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
よろしくです テキストファイルでいいです
0888デフォルトの名無しさん
2009/01/14(水) 15:42:380889デフォルトの名無しさん
2009/01/14(水) 16:23:31[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8628.txt
[3] 環境
[3.1] OS:Windows XP
[3.2] コンパイラ名とバージョン:Microsoft Visual Studio.Net 2003
[3.3] 言語:C++
[4] 期限:2009年1月20日
[5] その他の制限:特になし
宜しくお願いします。
0890デフォルトの名無しさん
2009/01/14(水) 17:03:10[2] 問題文(含コード&リンク):
1.入力された2進数の正の小数の値を10進数に変換して出力を行うプログラム。
(なお小数は、上位4桁が整数、下位4桁が小数とする。例00111100なら3.75のように)
2.入力された2進数の整数を10進数に変換して出力を行うプログラム。
を作成せよ。
[3] 環境
[3.1] OS: Windows or Linux
[3.2] コンパイラ名とバージョン:bcc or gcc
[3.3] 言語: C言語
[4] 期限: 1月15日9時
[5] その他の制限:なし
よろしくお願いします
0891デフォルトの名無しさん
2009/01/14(水) 17:31:561.だけ
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 16
int main(void)
{
char b[N];
double x = 0.0;
int i;
fgets(b, N, stdin);
for (i = 0; i < 4; ++i) x += (b[i] - '0') / pow(2, 4 - i);
for (i = 4; i < 8; ++i) x += (b[i] - '0') * pow(2, 5 - i);
printf("%f\n", x);
return 0;
}
0892デフォルトの名無しさん
2009/01/14(水) 17:35:362.
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 16
int main(void)
{
char b[N];
int x = 0;
int i;
fgets(b, N, stdin);
for (i = 0; i < 8; ++i) x += (b[i] - '0') * (int)pow(2, 7 - i);
printf("%d\n", x);
return 0;
}
0893デフォルトの名無しさん
2009/01/14(水) 17:37:050894デフォルトの名無しさん
2009/01/14(水) 18:00:29ただ単にテキストファイルで資料とされています
0895デフォルトの名無しさん
2009/01/14(水) 18:08:07だからそのテキストだとしても、どういう形式で記述されているかって話なんだが?
0896デフォルトの名無しさん
2009/01/14(水) 18:08:331,2両用。エラー処理なし(文字数8、文字'0','1'以外は動作未保障)
NDECIMALSが小数点以下桁数。0で8ビット符号なし整数(i.e. 問2)
#include <stdio.h>
#define BITSIZE 8
#define NDECIMALS 4
int main(void)
{
char buf[16];
int n = 0, i;
fgets(buf, sizeof buf, stdin);
for(i = 0; i < BITSIZE; ++i) { n <<= 1; n |= buf[i] - '0'; }
printf("%f\n", (double)n / (1 << NDECIMALS));
return 0;
}
0897デフォルトの名無しさん
2009/01/14(水) 18:09:13 個人ID(int 型) 名前(半角英字のみ,29 文字以下) (注意)実装時には単方向連結リストを使用する
こと. ○必要機能 (1) データの一覧表示 (2) キーボードからのデータ追加 (3) 名前によるデータ検索 (4) 学生番号によるデータの整列(昇順) (5) ファイルからデータ入力 (6) ファイルへデータ出力
○画面設計
「(付録A)プログラム実行時画面」に従い,各画
面を設計せよ.
○○評価時プログラム動作確認手順
以下の手順でプログラムを実行する
(1) プログラムの起動 (2) 起動後に入力用データをファイルから 読み込む(3) データ一覧の表示 (4) 以下のデータをキーボードから入力
98765432 tamura 67542398 yoshida (5) データの一覧表示 (6) データの整列 (7) データの一覧表示 (8) 以下のデータを検索
shibuya
murata
(9) データの保存 (10)プログラムの終了
(11)プログラム終了後に,保存されたデータ の内容を確認
■ [3] 環境
[3.1] OS: windows [3.2] コンパイラ名とバージョン: ここがどのような質問なのかわかっていません…ECLIPSEであってますか?
[3.3] 言語:教科書はやさしく学べるC言語入門を使っています。
[4] 期限: 1月20日
[5] その他の制限: 単方向連結リスト
テキストファイルでいいです。しかしデータファイル”input.dat”があるので、そこの部分はどのようにすればいいか教えてください。。
この前にやってもらったんですが、プログラムが動きませんでした。
0898デフォルトの名無しさん
2009/01/14(水) 18:10:53こんな感じです
0899デフォルトの名無しさん
2009/01/14(水) 18:12:15[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8587.txt
これをベースにして、
階乗計算とべき乗ができるように改良してもらえないでしょう
か?
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C言語
[4] 期限: 2009年1月15日
[5] その他の制限:gcc標準ライブラリのみ使用可。
よろしくお願いします。
0900デフォルトの名無しさん
2009/01/14(水) 18:34:39<都道府県1><空白><都道府県2><空白>...<都道府県n><改行>
* データは1行で末尾に改行がある
* <都道府県i>はローマ字の都道府県名
* 都道府県間の区切りは空白1個 (タブや改行、2個以上のスペース等は認めない)
ということか?
0901デフォルトの名無しさん
2009/01/14(水) 18:47:33[2] 問題文(含コード&リンク):
http://www2.uploda.org/uporg1932832.txt
[3] 環境
[3.1] OS: windows
[3.3] 言語: C++言語
[4] 期限: 今日
お願いします
0902デフォルトの名無しさん
2009/01/14(水) 18:57:07どっちかはっきりして欲しいものです
0903デフォルトの名無しさん
2009/01/14(水) 19:00:42なんか・・・すまん・・
俺じゃよくわからなくて
0904デフォルトの名無しさん
2009/01/14(水) 19:04:06[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8630.txt
[3] 環境
[3.1] OS: windows
[3.3] 言語: C++
[4] 期限: 本日
よろしくお願いします
0905デフォルトの名無しさん
2009/01/14(水) 19:07:550906デフォルトの名無しさん
2009/01/14(水) 19:08:550907デフォルトの名無しさん
2009/01/14(水) 19:12:45都道府県は
kyoto
oosaka
などたてにすべての都道府県が書いてあります!
0908デフォルトの名無しさん
2009/01/14(水) 19:18:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8631.c
0909デフォルトの名無しさん
2009/01/14(水) 19:20:45配列の要素にアクセスする方法が分からなかったのかな。
x[0] + x[1] + … + x[9]
で合計が出るよ。
i は良くループカウンタとして使われるけど、今回はループなんて使う必要ない。
0910デフォルトの名無しさん
2009/01/14(水) 19:29:48[2] 問題文(含コード&リンク):
http://www2.uploda.org/uporg1932832.txt
[3] 環境
[3.1] OS: windows
[3.3] 言語: C++言語
[4] 期限: 今日
お願いします
0912デフォルトの名無しさん
2009/01/14(水) 19:51:08つ isdigit
0913デフォルトの名無しさん
2009/01/14(水) 19:55:41>>858
0914デフォルトの名無しさん
2009/01/14(水) 20:05:470915デフォルトの名無しさん
2009/01/14(水) 20:22:560916デフォルトの名無しさん
2009/01/14(水) 20:32:30[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8632.zip
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:明日
0917デフォルトの名無しさん
2009/01/14(水) 20:45:10#include<stdio.h>
int main(void)
{
int x[10]={10, 30, 50, 80, 20, 60, 100, 55, 15, 0};
int i,sum;
for(i=0;i<10;i++){
sum += x[i];
}
printf("sum=%d",sum);
0918デフォルトの名無しさん
2009/01/14(水) 20:46:06最後main()閉じ忘れてる、すまん
0919デフォルトの名無しさん
2009/01/14(水) 20:55:49#include <stdio.h>
int main(void)
{
int a, b, *p;
a = 10; // int型変数 a に「値」 10 を代入
p =& a; // 変数a の「アドレス」を (p or *p) に代入
b = *p; // (p or *p) が指し示すアドレスにおけるメモリ内の「値」を 変数bに代入
printf("aのデータ =%d\n", a);
printf("aのアドレス=%p\n", &a);
printf("(p or *p) のデータ =%d\n", *p);
printf("(p or *p) のアドレス=%p\n", &p);
printf("bのデータ =%d\n", b);
printf("bのアドレス=##\n", &b);
return (0);
}
0920デフォルトの名無しさん
2009/01/14(水) 20:57:19printf("bのアドレス=%p\n", &b);ね
0921デフォルトの名無しさん
2009/01/14(水) 21:02:29int term( void )
{
int value, v;
char op;
int i, tmp;
value = factor();
for(;;) {
op = token[0];
if( op == '!' ) {
for(i = 1, tmp = 1; i <= value; ++i) tmp *= i;
value = tmp; gettoken(); break;
}
if( !( op =='*' || op=='/' || op=='^' ) )
break;
if( !gettoken() )
break; /* ここで終ってはいけない */
v = factor();
switch( op ) {
case '*': value *= v; break;
case '/': value /= v; break;
case '^':
for(i = 0, tmp = 1; i < v; ++i) tmp *= value;
value = tmp; break;
}
}
return value;
}
0922デフォルトの名無しさん
2009/01/14(水) 21:10:57[2] 問題文(含コード&リンク): 8×8のチェスの盤面上に8個のクイーンを互いに取
られない位置に並べるプログラムを作成しなさい
クイーンは縦横斜めに好きなだけ進むことができる
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:来週の月曜日
よろしくお願いします。
0923デフォルトの名無しさん
2009/01/14(水) 21:12:42C++
0924デフォルトの名無しさん
2009/01/14(水) 21:17:14?
0925デフォルトの名無しさん
2009/01/14(水) 21:18:33sumを初期化してないよ?
#include<stdio.h>
int main(void)
{
int x[10]={10, 30, 50, 80, 20, 60, 100, 55, 15, 0};
int i,sum;
sum = 0;
for(i=0;i<10;i++){
sum += x[i];
}
printf("sum=%d",sum);
}
0926デフォルトの名無しさん
2009/01/14(水) 21:20:34> [3.3] 言語: C++
0927デフォルトの名無しさん
2009/01/14(水) 21:21:20> sumを初期化してないよ?
サムッ
0928デフォルトの名無しさん
2009/01/14(水) 21:28:29お前ダジャレの才能あるわw
腹かかえて笑った
ってレスすればいいのか
0929デフォルトの名無しさん
2009/01/14(水) 21:34:19[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8635.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VC2008
[3.3] 言語: C言語
[4] 期限:2009/1/24 まで
よろしくお願い致します。
0930デフォルトの名無しさん
2009/01/14(水) 21:37:56[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8633.txt
上がHDL記述、下が私の書いたテストベンチになっています。
上のHDLがシュミュレーション出来る様に、私のテストベンチに手を加えていただけないでしょうか?
任意に入力した値数個対して出力が確認出来る簡単なもので結構です。
verilogHDLを習ってまだ一ヶ月程度なので、根本的な書き方のミスがあるかと思います。
今週中にご教授いただけると助かります。どうか、よろしくお願い致します。
0931デフォルトの名無しさん
2009/01/14(水) 21:46:24#include <stdio.h>
void queen(int *board, int n)
{
int i, j;
static int cnt = 1;
if(n==8) {
printf("%d\n", cnt++);
for(i=0; i<8; i++) {
for(j=0; j<8; j++) putchar(board[i]==j ? 'Q' : '+');
putchar('\n');
}}
for(i=0; i<8; i++) {
board[n] = i;
for(j=1; j<=n; j++) if(board[n-j] == i + j || board[n-j] == i - j || board[n-j] == i) break;
if(j > n) queen(board, n + 1);
}}
int main(void)
{
int board[8];
queen(board, 0);
return 0;
}
0932デフォルトの名無しさん
2009/01/14(水) 21:46:35別にベリログの課題を手伝うとはどこにも書いてないし。
…ベリログのスレってあんのかね
0933デフォルトの名無しさん
2009/01/14(水) 21:48:01シュミュレーション -> シミュレーション
ご教授 -> ご教示
0934デフォルトの名無しさん
2009/01/14(水) 21:56:27[2] 問題文(含コード&リンク):
2進数正の小数を10進数に変換
2進数の整数(正と負両方)を10進数に変換
[3] 環境
[3.1] OS: Windows vista
[3.2] コンパイラ名とバージョン: bcc
[3.3] 言語: C
[4] 期限: 2009年1月15日 9時まで
[5] その他の制限: なるべく短く書けと問題文に書いてあります
よろしくおねがします
0935デフォルトの名無しさん
2009/01/14(水) 22:03:31直ぐ死ね
0936デフォルトの名無しさん
2009/01/14(水) 22:03:550937デフォルトの名無しさん
2009/01/14(水) 22:08:14わりと時間があったからやってみた。あんまりテストしてないけど、たぶん大丈夫。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8637.txt
必要単位数は知らないからできなかった。
そこくらいは自分でやってみたら?
0938デフォルトの名無しさん
2009/01/14(水) 22:17:59回答ありがとうございます。
助かりました。
0939デフォルトの名無しさん
2009/01/14(水) 22:34:48実行してみると行列matの積が所々-になってしまう。誰かボスケテ
0940デフォルトの名無しさん
2009/01/14(水) 22:40:43[2] 問題文(含コード&リンク):http://uproda.2ch-library.com/src/lib091407.txt
[3] 環境
[3.1] OS:WindowsVista
[3.2] コンパイラ名とバージョン: Visual Studio2008
[3.3] 言語: C++
[4] 期限: 1月16日まで
[5]その他の制限:特になし
よろしくお願いします。
0941デフォルトの名無しさん
2009/01/14(水) 22:47:30c[N][N] = {0};
0942デフォルトの名無しさん
2009/01/14(水) 22:49:55うん、今自力でも気づいた。ありがとう。なんか気持ちよかった。
0943デフォルトの名無しさん
2009/01/14(水) 22:52:380944デフォルトの名無しさん
2009/01/14(水) 22:54:58お前が一番余計。
0945デフォルトの名無しさん
2009/01/14(水) 22:57:20せっかく答えたのに、悔しいのぅ悔しいのぅ
0946デフォルトの名無しさん
2009/01/14(水) 22:59:29943は関係ない第三者
0947デフォルトの名無しさん
2009/01/14(水) 23:00:070948デフォルトの名無しさん
2009/01/14(水) 23:17:50[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8639.txt
3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン: visualc++2005
[3.3] 言語:C
[4] 期限:2009年1月15日午前8時
[5] その他の制限:できるだけ簡単な関数でお願いします
0949デフォルトの名無しさん
2009/01/14(水) 23:18:50IDが出ないから、自作自演で悔しいのぅ悔しいのぅ
0950デフォルトの名無しさん
2009/01/14(水) 23:22:33別に悔しくはないが、いつものキチガイに絡まれてるかと思うとうんざりする
0951デフォルトの名無しさん
2009/01/14(水) 23:23:51文字列 A に入力された文字列を、100文字丁度になるまで、
文字列 B に連結しなさい。
わかるかたお願い申し上げます。
0952デフォルトの名無しさん
2009/01/14(水) 23:27:22matを3乗したいんだけど
matrixmultiply(mat, mat, c);
matrixmultiply(c, mat, c);
じゃ駄目なんだがどう書くべき?
0953デフォルトの名無しさん
2009/01/14(水) 23:29:00[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8640.txt
[3.1] OS:WindowsXP
[3.3] 言語:C ++
[4] 期限:2009年1月15日
お願いします
0954デフォルトの名無しさん
2009/01/14(水) 23:29:33もう一個配列用意すれば?
0955デフォルトの名無しさん
2009/01/14(水) 23:29:360956デフォルトの名無しさん
2009/01/14(水) 23:30:13そう。本当に今気づいた。スレ汚しスマソ
0957デフォルトの名無しさん
2009/01/14(水) 23:31:03多分そういうのは電気電子板
0958デフォルトの名無しさん
2009/01/14(水) 23:35:19void add(char *a, char *b)
{
char *p;
int i;
for(i=0; *b; i++, b++);
for(p=a; i<100; i++,p++,b++) {
if(*p=='\0') p = a;
*b = *p;
}
}
0959デフォルトの名無しさん
2009/01/14(水) 23:38:22> いつものキチガイ
お前のことだろ、自己紹介すんなってw
0960デフォルトの名無しさん
2009/01/14(水) 23:41:060961デフォルトの名無しさん
2009/01/14(水) 23:42:10文字列処理関数
0962デフォルトの名無しさん
2009/01/14(水) 23:45:55どこにも標準のを使用しろとは書いてないし。
まあ、「文字列処理関数の演習問題」ってあれば<string.h>使えってことだとは思うが。
0963デフォルトの名無しさん
2009/01/14(水) 23:48:52配慮が足りん!!
0964デフォルトの名無しさん
2009/01/14(水) 23:56:33標準関数使ったほうが記述が簡潔になって、意味も明確なるんだし
void add(char *a, char *b)
{
int l, n;
l = strlen(a);
b[0] = '\0';
for(n = 100; n > 0; n -= l) strncat(b, a, n);
}
0965デフォルトの名無しさん
2009/01/15(木) 00:04:27http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8641.txt
0966デフォルトの名無しさん
2009/01/15(木) 00:05:14ありがとうございます。
これを項の評価にぶち込めばいいわけですねbグッ
0967デフォルトの名無しさん
2009/01/15(木) 00:08:59#include <stdio.h>
int main(void)
{
char a[] = {38, 58, 13, 15, 51, 27, 10, 19, 12, 86};
char t;
int i, s = 0;
for (i = 0; i < 5; ++i) { t = a[i]; a[i] = a[9 - i]; a[9 - i] = t; }
for (i = 0; i < 10; ++i) printf("%d ", a[i]); putchar('\n');
for (i = 0; i < 10; ++i) s += a[i];
printf("total: %d\naverage: %d\n", s, (int)(s / 10.0 + 0.5));
return 0;
}
0968デフォルトの名無しさん
2009/01/15(木) 00:25:02逆に連続している場合で12とするとどうなるんですか?
0969デフォルトの名無しさん
2009/01/15(木) 00:28:40どうなるも何も、数字が連続した場合はそのように扱うのか、
連続していても1文字ずつ扱うのか、どっちやねん?って話なんだが・・・
0970デフォルトの名無しさん
2009/01/15(木) 01:20:47[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8632.zip
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:明日
0971デフォルトの名無しさん
2009/01/15(木) 01:24:59もっと短く書けるだろうけど。
>2進数正の小数を10進数に変換
n,b=1;main(d,s){char*p=s;for(gets(s);*p;p++)*p-46?n=n*2+*p-48,d*=b:b++;printf("%g\n",1.*n/d);}
>2進数の整数(正と負両方)を10進数に変換
n;main(m,s){char*p=s;for(gets(s),m=1-(*p==45&&p++)*2;*p;)n=n*2+*p++-48;printf("%d\n",m*n);}
0972デフォルトの名無しさん
2009/01/15(木) 01:53:49[2] 問題文(含コード&リンク):
【問題文】http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8643.txt
【入力データ】http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8642.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月14日10:00まで
[5] その他の制限:
0973デフォルトの名無しさん
2009/01/15(木) 02:13:24ありがとうございます。
繰り返しになってしまうのですが、
正負の2進整数を10進数に変換をする際は、どのように改良すればよいですか?
よろしくお願いします。
0974デフォルトの名無しさん
2009/01/15(木) 02:16:400975デフォルトの名無しさん
2009/01/15(木) 02:24:38#include<stdio.h>
#include<stdlib.h>
typedef struct node_ { char name[100]; int age; struct node_ *next; } node;
void print(node *p) {
int n;
printf("No. Name Age\n-------------------------\n");
for (n = 1; p; n ++, p = p->next)
printf("(%2d)%12s%7d\n", n, p->name, p->age);
}
node *erase(node *p, int age) {
node *head, **ptail = &head;
for (; p; p = p->next) {
if (p->age != age) { *ptail = p; ptail = &(*ptail)->next; }
}
*ptail = NULL;
return head;
}
int main() {
node *head, **ptail;
char buf[100];
int age;
for (ptail = &head; fgets(buf, 100, stdin); ptail = &(*ptail)->next) {
*ptail = malloc(sizeof(node));
sscanf(buf, "%s %d", (*ptail)->name, &(*ptail)->age);
}
*ptail = NULL;
print(head);
printf("削除する年齢?"); scanf("%d", &age); head = erase(head, age); print(head); // 課題2の追加分
return 0;
}
0976デフォルトの名無しさん
2009/01/15(木) 06:09:30[2] 問題文(含コード&リンク):
RSAの実装なんだけど、できないのは32^816077みたいな桁数の大きなべき乗
[3] 環境
[3.1] OS:vista
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2008年1月15日16:00まで
[5] その他の制限:
0977デフォルトの名無しさん
2009/01/15(木) 06:30:5932^816077 → (2^5) ^ 816077
つまり 2 を左に5 * 816977 回ビットシフトした数
0978デフォルトの名無しさん
2009/01/15(木) 06:47:58[2] 問題文:アルファベットの小文字を大文字に変換しながらファイルをコピーするプログラムを作成する.
・コマンドラインには,「実行プログラム名」「コピー元ファイル名」「コピー先ファイル名」を入力してプログラムを実行し,これらを引数としてコピーを行う.
・コマンドラインへの入力が正しく行われているか(コピー元ファイルやコピー先ファイルも入力されているか)確認を行う.
・ファイルから読み取った文字が,小文字であるかを判断する必要があるので,ファイルから文字を「1文字ずつ」読み取って,
小文字であれば変換してコピー先に出力,
その他の場合はそのままコピー先に出力.
#include <stdio.h>
#include <stdlib.h>
int main(???????){
FILE *infp, *outfp;
int ch;
if ( ??????? ){
printf("There is no FILE NAME. \n");
exit(1); }
if ( ??????? ) {
printf("INPUT FILE OPEN error. \n");
} else {
if ( ??????? ) {
printf("OUTPUT FILE OPEN error. \n");
} else {
??????
fclose(???????); }
fclose(???????); }
return 0;}
[3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン:Visual C++ 2008 Express Edition
[3.3] 言語:C言語
[4] 期限:1月15日16時まで
[5] その他の制限:特に無いです。 どうかお願いします。
0979デフォルトの名無しさん
2009/01/15(木) 07:21:18ヘッダの追加はだめなのか
#include <ctype.h>
だめなら文字コードはASCIIということでよろしいのか
0980デフォルトの名無しさん
2009/01/15(木) 07:22:14数字が連続した場合はそのまま扱いたいです。
0981デフォルトの名無しさん
2009/01/15(木) 07:27:37#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]){
FILE *infp, *outfp;
int ch;
if ( argc < 3 ){
printf("There is no FILE NAME. \n");
exit(1); }
if ( (infp = fopen(argv[1], "r")) == NULL ) {
printf("INPUT FILE OPEN error. \n");
} else {
if ( (outfp = fopen(argv[2], "w")) == NULL ) {
printf("OUTPUT FILE OPEN error. \n");
} else {
while ((ch = fgetc(infp)) != EOF) {
if (ch >= 'a' && ch <= 'z') {
ch -= 32;
}
fputc(ch, outfp);
}
fclose(outfp);
}
fclose(infp);
}
return 0;
}
0982デフォルトの名無しさん
2009/01/15(木) 08:29:06なんかの数を法として、何乗したら1になるか求める関数を作ってみる
0983デフォルトの名無しさん
2009/01/15(木) 09:28:57[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8640.txt
[3.1] OS:WindowsXP
[3.3] 言語:C ++
[4] 期限:2009年1月15日
お願いします
0984デフォルトの名無しさん
2009/01/15(木) 09:54:07#include<stdio.h>
int hyoji(int x[]);
int main(void)
{
int x[10]={0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
return hyoji(x);
}
int hyoji(int x[])
{
int i;
for(i=0;i<10;i++)
printf("%d\n", x[i]);
return(0);
}
0985デフォルトの名無しさん
2009/01/15(木) 10:06:55[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8646.txt
[3.1] OS:WindowsXP
[3.3] 言語:C ++
[4] 期限:2009年1月15日
funkがよくわかりませんお願いします
0986デフォルトの名無しさん
2009/01/15(木) 10:14:04#include<stdio.h>
int func(int x, int y);
int main(void)
{
int x,y,z;
char dummy[40];
printf("x=");
dummy[0]=scanf("%d", &x);
if(dummy[0]!=1) return 1;
printf("y=");
dummy[39]=scanf("%d", &y);
if(dummy[39]!=1) return 2;
z=func(x, y);
printf("z=%d\n",z);
}
int func(int y, int x)
{
return 5*y+2*x;
}
0987デフォルトの名無しさん
2009/01/15(木) 11:43:22話は解るんだが、そんな数どうやって扱えばいいのかさっぱりなんだ。
>>982
よくわかんないので詳しく
最低限、
(32^816077) mod (1009*1013)
の答えだけでも教えてくれたら嬉しいです。
0988デフォルトの名無しさん
2009/01/15(木) 11:50:120989デフォルトの名無しさん
2009/01/15(木) 12:06:43ホレ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8647.txt
・PMX インスタンスの記述ミス(信号の区切り、セミコロンで終わってない)
・$stop は鬱陶しいので $finish に変更した
・vcd ファイルを吐く記述を追加(Linux でやったんで)
あってるかどうかは知らんが、何か動いてるぞ。
0990デフォルトの名無しさん
2009/01/15(木) 12:06:57あーそうすれば冪乗はシフトで何とかなるかも
その後の剰余を求めるときに上手い方法ある?
0991デフォルトの名無しさん
2009/01/15(木) 12:32:0532^816077 = 2^4080385 = 2^(32*127512+1) = 2 * 2^(32*127512)
じゃん?だから例えば
2 mod (1009*1013) -> A
(A << 32) mod (1009*1013) -> A
(A << 32) mod (1009*1013) -> A
・・・・・・・繰り返し・・・・・・
で求められるよ。何回繰り返すのかは考えてね。
0992デフォルトの名無しさん
2009/01/15(木) 12:35:59(32**816077) % (1009*1013)
=>2
0993デフォルトの名無しさん
2009/01/15(木) 12:45:190994デフォルトの名無しさん
2009/01/15(木) 13:28:03中国人の剰余定理について調べてみる
0995デフォルトの名無しさん
2009/01/15(木) 13:40:051009*1013*XのXを順に増やしていって32^816077を超える直前のXをYとすると
32^816077-1009*1013*Yでいいんじゃないの?
0996デフォルトの名無しさん
2009/01/15(木) 13:59:50logとれlog。
0997デフォルトの名無しさん
2009/01/15(木) 14:18:13それするくらいだったら
32^816077から1009*1013を繰り返し引いてった方が早くね。
0998デフォルトの名無しさん
2009/01/15(木) 14:30:430999デフォルトの名無しさん
2009/01/15(木) 14:49:33論より証拠、ソースで提示すりゃ良いだろ?実装できない奴が何をほざいても無駄
1000デフォルトの名無しさん
2009/01/15(木) 14:50:3110011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。