C/C++の宿題を片付けます 121代目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
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/
2デフォルトの名無しさん:2008/12/31(水) 15:00:12
janeの隠し機能

1.書き込みウィンドウを出し半角入力に切り替える
2.Wキーを押しっぱなしにする
3.Wキを押しっぱなしにしながらsageのチェックするところをおもむろにクリック
3デフォルトの名無しさん:2008/12/31(水) 15:03:11
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
4デフォルトの名無しさん:2008/12/31(水) 15:03:57
ひっかかった
5デフォルトの名無しさん:2008/12/31(水) 15:23:55
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
6デフォルトの名無しさん:2008/12/31(水) 15:58:20
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
7デフォルトの名無しさん:2008/12/31(水) 18:33:49
南蛮戦時だよまったく

wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
8デフォルトの名無しさん:2008/12/31(水) 18:38:19
wwwwwwwwwwwwwwwwwwwwwww
9デフォルトの名無しさん:2008/12/31(水) 22:20:15
やっぱ冬休みだから少ないのかね
10デフォルトの名無しさん:2009/01/01(木) 02:32:12
wの数が?
11デフォルトの名無しさん:2009/01/01(木) 02:41:43
Grass

wWWwwww
12デフォルトの名無しさん:2009/01/01(木) 03:49:57
[1] 授業単元: プログラミング演習2
[2] 問題文(含コード&リンク):
引数として、「char型のポインタ(a)、int型整数(b)、int型2048以下の整数(c)」を渡し、
関数内で、受け取ったポインタ(a)の指定された位置のビット(b)から、11ビットで指定された整数(c)を書き込む。
というプログラム(関数)を書くのですが、どうもうまくいきません。よろしくおねがいします。

例えば引数が「*a, 3, 5」だったときは、
*aの3ビット目から11ビットで5(0000 0000 101)を書き込む。という感じです。

説明下手ですいません。
[3] 環境
 [3.1] OS: WindowsXP home sp3
 [3.2] コンパイラ名とバージョン: VisualC++6.0
 [3.3] 言語: C
[4] 期限: 1月11日(できれば早いほうが助かります。)
[5] その他の制限: 特に無いです。
13デフォルトの名無しさん:2009/01/01(木) 03:58:39
この前
10進数を16進数に変換せよ
って課題に

cin >> a;
cout << hex << a;

で提出したら課題が増えた
14デフォルトの名無しさん:2009/01/01(木) 04:06:04
へーーっくすょん、なんか寒いな・・・
15デフォルトの名無しさん:2009/01/01(木) 05:25:25
>>12
void unko(char * a, int b, int c)
{
int mask, i;
assert(0 <= c && c <= 2048);
for (mask = 2048; !(mask & c); mask >>= 1);
for (i = b - 1; 0 <= i && mask; --i, mask >>= 1) {
*a |= (c & mask ? 1 : 0) << i;
}
}

こういうことでいいのか?
16 【小吉】 【1233円】 株価【45】 :2009/01/01(木) 09:13:40
>>15
いったい何ビットの整数を扱うつもりなんだw
まあ、元がcharだから1バイトしか使えないが

>>12
その説明ではどうとでも取れる
書き込み後のバイト列を具体的に書け

ポインタ(b)で指定されたアドレスのMSBが1ビット目としてビッグエンディアンか?
それとも、LSBを1ビット目としてリトルエンディアンか?
17デフォルトの名無しさん:2009/01/01(木) 09:40:00
>>16
そういう解釈もあるのか
何も考えずにシフト演算ならどっちでもいい気がしたんだが
18デフォルトの名無しさん:2009/01/01(木) 12:10:53
[1] 授業単元:実践プログラミング 8.2 競馬
[2] 問題文(含コード&リンク):
 (先生の配慮により問題が易しくなったようなのでもう一度)
 次の課題A,Bから一方を選び,そこに書かれている数値について,
  問(1) 100.0以上1000未満の数
  問(2) 1000以上10000未満の数
  問(3) 10000以上の数
 はそれぞれいくつあるか数え表示するプログラムを完成せよ.
  課題[A] JRAのホームページから左にある「競争成績」をクリックし,
      下部にある過去の競争成績(カレンダー)から5阪(12月7日阪神)をクリック,
      下のほうにスクロールすると11Rとあるがそこをクリックせずにその行の一番右にある
      「最終オッズ」をクリック,その後,「3連単オッズ」をクリック.そこに表示されるページの表について。URLを入力するなどして
      他のレースの数値についても同様にすぐに数値を数えられるプログラムにすること。(激難)
  課題[B] 課題[A]が難しいので,通常はこちらを解くとよい.次のテキストは課題[A]の数値の一部を
      コピー・アンド・ペーストしたものである.これを[Ctrl+C]でコピーし,scanfの入力において
      [Ctrl+V]で貼り付け,[Ctrl+D]を入力すると入力を終え,数え始めるようにせよ.他の数値を入力
      するときも,[Ctrl+D]を入力することで入力を終え,カウントできるように.
       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 パチンコ」を学習します. 、だそうです。
19デフォルトの名無しさん:2009/01/01(木) 12:33:19
>>18
回答を用意しているかどうか聞いとけ
20デフォルトの名無しさん:2009/01/01(木) 16:53:32
>>18
前スレで言われたことわかってないな
URL入力では絶対に不可能なんだよ
21デフォルトの名無しさん:2009/01/01(木) 17:29:10
>>18
#include <stdio.h>
int main()
{
double val;
int count[3] = {0};
while (scanf("%lf", &val) != -1) {
if (100.0 <= val && val < 1000) {
count[0]++;
} else if (1000 <= val && val < 10000) {
count[1]++;
} else if (10000 <= val) {
count[2]++;
}
}
printf("問(1) 100.0以上1000未満の数 : %d\n", count[0]);
printf("問(2) 1000以上10000未満の数 : %d\n", count[1]);
printf("問(3) 10000以上の数 : %d\n", count[2]);
return 0;
}

B
22デフォルトの名無しさん:2009/01/01(木) 18:00:58
>>20
HTMLとJAVASCRIPTの知識があればできるんじゃね?
23デフォルトの名無しさん:2009/01/01(木) 18:10:14
>>22
そうじゃなくて結果表示のページがPOSTリクエストの結果表示だから
URLだけじゃ不可能なんだよ
24デフォルトの名無しさん:2009/01/01(木) 18:16:33
doActionとかいうメソッドの第二引数に何を渡すのかを探るのが重要であって、URLはそれほど重要じゃないってことだろ
25デフォルトの名無しさん:2009/01/01(木) 18:22:30
>>23
確かに
26デフォルトの名無しさん:2009/01/01(木) 18:25:11
でもブラウザにそのままソースを貼り付けてやったらちゃんと動いたけどこれじゃだめなの?
C言語でPOSTするプログラムを書くとかはできないのかな?
27デフォルトの名無しさん:2009/01/01(木) 18:31:53
それリクエストの結果から動的に作成されたhtmlソース(AccessO)でしょ?
AccessOのURLだけを入手しても、リクエストの結果が埋め込まれてないから無意味。
28デフォルトの名無しさん:2009/01/01(木) 18:51:16
         *
        ***
       *****
      *******
     *********
    ***********
   *************
  ***************
 *****************
*******************

この三角形を出力するプログラムを教えてください。
forを使った場合とwhileを使った場合。
29デフォルトの名無しさん:2009/01/01(木) 18:54:24
>>26
そもそも cname を何処からか取得しなくてはいけないが、法則性が不明。
おそらく、競走成績のページ(accessS.html)から辿って行くしかない。
あと、おそらく宿題のフリした図抜けたバカのリクエスト。
30デフォルトの名無しさん:2009/01/01(木) 18:54:30
断る
31デフォルトの名無しさん:2009/01/01(木) 18:55:48
>>28 for の場合
#include <stdio.h>
int main()
{
int i, j, n;
n = 10;
for(i = 0; i < n; i++){
for(j = 0; j < n + i + 1; j++)
if(j <= n - (i + 1))
putchar(' ');
else
putchar('*');
putchar('\n');
}
return 0;
}
32デフォルトの名無しさん:2009/01/01(木) 20:56:38
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
33デフォルトの名無しさん:2009/01/01(木) 21:06:44
>>32>>34
何このアホ
34デフォルトの名無しさん:2009/01/01(木) 21:15:31
?
35デフォルトの名無しさん:2009/01/01(木) 21:17:54
forとwhileってどっちの方が
いいんですか?
36デフォルトの名無しさん:2009/01/01(木) 21:20:08
どっちでもいいよ
ループの境界条件に関して
一定の形式でまとめられるforの方が
可読性がいいのではないかという意見もあるけど

まぁどっちでも
37デフォルトの名無しさん:2009/01/01(木) 21:21:28
>>35
機械にとっては大差ないんじゃね?
forの方が決まりが多いから、その分、読み手に分かりやすく書けると思う。
38デフォルトの名無しさん:2009/01/01(木) 21:25:39
一般的にどちらの方が多く使われてるとか
ありますか?
39デフォルトの名無しさん:2009/01/01(木) 21:26:24
>>38
アンケートをとってきなさい
40デフォルトの名無しさん:2009/01/01(木) 22:35:12
>>31
解くコツとかあるんですか?
俺そんなすぐにはとけません・・
41デフォルトの名無しさん:2009/01/01(木) 22:43:40
>>40

絵に描いて考えればわかるんじゃない?
42デフォルトの名無しさん:2009/01/01(木) 22:45:14
>>41
えっ!?
43デフォルトの名無しさん:2009/01/01(木) 23:01:20
>>40
別解だが山を二つに区切っちゃおう というのがあるよ
頂点の*の右側を垂直に直線を下ろし、それを境界として考える

上からx行目の空白は10-x個、右側の*はx個、左側の*はx-1個

int i,j,k; // iは空白、jは右側の*、kは左側の*
int line; //行数をカウント

for(line = 1;line <= 10;line++) {
for(i = 10;i > line;i--) printf(" "); //まず空白 
for(j = 1;j <= line;j++)printf("*") //左側の個数の*を出力
for(k = 1;k <= line - 1;k++)printf("*") //右側の個数の*を出力  k <= line - 1 に注目
putchar('\n'); //改行
}

テストしてないけどまあ大丈夫じゃね?
44デフォルトの名無しさん:2009/01/01(木) 23:10:15
つセミコロン
45デフォルトの名無しさん:2009/01/01(木) 23:11:24
それやるんだったら
x行目の空白は10-x個、*は2x-1個でいいじゃん
何のために分割してんの?
46デフォルトの名無しさん:2009/01/01(木) 23:12:11
ついでに、空白の数をwhileの停止条件にすれば、
forとwhileの両方を満たせるなw
47デフォルトの名無しさん:2009/01/01(木) 23:23:57
まあひとつずつ書いていった結果じゃね?w
分割はちょいイミフだがw
48デフォルトの名無しさん:2009/01/02(金) 00:06:36
きっと>>43は宿題出した教授で
何人コピペしてくるか調べたいんだよw
49デフォルトの名無しさん:2009/01/02(金) 00:08:08
>>40
コツってわけじゃないけど、おれの場合こんな流れかな

問題を見つける(質問投稿から 106秒)
空白と*が左上から順に1つずつ表示される様子をイメージする(+20秒)
複数行にまたがる出力なので、そこでまず for ループ1個書く(+10秒)
1行の中でで処理を反復するのでそこでも for ループを1個書く(+10秒)
ループに必要な変数を記述(+20秒)
どういう条件で*が出るかを考えて(+20秒)
実際に書き下す(+10秒)
コンパイル(+3秒)
実行(+2秒)
頂点が1つ足りないので条件を修正(+10秒)
コンパイル(+3秒)
実行(+2秒)
*の右側にも空白を書いていたことに気づく(+15秒)
内側の for ループの条件を修正(+20秒)
コンパイル(+3秒)
実行(+2秒)
出力は問題なさそうだが、main の return 0; を忘れていたので加筆(+2秒)
コンパイル(+3秒)
実行(+2秒)
Janeの書き込みボタンを押してウィンドウを開く(+2秒)
一言書く(+4秒)
ソースを全選択してコピー(+1秒)
書き込みウィンドウにペースト(+1秒)
書き込み投下(+1秒)
50デフォルトの名無しさん:2009/01/02(金) 00:32:21
そして一生の後悔
51デフォルトの名無しさん: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);
}
52デフォルトの名無しさん:2009/01/02(金) 07:45:41
>>28
while使った場合
#include <stdio.h>
int main(void)
{
int i = 0, j;
while(j = 10 - i++) {
while(--j > 0) putchar(' ');
while(++j < i << 1) putchar('*');
putchar('\n');
}
return 0;
}
53デフォルトの名無しさん:2009/01/02(金) 08:59:25
while(j = 10 - i++)   (・∀・)
54デフォルトの名無しさん:2009/01/02(金) 09:26:18
55デフォルトの名無しさん:2009/01/02(金) 09:30:05
54 名前:デフォルトの名無しさん 投稿日:2009/01/02(金) 09:26:18
>>53
56デフォルトの名無しさん:2009/01/02(金) 09:31:23
while(j = 10 - i++)   while(j = 10 - i++)   while(j = 10 - i++)   
while(j = 10 - i++)   while(j = 10 - i++)   while(j = 10 - i++)   

今年一発目の・・・なぁ〜にぃ〜!?やっちまったな!
57デフォルトの名無しさん:2009/01/02(金) 09:31:49
>53-55が何を言いたいのか理解できない
58デフォルトの名無しさん:2009/01/02(金) 09:33:50
やべえ>>52程度が理解できないバカがいるとはw
59デフォルトの名無しさん:2009/01/02(金) 10:10:58
C言語の0以外ならばTRUEという仕様を利用しているんでしょ。
60デフォルトの名無しさん:2009/01/02(金) 10:18:03
=だけ見て脊髄反射したのか
61デフォルトの名無しさん:2009/01/02(金) 10:42:43
#include <stdio.h>

int main(void){
int i;
printf("%d\n", i = 10);
return 0;
}
62デフォルトの名無しさん:2009/01/02(金) 10:48:34
>>59=>>60
あの程度の不備が理解できないなら、プログラミングなんてやらない方が良いぞ、ド素人
63本当の馬鹿:2009/01/02(金) 10:50:08
58 名前:デフォルトの名無しさん 投稿日:2009/01/02(金) 09:33:50
やべえ>>52程度が理解できないバカがいるとはw

やべぇ、あのコードの不備が理解できない知ったか大馬鹿がいるとはw
人間、年を取ると自信過剰になって、指摘する人間に圧力をかければ
自分が正当化され、正しいことを言っていると勘違いするようだな。
まるで、あの集団のように。ただ、行き過ぎて、自分らが間違っていることに
選挙で負けて気づくと。
64デフォルトの名無しさん:2009/01/02(金) 10:55:57
>>52 は都合よくコンパイラが解釈して通すが、繰り返しの条件判定としては不適切。
指摘されて、気づかないくらい、自分が正しいと思い込んでいるんでしょうね。
逆に、指摘した側が知らないと思い込んでもいるようだし。
65デフォルトの名無しさん:2009/01/02(金) 10:57:40
>>64
何かと勘違いしてるんだろうけど、評価順は決まってるよ。
66デフォルトの名無しさん:2009/01/02(金) 11:08:20
インクリメントでコンパイラ依存になるのってどんな場合だったっけ?思い出せない
67デフォルトの名無しさん:2009/01/02(金) 11:11:37
>>58
知能が低い奴ほど罵倒発言を平気でする。自分が馬鹿だと言う事にも気づかず、
擁護してくれる人がいないからって、IDのない板で、自作自演で複数を装うやり方もするしな。
コンパイラが通すんだから良いんだろ?って考えだろ。while文の括弧の中は、
本来は条件式が入るんだが、それは代入だろ。例え括弧で代入式を括っても、
それに対して条件式にあう措置をとるべき。
まぁ、コンパイラ任せの未熟者がプログラミングに手を出す時代になったってことだな。
68デフォルトの名無しさん:2009/01/02(金) 11:16:06
>>67
だから代入したあとにその代入した値が評価値になるんだろ?>>61見ろよ。
69デフォルトの名無しさん:2009/01/02(金) 11:18:58
while(j = 10 - i++)   代入と条件判定式の区別がつかないゆとり?
70デフォルトの名無しさん:2009/01/02(金) 11:23:39
>>69
0以外がTRUEだから条件文は10でも100でも1000でも-1000でもいいの


#include <stdio.h>

int main(void){
int i;
if(i = 10) printf("Hello World!");
return 0;
}
71デフォルトの名無しさん:2009/01/02(金) 11:25:49
>>67
whileの括弧の中は条件式じゃなく、値だ。
そして代入演算子の値は代入後の変数の値。
なんかコンパイラが都合よく解釈してくれていると勘違いしているようだが、
>>52は完全にCの文法に合致してるぞ。
72デフォルトの名無しさん:2009/01/02(金) 11:30:19
if(A) を if(A > 0) と書いちゃう人だから相手にすんな
73デフォルトの名無しさん:2009/01/02(金) 11:30:40
それは自由だ。
74デフォルトの名無しさん:2009/01/02(金) 11:46:49
>>66
こんなか?
#include <stdio.h>
int main(){
int i=10;
i=10;
i=(i++);
printf("%d\n",i);
i=10;
i=(i++)+0;
printf("%d\n",i);
//
i=(i++)+100;
printf("%d\n",i);
i=10;
i=(i++)+(i++);
printf("%d\n",i);
//
i=10;
int j;
j=(i++)+100;
printf("%d\n",j);
i=10;
j=(i++)+(i++);
printf("%d\n",j);
return 0;
}
75デフォルトの名無しさん:2009/01/02(金) 11:51:14
相手を罵倒したり、必死に否定して間違っている自分を正当化する奴は、余計に信じられない。
不適切、適切の区別もつかないような奴がプログラミングをやると、最悪、予期できるのに
自らの不手際で考えられないバグを出すから困る。
76デフォルトの名無しさん:2009/01/02(金) 11:54:02
>>74
これもか?
#include <stdio.h>
int main(){
int i=10;
i=(++i);
printf("%d\n",i);
i=10;
i=(++i)+0;
printf("%d\n",i);
//
i=(++i)+100;
printf("%d\n",i);
i=10;
i=(++i)+(++i);
printf("%d\n",i);
//
i=10;
int j;
j=(++i)+100;
printf("%d\n",j);
i=10;
j=(++i)+(++i);
printf("%d\n",j);
return 0;
}
77デフォルトの名無しさん:2009/01/02(金) 11:55:08
>>75
世の中にバカがひとりも居ないなら兎も角、
全員が間抜けなのに、何を言っているんだ?
78デフォルトの名無しさん:2009/01/02(金) 11:59:40
なにやら喚いてる奴は
if( !( fp = fopen( 〜 ) ) )
とかも許せないんだろうか
79デフォルトの名無しさん:2009/01/02(金) 12:03:22
>>77
こんにちは、間抜け
80デフォルトの名無しさん:2009/01/02(金) 12:10:53
>>79
ディルバートの法則も読んだことが無いなんて・・・
81デフォルトの名無しさん:2009/01/02(金) 12:37:34
>>76
>i=(i++)+100;
の前にi=10;が抜けているな。
>>74
82デフォルトの名無しさん:2009/01/02(金) 12:38:15
>>80
ユークリッドの原論も読んだことがないようだな
83デフォルトの名無しさん:2009/01/02(金) 12:42:56
弱い犬ほどよく吠える とは言ったものだ。素人以下の基地外が、こんな時期に
寂しく過疎ってるスレで、IDが出ないからって自作自演で擁護してファビョってやがるぜ。
84デフォルトの名無しさん:2009/01/02(金) 14:20:40
麻呂の初暴れか
大喜びで揚げ足とったつもりで自分だけが間違うって、何度やっても学習しないな。
85デフォルトの名無しさん:2009/01/02(金) 14:57:10
>>67
条件判定式が返す「値」で判定するんであって、判定式が必須じゃないんだがw
よく無限ループで使われるwhile(1)についてはどう思ってるの?
86デフォルトの名無しさん:2009/01/02(金) 20:12:52
[1] 授業単元:プログラミング演習
[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] その他の制限:特にないです。
87デフォルトの名無しさん:2009/01/02(金) 20:38:19
8886:2009/01/02(金) 21:48:44
>>87
ありがとうございました。
89デフォルトの名無しさん:2009/01/03(土) 02:39:12
>>85
知ったか無知乙。whileの中が条件式ではなく、代入式なんだが?w
それから、条件式の真偽でif文にしろ判定していることくらい、周知のこと。
何を指摘されたか分からないなら、黙ってろ。

>>84=本物の馬鹿麻呂
自分で言ってて恥ずかしくない?お前にとって、指摘する奴=麻呂って何それ?w
90デフォルトの名無しさん:2009/01/03(土) 02:41:12
さらに、条件式でなくても、while(1)などで分かるように、そこに変数を用いて
その変数が0か否かで判定するやり方も知っているが、
>>52

while(j = 10 - i++) {

どーーーー考えても代入式です、ありがとうございますたwwwwwww
さてと、自信過剰知ったか無知は以後放置よろ。質問スレでも大ボケかましたよ。

識  別  子  (笑)
91デフォルトの名無しさん:2009/01/03(土) 02:42:53
眠いね
92デフォルトの名無しさん:2009/01/03(土) 02:44:02
a = b = 10;
93デフォルトの名無しさん:2009/01/03(土) 02:47:44
>>90
横槍ですまんが、>>52

int i = 0, j;
while(j = 10 - i++){

これって10回ループしたら抜けないの?
俺の知識がおかしいのか…
94デフォルトの名無しさん:2009/01/03(土) 02:50:12
while(*dst++=*src++);
この有名な文字列コピーの手法はどう見ても代入式ですw
95デフォルトの名無しさん:2009/01/03(土) 02:51:57
>>93
冬休みなだけだよ
96デフォルトの名無しさん:2009/01/03(土) 02:52:46
>>95
こいつは年中無休だからw
97デフォルトの名無しさん:2009/01/03(土) 02:54:03
>>93
jに代入される数が10から0まで減っていくから、問題なくループは終了するよ。
98デフォルトの名無しさん:2009/01/03(土) 02:54:10
[1] 授業単元:cプログラミング
[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] その他の制限:よろしくお願いします。
99デフォルトの名無しさん:2009/01/03(土) 02:54:53
明らかにこの辺と呼応してるし。同じヤツだろ。
普段いるやつじゃないよ。
http://pc11.2ch.net/test/read.cgi/tech/1229255937/503
100デフォルトの名無しさん:2009/01/03(土) 02:55:36
>>95 >>97
そっか
ありがとー
101デフォルトの名無しさん:2009/01/03(土) 02:57:01
52はwhileの中に代入式を書くという技巧を見せつけたかったってことでいいじゃないか。
規格上何ら問題なくコンパイルは通るのも事実だし、
それを初心者に見せびらかして自慢すべき事柄ではないのもその通り。
102デフォルトの名無しさん:2009/01/03(土) 03:01:17
>>99
最近この板に来た人?
こいつは何年もC系のスレでファビョりまくってるアホだから。
103デフォルトの名無しさん:2009/01/03(土) 03:09:51
俺は52なんだが、まさかこんなことになるとは思わなかった。
単に行数減らしたかったから()内で代入しただけなんだが。

>>92
まさかこの程度のことで技巧とか自慢とか言われるとは思わなかったw
104デフォルトの名無しさん:2009/01/03(土) 03:10:21
>>92ってなんだw
>>101の間違いね
105デフォルトの名無しさん:2009/01/03(土) 03:15:06
while(j = 10 - i++)

どう考えても、while文の中は代入式で、条件式ではありません。
コンパイラも、ここの部分に対しては警告を出しているし。
while文の使い方や説明を見直すことを、お勧めします。
何を指摘されたのか分からないなら、今すぐプログラミングなんて
お止めになった方が、今後の人生のためですよ。人間、適性なんて
やってみなければわからないものですからね。これ以上、自分の
適性に合わないプログラミングは、死ぬまでの人生を無駄にしますよw
106デフォルトの名無しさん:2009/01/03(土) 03:19:39
while()の括弧内が代入式でもCの規格として何の問題もありません。
代入式でなければいけないと主張するのならば、根拠を示してください。
107デフォルトの名無しさん:2009/01/03(土) 03:20:05
>>105
別にコンパイラが警告出したっていいんじゃない?
動くし。

FILE *fp;
if(!(fp = fopen("hoge.txt", "r"))) return 1;

みたいなのと一緒だと認識してる
違うんかな?
108デフォルトの名無しさん:2009/01/03(土) 03:22:17
while(j = 10 - i++)
jが0か否かで判定するのもありだが、これはどう考えても

代入式

だ罠。分からないなんて、どこのクズ講師だよ?
変な自身を持っているのも、迷惑だな、生徒が。
こんな奴にだけは、絶対に習いたくないね。
教える立場だから、間違っては困るにしろ、間違っていても
指摘した人間を陰湿に罵倒して正当化する性格になってしまったんだね。
生徒も低レベルなんだろうけど。
109デフォルトの名無しさん:2009/01/03(土) 03:22:56
代入式で警告出るのは==を=にするミスが多すぎたからじゃなかったっけ?
昔は出なかったから、定数を左に書くテクニックとかあったわけだし。
110デフォルトの名無しさん:2009/01/03(土) 03:23:40
>>108
>>94についてはどう思う?
111デフォルトの名無しさん:2009/01/03(土) 03:28:26
誰も j = 10 - i++ が代入式じゃないとは言ってないのに。
Cの規格として代入式でも全く問題ないって言ってるのが理解できないのか?
112デフォルトの名無しさん:2009/01/03(土) 03:31:08
いや・・・・どうみてもこいつは・・・・・
つられるなよお前ら・・・・・・・・・
113デフォルトの名無しさん:2009/01/03(土) 03:32:20
>>111
お前こそ、それが規格上問題ないということに誰も異論を述べていないことに気付け。
推奨される書き方ではないからやめろと言われ続けているだけだ。
114デフォルトの名無しさん:2009/01/03(土) 03:33:22
まぁ、議論(?)はそのくらいにして
みんなで>>98でもやろうぜ。

fgetsでchar型配列を使わないってなんだろ
ポインタ使えってことかな
115デフォルトの名無しさん:2009/01/03(土) 03:37:05
>>98
#include <stdio.h>
int main() {
int k, c, l, n, m=0;
for (k = 0; k < 3; k ++) {
for (n = l = 0; (c = getchar()) != '\n'; l ++) {
if (l == 0 && c == '-') {
printf("Error!!負の数\n");
return 1;
}
if (l < 8) {
if (c < '0' || c > '9') {
printf("Error!!数字文字以外の入力\n");
return 1;
}
n = n * 10 + c - '0';
}
}
if (l == 0) {
printf("Error!!改行のみの入力\n");
return 1;
}
m += n;
}
printf("合計は%d\n", m);
return 0;
}
116デフォルトの名無しさん:2009/01/03(土) 03:37:24
fgetcの間違いなんじゃね?
117デフォルトの名無しさん:2009/01/03(土) 03:41:17
代入式を使う場合のヒント
(FILENAMEはファイル名を示すものとする)

if( (fp=fopen(FILENAME , "r")) == NULL )
何かついているよね?fp=fopen() だけで、果たして通用するかにゃ〜? ( ^ω^)
fpの中身で条件判定するにしても、何かあるよにゃ〜♪
118デフォルトの名無しさん:2009/01/03(土) 03:43:10
真である事を条件にするならfp=fopen()で通用するだろ。
119デフォルトの名無しさん:2009/01/03(土) 03:51:46
真:0以外
偽:0
これが全てじゃね?
120デフォルトの名無しさん: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言語の基礎的な関数のみでお願いします。
121デフォルトの名無しさん:2009/01/03(土) 03:55:58
結局、文法上 while(式) のところを while(代入式) だと勘違いしていただけでしたとさ。
122デフォルトの名無しさん:2009/01/03(土) 03:57:06
違った、代入式じゃなくて条件式に訂正。
123デフォルトの名無しさん:2009/01/03(土) 04:10:14
そもそも、ifだのwhileだのforだの、C言語に限ったことじゃないから
プログラミングをお止めになった方がよろしいかと?思われているんだが。
124デフォルトの名無しさん:2009/01/03(土) 04:13:15
125デフォルトの名無しさん:2009/01/03(土) 04:13:56
!= == < > <= >=のことなら比較演算子、それを使った式は比較式というほうが正確だよ。
whileやifの中身の意味で条件という言葉の用法もあるから混同しないで。

>>123
大抵のよその言語はコンパイルエラーになるから親切だ。
126デフォルトの名無しさん:2009/01/03(土) 04:17:22
どこにC言語以外の話があったのかわからない
127デフォルトの名無しさん:2009/01/03(土) 04:20:35
123という書きこみ自体だけだな
128デフォルトの名無しさん:2009/01/03(土) 04:21:40
だからぁ、議論(?)は止めて>>120でもやろうぜ。

俺?
眠いからパス
129デフォルトの名無しさん:2009/01/03(土) 04:23:23
どこの講師か知らんが、まじウザッ。while文も適切に使えない、教えられないで
教師なんてやるなよw
130デフォルトの名無しさん:2009/01/03(土) 04:32:39
思い込みの激しい>>129に適切にwhileを教えることのできる教師なんていないだろうなw
131デフォルトの名無しさん:2009/01/03(土) 04:33:55
分かったからそういうスレでやれ
132デフォルトの名無しさん:2009/01/03(土) 04:58:14
これからは、このスレでは while(代入式) でも良いそうですよ?w
133デフォルトの名無しさん:2009/01/03(土) 07:35:14
ほっほっほ、麻呂の今朝の食事は、スパゲッティーミートクソースでおじゃるが、何でおじゃる?
麻呂は余計な口出しはしないでおじゃるよ。勝手に議論してたもう。
ただし、このスレのスレタイを読んで、スレ違いだと気づいて、それ相応のスレで
議論するでおじゃるよ。いつまでも譲らない二者で。第三者を巻き込まないでたもう。
134デフォルトの名無しさん:2009/01/03(土) 07:50:10
>>78
それは括弧がついているんだが?w
135デフォルトの名無しさん:2009/01/03(土) 07:53:13
>>134
代入式を真偽として扱うのがいやなわけじゃないんだな
136デフォルトの名無しさん:2009/01/03(土) 08:54:13
>>101
アホか
137デフォルトの名無しさん:2009/01/03(土) 08:59:23
みんな、落ち着けよ。
代入式が値を持つことを知らないCプログラマなんて、いるワケ無いだろ。
138デフォルトの名無しさん:2009/01/03(土) 09:26:55
今北産業
139デフォルトの名無しさん:2009/01/03(土) 10:14:52
>>134
OKOK、じゃあ
if( fp = fopen( 〜 ) ) printf("ファイルオープン成功\n");
にするよw
実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw
140デフォルトの名無しさん:2009/01/03(土) 10:25:58
j=10-i++ が代入式ではなく、条件式なんだってさー えーーーっ!?
141デフォルトの名無しさん:2009/01/03(土) 10:28:48
>>140
Cの条件式が論理演算子を必要としないのは最初に習うだろ。
142デフォルトの名無しさん:2009/01/03(土) 11:25:42
>>120
もっと他に情報ないの?
143デフォルトの名無しさん:2009/01/03(土) 11:35:30
>139
> 実用的なところだとassert( fp = fopen( 〜 ) )とかどうよw
そして NDEBUG を定義するとまともに動作しないプログラムができあがるわけだな。
assert 内で副作用のある式を評価しちゃ駄目。
144デフォルトの名無しさん:2009/01/03(土) 11:55:59
http://pc11.2ch.net/test/read.cgi/tech/1230516307/395-399
やっぱり気持ち悪がられてるw
145139:2009/01/03(土) 12:42:18
('A`)
たしかに、全然実用的じゃなかった
いつもは>>78だからなあ
146デフォルトの名無しさん:2009/01/03(土) 12:43:33
なんで「文法上問題ない」はスルーなんだよw
147デフォルトの名無しさん:2009/01/03(土) 14:08:39
>>137でFAなんだがな
みんなわかってるよな?
148デフォルトの名無しさん:2009/01/03(土) 14:10:42
暴れてるのがCプログラマじゃないとしたら?
149デフォルトの名無しさん:2009/01/03(土) 15:53:58
>>120
http://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ページをみると「真マニューシャ」に含まれない端点の基準とかが分からない。
150デフォルトの名無しさん:2009/01/03(土) 17:12:38
>>147
コンパイラの警告が見えない馬鹿ですね?w
151デフォルトの名無しさん:2009/01/03(土) 17:13:45
>>150
警告がどうしたんだ?
152デフォルトの名無しさん:2009/01/03(土) 17:17:39
つべこべ言ってないで
>>52を正しく直してみろ!!
153デフォルトの名無しさん:2009/01/03(土) 17:17:53
最近は似非プログラマーがC言語を扱っているノカー、時代は変わったもんだな。
while文すらまともに使えないなんて、終わってますね。進路を変えな、今すぐ。
その程度じゃ人生を失敗するぞ。
154デフォルトの名無しさん:2009/01/03(土) 17:22:06
>>152
正しいから、これ以上、直らないだろ。
155デフォルトの名無しさん:2009/01/03(土) 17:28:58
>>153
さすが人生失敗してる人が言うと説得力が違うw
156デフォルトの名無しさん:2009/01/03(土) 17:41:44
>>120
labelsetの処理はなんとかならんもんかね。

>>149
多分、>>120の講義では指紋照合についてプログラムを書くということをやってるっぽい(ググった)。
  ・指紋の線の端点だと確定できる点を真マニューシャ
  ・指紋の線の端点だと確定できない点を偽マニューシャ
と定義してるくさい。

指紋認証だと、スキャナに指を押し付ける力加減により、スキャンする指の画像が変わってくる。
画像の境界線上にできる点を偽マニューシャと呼びたいたいのではないかと思う。

そこで、問題の意図としては、「その境界線をどうやって判断するのか?」を解かせようとしてるのかも
(処理思いつかんが)。

つーか、ほとんど推理ゲーだな。
157156:2009/01/03(土) 17:56:33
>>149
すまん。
境界線ではなく、同じラベル中で距離が近い点を全部消してるのかも。
どの程度の距離かは不明だけど。
158デフォルトの名無しさん:2009/01/03(土) 21:57:05
>>157
稜線上の距離が基準だとすると、以下の二つの扱いが納得できない。
http://up2.viploader.net/pic3/src/vl2_090483.jpg
http://up2.viploader.net/pic3/src/vl2_090484.jpg

下の点は、本当に消えるべき点なのだろうか?
159デフォルトの名無しさん:2009/01/03(土) 23:08:03
実用とほとんど関係の薄い問題を解かせて何が楽しいんだろ。教授の自己満足か。
160デフォルトの名無しさん:2009/01/03(土) 23:10:21
>>159
技術ありき
実用にするかどうかはアイディア次第
161デフォルトの名無しさん:2009/01/03(土) 23:12:16
>>159
パターン認識の実用がどんなか知らないが、これは指紋の照合では基礎なのでは?
162157:2009/01/03(土) 23:39:52
>>158
申し訳ありません。
距離を基準とすると下の点は消えるべきではないですね。
取り下げさせていただきます。
163デフォルトの名無しさん:2009/01/04(日) 00:02:47
>>162
依頼にも「同じ隆線上で近接して出現 したマニューシャは」云々と書いてあるし、なにかしてるはずだけど・・・
pdfに載ってる処理結果を見ると、他にも何か処理をしていなくては、辻褄が合わない。
それこそ境界線上の端点の除外とか。

工夫を考えろと言うことなのかな。
164デフォルトの名無しさん:2009/01/04(日) 01:57:57
>>143
詳説もとめます。
165120: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に書いてあります。
丸投げでごめんなさい。
166デフォルトの名無しさん:2009/01/04(日) 02:05:11
訂正:http://www1.axfc.net/uploader/He/の He_177945.zip です。(pass:1)

何度も迷惑かけてすいません・・・

167デフォルトの名無しさん:2009/01/04(日) 02:12:06
>>164

 >>143ではないが、assert(expr)は、NDEBUGが#defineされているときにはexprが評価されない。
 実装によるが、たいていマクロだから副作用がある式を評価させてはならない。

 とりあえず、自分の環境のassert() (多分assert.hにでも書いてある)を読んでみるといいよ。
168デフォルトの名無しさん:2009/01/04(日) 02:48:09
>>166
学校のサイトはもう見つけた。>>149
169デフォルトの名無しさん:2009/01/04(日) 02:50:36
>167
一応補足。
C言語規格 9899:1999 7.2/1 によれば #include <assert.h> 時に NDEBUG が定義されている場合、assert は以下のように定義される。
#define assert(ignore) ((void)0)
ということで、expr 部分(上だと ignore だが)全体が消滅する。
# ちなみに 7.2/2 では関数じゃなくてマクロで実装しろと規定されている。

そもそも assert とはプログラムのバグ(ロジックエラー)を引っかけるものであって、実稼働中に発生するようなエラーに対処するものではない。
ということで例えば VC++ だと Release ビルドでは既定で NDEBUG が定義されたりする。
結果、assert 内に副作用のある式を記述してしまうと、Debug ビルドと Release ビルドで挙動が異なるコードを生み出してしまう。
170デフォルトの名無しさん:2009/01/04(日) 02:53:30
>169 != >167 で >169 では >164 に対する返答補足のつもり。
171デフォルトの名無しさん:2009/01/04(日) 03:07:44
HTMLテキストデータから数値(浮動小数点)のみを順に抽出して
いきたいのですが、どういう風にすればよろしいでしょうか?
ご教授ください。
172デフォルトの名無しさん:2009/01/04(日) 03:10:41
>>1
173デフォルトの名無しさん:2009/01/04(日) 03:10:42
>>171
HTMLテキストデータのサンプルくらい提示して欲しいもんだ
174デフォルトの名無しさん:2009/01/04(日) 03:26:16
>>171
後付で条件足すなよ!

#include<iostream>
#include<iterator>
#include<string>
#include<cstdlib>
#include<cctype>
int main(){
    std::string src;
    copy(std::istreambuf_iterator<char>(std::cin),std::istreambuf_iterator<char>(),back_inserter(src));
    for(const char*s=src.c_str();;){
        if(*s=='\0')break;
        if(std::isspace(*s))++s;
        char*next=const_cast<char*>(s);
        std::strtod(s,&next);
        if(s == next){++s;continue;}
        std::cout.write(s,next-s);
        std::cout << std::endl;
        s = next;
    }
}
175デフォルトの名無しさん:2009/01/04(日) 03:29:27
2箇所訂正
#include<algorithm>
が抜けているのでcctypeの下に追加

if(std::isspace(*s))++s;
が空白1つにしか対応できていないので
任意個数の空白に対応するためにcontinueするする
if(std::isspace(*s)){++s;continue;}
176デフォルトの名無しさん:2009/01/04(日) 04:54:08
[1] 授業単元:プログラミング
[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] その他の制限:特にはありません。よろしくお願いします。
177デフォルトの名無しさん:2009/01/04(日) 05:25:09
>>176
一応元のコードをベースにしたけどこんなんでおk?
#include <stdio.h>
#include <math.h>
int main(void)
{
    {   int i, n, Limit;
        n = 0x7FFFFFFF;
        for(;;--n){
            Limit=(int)sqrt(n);
            for (i=Limit;i>1;i--)
                if (n%i == 0)break;
            if (i==1)break;
        }
        printf("int型の最大の素数は%dです\n",n);
    }{  unsigned int i, n, Limit;
        n = 0xFFFFFFFF;
        for(;;--n){
            Limit=(unsigned int)sqrt(n);
            for (i=Limit;i>1;i--)
                if (n%i == 0)break;
            if (i==1)break;
        }
        printf("unsigned int型の最大の素数は%uです\n",n);
    }
    return 0;
}
178デフォルトの名無しさん:2009/01/04(日) 05:32:48
INT_MAXとかを使った方がいいと思う
179デフォルトの名無しさん:2009/01/04(日) 05:42:11
>>178
それを使うか悩んだんだけど、limits.hを授業でやったか分からない。
それとintのサイズが32bitであると問題文でわざわざ定義されている。

そんな感じで、今回はマジックナンバーを決めうちで実装した。
180デフォルトの名無しさん:2009/01/04(日) 06:24:02
麻呂のクソースではおじゃるね、まずそれぞれの変数に-1を入れてやんよ?
さすれば、何ビットだろうとその変数が扱える最大のFFFF・・・になるでおじゃるし。
え?邪道?それがクソースでおじゃっ!
181デフォルトの名無しさん:2009/01/04(日) 06:32:22
unsigned int uint=-1;
signed int sint=uint>>1;
printf("uint:%u \nsing:%d\n",uint,sint);

きんもぉ〜★なクソースでおじゃっ
182デフォルトの名無しさん:2009/01/04(日) 07:06:07
183デフォルトの名無しさん:2009/01/04(日) 07:36:40
[1] 授業単元:アルゴリズムの基礎および演習
[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] その他の制限:特にありません。
よろしくお願いします。
184デフォルトの名無しさん:2009/01/04(日) 09:47:19
丸投げキター!
1段1次のRunge-Kuttaと称してEuler法で解いてやりたい
185176:2009/01/04(日) 10:19:18
>>177
>>182
ありがとうございます。
助かりました。
186デフォルトの名無しさん:2009/01/04(日) 11:52:08
>>120
(2)だけ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8519.txt

(1)は、結局、求められているものが分からない。

ろだからファイル消してるくらいだから、もう此処見てないかも知れないけど・・・
187C初心者:2009/01/04(日) 12:12:38
1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):ポインタを用いた二分探索木の作成
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:データはファイルから読み込むものとしています。
他のスレでも質問させてもらったのですがどうしてもわからないので、ここで質問させて頂きます。
宿題ではあったのですが、もう期限は過ぎています。
ただどうしても知りたいのでどなたかお願いします。あとオススメの参考書等教えていただけると嬉しいです。
188デフォルトの名無しさん:2009/01/04(日) 12:31:13
>>187
http://oku.edu.mie-u.ac.jp/~okumura/algo/
>『C言語による最新アルゴリズム事典』
189C初心者:2009/01/04(日) 17:37:39
>>188
ありがとうございます。 早速注文しました。
プログラムはわかりませんか??
190デフォルトの名無しさん:2009/01/04(日) 17:40:01
>>189
今すぐ買って来いバカ
191おねがいしますw:2009/01/04(日) 17:44:13
[1] 授業単元: アルゴリズムデータ構造U
[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までに願いします] )
192デフォルトの名無しさん:2009/01/04(日) 21:57:00
>>191
元からバグってるとかねーだろ。
193デフォルトの名無しさん:2009/01/04(日) 22:15:05
そんなこと無いよ。deleteに小さい値渡すとsegfaultになるとか絶対ないよ
194デフォルトの名無しさん:2009/01/04(日) 22:22:56
そんなこと無いよ。insertに先頭と同じ値を渡してもリストは壊れるとか絶対ないよ
195デフォルトの名無しさん:2009/01/04(日) 22:32:06
見辛いし、全部作り変えたほうがいいじゃんwww
196デフォルトの名無しさん:2009/01/05(月) 00:10:56
>>189
リンク先のtree.cってソースがそれだろ?
197デフォルトの名無しさん:2009/01/05(月) 00:20:19
[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
 文字データの入力と出力 Visual Studioを用いてConsoleApplicationを作成せよ。
 以下の条件を満たすものを作成する事。
 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
 登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C
[4] 期限: 1月5日6時まで
[5] その他の制限: 構造体習い始めた程度の能力
198デフォルトの名無しさん:2009/01/05(月) 00:52:18
[1]授業単元:C言語
[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]特になし。
199197 ◆brUNnJvSqY :2009/01/05(月) 01:10:31
>>197
訂正

[1] 授業単元:プログラム
[2] 問題文(含コード&リンク):
 【文字データの入力と出力】
 Visual Studioを用いてConsoleApplicationを作成せよ。
 以下の条件を満たすものを作成する事。
 最大登録数10名の名前と年齢を入力し入力完了後に一覧をコンソールに出力させる事。
 登録数は任意に決定出来、10名を超えた場合は再入力させる事。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: visualC++2005
 [3.3] 言語:C
[4] 期限: 2009年1月5日6時まで
[5] その他の制限: 構造体を習い始めた程度の能力
200デフォルトの名無しさん:2009/01/05(月) 01:15:44
>>198
#include <stdio.h>
int main()
{
printf("sum { 1, 3, ... , 99 } = %d\n", 50 * (1 + 99) / 2);
printf("sum { 2, 4, ... , 100 } = %d\n", 50 * (2 + 100) / 2);
return 0;
}
201デフォルトの名無しさん:2009/01/05(月) 01:53:41
>>199
/* ちょっと気持ち悪く書いてみたよ */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ENTER_MAX 10
#define NAME_LEN 256
#define AGE_LEN 4
#define BUFF_SIZE (NAME_LEN + AGE_LEN + 1)
int main(void)
{
char table[ENTER_MAX][BUFF_SIZE];
char buff[BUFF_SIZE];
int n;
int i;
do {
printf("登録数 (1 から %d) >> ", ENTER_MAX);
} while ((n = atoi(fgets(buff, BUFF_SIZE, stdin))) > ENTER_MAX);

for (i = 0; i < n; ++i) {
int len;
printf("名前 >> "); fgets(table[i], NAME_LEN, stdin);
len = strlen(table[i]);
printf("年齢 >> "); fgets(&table[i][len + 1], AGE_LEN, stdin);
table[i][len - 1] = ','; table[i][len] = ' ';
}
for (i = 0; i < n; ++i) printf("%s", table[i]);

return 0;
}
202デフォルトの名無しさん:2009/01/05(月) 02:09:03
>>186

親切な解答、ありがとうございました。1はまた考えてみます。

失礼しました。
203197 ◆brUNnJvSqY :2009/01/05(月) 02:12:10
>>201
ありがとうございます。

fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
という、エラーが出てしまいます。回避法はありますでしょうか?

出来れば、初心者に毛が生えた程度のプログラムで作っていただけると有りがたいです。
204デフォルトの名無しさん:2009/01/05(月) 02:13:16
>>203
#include <stdafx.h> をソースの頭に書け
あと氏ね
205デフォルトの名無しさん: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] その他の制限: よろしくお願いします
206デフォルトの名無しさん:2009/01/05(月) 02:47:14
>>205
/* 意味が良くわからないけどこういうことかな */
#include <stdio.h>
#define N 1024
const char const *str
= "#include <stdio.h>\n\nint main() {\nint k, c, n, i;int l;int m = 0;\n\
\tfor (k = 0; k < 3; k ++) {\n\t\tfor (n = l = 0;\n\t\t\
(c = getchar()) != '\\n';l++) {\n\t\t\tif (l == 0 && c == '-') {\n\t\t\tprintf(\"Error!!負の数\\n\");\
\n\t\treturn 1;\n\t}\n\tif (l < 8) {\n\t\tif (c < '0' || c > '9') {\n\
\t\tprintf(\"Error!!数字文字以外の入力\\n\");\n\treturn 1;\n}\n\
\tn = n * 10 + c - '0';\n\t}\n}\n\tif (l == 0) {\n\tprintf\
(\"Error!!改行のみの入力\\n\");\nreturn 1;\n}\n\tm += n;\n\t}\n\
\tprintf(\"合計は%d\\n\", m);\nreturn 0;\n}\n";
int main(void)
{
int x[N], i;
for (i = 0; str[i]; ++i) x[i] = str[i];
return 0;
}
207デフォルトの名無しさん:2009/01/05(月) 03:23:15
ちょ、そのクワイン的発想は何w
208デフォルトの名無しさん:2009/01/05(月) 03:36:17
字義通りだと、こうだろ?
むしろ、他の解釈を聞かせて欲しい。
209デフォルトの名無しさん:2009/01/05(月) 03:42:07
ビルド済みのバイナリかソースのどちらかだろうとは考えた
210C初心者:2009/01/05(月) 11:00:16
>>196
すいません、リンク先に行けなくて見れてないです。
211デフォルトの名無しさん:2009/01/05(月) 12:52:12
[1] 授業単元: c
[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] その他の制限: よろしくです
212デフォルトの名無しさん:2009/01/05(月) 13:00:26
>>211
何周目だよ。死ねよ。
213デフォルトの名無しさん:2009/01/05(月) 13:16:18
>>1
> 気に入らない質問やその他や発言はスルーの方向で。
も読めない基地外って何?別にお前個人を指定、特定して答えろなんて
誰も言って無いし、答えられない低レベル役立たずのクズになんて頼んでもいないだろ。
214デフォルトの名無しさん:2009/01/05(月) 13:21:06
スレタイも読めないようだな。ここで丸投げの宿題が書き込まれるのは
分かりきっていることなのに、自分が気に入らないとファビョって
訳も分からないクレームをつける奴って何?そんなんだから
一生、成功しないままこの世を去るんだろ?w
そういうのって簡単に言うと「負け組み、社会の底辺」って言うんだぜ?
ほれ、お前と同じ世代、同じ学校に通っていたけど自分が見下していたあいつ、
今何をしてる?少なくともお前以上の出世はしただろうねw
お前はいつまでも、こんなスレで引きこもりながら陰湿なレスをし続けるだけ。
人生終わってら。
215デフォルトの名無しさん:2009/01/05(月) 13:44:35
>>211
/* たぶん大丈夫だと思う */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define L 3
#define N 8
#define M (N * sizeof(int))
int main(void)
{
int *x[L], total = 0, i;
for (i = 0; i < L; ++i) {
int n;
x[i] = (int *)malloc(M);
printf(" input number >> ");
if ((n = atoi(fgets((char *)(x[i]), M, stdin))) > (int)pow(10, N))
printf("%d\n", n %= (int)(pow(10, N)));
if (n < 0 || (n == 0 && x[i][0] != '0')) {
fprintf(stderr, "Error!\n"); return 1;
}
total += n;
}
printf("answer = %d\n", total);
return 0;
}
216デフォルトの名無しさん:2009/01/05(月) 13:45:57
下から9行目の
printf("%d\n", n %= (int)(pow(10, N)));

n %= (int)(pow(10, N));
に直して。
217デフォルトの名無しさん:2009/01/05(月) 14:17:06
>>211
#include <stdio.h>

int input() {
  char c;int a = 0;int cnt = 0;

  while(1) {
    c = getchar();
    if(c == '\n') break;
    if('0'<=c && c<='9') a = a*10 + c-'0'; else cnt=9;
    cnt++;
  }

  if(cnt==0 || cnt>=9) return -1; else return a;
}

//
int main(void) {
  int a[3],i;
  printf("8桁までの整数を3つ入力してね\n");
  for(i=0;i<3;i++) {
    a[i] = input();
    if(a[i]<0) {
      fprintf(stderr,"Error : 8桁までの整数を入力してくださいませ\n");
      return -1;
    }
  }

  printf("合計 %d + %d + %d = %d\n",a[0],a[1],a[2],a[0]+a[1]+a[2]);
  return 0;
}
218デフォルトの名無しさん:2009/01/05(月) 14:19:49
[1] 授業単元:プログラミング
[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

よろしくお願いします。
219デフォルトの名無しさん:2009/01/05(月) 14:29:53
[1] 文字列の格納、比較
[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 関数を使用すること。
220デフォルトの名無しさん:2009/01/05(月) 14:33:13
221デフォルトの名無しさん:2009/01/05(月) 17:03:15
>>219
しね
222デフォルトの名無しさん:2009/01/05(月) 18:22:05
223デフォルトの名無しさん:2009/01/05(月) 19:26:03
>>211
もう前スレで解答してあるはずだが
224218:2009/01/05(月) 20:03:05
>>222
自分のミスで問題に一部書き忘れをしてしまいましたが、ここまでしていただければ十分です
ありがとうございました
225デフォルトの名無しさん:2009/01/05(月) 22:33:58
[1] 授業単元: 計算機工学
[2] 問題文(含コード&リンク): 下記
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2009年01月15日19:00まで
[5] その他の制限: なし

■問題

指定した部品数で建てられる家の最大面積を求めるプログラムを作成して下さい。
窓、ドア、壁の3タイプの部品があり、部品の長さは2m。
次のルールを満たさなくてはいけません。
1)1面にはドアは1つまで
2)家には少なくとも1つのドアが必要
3)ドアの両脇は壁部品でなくてはならない
4)窓の両脇は壁部品でなくてはならない
5)家は四角型
6)部品はそれぞれ50個が上限

int MaxArea(int NumWall,int NumWin,int NumDoor)
このように各部品の数を指定し、面積を返す関数を作ってください。

例)
MaxArea(8,0,1) = 12
---
| |
-D-
226デフォルトの名無しさん:2009/01/05(月) 23:14:44
文字型配列を、"OKINAWA"を初期値として宣言し、文字列を
反転させて、"AWANIKO"と出力するプログラムを作りなさい。
227デフォルトの名無しさん:2009/01/05(月) 23:25:18
>>226
char str[]="OKINAWA"; reverse(str); printf("%s",str);
228226:2009/01/05(月) 23:32:05
自己解決しました。
229デフォルトの名無しさん:2009/01/05(月) 23:35:47
>>226
for使っての解き方誰かわかりますか?
230デフォルトの名無しさん:2009/01/05(月) 23:38:45
>>225
Google Code Jam 2004のHousePartyってヤツだな。
231デフォルトの名無しさん:2009/01/05(月) 23:44:51
>>229
reverse(char *str) {
  int i; for(i=0; i<len(str)/2; i++) { char c=str[i]; str[i]=str[len(str)-i-1]; str[len(str)-i-1]=c;}
}
232デフォルトの名無しさん:2009/01/05(月) 23:48:51
[1]授業単元:C言語
[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]特になし。
233デフォルトの名無しさん:2009/01/06(火) 00:16:37
>>232
for(int i=0; i <= 100 ; i++ )if( i * ( i + 1 ) / 2 >= N ) { printf("%d\n",i); break;}
while( i * ( i + 1 ) / 2 < N ) { i++; }
234デフォルトの名無しさん:2009/01/06(火) 00:17:14
whileの方の初期化忘れたw
235デフォルトの名無しさん:2009/01/06(火) 00:18:23
>>232
#include<stdio.h>
int main() {
int i=0, n;
scanf("%d", &n);
while ((n-=++i)>0) /* または for(;(n-=++i)>0;) */
if (i==100) {printf("100まで加算してもだめだった\n"); return 0;}
printf("%dまで加算すればおk\n", i);
return 0;
}
236デフォルトの名無しさん:2009/01/06(火) 00:19:31
>>232
int func_for(int n) {
  int i;for(i=1;i<=100;i++) if(i*i+i >= 2*n) return i; return -1;
}
int func_while(int n) {
  int i=0; while(++i<=100) if(i*i+i >= 2*n) return i; return -1;
}
main() {
  int i,ans;scanf("%d",&i);ans = func_for(i);if(ans>=0) printf("answer = %d\n",ans); else printf("not found\n");
}
237デフォルトの名無しさん:2009/01/06(火) 01:09:51
>>225
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8532.txt
一応、例題の計算結果には合致するようだが、理屈は分からん。
238デフォルトの名無しさん:2009/01/06(火) 01:11:59
[1] 授業単元:プログラミング
[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] その他の制限:特にありません。

よろしくお願いします。
239デフォルトの名無しさん:2009/01/06(火) 02:18:23
[1]プログラミング
[2]int 型(符号つき32 ビット整数)および、unsigned int 型(符号なし32 ビット整数)のそれぞれの最大の素数を求めよ。
[3]環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名bcc
 [3.3] 言語:C言語
[4]特になしですが早めで。
[5]制限:エラトステネスを用いずに素数を求める。
どうか、よろしくお願いします。
240デフォルトの名無しさん:2009/01/06(火) 03:38:59
>>239
>>177あたりでどう?
241デフォルトの名無しさん:2009/01/06(火) 04:40:34
>>240
みのがしてました。ありがとうございますです。
242デフォルトの名無しさん:2009/01/06(火) 08:19:55
スイマセン、どなたか>>200
(99+1)/2
の処理の意図を教えて頂けないでしょうか・・後から質問でスイマセン。
243デフォルトの名無しさん:2009/01/06(火) 08:32:30
>>242
等差数列の和=項数*(初項+末項)/2
244デフォルトの名無しさん:2009/01/06(火) 08:44:07
>>239 >>182 辺りが良いでおじゃるよ?
245デフォルトの名無しさん:2009/01/06(火) 09:03:46
246デフォルトの名無しさん:2009/01/06(火) 10:03:14
247デフォルトの名無しさん:2009/01/06(火) 12:31:15
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):氏名と年齢を扱うプログラムを作りたい。これらのデータはリスト構造を用いて管理したいので、
1.リスト構造の要素となる構造体の型宣言を行え
2.上記構造体によって構築されたリスト構造の適切な箇所に新しい要素を追加する関数を作成せよ

なお、以下の点も守ること
・リスト構造は単方向リストとすること
・リスト構造のデータは年齢順に並ぶようにすること
・リスト構造はポインタ変数rootから始まるようにすること
・関数は新しい要素を受け取って、それをリスト構造に追加する形式にすること
・変数rootはグローバル変数とし、関数に渡さなくてもよい


[3] 環境
 [3.1] OS:windows XP
 [3.2] コンパイラ名とバージョン:visualC++2005
 [3.3] 言語:C/C++
[4] 期限:1月7日12:00まで
[5] その他の制限:特になし

よろしくお願いします。
248デフォルトの名無しさん:2009/01/06(火) 12:38:29
麻呂のクソースを改変するでおじゃるよ
249デフォルトの名無しさん:2009/01/06(火) 15:05:44
[1] 授業単元:C言語プログラミング
[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は禁止。

それではよろしくお願いします。
250デフォルトの名無しさん:2009/01/06(火) 15:08:14
>strは禁止。
str〜系関数のこと?
最初std::stringかと思ったが・・・
251デフォルトの名無しさん:2009/01/06(火) 16:35:41
[1] 授業単元:プログラミング
[2] 問題文
Step 1. float型配列の先頭アドレスを受け取り,その配列内から最大の値を探して,
それを関数値として戻す関数 float max(float data[], int n) を定義せよ.ここで,nは配列data[]に入っている有効なデータの数(有効な配列要素は,0〜n-1)である.
またデータに負の値はないものとする.

Step 2. main()関数内で,要素数100程度のfloat型配列を宣言し,課題11-2で作成したデータ入力関数のinput()関数を再利用してデータを配列に入力するようにプログラムする.
次に,Step1で作成した関数をmain()関数内呼び出して最大値を表示せよ.

[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:VC2008
 [3.3] 言語:C++
[4] 期限:2009/1/8 23:00まで
[5] その他の制限 特になし

よろしくお願いします

252デフォルトの名無しさん:2009/01/06(火) 17:01:44
>>251
問題文も読まずに丸投げとは・・・
253デフォルトの名無しさん:2009/01/06(火) 17:08:38
まだスレタイも読めない奴がいるのか
254デフォルトの名無しさん:2009/01/06(火) 17:12:52
[1] 授業単元:プログラミング演習U
[2] 問題文:
以下の仕様で収支残高管理プログラムを作成せよ.ただし,残高処理の関数を独自で定義すること.
その際,ファイルポインタについてはグローバル変数として宣言しても良い.
初期状態を除いてプログラム実行時に既存の残高額のファイル(balance.txt)を読み込む.
ファイルが存在する場合に限り,balance.txt)を読み込む処理をすれば良い.
各処理を選択するメニュー画面を残高額とともに表示する.可能であれば,残高は桁区切りカンマを用いて表示すること.
終了時にその時点の残高額をファイル(balance.txt)に書き込む.
ヒント:最初にbalance.txtを読み込みモードで開いて読み込んだ後は,即座にファイルを閉じ,最後の書き込み時に,改めて書き込みモードで開いて同名のファイルに書き込みをすれば良い.
また,ファイルからの金額の読み込みにはfscanfを,書き込みにはfprintfを使用すると良い.
255254:2009/01/06(火) 17:15:48
>>254続き

[実行例]
***** 収支残高管理 *****

残高は \0 です.

[1] 収入
[2] 支出
[99] 終了

処理を選択してください:1

収入金額:12345


***** 収支残高管理 *****

残高は \12,345 です.

[1] 収入
[2] 支出
[99] 終了
256254:2009/01/06(火) 17:16:27
>>255続き

処理を選択してください:2

支出金額:20000


***** 収支残高管理 *****

残高は \-7,655 (赤字)です.

[1] 収入
[2] 支出
[99] 終了

処理を選択してください:99
終了します.

[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio.Net 2003
 [3.3] 言語:C++
[4] 期限:2009年1月8日
[5] その他の制限:特になし

よろしくお願いします。
257デフォルトの名無しさん:2009/01/06(火) 17:21:54
258デフォルトの名無しさん:2009/01/06(火) 17:38:13
>>251
#include<iostream>
#include<algorithm>

float max(float data[], int n){
if(n<=0) return -1.0;
return *std::max_element(data, data+n);
}

int input(float data[], int data_num_max){
int data_num;
for(data_num=0;data_num<data_num_max;){
float value;
if(!(std::cin >> value)) break;
data[data_num++]=value;
}
return data_num;
}

int main(void){
float data[100];
int data_num, data_num_max=sizeof(data)/sizeof(data[0]);

data_num=input(data, data_num_max);
std::cout << max(data, data_num) << std::endl;

return 0;
}
259デフォルトの名無しさん:2009/01/06(火) 18:26:57
[1] 授業単元: プログラミング入門演習
[2] 問題文(含コード&リンク):
 複数の整数のうち、指定した数で割り切れる整数の個数を求めるプログラムを作成せよ。
 入力に関して
  キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する。
  次に指した数の整数をスペース1つずつ開けて1行で入力し、改行する。
  最後に1つ整数を入力し、改行する。この最後に入力した値で割り切れるかどうか
  判定する。この一連の入力時,例題や解答例のような入力を保す文字等は決して表示
  しないこと。
 出力に関して
  割り切れる整数の個数を数値のみ(+改行)を出力する。指定した数値・改行以外の
  文字等の出力は一切行わないこと。
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン:Visual Stdio 2008
 [3.3] 言語:C言語
[4] 期限: 1/8 12:00
[5] その他の制限:C言語の基礎を習っています。

よろしくお願いします
260デフォルトの名無しさん:2009/01/06(火) 19:07:31
>>250
説明不足でごめんなさい
strlen関数のことです

#include <stdio.h>

void main(){

char moji[100];
int i=0,x;

printf("文字列を入力:");
gets(moji);
printf("\n\n");
while(moji[i] != '\0'){
i;
i++;
}
x=i+1;
printf("文字列の長さ=%d",x);
printf("\n\n");
}

という求め方を習ったのですが、strlen関数は習っていないので・・・
261デフォルトの名無しさん:2009/01/06(火) 19:38:19
>>260
C++?
262デフォルトの名無しさん:2009/01/06(火) 19:46:33
>>243
>>246
ありがとうございました
助かりましたw
263つばめ:2009/01/06(火) 20:35:24
分からない問題があります。
正の整数nを入力し、nの約数の和を表示するプログラムを作る問題です。
初心者なので、宜しくお願いします。
264デフォルトの名無しさん:2009/01/06(火) 20:40:56
一つの整数の約数って・・・・1からnまで全部足せばいいのか?w
265デフォルトの名無しさん:2009/01/06(火) 20:52:19
>>263
#include <stdio.h>
int sum(int n){ return n == 0 ? 0 : n + sum(n - 1); }
int main(int n){ return scanf("%d", &n), printf("%d\n", sum(n)); }
266デフォルトの名無しさん:2009/01/06(火) 20:55:10
約数の意味がわからないアホがここで何してんの?
267265:2009/01/06(火) 20:56:12
アッー

>>264に騙された
268デフォルトの名無しさん:2009/01/06(火) 21:00:21
>>263
#include <stdio.h>

int main(void)
{
int i, n, sum;
scanf("%d", &n);
for(i=1,sum=n; i<n; i++) if(!(n%i)) sum += i;
printf("%d", sum);
return 0;
}
269デフォルトの名無しさん:2009/01/06(火) 21:14:41
>>259
#include<stdio.h>

int main(void){
int data[128], data_num;
int i, div;

scanf("%d", &data_num);
for(i=0;i<data_num;i++) scanf("%d", &data[i]);
scanf("%d", &div);

for(i=0;i<data_num;i++) if(data[i]%div==0) printf("%d\n", data[i]);

return 0;
}
270デフォルトの名無しさん:2009/01/06(火) 21:17:12
表示するのは個数だろ
271デフォルトの名無しさん:2009/01/06(火) 21:27:20
>>261
返事遅くなって毎度毎度すいません・・・
C++です
272つばめ:2009/01/06(火) 21:31:50
質問回答ありがとうございます。
C++ではなく、C言語の方です。
273デフォルトの名無しさん:2009/01/06(火) 21:38:08
>>270
このツンデレが!
274デフォルトの名無しさん:2009/01/06(火) 21:39:56
なんでもツンデレ言うアホにはうんざりだ
275デフォルトの名無しさん:2009/01/06(火) 21:43:58
じゃあ世話焼きで俺のことが大好きな妹で
276デフォルトの名無しさん:2009/01/06(火) 21:59:37
[1] 授業単元:C言語
[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時

よろしくお願いします
277デフォルトの名無しさん:2009/01/06(火) 22:06:46
[1] 授業単元: 情報処理応用
[2] 問題文(含コード&リンク):
DirectShowを用いてtest.aviなどファイルから再生している動画をout.aviなど別ファイルとして保存する
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC++2008
 [3.3] 言語: C++
[4] 期限: 1月7日
[5] その他の制限:
スレ違いかもしれませんができればお願いします
278デフォルトの名無しさん:2009/01/06(火) 22:08:05
>>276
#include <stdio.h>

int main(void)
{
int i, j = 0;
while (j < 2 && scanf("%d", &i) != EOF) {
if (i < 0) {
puts("negative value");
j++;
}
else {
j = 0;
printf("%d\n", 2*i);
}
}
return 0;
}
279デフォルトの名無しさん:2009/01/06(火) 22:12:58
[1] 授業単元:アルゴリズムの基礎および演習
[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] その他の制限:特にありません。
よろしくお願いします。
280デフォルトの名無しさん:2009/01/06(火) 22:26:15
281デフォルトの名無しさん:2009/01/06(火) 23:07:11
[1] 授業単元:C言語
[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時
よろしくお願いします
282デフォルトの名無しさん:2009/01/06(火) 23:10:01
283デフォルトの名無しさん:2009/01/06(火) 23:29:31
284デフォルトの名無しさん:2009/01/06(火) 23:57:36
>>283
これを利用しろということですか?
285デフォルトの名無しさん:2009/01/07(水) 00:04:29
>>278
ありがとうございます
ちなみにfor文の方はどうなっているのでしょうか?
286デフォルトの名無しさん:2009/01/07(水) 00:11:58
[1] 授業単元:C言語
[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] その他の制限:丸投げですいません。基礎的な関数のみでよろしくお願いします。
287デフォルトの名無しさん:2009/01/07(水) 00:14:42
>>285
#include <stdio.h>

int main(void)
{
int i, j = 0;
for (;j < 2 && scanf("%d", &i) != EOF;) {
if (i < 0) {
puts("negative value");
j++;
}
else {
j = 0;
printf("%d\n", 2*i);
}
}
return 0;
}

こんな感じでどうかな
288デフォルトの名無しさん:2009/01/07(水) 01:03:59
[1] 授業単元:プログラミング
[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] その他の制限: 特になし

よろしくお願いします
289デフォルトの名無しさん:2009/01/07(水) 01:10:06
>>288
課題7-3がないと無理
290デフォルトの名無しさん:2009/01/07(水) 01:17:22
>>289
無視してかまわないです

追記
データ入力数は最大のmax個に達するか,負値が入力されるまでデータ入力を繰り返すものとする
291デフォルトの名無しさん:2009/01/07(水) 01:21:38
[1] 授業単元:計算機工学
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++2008
 [3.3] 言語: C
[4] 期限: 1月15日
[5] その他の制限: 特になし


検索問題

データ数10万 ランダムな対象を1万回検索する
先頭から検索すると平均で1000秒かかった
高速化するにはどうしたらよいか
ソートされてる場合とされてない場合のそれぞれについて答えよ
292デフォルトの名無しさん:2009/01/07(水) 01:26:38
>>291
ソートされてない場合
まずソートする、 このとき オーダーが n log になるようなまともなソートを使う
これを二分探索する

ソートされてる場合
二分探索する

293デフォルトの名無しさん:2009/01/07(水) 01:27:09
オーダーは n * log (n) ね
294デフォルトの名無しさん:2009/01/07(水) 01:28:24
295デフォルトの名無しさん:2009/01/07(水) 01:31:32
296デフォルトの名無しさん:2009/01/07(水) 01:42:34
>>291
それは本当にプログラミングの課題なのか?
考察ではなく実際に試したとしたら、116日ほどかかった計算になるんだが
297デフォルトの名無しさん:2009/01/07(水) 01:42:55
>>295
ありがとうございます
298デフォルトの名無しさん:2009/01/07(水) 01:54:29
299デフォルトの名無しさん:2009/01/07(水) 02:31:06
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
キーボードから入力した整数と小数(それぞれ1つずつ)を乗算した結果を表示するプログラムを、
ポインタによる間接参照演算子を用いて作成せよ。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1月7日24時
[5] その他の制限: 入力、乗算、表示部分全てでポインタを用いる

よろしくお願いします。
300デフォルトの名無しさん:2009/01/07(水) 02:50:01
>>296
その発想はなかったわ。
301デフォルトの名無しさん:2009/01/07(水) 03:09:50
>>299
設問者の意図がよく分からんが、こういうことか

#include <stdio.h>
int main(void) <%
char buf<:256:>;
int n;
double d;
int *np = &n;
double *dp = &d;
printf("input interger number: ");
fgets(buf, 256, stdin);
sscanf(buf, "%d", np);
printf("input decimal number: ");
fgets(buf, 256, stdin);
sscanf(buf, "%f", dp);
printf("%d times %f equals %f.\n", *np, *dp, *np**dp);
%>
302デフォルトの名無しさん: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)
303デフォルトの名無しさん:2009/01/07(水) 04:01:54
>>302
テンプレ嫁
304デフォルトの名無しさん:2009/01/07(水) 09:05:19
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):下記
[3] 環境
[3.1] OS: WindowsVista SP1
[3.2] コンパイラ名とバージョン:StadyC
[3.3] 言語: C
[4] 期限: 2009年1月7日 21時まで
[5] その他の制限: 特になし

『ジョーカーを除くトランプ52枚(1~13×4種)からランダムに5枚を抜き出した時、
・ワンペア(同じ数字が2枚)
・ツーペア(同じ数字が2枚のものが2組)
・スリーカード(同じ数字が3枚)
・ストレート(5枚連続した数値、[10,11,12,13,1]や[1,2,3,4,5]はOKだが[12,13,1,2,3]など1をまたぐケースはNG)
・フラッシュ(5枚とも同種)
・フルハウス(ワンペアとスリーカードの組み合わせ)
・フォーカード(同じ数字が4枚)
・ストレートフラッシュ(ストレートとフラッシュの組み合わせ)
それぞれの役が発生する確率(実際には試行した回数)をモンテカルロ法により求めるプログラムを作成する。
ただし、上位(記載が下にあるもの)の役と下位の役を同時に満たす場合は上位の役を優先する。
因数にポインタを含む関数を適当に作成し、利用すること。
メイン関数直下での処理はできるだけ避けることが望ましい

入力に関して
キーボードから、試行回数(+改行のみ入力する)。
最大でもint型に収まる数値とする。
このとき、入力を促す文字などは決して表示しないこと。
出題に関して
試行したうち、上記の8つの役の成立回数(+改行)のみワンペアから順に1行ずつ出力(計8行)。
指定した数値・改行以外の文字などの出力は一切行わないこと。

305デフォルトの名無しさん:2009/01/07(水) 09:06:33
>>304
マルチ死ね
306デフォルトの名無しさん:2009/01/07(水) 09:11:56
307デフォルトの名無しさん:2009/01/07(水) 09:23:49
>>280
ありがとうございます。
308304:2009/01/07(水) 09:26:40
なんとか自力で出来ました
どうもお手数おかけしました
309デフォルトの名無しさん:2009/01/07(水) 11:08:04
>>300
エンジニアにむいてないな、オマエ。
310デフォルトの名無しさん:2009/01/07(水) 11:10:14
311デフォルトの名無しさん:2009/01/07(水) 11:27:55
312デフォルトの名無しさん:2009/01/07(水) 11:27:59
>>304
引数を「いんすう」と読んでる教育機関なんか存在しないんじゃね?
313デフォルトの名無しさん:2009/01/07(水) 11:28:11
314回答する気もないくせに居座るだけの無能、粘着基地外:2009/01/07(水) 11:35:04
313 名前:デフォルトの名無しさん 投稿日:2009/01/07(水) 11:28:11
>>311
315デフォルトの名無しさん:2009/01/07(水) 11:36:28
>>312
そこから考えると、
コイツは前のスレッドで同じ宿題二度投げてるやつじゃね?
316デフォルトの名無しさん:2009/01/07(水) 11:36:35
317デフォルトの名無しさん:2009/01/07(水) 11:36:44
318デフォルトの名無しさん:2009/01/07(水) 11:38:12
319デフォルトの名無しさん:2009/01/07(水) 11:43:13
320デフォルトの名無しさん:2009/01/07(水) 11:52:44
マルチ先を貼られた途端におとなしくなった。
321デフォルトの名無しさん:2009/01/07(水) 12:00:17
322デフォルトの名無しさん:2009/01/07(水) 12:01:14
323デフォルトの名無しさん:2009/01/07(水) 12:01:20
>>319
うわぁ〜〜〜、質問する側もどうかと思うが、それを見つけてくる粘着基地外暇人も
きめぇ〜〜〜
324デフォルトの名無しさん:2009/01/07(水) 12:01:40
325デフォルトの名無しさん:2009/01/07(水) 12:34:32
巡回先が複数あるやつは多いだろ
特に質問系のスレは
326デフォルトの名無しさん:2009/01/07(水) 13:13:30
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):下記
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン:Visual Stdio 2008
 [3.3] 言語:C言語
[4] 期限: 1/8 12:00
[5] その他の制限:なし。

中央値を求める関数を作成し、その関数を使用して中央値を出力する
プログラムを作成せよ。関数は下記の通りとする。

int median(int *in,int num)
   in   複数の整数値が格納された配列(先頭)ポインタ
   num  入力値の数
   戻り値 中央値

入力に関して
 キーボードから入力する整数の個数を入力し(最大で128に対応すること)改行する。
 次に指定した数の整数をスペース1つずつ開けて1行で入力し、改行する。

よろしくお願いします。
327デフォルトの名無しさん:2009/01/07(水) 13:22:16
>>298
できました。ありがとうございます。

ですが
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8553.txt
こういった形にできますでしょうか?
なるべくforじゃなくてwhileを使いたいのですが・・・
328デフォルトの名無しさん:2009/01/07(水) 13:23:13
>>326
C/C++の宿題を片付けます 101代目
http://pc11.2ch.net/test/read.cgi/tech/1197132472/929
329デフォルトの名無しさん:2009/01/07(水) 13:25:14
1年前ワロタww
330デフォルトの名無しさん:2009/01/07(水) 13:28:44
毎年同じ内容の講義なんて当たり前だろ?
331デフォルトの名無しさん:2009/01/07(水) 13:32:07
>>330
注目点は、環境がStudy Cなところじゃね?
>>304今年の学生はそれもつづれないようだけど。
332デフォルトの名無しさん:2009/01/07(水) 13:38:33
>>326
#include <stdio.h>
int median(int *in, int num)
{
int i, j, temp;
for(i=num-1; i > 0; i--) {
for(j=0; j<i; j++) {
if(in[i] > in[j]) {
temp = in[i];
in[i] = in[j];
in[j] = temp;
}}}
return num & 1 ? in[num/2] : (in[num/2-1] + in[num/2]) / 2;
}
int main(void)
{
int i, num, in[128];
scanf("%d", &num);
for(i=0; i<num; i++) scanf("%d", in + i);
printf("%d", median(in, num));
return 0;
}
333デフォルトの名無しさん:2009/01/07(水) 14:15:43
>>299です

>>301
解答ありがとうございました。
自分の知らない関数を使っているので、この解答を参考にしながら
書いてみます。
334デフォルトの名無しさん:2009/01/07(水) 15:59:55
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):以下に記載
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:Visual C++ 2005 ver8.0
 [3.3] 言語: C++
[4] 期限:1/10 24:00
[5] その他の制限:特になし

次のように、整数値を表すクラスを設計する
データメンバ
x:xの座標(ただし 0-1000とする)
y:yの座標(ただし 0-1000とする)
z:zの座標(ただし 0-1000とする)
メンバ関数
void setX(int a): xの座標を設計する(範囲外の値は、error messageを出力する)
void setY(int b): Yの座標を設計する(範囲外の値は、error messageを出力する)
void setZ(int c): Zの座標を設計する(範囲外の値は、error messageを出力する)
int getX(): Xの座標値を得る
int getY(): Yの座標値を得る
int getZ(): Zの座標値を得る
結果は、次のように表示する
Please Input X
3
Please Input Y
1000067
The value of Y is a mistake, Please input Y again!
5
Please Input Z
7
The result is: (3,5,7)
335デフォルトの名無しさん:2009/01/07(水) 16:22:14
>>334わからないながらも自分で考えてみたものの途中です
#include<iostream>
using namespace std;
class Dimension{
private:
int x;
int y;
int z;
public:
void setX(int a);
void setY(int b);
void setZ(int c);
int getX();
int getY();
int getZ();
void show();
};
void Dimension::setX(int a){
x = a;
if(a>=0 && a<=1000){
cout<<"Please Input X\n";
cin>>a;
}
else{
cout<<"The value of X is a mistake.Please input X again!"<<"\n";
cin>>a;
}
}
336デフォルトの名無しさん:2009/01/07(水) 16:36:21
337help me:2009/01/07(水) 16:40:29
[1] 授業単元:C言語
[2] 問題文: ニュートン・ラプソン法を用いて、x^3 −10x^2 +10x + 50 = 0
の解を求めよ。解の精度は有効数字5桁とする。
[3] 環境
 [3.1] OS:Linux
 [3.3] 言語: C
[4] 期限: 1月9日
よろしくお願いします。
338デフォルトの名無しさん:2009/01/07(水) 16:50:22
339デフォルトの名無しさん:2009/01/07(水) 16:59:44
>>337

#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;
}
340デフォルトの名無しさん:2009/01/07(水) 17:01:19
>>337
#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;
}
341help me:2009/01/07(水) 17:04:34
>>340
ありがとうございます!
342yasu:2009/01/07(水) 17:07:23
[1] 授業単元: C言語プログラミング基礎
[2] 問題文(含コード&リンク):30以上500以下の整数の和を求めるプログラム作成する。                  
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: PAD 2
 [3.3] 言語:C言語
[4] 期限: 1/9 12:00
[5] その他の制限:どうぞ宜しくお願いしますm(..)m
343デフォルトの名無しさん:2009/01/07(水) 17:15:57
>>342
#include <stdio.h>
int main(void)
{
int i,sum=0;
for (i=30; i<=500; i++)
sum += i;
printf("%d", sum);
return 0;
}
344デフォルトの名無しさん:2009/01/07(水) 17:22:38
>>340
なるほど、通常ありえないスペルミスを混入することで(ry

>>342
#include <stdio.h>
int main(void)
<%
printf("sam = %d\n", (500-30+1) * (30+500) / 2);
return 0;
%>
345デフォルトの名無しさん:2009/01/07(水) 17:25:45
>>344 プ
346デフォルトの名無しさん:2009/01/07(水) 17:35:26
>>343 プププ
347デフォルトの名無しさん:2009/01/07(水) 17:38:54
>>344
なるほど、最近見かけることのないイーグルサムを混入したのですね
348yasu:2009/01/07(水) 17:40:03
解答ありがとうございます。
助かりました!!
349238:2009/01/07(水) 18:00:13
>>245
遅くなってすみません。ありがとうございます。
350yasu:2009/01/07(水) 18:15:23
[1] 授業単元: C言語プログラミング基礎
[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
351デフォルトの名無しさん:2009/01/07(水) 18:28:57
犯人はヤス
352デフォルトの名無しさん:2009/01/07(水) 18:36:38
>>350
#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;
}
353デフォルトの名無しさん:2009/01/07(水) 18:38:12
>>350
PAD 2 ってなんだ?
354デフォルトの名無しさん:2009/01/07(水) 18:39:59
>>334 すいません少し訂正します
[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)
355デフォルトの名無しさん:2009/01/07(水) 18:47:08
[1] 授業単元: c
[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] その他 よろしくです
356デフォルトの名無しさん:2009/01/07(水) 18:51:00
>>355
何周目だよ。ホントに死ねよ。
357デフォルトの名無しさん:2009/01/07(水) 19:04:21
質問者が過去の質問を見てるわけねえだろアホ
ましてや問題文のリンクしかみんな書かないんだから既出とかわかんねーよ
358デフォルトの名無しさん:2009/01/07(水) 19:09:56
359デフォルトの名無しさん:2009/01/07(水) 19:11:18
なんだこいつ
360yasu:2009/01/07(水) 19:17:27
>>352
解答ありがとうございますm(..)m

361デフォルトの名無しさん:2009/01/07(水) 19:36:01
>>355
/* この問題、見るたびに最大桁数が小さくなってるのは気のせいだろうか */
#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;
}
362デフォルトの名無しさん:2009/01/07(水) 19:37:54
[1] 授業単元: C言語
[2] 問題文 20から10までの整数を順番に空白で区切って、表示し改行するプログラムを作る。
      whileを使うこと。
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン:Visual Stdio 2008  
 [3.3] 言語:C言語
[4] 期限: 1/10
[5] その他の制限:できるだけ簡単な関数でお願いします
363デフォルトの名無しさん:2009/01/07(水) 19:41:00
364デフォルトの名無しさん:2009/01/07(水) 19:43:15
>>362
#include <stdio.h>
int main(void)
{
int n = 20;
while (n > 10) printf("%d ", n--);
printf("%d\n", n);
return 0;
}
365デフォルトの名無しさん:2009/01/07(水) 19:48:08
>>364
ありがとうございます!
366デフォルトの名無しさん:2009/01/07(水) 19:48:43
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
367デフォルトの名無しさん:2009/01/07(水) 21:55:09
[1] 授業単元:Cプログラミング
[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] その他の制限:特に無いです。

よろしくお願いします。
368デフォルトの名無しさん:2009/01/07(水) 21:58:04
>>292
ソートするのは反則じゃないか?
ハッシュ法と答えて欲しいんじゃないかと
369yasu:2009/01/07(水) 22:00:49
>>352
初心者なので、ソースを見ても分からなかったので、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
370デフォルトの名無しさん:2009/01/07(水) 22:06:48
>>367
#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;
}
371デフォルトの名無しさん:2009/01/07(水) 22:17:11
372デフォルトの名無しさん:2009/01/07(水) 22:28:58
>>369

#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;
}
373nyao:2009/01/07(水) 22:31:31
[1] 授業単元:自由課題
[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番最初のランダムに数字を発生させるところに戻る

よろしくお願いします!><
374デフォルトの名無しさん:2009/01/07(水) 22:36:18
[1] 授業単元:Cプログラミング
[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] その他の制限: 特になし
375デフォルトの名無しさん:2009/01/07(水) 22:47:28
>>369
誰か、このPAD 2って環境知ってる?
376デフォルトの名無しさん:2009/01/07(水) 22:50:10
[1] 授業単元:アルゴリズム入門
[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以降のローリングハッシュを用いてプログラムを改良せよ。

適切なハッシュ関数の定義だけでもお願いします。
377yasu:2009/01/07(水) 23:07:23
>>372
ソース解読できました。
解答ありがとうございます。
378デフォルトの名無しさん:2009/01/07(水) 23:39:58
[1] 授業単元:コンピュータ工学
[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] その他の制限:基礎全般はやってます。いきなりの宿題で困ってます;;


すみませんよろしくお願いします。
379デフォルトの名無しさん:2009/01/07(水) 23:46:53
[1] 授業単元:プログラミング
[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
380デフォルトの名無しさん:2009/01/08(木) 00:09:46
>>378
定数と変数の違いとか、プログラム以前に数学を勉強した方がいい
381デフォルトの名無しさん:2009/01/08(木) 00:13:27
>>327
for (A; B; C) {
 XXXXX
}

A;
while (B) {
 XXXXX
 C;
}
に機械的に置き換えればいい。
382デフォルトの名無しさん:2009/01/08(木) 00:14:29
[1] 授業単元:コンピュータ工学
[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] その他の制限:

よろしく願いします
383デフォルトの名無しさん:2009/01/08(木) 00:26:51
>>379
C言語じゃなくて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
384383:2009/01/08(木) 00:29:34
途中で送信してしまった。まあいいや
385デフォルトの名無しさん:2009/01/08(木) 00:41:32
>>384らめえええぇぇぇ!!

ゴメンコンピュータはさっぱりなんだ
なんでコンピュータ系に行ったんだ・・・俺・・・
386デフォルトの名無しさん:2009/01/08(木) 01:56:11
>373
>「0が出たら『ランダムに発生』を繰り返す」
必要性が分からない。+1すりゃいいんでないのか?

>375
不明。プログラム図面で考えろってことかね?
387デフォルトの名無しさん:2009/01/08(木) 02:15:18
>376
L69、L71って何ですか?
388デフォルトの名無しさん:2009/01/08(木) 03:50:41
[1] 授業単元:Computer Programming II ─ A リスト構造 ─
[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] その他の制限:デキる人にとっては難しくないらしいです。
389デフォルトの名無しさん:2009/01/08(木) 04:55:06
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
2段階シンプレックス法を解くプログラムを作成せよ
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 1月9日まで
[5] その他の制限: 特になし

よろしくお願いします

390デフォルトの名無しさん:2009/01/08(木) 09:11:55
391デフォルトの名無しさん:2009/01/08(木) 09:43:57
[1] 授業単元: プログラミング実習2
[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] その他の制限: 値渡し、参照渡しは習いました。
宜しくお願いします。
392デフォルトの名無しさん:2009/01/08(木) 09:50:09
>>391

void swap(int *a, int *b) {
int x=*a;
*a=*b;
*b=x;
}

393デフォルトの名無しさん:2009/01/08(木) 10:08:17
[1] 授業単元:C言語
[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]その他の制限:特になし

お手数ですがよろしくお願いします。
394デフォルトの名無しさん:2009/01/08(木) 10:43:26
どなたか>>254お願いします。
395デフォルトの名無しさん:2009/01/08(木) 11:24:24
[1] 授業単元: C言語
[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つ整数を入力し,改行する.この最後に入力した値で割り切れるかどうか判定する.
この一連の入力時,例題や解答例のような入力を促す文字等は決して表示しないこと.
出力に関して
割り切れる整数の個数を数値のみ (+改行)を出力する.指定した数値・改行以外の文字等の出力は一切行わないこと.
396デフォルトの名無しさん:2009/01/08(木) 12:38:57
どなたか>>382お願いします
397デフォルトの名無しさん:2009/01/08(木) 13:07:45
398デフォルトの名無しさん:2009/01/08(木) 13:10:52
>>395 >>259
#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;
}
399デフォルトの名無しさん:2009/01/08(木) 13:15:47
400デフォルトの名無しさん:2009/01/08(木) 13:29:14
メガネを掛けていて、ピッツァだったらメガネピッツァだろうがよぉ、紛れも無く
401デフォルトの名無しさん:2009/01/08(木) 13:53:02
[1] プログラミング演習
(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] 期限:早急にお願いします。
402デフォルトの名無しさん:2009/01/08(木) 13:58:37
>>401
無期限なら、来年くらいに
403デフォルトの名無しさん:2009/01/08(木) 14:00:12
>>402
[3.2] Emacs こっちの方が突っ込みどころだと思った

>>401
gccだよな?
404デフォルトの名無しさん:2009/01/08(木) 14:02:23
>>402
来年が早急というお前の感覚を疑うぜw
405デフォルトの名無しさん:2009/01/08(木) 14:04:52
>>404
来年が早急じゃないという根拠でもあるのかね?
406デフォルトの名無しさん:2009/01/08(木) 14:06:25
407デフォルトの名無しさん:2009/01/08(木) 14:09:29
言葉足らずですみません。
>>403
gccです。

>>402
できれば今日中にお願いします。

408デフォルトの名無しさん:2009/01/08(木) 14:11:47
>>405
じゃなくて、それを言った奴の 感覚 についてなんだが?w
409他人の真似しか出来ない低脳:2009/01/08(木) 14:12:46
406 名前:デフォルトの名無しさん 投稿日:2009/01/08(木) 14:06:25
>>404
>>1
410デフォルトの名無しさん:2009/01/08(木) 14:13:20
>>408
>>1
>[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
411デフォルトの名無しさん:2009/01/08(木) 14:13:56
>>409
新参はコレだから・・・
412デフォルトの名無しさん:2009/01/08(木) 14:14:58
ttp://dictionary.goo.ne.jp/search.php?MT=%C1%E1%B5%DE&kind=jn&mode=0&base=1&row=0
ttp://dictionary.goo.ne.jp/search.php?MT=%C1%E1%B5%DE&kind=jn&mode=0&base=1&row=1
さっきゅう ―きふ 0 【早急】
(名・形動)[文]ナリ
非常に急ぐ・こと(さま)。至急。そうきゅう。

非常に急いで来年くらいって、時間の感覚がおかしくなったバカくらいだろうね。
413デフォルトの名無しさん:2009/01/08(木) 14:15:56
>>412
馬鹿じゃねーの?
414デフォルトの名無しさん:2009/01/08(木) 14:20:42
言葉の意味も知らずに、自分の感覚で答えるから、世間からズレてると
思われていると気づかない引きこもりが多いんだな、このスレってw
来年くらいで 早急 w
415デフォルトの名無しさん:2009/01/08(木) 14:21:46
>>412
それで、来年が早急でない根拠は?
416デフォルトの名無しさん:2009/01/08(木) 14:22:47
>>414
自分の感覚が絶対と思っているのは、
ひどい田舎者か、
引きこもりなんじゃね?
417デフォルトの名無しさん:2009/01/08(木) 14:46:29
418デフォルトの名無しさん:2009/01/08(木) 14:47:19
>>401の者ですが、テンプレどおりに書かなくて迷惑かけてすみませんでした。

期限は2009年01月08日中にお願いします。
419デフォルトの名無しさん:2009/01/08(木) 14:56:35
だれか>>382お願いします
……なにか不備があったのでしょうか。
420デフォルトの名無しさん:2009/01/08(木) 15:07:01
>>419
とりあえず、「sample-11-1.c」ってなんだ?
421デフォルトの名無しさん:2009/01/08(木) 15:13:22
>>401です。

>>417
ありがとうございます。
ただ、今さっきわかったのですが
(1)で出来たday.txtの内容が
1回目 ××/××/××
2回目 ××/××/××
3回目 ××/××/××



N回目 ××/××/××
といった書き方でなければいけないようです。
後、構造体の配列と構造体の関数間での受け渡しを使用しなければならないらしいので、
お手数掛けますがもう一度(1)と(2)をお願いします。
422デフォルトの名無しさん:2009/01/08(木) 15:20:02
>>421
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
423デフォルトの名無しさん:2009/01/08(木) 15:31:43
>>422
本当にすみません。

次からは気をつけますので>>421をお願いします
424デフォルトの名無しさん:2009/01/08(木) 15:40:53
>>420
すいません。書き忘れでした
下に書いてあるプログラムの名前です
425デフォルトの名無しさん:2009/01/08(木) 16:19:00
>>423
おまえはすでにしんでいる
426デフォルトの名無しさん:2009/01/08(木) 16:24:01
[1] 授業単元:プログラミング演習
[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] その他の制限:とくにないです。

かなり急ぎの課題です。よろしくお願いします。
427424:2009/01/08(木) 16:30:18
すいません、>>382の課題お願いします……
もはや「おまえはもうしんでいる」状態なのでしょうか……
428デフォルトの名無しさん:2009/01/08(木) 16:34:02
NODEが何かわからない >>427
429デフォルトの名無しさん:2009/01/08(木) 16:34:32
>>399
ありがとうございます
できれば簡単な関数でお願いしたいのですが……
430デフォルトの名無しさん:2009/01/08(木) 16:35:36
>>425
本当に反省しています。

とてもピンチな状況なので>>421をお願いします(;_;)
431デフォルトの名無しさん:2009/01/08(木) 16:40:08
[1] 授業単元:プログラミング演習
[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] その他の制限:とくにないです。

かなり急ぎの課題です。よろしくお願いします。
432デフォルトの名無しさん: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システムコールを使ってください。
リンク先のヒントに従ってもらうとうれしいです。
433424:2009/01/08(木) 16:51:56
>>428
そのNODEっていうのは恐らく二分木の問題で使われてるNodeのことみたいですね。多分

わからなかったらNode使わなくていいですよ。
とりあえず、プログラムのKEY云々て列にある数値が入った二分木から標準入力でその数があればyes、無ければNoってだすプログラム作ってくれれば幸いです
434デフォルトの名無しさん:2009/01/08(木) 16:55:41
>>424
>>1 を一億万回嫁。
435デフォルトの名無しさん:2009/01/08(木) 16:58:37
>>430
言葉では何とでも言えるよな。

>>428への回答はどうなってるんだ?
また、条件が追加されたら洒落にならんぞ。
こりゃ「おまえはもうしんでいる」状態だな。
436デフォルトの名無しさん:2009/01/08(木) 17:06:58
>>435
>>433
っていうか、オマエの中で何かが綯い交ぜになっている
437デフォルトの名無しさん:2009/01/08(木) 17:09:21
本当に間違った事したと思ってます。

反省していますので、どうか>>421お願いします。

本当に時間がないんです。
438424:2009/01/08(木) 17:11:30
Nodeの定義は、下のプログラムで定義してあるのかとずっと思ってたんですが……違ったのですか?
問題文これしかなくて……
439デフォルトの名無しさん:2009/01/08(木) 17:11:58
>>433
NODEとKEYを定義して、コンパイルしてみた。
KEY init_data[num_of_data]={50, 20, 70, 10, 30, 60, 100, 25, 65, 150};
で、gccだと、コンパイルエラーになる。
440デフォルトの名無しさん:2009/01/08(木) 17:17:09
[1] 授業単元:C言語入門
[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に来ました。
質問文の方で至らないところもあると思いますがどうか教えてください。
441デフォルトの名無しさん:2009/01/08(木) 17:27:38
>>440
#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じゃありません、本当にありがとうございまいました
442デフォルトの名無しさん:2009/01/08(木) 17:30:42
443デフォルトの名無しさん:2009/01/08(木) 17:38:50
>>436
>>433が回答になっているとでも思っているのかw
444デフォルトの名無しさん:2009/01/08(木) 17:41:00
>>443
オマエはツリーをみてみた方が良いよ
445デフォルトの名無しさん:2009/01/08(木) 17:54:22
>>444
お前、NODEがどんなものか解るんだろ。回答してやれよ。
俺はわかんね。
446デフォルトの名無しさん:2009/01/08(木) 17:55:27
[1] 授業単元:プログラミング演習U
[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] その他の制限:できるだけ簡単な関数でお願いします

よろしくお願いします
447424:2009/01/08(木) 18:10:56
一応、教科書みながらここまでやってみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8576.txt

このプログラムがあってれば、あとは標準入力から探索して判定を出すって感じなんですが……
続きやってくれませんか
448デフォルトの名無しさん:2009/01/08(木) 18:11:18
>>442
ありがとうございます。
ちなみにgetsを使ったソースも教えてもらえると助かります。
getsの文とsizeifの文を比較してみたいので
449デフォルトの名無しさん:2009/01/08(木) 18:27:49
>>381
ありがとうございます。
色々と変えてやってみましたがこの状態で小文字数えるところでエラーがでて終了してしまいます。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8577.txt
どこがダメなんでしょうか・・・?
450デフォルトの名無しさん:2009/01/08(木) 18:37:56
>>449
while (...) {} に入る前に a=0; (>>381 のAに相当)
while (...) {} 中の最後に ++a; (>>381 のCに相当)
451デフォルトの名無しさん:2009/01/08(木) 18:39:13
>>449
while(moji[a] != '\n')
452デフォルトの名無しさん:2009/01/08(木) 18:48:31
>>450-451
あ、あれ。見直したら直す前のプログラムになってたorz

a=0;
while(moji[a] != '\n'){
if (moji[a] >= 'a' && moji[a] <= 'z')
++a;
}
s=a;
printf("英小文字の数 = %d\n",a);

こうでしょうか?
「文字列の長さ」の後反応がなくなるんです・・・
453デフォルトの名無しさん:2009/01/08(木) 18:54:24
>>452
gets()だと\nが入らないので終了条件を'\0'にする
while(moji[a] != '\0')
454デフォルトの名無しさん:2009/01/08(木) 18:57:04
455デフォルトの名無しさん:2009/01/08(木) 19:07:08
>>453
ありがとうございます。
やってみたところ全部小文字で入力した場合は最後までいくのですが、一文字でも大文字が入ると途中でとまってしまうんです。
hello→最後まで
Hello→途中でとまってしまう
456デフォルトの名無しさん:2009/01/08(木) 19:11:44
>>455
a=0;
while(moji[a] != '\0'){
if (moji[a] >= 'a' && moji[a] <= 'z') s++;
++a;
}
printf("英小文字の数 = %d\n",s);
457デフォルトの名無しさん:2009/01/08(木) 19:23:04
>>456
できました
本当にありがとうございました!
458デフォルトの名無しさん:2009/01/08(木) 20:42:58
[1] 授業単元:
[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] その他の制限:問題文に中にあります。
自分では全くわかりません、期限が短いですができる方おねがいします。
         
459nyao:2009/01/08(木) 20:51:31
>>373です。
>>378
なるほど
0が出たら+1ですか…(・ω・)
460デフォルトの名無しさん:2009/01/08(木) 20:52:43
>>446>>458は同じ課題
C言語なら俺に聞け(入門篇)の過去ログ調べてみ
461nyao:2009/01/08(木) 20:54:02
>>386さんへのレスでした。
すいませんorz
462デフォルトの名無しさん:2009/01/08(木) 20:55:46
>>460
別スレだったかも?質問してた人はちゃんと出来てた。
463デフォルトの名無しさん:2009/01/08(木) 21:11:32
>>459
ちがうだろ
464デフォルトの名無しさん:2009/01/08(木) 21:15:03
465デフォルトの名無しさん:2009/01/08(木) 21:25:40
[1] 授業単元: 科学実習T
[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日 お願いしやす
466デフォルトの名無しさん: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日
467デフォルトの名無しさん:2009/01/08(木) 22:21:47
どなたか
>>426
>>431をお願いします。
コンパイラ名ってのがよくわからないんですが
gccとか打ってコンパイルしてます
468デフォルトの名無しさん:2009/01/09(金) 00:12:42
[1] 授業単元:プログラム技術
[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] その他の制限:特になし

よろしくお願いします。
469367:2009/01/09(金) 00:18:53
>>370
ありがとうございました。
470デフォルトの名無しさん:2009/01/09(金) 00:44:46
>>465
#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;
}
471デフォルトの名無しさん:2009/01/09(金) 00:49:12
>>466
#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;
}
472デフォルトの名無しさん:2009/01/09(金) 00:58:13
>>468
#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;
}
473デフォルトの名無しさん:2009/01/09(金) 01:04:00
>>472
すみません、
map関数とdummyデータを使わずにやることはできませんか?
474デフォルトの名無しさん:2009/01/09(金) 01:07:20
ふざけてんのか
475デフォルトの名無しさん:2009/01/09(金) 01:12:38
>>473
char str[5][10] = {"home", "arow", "abec","bobo"};
typedef std::multimap<std::string, int> Map;
476デフォルトの名無しさん:2009/01/09(金) 01:33:24
#include <iterator>
#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;
}
477デフォルトの名無しさん:2009/01/09(金) 01:55:57
280と282で教えてもらったプログラムの
2と4が動かないんですが何が悪いんでしょうか
478デフォルトの名無しさん:2009/01/09(金) 02:01:29
お前の頭
479デフォルトの名無しさん:2009/01/09(金) 02:21:04
>>478
おいっ、基地外、鏡を見ろよ。ほれ、何が映った?
出来の悪い面が映ったよな?それ、誰の面だ?お・ま・え・の・だ・よw
480デフォルトの名無しさん:2009/01/09(金) 02:42:14
やぁ先生、見てるかい?
481デフォルトの名無しさん:2009/01/09(金) 06:20:20
[1] 授業単元: C言語
[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)
}
482デフォルトの名無しさん: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日
483デフォルトの名無しさん:2009/01/09(金) 07:08:38
[1] 授業単元:Cプログラミング
[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になってしまい申し訳ないです
よろしくお願いします!
484483:2009/01/09(金) 07:16:27
OSはXPでも問題ないです
コンパイラ名とバージョン:gcc -o
でお願いします

追記すいません
485デフォルトの名無しさん:2009/01/09(金) 08:33:00
>>426
>>431
お願いします。どなたか助けてください。
486デフォルトの名無しさん:2009/01/09(金) 10:35:31
>>481-482

#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はセミコロン抜けてる
}
487デフォルトの名無しさん:2009/01/09(金) 10:43:37
>>485
数値解析系の宿題は需要、供給ともに少ないから
なかなか回答者は現れないだろうなあ。
488デフォルトの名無しさん:2009/01/09(金) 11:18:04
[1] 授業単元:プログラミング
[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] その他の制限: ありません
よろしくお願いします.


489デフォルトの名無しさん:2009/01/09(金) 11:22:48
>>485
ルンゲクッタと書かれては問題見る気もしないんだ
お前が急いでるかどうかは回答者にはどうでもいいことなので関係ないんだ
490デフォルトの名無しさん:2009/01/09(金) 11:47:21
491デフォルトの名無しさん:2009/01/09(金) 12:41:32
>>426
ちなみに
v(t)=mg/k+(v0-mg/k)exp(-kt/m) (k!=0.0)
v(t)=gt (k==0.0)
だと思ふ
492デフォルトの名無しさん:2009/01/09(金) 13:03:47
[1] 授業単元:システム設計2
[2] 問題文:1〜100の間で数当てゲーム
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン:cygwin-b20
 [3.3] 言語: C
[4] 期限: [2009年1月12日15:00まで]
[5] その他の制限: 標準ライブラリはなるべく使わないようにお願いします。

以上お願いします。
493デフォルトの名無しさん:2009/01/09(金) 13:12:47
APIをつかって入力と出力をしろというのか
494デフォルトの名無しさん:2009/01/09(金) 13:14:27
どなたか>>401>>421の条件で本当にお願いします。

期限が今日なので17時までで、できれば早めにお願いします。

構造体の関数間での受け渡しはsub関数でお願いします。
495デフォルトの名無しさん:2009/01/09(金) 13:35:40
>>393
オナニーソース。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8582.c

個人的に読み込み処理の手直しをしてみたかったんで書いた。
問題文がなくなってるんでここまで。
Linux(Debian) gcc で確認。
496デフォルトの名無しさん:2009/01/09(金) 14:28:08
>>488
2乗累積誤差ってのがわからん。

式を適当に決めて誤差を求めるだけでいいのか?
それとも誤差を最小にするような式を求めろってこと?
(3)は3次式の間違い?

コンパイラは何だ?
497デフォルトの名無しさん:2009/01/09(金) 15:01:42
>>431
I の値は?
Eの値は 10^-206 * 10^9 [Pa] ? それとも - は = の typo で E=206*10^9 [Pa] ?

# 断面2次モーメントなんて知らない
498デフォルトの名無しさん:2009/01/09(金) 15:06:26
>>494
何言ってんだか分からないので無理
499デフォルトの名無しさん:2009/01/09(金) 15:10:43
1] 授業単元:プログラミング演習
[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] その他の制限: 問題ページ中の関数、プログラム例を使って作ってください。
データのグラフ化は自分でできます

以上お願いします。
500デフォルトの名無しさん:2009/01/09(金) 15:13:05
>>488です
>>496
から説明不足で質問をいただいたので

式を求める必要はありません。誤差を求めることが、この課題の目的です。
また(3)は3次式の間違いでした。申し訳ないんですが訂正させてください。
コンパイラはコマンドプロンプトだと思います。

よろしくお願いします。
501デフォルトの名無しさん:2009/01/09(金) 15:16:51
コンパイラはコマンドプロンプト
コンパイラはコマンドプロンプト
コンパイラはコマンドプロンプト
だいじなところですからさんかいいいました
502デフォルトの名無しさん:2009/01/09(金) 15:19:05
>>501
すみません。よくわからないんです。
普段は「bcc32」とか打ってコンパイルしてます。
503デフォルトの名無しさん:2009/01/09(金) 15:27:01
安くない授業料も払って、マジメに出席して、
宿題が出来ないどころか、丸投げも出来ない程度にしかならないなんて、
詐欺も良いところだな。
504デフォルトの名無しさん:2009/01/09(金) 15:33:22
おめー、詐欺ってのは高度な知能が必要なんだぞ。
言うなら「クズ」だろ。
505デフォルトの名無しさん:2009/01/09(金) 15:36:05
低レベルの詐欺でも、騙される側が低レベルなら引っかかるんだよな・・・
振り込め詐欺は家にもかかってきたが、回避したぞ
506デフォルトの名無しさん:2009/01/09(金) 15:36:21
>>500
SSEとかいわれる奴だろ?>自乗累積誤差
double e = 0;
int i;
for (i=0; i<11; i++) {
e += pow(Y[i] - f(X[i]), 2.0);
}
たぶんこんな感じ。
n次式の当てはめ(f(x)を求める)は忘れたから誰か頼む。
507デフォルトの名無しさん:2009/01/09(金) 15:38:56
>>506
一ページしか引っかからない・・・
508デフォルトの名無しさん:2009/01/09(金) 15:43:07
1次式にしても
Y[i] = a*X[i] + b とするか(2計数)
a*X[i] + b*Y[i] + c = 0 とするか(3計数)

当てはめ(≒計数決定)をどうするのか?
上の累積二乗誤差を最小にするような計数を求めるのか? / 人間が適当に決めるのか? etc.
509デフォルトの名無しさん:2009/01/09(金) 15:46:58
>>500
最少二乗法みたいにやるのかと思ったんだけど、
式求めずに誤差求めるだけでいいってのは、
たとえば(1)で、1次式をX=0として誤差求めるだけでもいいのか?

>>501
>>488では
コンパイラ名とバージョン: Microsoft Windows XP [Version 5.1.2600]
なんだぜ
510デフォルトの名無しさん:2009/01/09(金) 16:12:33
ぼすけて
511デフォルトの名無しさん:2009/01/09(金) 16:16:14
何か一匹、頭のおかしいのが紛れ込んでいるが、スルーよろしく。あぁきめぇ、鏡を見ろよw
512デフォルトの名無しさん:2009/01/09(金) 16:22:57
>>511
513デフォルトの名無しさん :2009/01/09(金) 16:24:00
514492:2009/01/09(金) 16:39:24
>>513
ありがとうございます。ランダム関数の使い方が分からなかったので勉強になりました。
515デフォルトの名無しさん:2009/01/09(金) 17:49:04
[1] 授業単元: プログラミング2
[2] 問題文課題7-2
以下の条件を満たすプログラムを作成する。どの程度の機能が実装されているかなどによって加点する。以下に挙げたもの以外の機能が実装してある場合にも加点がある。

なんらかのデータを扱うプログラムであり(非常にユニークなものの場合は加点がある)、データをファイルから読み込む機能と、書き込む機能がある。
例:
自分の持っている音楽CD(コレクションしているものなど)を管理するデータベースプログラム
毎日の収入・支出を管理する(家計簿)プログラム
画像ファイルを扱うプログラム
音声ファイルを扱うプログラム
新しいデータ(もしくはデータの一部分)を追加する機能、特定のデータ(もしくはデータの一部分)を削除もしくは修正する機能がある
データのソート(並び替え)を行う機能がある。 ソートを行うことが適切でないデータの場合(音声データや画像データなど)は、 そのデータにあったなんらかの処理を加える機能でも良い
データから特定の部分のみを取り出して表示(もしくは保存)する機能がある
構造体を使用している
構造体のポインタを引数として持つ関数を使用している
enum型を使用している、もしくはプリプロセッサ「#define」を使用している

[3] 環境
 [3.1] OS:Windows
 [3.2]
 [3.3] 言語:C
[4] 期限:2009年1月23日まで
516デフォルトの名無しさん:2009/01/09(金) 17:49:41
何だろうと思って鏡見たけど別にきもいのは写らなかった。
>>511は鏡にきもいのが写ったの?
517デフォルトの名無しさん:2009/01/09(金) 18:00:11
誰も個人を特定、指定してレスしていないのに、そのレスに反応したってことは
心当たりがあるんだろう。聞かれてもいないことをわざわざ答える、それは
認めたくないが否定している意思を他人にも認めてもらいたいという心の表れ。
要するに、反応してレスした奴は、鏡を見てキモイ面が映ったんだろうよw
518デフォルトの名無しさん:2009/01/09(金) 18:03:21
> 何か一匹、頭のおかしいのが紛れ込んでいるが
そう、自分のことを言われたわけでもないのに、反応しちゃったわけだ。
それが何を意味しているか、分かるよな?頭のおかしい奴に対して
鏡を見ろと言ったのに、自分は・・・あぁ、そうか、お前はキモイ一匹だったのかw
519デフォルトの名無しさん:2009/01/09(金) 18:13:21
>>515
何処が例で何処までが要件かわからねーよ
しね
520デフォルトの名無しさん:2009/01/09(金) 18:14:09
>>518
> 何か一匹、
「答えは筆者自身」で、FAだろ。
521デフォルトの名無しさん:2009/01/09(金) 18:17:20
いんや、誰もあんた個人を特定して言ってはいないが?ただ、反応したのはあんただろw
522デフォルトの名無しさん:2009/01/09(金) 18:18:44
鏡を見て、映ったものをどう思ったか、報告しろとも言ってないよぉ〜?ん?
何で反応したの?心当たりがあるからだろ?w
523デフォルトの名無しさん:2009/01/09(金) 18:19:01
[1] 授業単元:プログラミング
[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] その他の制限: わかりやすい関数でお願いします
524デフォルトの名無しさん:2009/01/09(金) 18:40:15
>>515
#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;}
525デフォルトの名無しさん:2009/01/09(金) 18:40:46
>>524
扱うものはただの数字
526デフォルトの名無しさん:2009/01/09(金) 18:43:04
>>525
普通にあげてやれよw
527デフォルトの名無しさん:2009/01/09(金) 19:54:04
>>496
データをDi 、Di の平均をEとして
Σ(Di - E)^2
を行っていると思います。テイラー展開とかフーリエ級数展開とかで大活躍な指数っぽいです。
528デフォルトの名無しさん:2009/01/09(金) 20:03:25
1] 授業単元: C言語基礎
[2] 問題文:正の整数nを7進数(10桁以内とする)で入力した数値に7進数の5を加算した結果を表示するプログラム
[3] 環境
 [3.1] OS: Windows ビスタ
 [3.2] コンパイラ名: CPad for LSIC-86
 [3.3] 言語: C言語
[4] 期限: 1月10日
[5] その他の制限:出来るだけ簡単な関数でお願いします。
529デフォルトの名無しさん:2009/01/09(金) 20:17:00
>>527
でも、オレはそれを分散と習った気がする。
あと、累積二乗誤差をググれ。
530デフォルトの名無しさん:2009/01/09(金) 21:49:04
スレ違いですまんが、分散だったら個数で割るみたいな計算が入ると思う

多分だが>>488は、>>509の質問に答えるべき
531デフォルトの名無しさん:2009/01/09(金) 22:37:41
[1] 情報処理
[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というのはコンビネーションです。できるだけ簡単な関数でお願いします。


532デフォルトの名無しさん:2009/01/09(金) 22:46:15
>>531
マルチ死ね
#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;
}
533デフォルトの名無しさん:2009/01/09(金) 22:47:33
534デフォルトの名無しさん:2009/01/09(金) 22:48:06
できるだけ簡単にとのことなので関数は使わないでおきました
535デフォルトの名無しさん:2009/01/09(金) 22:53:49
ごめんなさい。
本当に困っています。
536デフォルトの名無しさん:2009/01/09(金) 23:08:25
困ってたらなにをしてもいいのか?
金がなければ強盗するのか?
537デフォルトの名無しさん:2009/01/09(金) 23:29:20
[1] 授業単元:プログラミング演習
[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] その他の制限:特にありません。

よろしくお願いします。
538デフォルトの名無しさん:2009/01/09(金) 23:30:13
>>478
自分の頭が悪いのは承知しています。
プログラム的なことでお願いします。
539デフォルトの名無しさん:2009/01/09(金) 23:33:17
>>528
VistaでLSIC-86と言うのに吹いたので助けてやりたいが
int型が2byteだって?7^10 をどうやって格納するんだ?
まさか自分で長桁整数型を実装するのか?

他のコンパイラなら
char a[11]にscanfで文字列を受けてから
while( a[ i ] != '\0' ){ r = 7 * ( r + a[ i ] - '0' ); i++ }
で終わりのはず
540539:2009/01/09(金) 23:34:36
おっと、5を足してないけど7進数で5は10進数でも5だから関係ないな
表示は10進でもいいんだろ?そう書いてないし。
541デフォルトの名無しさん:2009/01/09(金) 23:42:26
1] 授業単元: C言語 初級
[2] 問題文:数字を入力して、その値の桁数を求めて、表示するプログラムを作る
[3] 環境
 [3.1] OS: Windows XP
 [3.3] 言語: C言語
[4] 期限: 1月11日
[5] その他の制限:簡単な関数でお願いします。

テスト前です。宜しくお願いします。
542デフォルトの名無しさん:2009/01/09(金) 23:50:22
>>539
C言語のテスト前で、その問題は過去問題です。試験対策でお願いしました。
なにぶん、まだ、素人です。細かいことは分からない部分あります。
たぶん、10進数で表示すると思います。
543デフォルトの名無しさん:2009/01/09(金) 23:50:42
コンパイラ名を書けって言ってんだろ!
544デフォルトの名無しさん:2009/01/09(金) 23:53:22
>>539
long 型は普通に使えるんじゃなかろうか
545デフォルトの名無しさん:2009/01/09(金) 23:57:31
試験は筆記試験なのでコンパイラはあまりかんけいないのではと思います。
546デフォルトの名無しさん:2009/01/09(金) 23:58:06
LSIC86と聞いて加勢するぜ。
ごちゃごちゃしてるが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;
}
547デフォルトの名無しさん:2009/01/10(土) 00:04:38
ありがとうございます。感謝しています。
548デフォルトの名無しさん:2009/01/10(土) 00:15:18
>>541
#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;
}
549デフォルトの名無しさん:2009/01/10(土) 00:18:39
ありがとうございます。
550デフォルトの名無しさん :2009/01/10(土) 00:51:29
551デフォルトの名無しさん:2009/01/10(土) 01:27:10
552デフォルトの名無しさん:2009/01/10(土) 02:51:14
>>541
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
scanf("%d", &n);
printf("%d digits\n", 1+(int)log10(n));
return 0;
}
553デフォルトの名無しさん:2009/01/10(土) 03:19:35
[1] 授業単元:休日プログラミング
[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] その他の制限:コマンドプロンプトで実行できること。
よろしくお願いします。
554デフォルトの名無しさん:2009/01/10(土) 04:28:14
[1] 授業単元: C言語 入門
[2] 問題文(含コード&リンク):
簡易整数電卓プログラム

仕様は
・数式を入力すると計算結果を表示
・四則演算、括弧、べき乗、階乗、が使える
・扱うのは整数(intの範囲)
・演算子の優先順位を守る(乗法・除法が先。べき乗は後ろから計算)
・+と−の単項演算子が使える(-1+5等)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: わかりません・・・
 [3.3] 言語: C
[4] 期限: 2009/01/14 23:59 提出〆
[5] その他の制限: 特にありません。
テスト前なのにこの課題1つに1週間も悩んでます・・・
検索とかしてみたのですが、どうしても解りませんでした。
長くなってしまうかもしれませんがよろしくお願いします。
555デフォルトの名無しさん:2009/01/10(土) 05:25:07
556デフォルトの名無しさん :2009/01/10(土) 06:02:01
557デフォルトの名無しさん:2009/01/10(土) 06:20:27
558デフォルトの名無しさん:2009/01/10(土) 10:12:08
>>483
>>484
どなたかお願いできないでしょうか
スタックを使う問題なんですが

期限は今日中です
559デフォルトの名無しさん:2009/01/10(土) 10:44:27
>>558
#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;
}
560デフォルトの名無しさん:2009/01/10(土) 11:21:32
561デフォルトの名無しさん:2009/01/10(土) 13:25:26
ナンバーサイン野郎きめぇお( ^ω^)
562デフォルトの名無しさん:2009/01/10(土) 13:33:32
訳の分からない#をいちいちつける目立ちたがり屋、ナンバーサイン(笑)
563558:2009/01/10(土) 13:33:43
>>559
>>560
ほんとにありがとうございました!
これから自分なりに理解してみようと思います
564デフォルトの名無しさん:2009/01/10(土) 13:45:48
ナンバーサインってなんぞ?
565デフォルトの名無しさん:2009/01/10(土) 13:46:04
[1] 画像処理
[2] BMP画像(カラー)をネガポジ反転するプログラムを作成せよ。
ピクセルはRGBで3つ、最大値は255とする。
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] C言語
[4] 1月12日
[5] 特にありません。

よろしくお願いします。
566デフォルトの名無しさん:2009/01/10(土) 13:50:52
元となる画像を出さないとトラブルの元
567デフォルトの名無しさん:2009/01/10(土) 14:11:46
568デフォルトの名無しさん:2009/01/10(土) 14:19:33
>>566
この種の依頼をするやつは、BMPが何かも知らない。JK
569デフォルトの名無しさん:2009/01/10(土) 14:25:14
>>564
いげたのこと
570デフォルトの名無しさん:2009/01/10(土) 14:34:20
井桁の方が分からんやつ多いんじゃないか、若い連中には
571デフォルトの名無しさん:2009/01/10(土) 14:48:48
シャープに似てる奴、でいいか
572デフォルトの名無しさん:2009/01/10(土) 14:56:26
[1] コンピュータプラクティス
[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]出来るだけ簡単な関数でお願いします


余裕があったらプログラムのフローチャートみたいなのを教えてださい
573572:2009/01/10(土) 15:17:48
すいません
>今n枚のカ−ドに書かれている数字を次のような数列で表すものとする。
これは依頼した問題には出てこない要素なので無視してください。
574572:2009/01/10(土) 15:19:53
度々申し訳ございません。
環境はLinuxじゃなくてwindows XPでした……
575デフォルトの名無しさん:2009/01/10(土) 15:38:53
576537:2009/01/10(土) 16:10:37
>>551
ありがとうございます。
577デフォルトの名無しさん:2009/01/10(土) 16:20:35
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
578デフォルトの名無しさん:2009/01/10(土) 16:38:39
    ∩___∩
    |       ヽ
   / ●   ● ヾ   おいしいクマ
   |   ( _●_)。. |
  彡、 ) ヽノ.(⌒ヽ`ミ
ww/  _wWww\ \ヽw Www wwWwwwwww
 (__ヽ二二フ  ヽ ノ
579デフォルトの名無しさん:2009/01/10(土) 16:41:13
その 草 、 腐 ってますよ?
580デフォルトの名無しさん:2009/01/10(土) 16:53:41
>>523
これできませんか?
581デフォルトの名無しさん:2009/01/10(土) 17:55:25
582デフォルトの名無しさん:2009/01/10(土) 18:01:49
>>581
ありがとうございます
583572:2009/01/10(土) 18:34:28
だれか>>572お願いします。
584デフォルトの名無しさん:2009/01/10(土) 18:57:23
>>583
まあ、学校の宿題なら、まず、原文をアップしてくれないと
585 ◆i9Dvbn/Lf6 :2009/01/10(土) 19:05:47
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
二重振り子を微小振動させるとして、厳密な数値解及び解析的な近似解を初期振れ角Θを機動時に指定して、
アニメーション表示させるプログラムを表示しなさい。
グラフィックはgnuplotでもEGGXでもどちらでもよい。
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: ([2009年1月22日まで]
586nyao:2009/01/10(土) 19:34:08
>>373をお願いします。
587デフォルトの名無しさん:2009/01/10(土) 19:40:21
>>585
プログラムの実装より物理部分の方が難しいしwww
@厳密な数値解の式をよこせ
A近似解を求める運動方程式をよこせ
B解法の指定は?4次ルンゲ=クッタ?
C振り子の軸長さはいくつ?変数は振れ角それとも座標?初期振れ角は2つあるだろ?

解答されても俺は書かないけど、少なくともこれぐらいはないと誰も書いてくれないだろ
588デフォルトの名無しさん:2009/01/10(土) 20:06:54
キーボードから入力したキーが、アルファベットの大文字ならば、小文字に変換して、画面に出力しなさい。

それ以外なら、そのまま画面に出力しなさい。

できる人お願いします。
589デフォルトの名無しさん:2009/01/10(土) 20:08:10
[1] コンピュータプラクティス
[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]出来るだけ簡単な関数でお願いします

問題文の原文をそのまま上げました。
よろしくお願いします
590デフォルトの名無しさん:2009/01/10(土) 20:11:49
>>589
本当に、原文に「正の自然数」って書かれてるの?
591デフォルトの名無しさん:2009/01/10(土) 20:17:54
>>590
ちゃんとそうかいてありますね。
592デフォルトの名無しさん:2009/01/10(土) 20:31:05
>>591
ひどいもんだな。
要件も不明だし、このままなんか作っても、なんやかんやで突っ返されるだろ
593デフォルトの名無しさん:2009/01/10(土) 20:35:26
突っ返すのが楽しい人が作ったとしか思えん
594デフォルトの名無しさん:2009/01/10(土) 20:42:38
あそこまでアルゴリズムを説明してくれてて何がわからないんだ?
595デフォルトの名無しさん:2009/01/10(土) 20:43:31
そうかな?たしかにテスト項目とかないから曖昧だけど、授業のプログラムなんてそんなもんだろ
やることはa[2k]の和とa[2k+1]の和を比較するだけだから文句のつけようもなくない?
アルゴリズムは「先手の初手は問題文に書いてあるとおり・次手以降は後手の取った隣を取る」で終了だし
596デフォルトの名無しさん:2009/01/10(土) 20:53:54
>>594
勉強し始めってのもあり知識不足という訳ですが、引き分けのときのプログラムがさっぱりで……


一応、授業内容は、とにかくこういうゲームをプログラミングしろってやつなんですよ
だから、自分はn枚分の整数をユーザが標準入力して、その上で先手が勝つルールを使って先手が勝てばいいのかと思ったのですが……
突っ返されたらその時、なんとか考えますので、作ってくれませんでしょうか……
597デフォルトの名無しさん:2009/01/10(土) 21:09:37
>>594
オマエが何を理解してしまったのか心配だよ・・・
598デフォルトの名無しさん:2009/01/10(土) 21:30:29
>>585って本当に授業単元:Cプログラミングなのか?
もしそうなら、世の中にはレベルの高い大学もあるもんだなあと感心。
599デフォルトの名無しさん:2009/01/10(土) 21:33:20
そうか?
コンパイラ名とバージョンにgccしか書いてないし質問主のレベルは低いと思う
600デフォルトの名無しさん:2009/01/10(土) 21:39:28
質問主のレベルが低くて学校のレベルが高いからここに来てるんじゃなかろうか
601589:2009/01/10(土) 21:59:58
すいません。今から先生にメールしてこの問題の不明な点を聞いてみるので、できれば変な所を教えてくれませんでしょうか
602デフォルトの名無しさん:2009/01/10(土) 22:15:50
別に禁煙宣言しなくていいけど、>>589は実際にカードを作ってこのゲームを行うことができるの?
603 ◆DMlEnlGjq. :2009/01/10(土) 22:25:01
[1] 授業単元:アルゴリズムとデータ構造1
[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] その他の制限:特になし

よろしくお願いします。
604デフォルトの名無しさん:2009/01/10(土) 22:27:02
>>603
また桁外れのマヌケが到着したが、
ここでは珍しくも無い・・・
605デフォルトの名無しさん:2009/01/10(土) 22:28:22
>>602
一応できたつもり…です
606デフォルトの名無しさん:2009/01/10(土) 22:29:51
>>603-604
607デフォルトの名無しさん:2009/01/10(土) 22:39:15
>>605
そ、そうか。
> nが偶数のとき先手も後手もn/2枚を取る。nが奇数のとき先手も後手も(n−1)/2づつ取り最後に1枚が残る。
これはどうすればいいの?
その後の例では一枚ずつ取ってるように見えて。
608デフォルトの名無しさん:2009/01/10(土) 22:39:43
ああ!ごめんよみまちがえてた><
はあく。
609デフォルトの名無しさん:2009/01/10(土) 22:40:41
>>589
"コンピュータプラクティス"でググった結果からみたところ、
東洋大学工学部情報工学科
コンピュータ・プラクティスIIIのカード取りゲームの課題か。(・∀・)ニヤニヤ
610デフォルトの名無しさん:2009/01/10(土) 22:44:30
nが奇数の時って先手必勝なのだろうか
611デフォルトの名無しさん:2009/01/10(土) 22:44:42
必勝じゃない
612デフォルトの名無しさん:2009/01/10(土) 22:46:39
>>609
一年の時に仮面浪人して失敗して、プログラムさっぱりw
春休み辺りでまとめて勉強するつもりです
613デフォルトの名無しさん:2009/01/10(土) 22:47:13
>>612
なんで冬休みにまとめて勉強しなかったの?
614#:2009/01/10(土) 22:47:53
[1] 授業単元:アルゴリズムとデータ構造1
[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] その他の制限:特になし

宜しくお願いします。

615585 ◆i9Dvbn/Lf6 :2009/01/10(土) 22:50:17
[1] 授業単元:Cプログラミング
[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日まで]
616デフォルトの名無しさん:2009/01/10(土) 22:50:41
>>612
期末テストの勉強で忙しかったです
617nyao:2009/01/10(土) 23:33:21
すいません!
>>373をどなたかお願いします!
618デフォルトの名無しさん:2009/01/11(日) 00:00:11
>>617
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8601.cpp

適当だけど。少しは他人に見やすいソースを書くように、自分でもがんばろうね。
619デフォルトの名無しさん:2009/01/11(日) 00:13:54
>>589
さっぱりわからねーな
#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;
}
620デフォルトの名無しさん:2009/01/11(日) 00:36:52
>>619
やばすぎw
621デフォルトの名無しさん:2009/01/11(日) 00:48:09
>>610
右端(or左端)と、それと最後に残る数以外の偶数番目と奇数番目合計の差との大小によってきまる。
622デフォルトの名無しさん:2009/01/11(日) 01:19:26
>>621
>>610
後手が例の戦略を取るかぎり、最後に何を残すかは先手が選べる(確かめてないけど多分どれでもOK)
ということは後手は負けそうなら例の戦略をとらなくなるので、そうすると配列依存になる
つまり、奇数の時は必勝戦略は存在しない

こうなるのかな?意外に深いゲームなのかもしれん
623デフォルトの名無しさん:2009/01/11(日) 01:22:07
問題文の必勝戦略は通用しないだろうが先手必勝かどうかは別の話だな
624デフォルトの名無しさん:2009/01/11(日) 01:23:34
メイン関数以外で、コマンドラインの引数をとりたいです。
ARGV[1] ARGV[2]をmain以外でファイル名を受け取りたいということです。

グローバルでchar*を宣言して、mainでそのARGV[1]のアドレスを取っておけばよい?
問題はありますか?
625デフォルトの名無しさん:2009/01/11(日) 01:24:44
>>619
ありがとうございます!ですが、先生にメールで聞いたところ
ユーザが全体のカードの枚数n(偶数になるように指定)とそのカードの書かれた数を被らないように繰り返し文使って標準入力させた上で、
奇数のカードの数の合計と偶数のカードの合計をだしてから、両方の合計を比べて、奇数が多いなら先手が奇数を引くように、というか先手という変数に奇数の数の合計を代入させる。
偶数なら先手が偶数のカードをひくようにして、偶数のカードの数の合計を先手という名の変数に代入する
最後に、先手=奇数か偶数の多い方の合計の点数
後手=少ないほうの
で、先手の勝ち。と画面出力
とやれと来ました……。引き分けの方はルールに従って列の端と端を比べて、大きい方をとっていけば勝てるので、
端と端を比べて大きい方を先手に代入、小さいを後手に代入して同じように先手(変数)と後手(変数)に計算結果を代入して、
さっきと同じように画面に出力するみたいです
で、多分自分なりにまとめると
カードの枚数=n(必ず偶数)
カードの数:
一枚目の数=ユーザがキーボードから入れた数値
二枚目の数=ユーザ(ry(どのカードの数とも必ず異なる数を入れさせるように指定)

n枚目の数=(ry
先手=奇数or偶数の多いほうの合計点数
後手=少ない方の数
判定
先手or後手の勝ち
というように結果を出せばいいようです
とりあえず先生のヒントを個人的にまとめてみたんですが……これでなんとかなりますか?
626デフォルトの名無しさん:2009/01/11(日) 01:30:48
あ、ちなみにn=奇数のときは自分で考えろだそうです
なので、まず偶数のパターンからなんとかしてやってください。
627nyao:2009/01/11(日) 01:31:57
>>618
ありがとうございました!
628デフォルトの名無しさん:2009/01/11(日) 01:35:17
>>615
二重振り子の図がどっかにあるだろ
あと、わざわざエネルギー保存がどうこう書いてあるってことは、
シンプレックス積分でも使うのか?
速攻で落ちるvipロダを選ぶ理由も全く分からん
629デフォルトの名無しさん:2009/01/11(日) 02:42:15
>>557
ありがとうございました。
630デフォルトの名無しさん:2009/01/11(日) 04:20:47
>>553
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8602.txt
┌─┬─┐
├┬┴┬┤
│├─┤│
└┴─┴┘
┌─┬┬┐
├┬┤││
││├┴┤
└┴┴─┘
┌┬─┬┐
│├─┤│
├┴┬┴┤
└─┴─┘
┌┬┬─┐
││├┬┤
├┴┤││
└─┴┴┘
631学生:2009/01/11(日) 10:03:46
1] 授業単元: Cプログラミング
[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 などを習いました。

よろしくお願いします。
632デフォルトの名無しさん:2009/01/11(日) 10:13:14
>>625
そもそも、扱う数値が自然数全体とかどうなのよ
633デフォルトの名無しさん:2009/01/11(日) 10:13:39
char s[5000];
int 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');
}
634デフォルトの名無しさん:2009/01/11(日) 10:18:23
何か最近、変なのが紛れ込んでいるねw
635デフォルトの名無しさん:2009/01/11(日) 10:21:13
>>634
636学生:2009/01/11(日) 10:22:35
>>633さん

すばやい返信ありがとうございます。
しかし、fputs stdout putchar を習っていないためそれらを使わないでプログラムを作成することは可能でしょうか??
637デフォルトの名無しさん:2009/01/11(日) 10:25:11
>>635 = 変なの と自分で認めたメガネピッツァ
638デフォルトの名無しさん:2009/01/11(日) 10:25:52
scanf("%4999s", s);  きんもぉ〜〜
しかも、これ、結局(ry
639デフォルトの名無しさん:2009/01/11(日) 10:34:37
scanfでも悪くないが、空白は無視されるんで、あしからず
640デフォルトの名無しさん:2009/01/11(日) 10:48:28
>>631
お前が習ったものを全部挙げろ

> [3.3] include<stdio.h>
>    main()
>{
>ではじめてください。
これだとコンパイルできないけどそれでもいいのか?
641デフォルトの名無しさん:2009/01/11(日) 10:49:58
>>632
あれはどうも自然数全体じゃなくて、要は小数点と分数以外の数える数を使ってって意味みたいですよ。
例えば
n=3なら
5,16,3
てな感じで。
だから、分数と小数以外で、かつ変な文字を使わない普通の数値を入れてってことみたいです。
だから変に考えないで、普通の整数だけ使えばいいかと
642デフォルトの名無しさん:2009/01/11(日) 11:00:11
>>641
プログラムを書くには、扱う数の範囲は重要だよ
643デフォルトの名無しさん:2009/01/11(日) 11:38:22
#include <stdio.h>
int 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で割り切れるとでないのですが
なぜですか?
644デフォルトの名無しさん:2009/01/11(日) 11:40:03
>>643
i-- が二箇所にあるから
645デフォルトの名無しさん:2009/01/11(日) 11:40:58
>>644
あっ
さんきゅ
646デフォルトの名無しさん:2009/01/11(日) 12:10:25
>>642
範囲って言うと
異なる正の数とかそういう表現ならなんとかなったってことですか?
647デフォルトの名無しさん:2009/01/11(日) 12:12:22
>>646
最大値、最小値の問題じゃないかな?
総和が long の範囲内で収まるかどうか
648デフォルトの名無しさん:2009/01/11(日) 12:36:40
[2]
逆ポーランド記法で(正しく)書かれた式が入力として与えられた時、その式を評価した値を出力する、実際に動作するプログラムをC言語で作成せよ。
そのうえで、この問題を解くためのアルゴリズムの説明も書け。
[3]
 [3.1] Windows
 [3.3] C
[4] 1月13日正午

※データ構造として必ずスタックを使って実現させてください

よろしくお願いします。
649デフォルトの名無しさん:2009/01/11(日) 12:40:53
>>647
そういわれると、確に1〜∞じゃ普通にきついですよね…


周りは適当に、一年の時に習う配列の問題みたいに好きな数をポンポン入れて出来たーなんて言ってたから、そんな感じに出来ると思ってたけど、こんなに難しかったのか……orz
650学生:2009/01/11(日) 12:59:18
1] 授業単元: Cプログラミング
[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 などを習いました。

よろしくお願いします。
651デフォルトの名無しさん:2009/01/11(日) 13:01:27
おいwwww
652デフォルトの名無しさん:2009/01/11(日) 13:02:46
#include <stdio.h>
int 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の条件式って
どうゆう意味の判定ですか?
653デフォルトの名無しさん:2009/01/11(日) 13:04:58
>>652
文字列の終わりまでループする
654デフォルトの名無しさん:2009/01/11(日) 13:08:01
鏡を見るとさ、ちょ〜〜〜イケメソな面が映るわけよ。
これ、誰なんだろうなぁ〜って長年、思っていたけど、よく考えたらそれ、
俺じゃ〜〜ん。道理で、女性からチラチラ見られたわけだ。
よく注目されて、あれ?俺なんか変なことしたかな?って思っていたけど、
なんだ、見とれていたのかw
655デフォルトの名無しさん:2009/01/11(日) 13:23:18
>>650
表示の仕方は何も習ってないわけか
無理だな
656デフォルトの名無しさん:2009/01/11(日) 13:24:07
入力もできないじゃないか
657デフォルトの名無しさん:2009/01/11(日) 13:25:38
入力といっても、別にキーボードを打って文字を記入する以外に、
プログラムは何かデータを受け付ける手段はあるわけで。屁理屈すまそw
658デフォルトの名無しさん:2009/01/11(日) 13:26:21
sumなんて予約語か関数あったっけ
659585 ◆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ロダを選ぶ理由も全く分からん
他に長持ちするロダを知らないので
660A:2009/01/11(日) 13:30:23
>>650
#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;
}
661デフォルトの名無しさん:2009/01/11(日) 13:32:43
>>657
>>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;
}

662デフォルトの名無しさん:2009/01/11(日) 13:36:50
>>661
つ コピペ
つ リダイレクト
つ 内部でファイルなどを指定する
まぁ、それらも習っていなければそれまでだがw
663デフォルトの名無しさん:2009/01/11(日) 13:39:36
>>662
コピペとかリダイレクトとか関係なくね?
664デフォルトの名無しさん:2009/01/11(日) 13:41:29
>>662
それにしても>>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;
}
665565:2009/01/11(日) 13:44:47
>>575
ありがとうございます
いろいろ書き方が悪くて申し訳ないです
666デフォルトの名無しさん:2009/01/11(日) 15:16:01
[1] 授業単元:C
[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]配列を使う

どなたかよろしくお願いします
667デフォルトの名無しさん:2009/01/11(日) 15:29:57
[1] 授業単元: プログラミング言語V
[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日

よろしくお願いいたします。
668デフォルトの名無しさん:2009/01/11(日) 16:00:57
>>667
char *pstr;

pstr = malloc(100);
sprintf(pstr,"123");
free(pstr);          /*ここにfree()*/
pstr=malloc(10);
sprintf(pstr,"456");
free(pstr);
669デフォルトの名無しさん:2009/01/11(日) 16:10:03
>>667
ひでえ問題だ。
670デフォルトの名無しさん:2009/01/11(日) 16:11:08
>>667
char *pstr;

goto skip_label
pstr = malloc(100);
sprintf(pstr,"123");
pstr=malloc(10);
sprintf(pstr,"456");
free(pstr);
skip_label:
671デフォルトの名無しさん:2009/01/11(日) 16:11:41
セミコロン忘れたorz
672667:2009/01/11(日) 16:14:48
どうもありがとうございます。
673デフォルトの名無しさん:2009/01/11(日) 16:16:45
>>667
pstrを使う何らかの処理だろJK
674デフォルトの名無しさん:2009/01/11(日) 16:17:36
[1] プログラミング言語 c
[2]
Q1
現在の地域時間から15時間後の日時を表示するプログラムを作成せよ。
表示形式は時間が表示されれば自由とします。


Q2
以下の問いに○×で答えよ。
1.複数のソースファイルによりプログラムを作成するとき、機能や目的ごとに
ソースファイルを分割すると、長いソースと短いソースファイルができてしまうので
均等になるように作成したほうがよい。

2.プログラムを機能分割して考えるときコンピュータの話なので、プログラミングに
都合のいいように機能を考え、ユーザの業務内容を無視してもよい。

[3] 環境
 [3.1] OS: Windows xp
 [3.3] 言語: C
[4] 期限: 1月17日

よろしくお願いいたします。
675デフォルトの名無しさん:2009/01/11(日) 16:19:26
>>674
Q2
1.×
2.○ ベストプラクティスとか言っとけば、ありがたがる。
676デフォルトの名無しさん:2009/01/11(日) 16:24:20
>>674
Q1
#include<stdio.h>
#include<time.h>

int main(void){
time_t t;

t=time(NULL)+15*60*60;
puts(asctime(localtime(&t)));

return 0;
}
677デフォルトの名無しさん:2009/01/11(日) 16:59:16
>>674
#include <stdio.h>
#include <time.h>
int main(void) {
time_t t;
t=time(0);
t+=15*3600;
printf("%s",ctime(&t));
return 0;
}
678学生:2009/01/11(日) 18:52:26
たくさんの方々

色々とすいませんでした。
どうもありがとうございました。
679デフォルトの名無しさん:2009/01/11(日) 19:16:24
#include <stdio.h>
int 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;
}

間違ってるとこ教えてください。
680デフォルトの名無しさん:2009/01/11(日) 19:24:15
scanf("%f", &data2);

scanf("%lf", &data2);
681デフォルトの名無しさん:2009/01/11(日) 19:26:06
>>680
あざす。
682デフォルトの名無しさん:2009/01/11(日) 21:30:56
[1] 授業単元:C言語
[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通りのものを知りたいです。
よろしくお願いします。
683デフォルトの名無しさん:2009/01/11(日) 22:07:31
[1] 授業単元: プログラミング実習2
[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] その他の制限: 値渡し、参照渡しは習いました。
宜しくお願いします。
684デフォルトの名無しさん:2009/01/11(日) 22:16:11
配列の大きさはどうすんの?
685デフォルトの名無しさん:2009/01/11(日) 22:19:09
> int max(int a[ ]);
ちょっwwwwwwwwおまっwwwwwwwww
686デフォルトの名無しさん:2009/01/11(日) 22:20:53
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単な関数でお願いします
687デフォルトの名無しさん:2009/01/11(日) 22:37:01
>>686
もとからバグってるとかないだろ。
原文でよこせ
688デフォルトの名無しさん:2009/01/11(日) 22:40:23
>>686
do{
printf("入力して下さい\n");
scanf("%d",&n);
}while(n<0);
689デフォルトの名無しさん:2009/01/11(日) 22:42:46
>>688
こんなじゃね?
#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;
}
690585 ◆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日まで]
691デフォルトの名無しさん:2009/01/12(月) 00:30:43
>>690
数式みると拒否反応が出る
現役の時でも怪しかったというのに今となってはどうにもならんw
692674:2009/01/12(月) 00:41:03
>>675>>676>>677

ありがとうございます。
693675:2009/01/12(月) 00:44:18
>>692
待て!
694デフォルトの名無しさん:2009/01/12(月) 00:51:01
>>693
自分でまいた種だw
695デフォルトの名無しさん:2009/01/12(月) 00:53:07
>>690
ぶっちゃけ式も読めない。
3枚目の1も2も付いてないΦは何の角度?
696デフォルトの名無しさん:2009/01/12(月) 00:59:31
>>695
二枚目の式に対して三枚目の近似を適用した結果だから…
どうなるんだろう
紙に書かないとわからんw
697sage:2009/01/12(月) 00:59:35
[1] 授業単元: c言語
[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
698デフォルトの名無しさん:2009/01/12(月) 01:01:56
>>686
2回連続で負の数が入力されたら終了ってことでいいんだよな?

#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;
}
699デフォルトの名無しさん:2009/01/12(月) 01:02:02
ほんとに3枚目の式合ってるんかな。
もしくは情報不足か
700585 ◆i9Dvbn/Lf6 :2009/01/12(月) 01:16:14
とにかくさっぱりわからないので、少しでもお願いします
これで最後なんです
701デフォルトの名無しさん:2009/01/12(月) 01:33:22
[1] 授業単元: c言語
[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] その他の制限:特になし

よろしくお願いします。

702デフォルトの名無しさん:2009/01/12(月) 01:47:26
>>697 1問目 枝狩りしてないので n=100 (190569292 通り) くらいが限界。ついでにすぐに計算結果が long を超える
#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;
}
703デフォルトの名無しさん:2009/01/12(月) 02:02:34
>>697 3問目
#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;
}
704703:2009/01/12(月) 02:04:19
>>703 は無しで^^;
705デフォルトの名無しさん:2009/01/12(月) 02:13:30
>>695
プログラム無知の数学科出身のおれの意見を書かせてくれ
おそらく二重振り子の原理はφ_1の角度にある玉が原点方向に向かって振れる運動と
φ_2の角度にある玉が原点方向に振れる運動で初期の角度に大きな違いがある
なので一枚目の画像の青い玉の連結が連立微分方程式において重要な役割を得る
が、しかしもしΔφ=φ_1-φ_2=φ≒0ならば、青い玉の部分を考えず(二重振り子にならない)
φ_1≒φ_2になるので考える振り子の運動方程式は直線OQの単振り子のそれに近似できる
φはΔφの限りなく0に近い値のことを指していると思われる
706デフォルトの名無しさん:2009/01/12(月) 02:14:28
今後、宿題に答えてもらうには、一問1,000円の課金にしない?
707703:2009/01/12(月) 02:17:30
>>697 3問目
#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;
}
708703:2009/01/12(月) 02:31:05
>>707 は S=0 R=X Q=0 --> Q'=0 になっちまうけど
X 出すべきかな?www
709不完全なソース:2009/01/12(月) 03:11:21
>>682
頭に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が頭につく数を考慮しなきゃダメそうだね
710デフォルトの名無しさん:2009/01/12(月) 04:01:02
>>697 2問目
#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;
}
711デフォルトの名無しさん:2009/01/12(月) 04:40:23
>>701 以下、2問目の解答。main内のwhileの行と不要な関数を消せば1問目になるよ。
#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;
}
712デフォルトの名無しさん:2009/01/12(月) 06:01:16
>>711
不要な関数とはどれのことですか?
713デフォルトの名無しさん:2009/01/12(月) 06:40:22
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単な関数でお願いします

714デフォルトの名無しさん:2009/01/12(月) 08:47:46
>>648
お願いします
715デフォルトの名無しさん:2009/01/12(月) 09:06:40
[1] 授業単元:プログラミング
[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] その他の制限:ヒントを参考に作成して下さい

よろしくお願いします
716デフォルトの名無しさん:2009/01/12(月) 09:55:21
>>695
クソすぎる
そのφはφ_2のTypoだしD'とかいらないし
氏ねばいいのに
717デフォルトの名無しさん:2009/01/12(月) 10:26:10
718デフォルトの名無しさん:2009/01/12(月) 10:36:54
719デフォルトの名無しさん:2009/01/12(月) 11:06:48
>>709
おっしゃるとおり、0の場合も考えないといけないんです・・・
どうもintでやると先頭0だと0が消えちゃうのでintは無理なんでしょうか?
720デフォルトの名無しさん:2009/01/12(月) 11:12:03
>>715
#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;
}
721デフォルトの名無しさん: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;
}
の処理は何を表しているのでしょうか?

後アルゴリズムがいまいちプログラムから読み取ることができないので簡単に説明していただけると助かるのですが・・・

自分で考えても思いつかなくて。
722デフォルトの名無しさん:2009/01/12(月) 11:27:42
>>719
入力が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;
}
723デフォルトの名無しさん:2009/01/12(月) 11:32:28
>>682
#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;
}
724デフォルトの名無しさん:2009/01/12(月) 11:34:16
どなたか>>666をお願いできませんでしょうか
725デフォルトの名無しさん:2009/01/12(月) 11:54:35
>>721
二つ目以降の数字についてはすでに使用した数字以下の数字を使うことで
順列を並べ替えたものを除外しています。そのために引数 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)
になります

仮定を証明するのは自分でどうぞ
726デフォルトの名無しさん:2009/01/12(月) 14:05:36
727585 ◆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日まで]

さっぱりわからないので少しだけでもお願いします
728デフォルトの名無しさん:2009/01/12(月) 14:27:11
>>666
問1
出遅れたけど、せっかく作ったから
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8616.txt

問2は実行結果の何がどう間違っているかを教えてくれると解が早いんだけど。
729デフォルトの名無しさん:2009/01/12(月) 14:40:41
>>726>>728
助かりました本当にありがとうございます。

>>728
失礼しました

実行結果が

総文字数:296
単語数:83
行数:16

となるのが正しいのですが、
自分が作ったものでは

総文字数 :315
単語数 :87
行数 :20

と、異なった結果が出てしまいます。
730デフォルトの名無しさん:2009/01/12(月) 14:56:03
>>729
>>666 を見る限り、「文章の終端」 == 「空行が2つ連続」としているから、
char word[][50] の最後にもう一つ空行を入れてやればそのコードで正しく動く。
731デフォルトの名無しさん:2009/01/12(月) 15:13:49
>>730
分かりました、ありがとうございます。
助かりました
732デフォルトの名無しさん:2009/01/12(月) 15:25:47
初めまして、今Cを勉強してて。
問題文というか、ポインタと構造体が理解できなくて苦しんでいます。

http://codepad.org/H4wmHhPj
このようなプログラムを組んだのですが。

mainでのAA[0]、AA[1]の値が、関数に行くとmainのAA[0]がAA[1]に入ってしまいます。
全く原因が分からず苦戦してます。
もしよろしければご教授願います。

やりたいこととしては32bit×32bit=64bitの桁あふれを解消するということです。
733デフォルトの名無しさん:2009/01/12(月) 15:27:06
>>732
スレ違い
帰れ
734デフォルトの名無しさん:2009/01/12(月) 15:32:17
>>733さん
一応課題なのでこのスレに来たのですが・・・
期限は明日です・・・
735デフォルトの名無しさん:2009/01/12(月) 15:36:20
>>732
ああもうマルチうざい
これやるから帰れ
http://codepad.org/GIUMvCMC
736デフォルトの名無しさん:2009/01/12(月) 15:39:18
>>734
死ね。
737デフォルトの名無しさん:2009/01/12(月) 15:39:59
>>735さん
有難うございます。
すぐに出来るってすごいですね・・・

多倍長やるのに構造体って必要ないんですか?
738デフォルトの名無しさん:2009/01/12(月) 15:43:24
>>736
やっ、やめて下さい、殺さないで下さい、通報しますよ?
739デフォルトの名無しさん:2009/01/12(月) 15:54:39
>>722
ありがとうございます
やはり配列使うしかないのでしょうか・・・
>>723
できるのですが、残念ながらbuffや、stdin,breakは習ってないのです。ごめんなさい。
740デフォルトの名無しさん:2009/01/12(月) 16:19:09
>>1
>・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
741デフォルトの名無しさん:2009/01/12(月) 16:22:30
>>739
>>722でダメなのか?
742デフォルトの名無しさん:2009/01/12(月) 17:15:20
>>741
>>709は何故か7桁でも警告文がでて
>>722は7桁以下でも警告文でなくてそのまま出力しちゃうんですよね

int型で最初に0が来た場合〜ってのはできましたっけ?配列のみ?
743デフォルトの名無しさん:2009/01/12(月) 17:33:58
あー、ごめんなさい。
ifのところちょっと変えてみたら問題ありませんでした。
>>709は先頭0の7桁のときがダメで
>>722は7桁以下でも出力してしまうんです
744デフォルトの名無しさん:2009/01/12(月) 17:54:11
>>743
解決したのか?
745デフォルトの名無しさん:2009/01/12(月) 18:07:06
>>744
してないです
色々いじってみてるんですがやっぱりできないorz
746デフォルトの名無しさん:2009/01/12(月) 18:12:49
>>745
数値としての大きさじゃなくて、
ゼロパディング必須で入力しなければはじけってことね。
scanfはあきらめて、getcharでエンターまでの桁数を数えるしか・・・
747715:2009/01/12(月) 18:22:23
>>718>>720
ありがとうございました
748722:2009/01/12(月) 18:31:36
>>746
でもそれやると、配列を使わないってのがほとんど意味がなくなる気がするんだよね。
配列使わずに作ったとしても、>>723みたいな感じになるなら
配列使ったほうが自然だし。

俺にはほかの方法思いつかんかった。
749デフォルトの名無しさん:2009/01/12(月) 18:35:37
>>748
一文字入れるごとに、数値に換算してしまえばいい。
a=a*10+bみたいに。
結果、七文字丁度の入力でなければ、これもはじいてしまえば?
750デフォルトの名無しさん:2009/01/12(月) 19:45:14
[1] 授業単元:科学実習@
[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の時は、数式がおかしくなるって言われた。修正お願いします。
751デフォルトの名無しさん:2009/01/12(月) 19:46:26
↑一応上の期間は延長されてます。
752デフォルトの名無しさん:2009/01/12(月) 19:48:43
>>750
数式がおかしくなるって意味わかるよね
なら、お前の首の上についているものを使えよw
753デフォルトの名無しさん:2009/01/12(月) 19:50:48
>>750
printf("Σ[i=1,%d](i x i) = %d\n", N, sum);
754デフォルトの名無しさん:2009/01/12(月) 19:54:34
>>749
こんなでどうだろう?
#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;
}
755デフォルトの名無しさん:2009/01/12(月) 21:32:34
breakは使ってはいけないという指示が出てるらしい
whileの中で文字数と数字の確認をしてreturnするしかない
756デフォルトの名無しさん:2009/01/12(月) 21:33:39
>>755
goto でも入れちまえ
757デフォルトの名無しさん:2009/01/12(月) 21:39:04
>>756
#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;
}
758デフォルトの名無しさん:2009/01/12(月) 21:44:10
あ〜〜うぜぇ〜なぁ、うpロダの使い方も知らない奴って知能レベルが低いのか?
759デフォルトの名無しさん:2009/01/12(月) 21:48:50
あ〜〜うぜぇ〜なぁ、見たくなきゃ見なきゃいいのに
そんな自己判断もできないクズがいるのか?
760デフォルトの名無しさん:2009/01/12(月) 21:55:11
>>755
#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;
}
761デフォルトの名無しさん:2009/01/12(月) 22:14:55
おお!できました!
手伝ってくださった方々本当にありがとうございました。
762デフォルトの名無しさん:2009/01/12(月) 22:27:51
[1] 授業単元:プログラミングT
[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
             別のアップローダー利用ですみません

宜しくお願いします
  
763デフォルトの名無しさん:2009/01/12(月) 22:33:09
>>762
#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;
}
764585 ◆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日まで]

さっぱりわからないので少しだけでもお願いします
765デフォルトの名無しさん:2009/01/12(月) 22:36:54
こんなにもお早い回答ありがとうございます!
助かりました
766765:2009/01/12(月) 22:37:53
う 765は>>763にあてたレスです 失礼;
767デフォルトの名無しさん:2009/01/12(月) 22:40:08
>>764
これ、三枚目の式はあってんの?
768デフォルトの名無しさん:2009/01/12(月) 22:42:48
>>764
しつこいな
いくつか疑問挙げられてるんだから、まずそっち解答しない限りまともに解答でないと思うよ。
769デフォルトの名無しさん:2009/01/12(月) 22:44:10
>>759
汚いソースを書いて出すバカ乙w きめぇ
770デフォルトの名無しさん:2009/01/12(月) 22:45:23
>>768
あ〜〜うぜぇ〜なぁ、見たくなきゃ見なきゃいいのに
そんな自己判断もできないクズがいるのか?

>>759
他にも質問者、回答者がいるし、嫌でも書き込まれれば目につくんだが
配慮のない、自己中な奴って自業自得で引きこもっちゃったんだよねw
771デフォルトの名無しさん:2009/01/12(月) 22:47:36
>>770
あ〜〜うぜぇ〜なぁ、見たくなきゃ見なきゃいいのに
そんな自己判断もできないクズがいるのか?

>>770
他にも質問者、回答者がいるし、嫌でも書き込まれれば目につくんだが
配慮のない、自己中な奴って自業自得で引きこもっちゃったんだよねw
772デフォルトの名無しさん:2009/01/12(月) 23:26:33
オウム信者か
773デフォルトの名無しさん:2009/01/12(月) 23:48:25
[1] 授業単元:データ構造とアルゴリズム
[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] その他の制限: 特になし
よろしくおねがいします。
774デフォルトの名無しさん:2009/01/12(月) 23:52:03
[1] 授業単元:プログラミング
[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] その他の制限:特に無いです。

よろしくお願いします。
775デフォルトの名無しさん:2009/01/12(月) 23:52:38
>>771は自分の言葉で相手に言い返せない基地外バカ
以後放置よろ。要するに、周りが見えず、うpロダも使えないヘタレPC、C言語初心者
恐らく、過去にここで世話になったせいか、恩返しのつもりでやっているんだろうけど
かなり迷惑。
776デフォルトの名無しさん:2009/01/13(火) 00:05:39
[1] 授業単元:Cプログラミング
[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] その他の制限:無し

専用ロダ使ってなくてすいません
どんな形のプログラムでもいいのでどなたかよろしくお願いします
777デフォルトの名無しさん:2009/01/13(火) 00:11:33
>>776
Rがない
あとこれ手で式解いちゃってもいいの?
778デフォルトの名無しさん:2009/01/13(火) 00:16:13
    じゃあラーメンタイマーの仕様定義するからよろです。

    ・ラーメンの待ち時間の長さ&商品によって異なる味の変化をデータベース化
     例:商品Aでは4分で「麺のふにゃふにゃ感が芽生えはじめる」
       というような情報に基づき柔軟に味を調節可能
     データベースは、ある設定でラーメンが出来たら、感想フォームを表示、
     ここに感想を入力していくことでオリジナルのデータベースが出来あがっていくという仕組み。
     さらに、TCP/IP通信でこのデータベース情報を交換できる。

    ・ラーメンが出来るまでの時間をミニ格闘対戦ゲームで潰せる「時間があっというまに経つね」機能
     TCP/IP通信で、ロビーをデディケートサーバーで提供できるような感じで。

    ・ラーメン作成回数・日時・商品情報から、ラーメンにおける摂取カロリー計算や
     嗜好分析などを行える統計機能つき。
     この統計から、「おすすめの新作カップメン」みたいな情報も表示できる。

    タイムリミットは明日の6時までに適当なアプロダで、GPLで。

779585 ◆i9Dvbn/Lf6 :2009/01/13(火) 00:18:58
>>767
3枚目の式はあってる筈です。

>>695
ちょっとわかりません、スイマセン
780デフォルトの名無しさん:2009/01/13(火) 00:22:05
>>777
すいません不足がありました。R=0の場合とR=20の場合をそれぞれ考えるという問題です
手で式を解いてもかまわないです
781デフォルトの名無しさん:2009/01/13(火) 00:22:11
>>779
1も2も付いてないΦは、何の角度?
782デフォルトの名無しさん:2009/01/13(火) 00:23:32
>>779
ああ、わかんないってか。
それで式が合ってるかどうかも、分かんないと・・・
783780:2009/01/13(火) 00:24:56
R=0の場合とR=20の場合ではなくてR=0の場合とR=0.2の場合でしたすいません
784585 ◆i9Dvbn/Lf6 :2009/01/13(火) 01:12:09
>>781
たぶん2枚目の左下で
Δついてるやつのことだと思うんですけど
785デフォルトの名無しさん:2009/01/13(火) 01:17:38
[1] 授業単元: C言語入門
[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] その他の制限:定数部分が何を表しているかの説明は省略してはいけない


まったく分かりません・・・「**」なんて演算子あるんですか?
786デフォルトの名無しさん:2009/01/13(火) 01:21:46
>>785
リテラルの書き換えをするなんて!
char p[]="000"; もしくは
char buf[]="000", *p=buf; ならおk
787デフォルトの名無しさん:2009/01/13(火) 01:24:55
>>785
p[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)、つか
全く標準的とは思えないし、九九じゃなくて平方?自乗?
788デフォルトの名無しさん:2009/01/13(火) 01:32:09
>>785
p[1] は *(p + 1) と同じ。
→ 足し算だからpと1を入れ替えてもよくね?
→ p[1] = *(p + 1) = *(1 + p) = 1[p]
789デフォルトの名無しさん:2009/01/13(火) 01:43:50
>>786
これそのまま写したんですけど、なんかやばい奴なんですか?

>>787
そう書かれたら一気に分かりました!**は演算子じゃなかったんですね!
あと、
除算してcharにする→切り捨てられるから、十の位の数字だけを出す
剰余→10で割った余り→一の位
でいいんですか?

>>788
なるほど!
何も考えずに写して、p[1]とかの書き方したしたことがなかったんで意味不明だったんですが、理解できました!
790デフォルトの名無しさん:2009/01/13(火) 02:02:52
>(*p**p - 96**p + 2304) / 10 + 48
>(*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]とかの書き方が可能なのは知ってたけど
実際に使われているのははじめてみた
791デフォルトの名無しさん:2009/01/13(火) 02:05:38
訂正

×
10で割ると自乗の1桁目、
10で剰余をとると自乗の2桁目が得られ


10で割ると自乗の2桁目、
10で剰余をとると自乗の1桁目が得られ
792デフォルトの名無しさん:2009/01/13(火) 02:08:27
>>790
ありがとうございます!
C言語の入門書とかを見ても載ってなかったので、困ってました。。
こういうのって大学でしか使わない書き方なんですか?
先生は、こういうのが瞬時に分かったら優秀なプログラマだ、とか言ってましたが・・・
793デフォルトの名無しさん:2009/01/13(火) 02:15:48
>>773
「連結成分に分離する」って何すること?
794デフォルトの名無しさん:2009/01/13(火) 02:19:28
>>793
横からだけど、例1だったら
1-2-4-5-6と3に分解することじゃないの?
795デフォルトの名無しさん:2009/01/13(火) 02:36:15
>>792
優秀なプログラマだったらこれを見て瞬時に分かるかもしれませんが
これを見て瞬時に分かる人が優秀なプログラマなわけではありません

というかこんな糞コードはなかなかお目にかかれないし
当然優秀な人はこんなの書きません
796デフォルトの名無しさん:2009/01/13(火) 05:10:04
>>773
課題2はやってないです。
拡張子が化けてしまったけど、*.tar.gzでお願いします。
ついでに、講義で用いてる参考書を教えてください(今後の参考のため)。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8619.zip
797デフォルトの名無しさん:2009/01/13(火) 06:24:17
[1] 授業単元:アプリケーションプログラム
[2] 問題文:入力した3つの変数をスワップ(入れ替え)させて出力するプログラムを作りなさい
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:水曜まで
お願いします
798デフォルトの名無しさん:2009/01/13(火) 06:45:15
>>797
何を入力するのか
言語はなんなのか
799デフォルトの名無しさん:2009/01/13(火) 09:33:01
>>797
#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;
}
800デフォルトの名無しさん:2009/01/13(火) 09:38:21
gccって書いてあるじゃん。
801デフォルトの名無しさん:2009/01/13(火) 10:45:52
>>785
ずいぶん昔の、読みにくいコードが「偉い」みたいな頃の産物だな。
実際の仕事でこんなコード書いたらリストラの対象になるので真似しないようにな。
802デフォルトの名無しさん:2009/01/13(火) 13:35:38
>>800
???
803デフォルトの名無しさん:2009/01/13(火) 13:38:26
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク): 簡単なオセロやロールプレイングなどの簡単なゲーム。
[3] 環境
 [3.1] OS: windows Vista HomeEdition
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語: C言語
[4] 期限: 水曜日の夜11時30分まで
[5] その他の制限: 関数、ポインタ、配列構造体等まで
804デフォルトの名無しさん:2009/01/13(火) 14:01:12
>>803
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
srand((unsigned int)time(NULL));
printf("you %s\n", rand() % 2? "won": "lost");
return 0;
}
805デフォルトの名無しさん:2009/01/13(火) 14:02:26
806デフォルトの名無しさん:2009/01/13(火) 14:17:20
要素の数が40の文字型配列 str1, str2, str3 を、初期化なしで
宣言する。その後、str1に"Let's"を、str2に"study"を、str3に
"programming."を代入し、これらの文字をつなげて出力する
プログラムを、strcat関数を使わない場合と使った場合の
2種類作りなさい。

お願いします。
807デフォルトの名無しさん:2009/01/13(火) 14:20:41
gccだからfortranなのかな
は、いいとして、gccてGNU C Compiler の略じゃないよ?
808デフォルトの名無しさん:2009/01/13(火) 14:23:07
>>806
strcat()を使わない場合
#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;
}
809デフォルトの名無しさん:2009/01/13(火) 14:25:11
こんにちは、初めまして。
次の問題が分かりません。どなたか分かる方がいましたら、宜しくお願い致します

1~12(月)の数字を入力をうけたら、その月の日数(28~31)=日にち。を表示し、
それ以外の入力であれば、再度入力を求める。

このようなアルゴリズムをC言語を使った形で求めたいのですが、どうすればよいでしょうか?
分かる方、宜しくお願い致しますm(__)m
810デフォルトの名無しさん:2009/01/13(火) 14:25:28
811デフォルトの名無しさん:2009/01/13(火) 14:27:48
>>807
ググレカス
812デフォルトの名無しさん:2009/01/13(火) 14:33:06
>>808
ありがとうございます。

使う場合誰か教えてください。
813デフォルトの名無しさん:2009/01/13(火) 14:33:24
>>809
テンプレを読むべき
#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;
}
814デフォルトの名無しさん:2009/01/13(火) 14:36:50
>>813
ごめん、、、読まずに聞いてしまった

ありがとう
815デフォルトの名無しさん:2009/01/13(火) 15:25:37
>>812
#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;
}
816デフォルトの名無しさん:2009/01/13(火) 16:22:15
>>815
すげーありがとうございます
817A:2009/01/13(火) 16:42:32
>>809
scanf("%d",&m);
} while (!(1 <= m && m <= 12));

if (m==2) {
printf("閏年なら29,閏年でなく平年なら28");
} else

printf("%d\n", d[m - 1]);
818デフォルトの名無しさん:2009/01/13(火) 17:12:50
以下の4人のデータ群を効率的に処理するために、構造体を使ってプログラムを組みたい。
#####の箇所を埋め、実行せよ。

なお、本プログラムは、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)
819デフォルトの名無しさん:2009/01/13(火) 17:14:07
>>818の問題
#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値の計算
}
820デフォルトの名無しさん:2009/01/13(火) 17:33:46
>>818
#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);
}
821デフォルトの名無しさん:2009/01/13(火) 17:37:21
[1] 授業単元:アルゴリズム
[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程度です。
822デフォルトの名無しさん: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つの動作を実現するプログラムを########の箇所を埋め合わせて求め、実行せよ。
823デフォルトの名無しさん:2009/01/13(火) 17:39:19
>>822の続き
#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);
}
824デフォルトの名無しさん:2009/01/13(火) 18:01:13
>>821
#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;
}
825デフォルトの名無しさん:2009/01/13(火) 18:06:25
826デフォルトの名無しさん:2009/01/13(火) 18:08:28
827デフォルトの名無しさん:2009/01/13(火) 18:09:17
>>774
> [3.3] 言語:C言語

>>826
> 8622.cpp
828デフォルトの名無しさん:2009/01/13(火) 18:17:20
>>827
おぉう。中身はCなので拡張子を.cにしてください
829デフォルトの名無しさん:2009/01/13(火) 18:21:46
[1] 授業単元:プログラム演習
[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] 期限:木曜日まで
よろしくお願いします
830デフォルトの名無しさん: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);
}
831デフォルトの名無しさん:2009/01/13(火) 20:10:13
>>830
#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;
}
832デフォルトの名無しさん:2009/01/13(火) 20:16:56
本問題と同時に配布している 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つの動作を実現するプログラムを########の箇所を埋め合わせて求め、実行せよ。
833デフォルトの名無しさん:2009/01/13(火) 20:18:20
#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);
}
834デフォルトの名無しさん:2009/01/13(火) 20:22:33
>>832
いい加減、>>1くらい読めよ
835デフォルトの名無しさん:2009/01/13(火) 20:31:25
台形(少なくとも一組の対辺が互いに平行であるような図形)の面積を計算する関数
double daisuu(double jyotei, double katei, double takasa)
{
....
}
を作成し、プログラムを実行せよ。
上底(台数の上部の辺の長さ):jyotei
下底(台数の下部の辺の長さ):katei
台数の高さ(並行である対辺の距離):takasa
とする。

なお、「プロトタイプ宣言」に従ってプログラムを組むこと。

お願いします
836デフォルトの名無しさん:2009/01/13(火) 20:36:48
今日はテンプレを読めない人が多いね
837デフォルトの名無しさん: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] その他の制限: プロトタイプ宣言にて
838デフォルトの名無しさん:2009/01/13(火) 21:04:19
>>837
double daisuu(double jyoutei, double katei, double takasa)
{
return (jyoutei + katei) * takasa / 2;
}

int main(void)
{
daisuu(1, 2, 3);
return 0;
}
839デフォルトの名無しさん:2009/01/13(火) 21:26:45
>>834
いい加減、>>1くらい読めよ
840デフォルトの名無しさん: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] 期限:本日
841デフォルトの名無しさん:2009/01/13(火) 21:42:42
>>840
何が分かったというのか全然分からんwww
あとC++じゃなくてC言語みたい
842デフォルトの名無しさん:2009/01/13(火) 21:43:43
>>841
マジで・・・・orz

もしよかったら模範解答みたいのもらえないだろうか??
本当お願いだ
843デフォルトの名無しさん:2009/01/13(火) 21:52:17
>>840 間違いなく何もわかっていない
#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;
}
844デフォルトの名無しさん:2009/01/13(火) 21:57:02
>>843
すいません
1から出直します
845デフォルトの名無しさん:2009/01/13(火) 21:59:14
それを言うならすみません、だろ
846デフォルトの名無しさん:2009/01/13(火) 22:04:34
>>844
0 から始めてほしいもんだ
(配列的に)
847デフォルトの名無しさん:2009/01/13(火) 22:10:59
>>846
きもいな
848デフォルトの名無しさん:2009/01/13(火) 22:33:51
>>847
さもしいな
849デフォルトの名無しさん:2009/01/13(火) 22:54:47
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単な関数でお願いします
850デフォルトの名無しさん:2009/01/13(火) 22:58:18
>>849
具体的な例を示した方が良いよ。
> 数字の合計
連続していた場合はどうするの?例えば12と並んでいたら1と2に分けるのか
連続している場合は12とするとか?
851773:2009/01/13(火) 23:05:35
>>796
ありがとうございます。
講義で使っている本は茨木俊秀のCによるアルゴリズムとデータ構造という本です。

すいませんがどなたか課題2をお願いします。
852デフォルトの名無しさん:2009/01/13(火) 23:25:57
[1] 授業単元:C言語
[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] 配列まで習ったのですがどのように作れば良いのかわかりません。
  どなたか教えてください。
853デフォルトの名無しさん:2009/01/14(水) 00:01:29
【質問テンプレ】
[1] 授業単元:ソフトウェア演習
[2] 問題文(含コード&リンク): 指定されたデータファイルから都道府県名を読み込み,連結リストに格納した後に,キーボードから入力した文字列を探索し,該当する文字列があれば表示(無ければ無い旨を表示)するプログラムを作成せよ


[3] 環境
 [3.1] OS: Windows 
 [3.2] コンパイラ名とバージョン:ECLIPSE
 [3.3] 言語: (C )
[4] 期限: 明日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

よろしくです
854デフォルトの名無しさん:2009/01/14(水) 00:05:32
明日っていつだよ
コンパイラは何だよ
ファイルの形式は?中身は?
イライラする!消せ!
855デフォルトの名無しさん:2009/01/14(水) 00:23:30
>>852
なんとなく3桁から8桁のを列挙するようにしてみた
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8625.txt
856デフォルトの名無しさん:2009/01/14(水) 00:34:41
[1] C++
[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枚ずつちりばめさせたいのですが…。

期限が急ですみません
よろしくお願いします。
857デフォルトの名無しさん:2009/01/14(水) 00:35:02
>>803
#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;
}
858デフォルトの名無しさん:2009/01/14(水) 00:35:16
>>849
#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;
}
859デフォルトの名無しさん:2009/01/14(水) 00:39:18
while( 1 ) cout << "ぬるぽ" << endl;
860A:2009/01/14(水) 00:39:40
>>851 課題2 それぞれの頂点が連結している頂点を列挙するプログラムを作成せよ。
#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;
}
861デフォルトの名無しさん:2009/01/14(水) 00:39:40
がんばれ、エスパー達
頭痛くなってきたから寝る
862585 ◆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日まで]

さっぱりわからないので少しだけでもお願いします
863デフォルトの名無しさん:2009/01/14(水) 03:46:13
>>810-811
The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, and Ada
ググリマシタ
864デフォルトの名無しさん:2009/01/14(水) 03:57:46
>>856
20枚のカードに、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;
}
865864:2009/01/14(水) 03:59:17
C++だったのか。Cで書いてた、すまん。
866デフォルトの名無しさん:2009/01/14(水) 04:23:14
C++非互換の箇所あるか?
867デフォルトの名無しさん:2009/01/14(水) 06:18:37
>>863
>gcc, g++ - GNU project C and C++ Compiler
アホが
868デフォルトの名無しさん:2009/01/14(水) 07:07:04
>>867
一体何を見てアホとか言ってるんだろう。
公式ちゃんと読めてるか?
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をバカにしてるとしか思えない
869774:2009/01/14(水) 07:08:50
>>826
ありがとうございました。
870デフォルトの名無しさん:2009/01/14(水) 07:12:25
どっちもあってるだろ、
最初はCコンパイラの略だった
後付でコンパイラコレクションの略称というのも追加設定された、と
871デフォルトの名無しさん:2009/01/14(水) 07:31:24
小文字でgccって書いてあるんだからCのコンパイラだと思っていいんじゃない?
コンパイラ群について言いたかったらGCCって書くと思う。
872デフォルトの名無しさん:2009/01/14(水) 08:21:39
>>829お願いします
873デフォルトの名無しさん:2009/01/14(水) 08:34:35
バグってね?
874デフォルトの名無しさん:2009/01/14(水) 09:34:44
[1] 授業単元:プログラミング
[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] その他の制限:特に無いです。 どうかよろしくお願いします。
875デフォルトの名無しさん:2009/01/14(水) 09:52:10
>>864
ありがとうございます。
これをベースにいろいろいじってみます。
876デフォルトの名無しさん:2009/01/14(水) 10:37:44
>>873
文字化けしてませんが…
877デフォルトの名無しさん:2009/01/14(水) 10:41:15
[1] 授業単元:プログラミング論
[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] その他の制限:特に無いです。できるだけ掲載してる雛形を使ってもらえると助かります。
もちろん全く的外れなプログラムになっているなら作り直していただいてもかまいません。
そろそろ追い詰められてしまっているのでお時間のある方、よろしくお願いします。
878デフォルトの名無しさん:2009/01/14(水) 11:17:27
>>877
scanf()の %f を %lf にすればOK
879デフォルトの名無しさん:2009/01/14(水) 13:11:59
>>868
アホが
880デフォルトの名無しさん:2009/01/14(水) 14:37:46
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://a-draw.com/contents/uploader2/src/up3033.txt
[3] 環境
 [3.1] OS:ぃぬ
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 明日まで
[5] その他の制限: リダイレクト入力を使用してもよい。

リダイレクト入力を使ったのですが、scanfがEOFを返すまで、というループ以下がうまく動いてくれません。
どこがよろしくないのでしょうか??
881デフォルトの名無しさん:2009/01/14(水) 14:48:42
>>874
#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;}
882デフォルトの名無しさん:2009/01/14(水) 14:48:43
[1] 授業単元:C言語
[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] その他の制限:なし

お願いします。
883デフォルトの名無しさん:2009/01/14(水) 14:57:58
>Microsoft Visual Basic 2005
> 言語:C

あほか
884デフォルトの名無しさん:2009/01/14(水) 14:59:15
>>874

int 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;
}
885デフォルトの名無しさん:2009/01/14(水) 15:01:12
>>882
お願いします。
886デフォルトの名無しさん:2009/01/14(水) 15:06:04
無理
887デフォルトの名無しさん:2009/01/14(水) 15:30:49
【質問テンプレ】
[1] 授業単元:ソフトウェア演習
[2] 問題文(含コード&リンク): 指定されたデータファイルから都道府県名を読み込み,連結リストに格納した後に,キーボードから入力した文字列を探索し,該当する文字列があれば表示(無ければ無い旨を表示)するプログラムを作成せよ


[3] 環境
 [3.1] OS: Windows 
 [3.2] コンパイラ名とバージョン:ECLIPSE?なんなのか少しわかりません・・・
 [3.3] 言語: (C )
[4] 期限: 1月14日19時まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

よろしくです テキストファイルでいいです
888デフォルトの名無しさん:2009/01/14(水) 15:42:38
指定されたデータファイルの概要について、どういった形式、内容か?
889デフォルトの名無しさん:2009/01/14(水) 16:23:31
[1] 授業単元:プログラミング演習U
[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] その他の制限:特になし

宜しくお願いします。
890デフォルトの名無しさん:2009/01/14(水) 17:03:10
[1] 授業単元:プログラミング
[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] その他の制限:なし

よろしくお願いします
891デフォルトの名無しさん:2009/01/14(水) 17:31:56
>>890
1.だけ
#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;
}
892デフォルトの名無しさん:2009/01/14(水) 17:35:36
>>890
2.
#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;
}
893デフォルトの名無しさん:2009/01/14(水) 17:37:05
894デフォルトの名無しさん:2009/01/14(水) 18:00:29
>>888
ただ単にテキストファイルで資料とされています
895デフォルトの名無しさん:2009/01/14(水) 18:08:07
>>894
だからそのテキストだとしても、どういう形式で記述されているかって話なんだが?
896デフォルトの名無しさん:2009/01/14(水) 18:08:33
>>890
1,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;
}
897デフォルトの名無しさん:2009/01/14(水) 18:09:13
[1] 授業単元: ソフトウェア演習 [2] 問題文(含コード&リンク): ○名簿データ構造
􀁺 個人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”があるので、そこの部分はどのようにすればいいか教えてください。。

この前にやってもらったんですが、プログラムが動きませんでした。
898デフォルトの名無しさん:2009/01/14(水) 18:10:53
Hokkaidou Aomori Akita Iwate Yamagata Miyagi Fukushima Niigata Toyama Ishikawa
こんな感じです
899デフォルトの名無しさん:2009/01/14(水) 18:12:15
[1] 授業単元:Cプログラミング
[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標準ライブラリのみ使用可。

よろしくお願いします。
900デフォルトの名無しさん:2009/01/14(水) 18:34:39
>>898

<都道府県1><空白><都道府県2><空白>...<都道府県n><改行>

* データは1行で末尾に改行がある
* <都道府県i>はローマ字の都道府県名
* 都道府県間の区切りは空白1個 (タブや改行、2個以上のスペース等は認めない)

ということか?
901デフォルトの名無しさん:2009/01/14(水) 18:47:33
[1] 授業単元:C++演習
[2] 問題文(含コード&リンク):
http://www2.uploda.org/uporg1932832.txt
[3] 環境
 [3.1] OS: windows
 [3.3] 言語: C++言語
[4] 期限: 今日

お願いします
902デフォルトの名無しさん:2009/01/14(水) 18:57:07
(p or *p)
どっちかはっきりして欲しいものです
903デフォルトの名無しさん:2009/01/14(水) 19:00:42
>>902
なんか・・・すまん・・
俺じゃよくわからなくて
904デフォルトの名無しさん:2009/01/14(水) 19:04:06
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8630.txt
[3] 環境
 [3.1] OS: windows
 [3.3] 言語: C++
[4] 期限: 本日

よろしくお願いします
905デフォルトの名無しさん:2009/01/14(水) 19:07:55
その程度なら自分でやったほうがいい
906デフォルトの名無しさん:2009/01/14(水) 19:08:55
自分でやってみてわからなかったんだ・・・・
907デフォルトの名無しさん:2009/01/14(水) 19:12:45
>>900
都道府県は
kyoto
oosaka
などたてにすべての都道府県が書いてあります!
908デフォルトの名無しさん:2009/01/14(水) 19:18:58
909デフォルトの名無しさん:2009/01/14(水) 19:20:45
>>906
配列の要素にアクセスする方法が分からなかったのかな。
x[0] + x[1] + … + x[9]
で合計が出るよ。

i は良くループカウンタとして使われるけど、今回はループなんて使う必要ない。
910デフォルトの名無しさん:2009/01/14(水) 19:29:48
1] 授業単元:C++演習
[2] 問題文(含コード&リンク):
http://www2.uploda.org/uporg1932832.txt
[3] 環境
 [3.1] OS: windows
 [3.3] 言語: C++言語
[4] 期限: 今日

お願いします
911849:2009/01/14(水) 19:43:31
>>850
数字の合計
連続していた場合12と並んでいたら1と2に分けるようにしたいです。
912デフォルトの名無しさん:2009/01/14(水) 19:51:08
>>911
つ isdigit
913デフォルトの名無しさん:2009/01/14(水) 19:55:41
914デフォルトの名無しさん:2009/01/14(水) 20:05:47
wwwwwwwwwwwwwwwwwwwwwwwwwwwww
915デフォルトの名無しさん:2009/01/14(水) 20:22:56
916デフォルトの名無しさん:2009/01/14(水) 20:32:30
[1] 授業単元:プログラミング演習T
[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] 期限:明日
917デフォルトの名無しさん:2009/01/14(水) 20:45:10
>>904
#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);
918デフォルトの名無しさん:2009/01/14(水) 20:46:06
>>917
最後main()閉じ忘れてる、すまん
919デフォルトの名無しさん:2009/01/14(水) 20:55:49
>>901

#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);
}

920デフォルトの名無しさん:2009/01/14(水) 20:57:19
bのアドレスいれてねぇや
printf("bのアドレス=%p\n", &b);ね
921デフォルトの名無しさん:2009/01/14(水) 21:02:29
>>899
int 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;
}
922デフォルトの名無しさん:2009/01/14(水) 21:10:57
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):􀂄 8×8のチェスの盤面上に8個のクイーンを互いに取
られない位置に並べるプログラムを作成しなさい
􀂉 クイーンは縦横斜めに好きなだけ進むことができる
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:来週の月曜日



よろしくお願いします。
923デフォルトの名無しさん:2009/01/14(水) 21:12:42
>>917
C++
924デフォルトの名無しさん:2009/01/14(水) 21:17:14
>>923
925デフォルトの名無しさん:2009/01/14(水) 21:18:33
>>917
sumを初期化してないよ?
#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);
}
926デフォルトの名無しさん:2009/01/14(水) 21:20:34
>>904
>  [3.3] 言語: C++
927デフォルトの名無しさん:2009/01/14(水) 21:21:20
>>917 >>925
> sumを初期化してないよ?
サムッ
928デフォルトの名無しさん:2009/01/14(水) 21:28:29
>>927
お前ダジャレの才能あるわw
腹かかえて笑った
ってレスすればいいのか
929デフォルトの名無しさん:2009/01/14(水) 21:34:19
[1] 授業単元:プログラミング
[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 まで

よろしくお願い致します。
930デフォルトの名無しさん:2009/01/14(水) 21:37:56
verilogHDLの課題なのでスレチなのですが、課題を手伝っていただけるスレと言うことで、知識のある方どうかご協力をお願いします。
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8633.txt
上がHDL記述、下が私の書いたテストベンチになっています。
上のHDLがシュミュレーション出来る様に、私のテストベンチに手を加えていただけないでしょうか?
任意に入力した値数個対して出力が確認出来る簡単なもので結構です。
verilogHDLを習ってまだ一ヶ月程度なので、根本的な書き方のミスがあるかと思います。
今週中にご教授いただけると助かります。どうか、よろしくお願い致します。
931デフォルトの名無しさん:2009/01/14(水) 21:46:24
>>922
#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;
}
932デフォルトの名無しさん:2009/01/14(水) 21:46:35
>>930
別にベリログの課題を手伝うとはどこにも書いてないし。
…ベリログのスレってあんのかね
933デフォルトの名無しさん:2009/01/14(水) 21:48:01
>書き方のミス
シュミュレーション -> シミュレーション
ご教授 -> ご教示
934デフォルトの名無しさん:2009/01/14(水) 21:56:27
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):
      2進数正の小数を10進数に変換
      2進数の整数(正と負両方)を10進数に変換
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: bcc
 [3.3] 言語: C
[4] 期限: 2009年1月15日 9時まで
[5] その他の制限: なるべく短く書けと問題文に書いてあります

よろしくおねがします
935デフォルトの名無しさん:2009/01/14(水) 22:03:31
>>934
直ぐ死ね
936デフォルトの名無しさん:2009/01/14(水) 22:03:55
>>935 そんな>>1も読めないオマエモナー
937デフォルトの名無しさん:2009/01/14(水) 22:08:14
>>889
わりと時間があったからやってみた。あんまりテストしてないけど、たぶん大丈夫。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8637.txt
必要単位数は知らないからできなかった。
そこくらいは自分でやってみたら?
938デフォルトの名無しさん:2009/01/14(水) 22:17:59
>>937
回答ありがとうございます。
助かりました。
939デフォルトの名無しさん:2009/01/14(水) 22:34:48
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8638.c

実行してみると行列matの積が所々-になってしまう。誰かボスケテ
940デフォルトの名無しさん:2009/01/14(水) 22:40:43
[1] 授業単元:C言語
[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]その他の制限:特になし

よろしくお願いします。
941デフォルトの名無しさん:2009/01/14(水) 22:47:30
>>939
c[N][N] = {0};
942デフォルトの名無しさん:2009/01/14(水) 22:49:55
>>941
うん、今自力でも気づいた。ありがとう。なんか気持ちよかった。
943デフォルトの名無しさん:2009/01/14(水) 22:52:38
余計なことを言わずに礼を言えば済むのに、何だお前
944デフォルトの名無しさん:2009/01/14(水) 22:54:58
>>943
お前が一番余計。
945デフォルトの名無しさん:2009/01/14(水) 22:57:20
>>943
せっかく答えたのに、悔しいのぅ悔しいのぅ
946デフォルトの名無しさん:2009/01/14(水) 22:59:29
>>945
943は関係ない第三者
947デフォルトの名無しさん:2009/01/14(水) 23:00:07
ということにしたいのですね
948デフォルトの名無しさん:2009/01/14(水) 23:17:50
[1] 授業単元:C言語
[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] その他の制限:できるだけ簡単な関数でお願いします
949デフォルトの名無しさん:2009/01/14(水) 23:18:50
>>946
IDが出ないから、自作自演で悔しいのぅ悔しいのぅ
950デフォルトの名無しさん:2009/01/14(水) 23:22:33
>>949
別に悔しくはないが、いつものキチガイに絡まれてるかと思うとうんざりする
951デフォルトの名無しさん:2009/01/14(水) 23:23:51
文字列処理関数の演習問題

文字列 A に入力された文字列を、100文字丁度になるまで、
文字列 B に連結しなさい。

わかるかたお願い申し上げます。
952デフォルトの名無しさん:2009/01/14(水) 23:27:22
>>939
matを3乗したいんだけど
matrixmultiply(mat, mat, c);
matrixmultiply(c, mat, c);
じゃ駄目なんだがどう書くべき?
953デフォルトの名無しさん:2009/01/14(水) 23:29:00
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8640.txt
 [3.1] OS:WindowsXP
 [3.3] 言語:C ++
[4] 期限:2009年1月15日

お願いします
954デフォルトの名無しさん:2009/01/14(水) 23:29:33
>>952
もう一個配列用意すれば?
955デフォルトの名無しさん:2009/01/14(水) 23:29:36
>>952は無しで。なんとなく分かった
956デフォルトの名無しさん:2009/01/14(水) 23:30:13
>>954
そう。本当に今気づいた。スレ汚しスマソ
957デフォルトの名無しさん:2009/01/14(水) 23:31:03
>>930
多分そういうのは電気電子板
958デフォルトの名無しさん:2009/01/14(水) 23:35:19
>>951
void 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;
}
}
959デフォルトの名無しさん:2009/01/14(水) 23:38:22
>>950
> いつものキチガイ
お前のことだろ、自己紹介すんなってw
960デフォルトの名無しさん:2009/01/14(水) 23:41:06
id出ないのに>>943=>>941としてる945とか自演認定してる>>949が頭おかしいな
961デフォルトの名無しさん:2009/01/14(水) 23:42:10
>>958
文字列処理関数
962デフォルトの名無しさん:2009/01/14(水) 23:45:55
>>958は十分文字列処理関数だろw
どこにも標準のを使用しろとは書いてないし。

まあ、「文字列処理関数の演習問題」ってあれば<string.h>使えってことだとは思うが。
963デフォルトの名無しさん:2009/01/14(水) 23:48:52
>>958
配慮が足りん!!
964デフォルトの名無しさん: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);
}
965デフォルトの名無しさん:2009/01/15(木) 00:04:27
966デフォルトの名無しさん:2009/01/15(木) 00:05:14
>>921
ありがとうございます。
これを項の評価にぶち込めばいいわけですねbグッ
967デフォルトの名無しさん:2009/01/15(木) 00:08:59
>>948
#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;
}
968デフォルトの名無しさん:2009/01/15(木) 00:25:02
>>850
逆に連続している場合で12とするとどうなるんですか?
969デフォルトの名無しさん:2009/01/15(木) 00:28:40
>>968
どうなるも何も、数字が連続した場合はそのように扱うのか、
連続していても1文字ずつ扱うのか、どっちやねん?って話なんだが・・・
970デフォルトの名無しさん:2009/01/15(木) 01:20:47
[1] 授業単元:プログラミング演習T
[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] 期限:明日
971デフォルトの名無しさん:2009/01/15(木) 01:24:59
>>934
もっと短く書けるだろうけど。

>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);}
972デフォルトの名無しさん:2009/01/15(木) 01:53:49
[1] 授業単元:Computer Programming II
[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] その他の制限:
973デフォルトの名無しさん:2009/01/15(木) 02:13:24
>>891 >>892 >>896
ありがとうございます。
繰り返しになってしまうのですが、
正負の2進整数を10進数に変換をする際は、どのように改良すればよいですか?
よろしくお願いします。
974デフォルトの名無しさん:2009/01/15(木) 02:16:40
改行とって短くかけるとかw
975デフォルトの名無しさん:2009/01/15(木) 02:24:38
>>972 すぐ終了するので、メモリの解放はやってない
#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;
}
976デフォルトの名無しさん:2009/01/15(木) 06:09:30
[1] 授業単元:情報セキュリティ
[2] 問題文(含コード&リンク):
 RSAの実装なんだけど、できないのは32^816077みたいな桁数の大きなべき乗
[3] 環境
 [3.1] OS:vista
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年1月15日16:00まで
[5] その他の制限:
977デフォルトの名無しさん:2009/01/15(木) 06:30:59
>>976
32^816077 → (2^5) ^ 816077
つまり 2 を左に5 * 816977 回ビットシフトした数
978デフォルトの名無しさん:2009/01/15(木) 06:47:58
[1] 授業単元:プログラミング
[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] その他の制限:特に無いです。 どうかお願いします。
979デフォルトの名無しさん:2009/01/15(木) 07:21:18
>>978
ヘッダの追加はだめなのか
#include <ctype.h>
だめなら文字コードはASCIIということでよろしいのか
980デフォルトの名無しさん:2009/01/15(木) 07:22:14
>>969
数字が連続した場合はそのまま扱いたいです。
981デフォルトの名無しさん:2009/01/15(木) 07:27:37
>>978
#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;
}
982デフォルトの名無しさん:2009/01/15(木) 08:29:06
>>976
なんかの数を法として、何乗したら1になるか求める関数を作ってみる
983デフォルトの名無しさん:2009/01/15(木) 09:28:57
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8640.txt
 [3.1] OS:WindowsXP
 [3.3] 言語:C ++
[4] 期限:2009年1月15日

お願いします
984デフォルトの名無しさん:2009/01/15(木) 09:54:07
>>983
#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);
}
985デフォルトの名無しさん:2009/01/15(木) 10:06:55
[1] 授業単元:C言語
[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がよくわかりませんお願いします
986デフォルトの名無しさん:2009/01/15(木) 10:14:04
>>985
#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;
}
987デフォルトの名無しさん:2009/01/15(木) 11:43:22
>>977
話は解るんだが、そんな数どうやって扱えばいいのかさっぱりなんだ。

>>982
よくわかんないので詳しく

最低限、
(32^816077) mod (1009*1013)
の答えだけでも教えてくれたら嬉しいです。
988デフォルトの名無しさん:2009/01/15(木) 11:50:12
int型の変数1個を10進数4桁分と考えてそれを配列にして10進数を表したらどう?標準で用意されている型より大きな数を扱うときの常套手段。
989デフォルトの名無しさん:2009/01/15(木) 12:06:43
>>930
ホレ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8647.txt

・PMX インスタンスの記述ミス(信号の区切り、セミコロンで終わってない)
・$stop は鬱陶しいので $finish に変更した
・vcd ファイルを吐く記述を追加(Linux でやったんで)

あってるかどうかは知らんが、何か動いてるぞ。
990デフォルトの名無しさん:2009/01/15(木) 12:06:57
>>988
あーそうすれば冪乗はシフトで何とかなるかも
その後の剰余を求めるときに上手い方法ある?
991デフォルトの名無しさん:2009/01/15(木) 12:32:05
>>990
32^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
・・・・・・・繰り返し・・・・・・

で求められるよ。何回繰り返すのかは考えてね。
992デフォルトの名無しさん:2009/01/15(木) 12:35:59
>>987
(32**816077) % (1009*1013)
=>2
993デフォルトの名無しさん:2009/01/15(木) 12:45:19
wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
994デフォルトの名無しさん:2009/01/15(木) 13:28:03
>>987
中国人の剰余定理について調べてみる
995デフォルトの名無しさん:2009/01/15(木) 13:40:05
>>990
1009*1013*XのXを順に増やしていって32^816077を超える直前のXをYとすると
32^816077-1009*1013*Yでいいんじゃないの?
996デフォルトの名無しさん:2009/01/15(木) 13:59:50
>>990

logとれlog。
997デフォルトの名無しさん:2009/01/15(木) 14:18:13
>>995
それするくらいだったら
32^816077から1009*1013を繰り返し引いてった方が早くね。
998デフォルトの名無しさん:2009/01/15(木) 14:30:43
音響管のに波を駆動したときに波が剛壁に反射するプログラムってどうやったらいいのですか??
999デフォルトの名無しさん:2009/01/15(木) 14:49:33
>>997
論より証拠、ソースで提示すりゃ良いだろ?実装できない奴が何をほざいても無駄
1000デフォルトの名無しさん:2009/01/15(木) 14:50:31
1000なら >>990 は宿題提出期限に間に合わずに留年
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。