[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 09:30 / Filesize : 328 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/07/15(日) 22:31:51 ]
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html
【過去ログ検索】        chomework.sakura.ne.jp/
【wiki】               www23.atwiki.jp/homework/

【前スレ】
C/C++の宿題を片付けます 92代目
pc11.2ch.net/test/read.cgi/tech/1183511364/

180 名前:デフォルトの名無しさん [2007/07/17(火) 21:41:12 ]
>>176さん、ありがとうございます。
けどまた説明不足でした…。小数の場合も含みます…。
>>170追加例
ファイル内
1.5+1.5=
3*5=
1.5+2=
出力
1.5+1.5=3
3*5=15
1.5+2=3
何度も説明不足ですいません…。この小数と整数を区別して出力するのが
むずかしいです。よかったらお願いします。

181 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:15 ]
>>180
説明し忘れが無いか一度確認したほうがいいと思うよ
小数点以下は切り捨てるとかそういう細かい部分も説明すべきだと思う

182 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:45:22 ]
>>180
aとbの型をdoubleにして、
fscanfの%dを%lfに、
printfの%dを%gにすればおk

183 名前:デフォルトの名無しさん [2007/07/17(火) 21:50:56 ]
170です。
>>182さんありがとうございます!!これで完成しました!!
みなさんありがとうございました。%gとは便利な…。

184 名前:デフォルトの名無しさん [2007/07/17(火) 21:52:10 ]
そんな事より、今日うちに犬が死んだ。老衰だった

185 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 21:53:27 ]
>>34>>37
遅くなりましたがありがとうございました。


186 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:01:04 ]
[1] 授業単元: ソフトウェアシステム
[2] 問題文(含コード&リンク):
以下の円周率を2000桁もとめるプログラムを
できるだけ高速に計算できるように改良せよ。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4659.txt

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:分かりません
 [3.3] 言語: C
[4] 期限: 2007年7月18日12:00まで
[5] その他の制限:
マイコン。配布プロラムはマチンの公式を使っている。

若干スレ違いかもしれないですが、よろしくお願いします。

187 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:05:38 ]
>>186
マイコンかWindowsかどっちなんだ。つかマイコンだろうな。
どんな石だか知らんが、これコンパイルして動かせる環境持ってる奴
いないんじゃないか。

188 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:07:21 ]
>>175
よくわからんが、おもむろにCreateWindow()で窓を開く
コンソールアプリをつくれということだろうか。



189 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:09:28 ]
>>187
Windows上で開発してるってことだろ、多分
せめてどんなマイコンを使ってるかわからないと難しいな・・・

190 名前:デフォルトの名無しさん [2007/07/17(火) 22:17:30 ]
○×ゲーム
Linuxのプロンプト上でplay
com/man対戦、先攻/後攻を選べる

191 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:20:53 ]
最近三目並べはやってんのかyo

192 名前:175 [2007/07/17(火) 22:37:33 ]
>>188
アプリと言いますか、コマンドプロンプトで必要な入力を入れていくと
それを適当なソフトで忠実に再現したppm画像に出してくれるものです。
同じ事言ってたらすいませんorz

できれば骨組みだけでも(流れ的な)考えていただけると幸いですm(__)m

193 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:40:26 ]
>>186です

>>187
>>189
説明不足ですいません。

答えになってないかいもしれないですが、この付属のV850基板を使っています。
ttp://www.cqpub.co.jp/interface/contents/2007/200705.htm

194 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:42:40 ]
V850基板なら手元にあるぜ
でもまだソフトインスコしてない・・・

195 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:43:16 ]
>>192
いや、スクリーンに描画しろとか書いてあるからさ。
それを見なかったことにして、PPM画像ファイルを出力するだけなら、
標準Cの範囲のプログラムで出来る話だが、400*400の画面に
描画しろってんなら、窓開いてGUIスレッド起動してって話になるだろう。

196 名前:190 ◆Oa0JSQvro2 [2007/07/17(火) 23:14:27 ]
追記です。
期限は木曜夜でお願いします。

よろしくおねがいしますm(__)m

197 名前:175 [2007/07/17(火) 23:14:34 ]
>>195
なるほどそういう事でしたか…
特に制限などは言われていないので(Cのみとは言われてません)
このスレの趣旨に沿っていないかもと思ったのです。

できれば400X400は後に考えますので、ファイル出力の部分をお願いします。

198 名前:デフォルトの名無しさん [2007/07/17(火) 23:36:49 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
 練習13-2(気象情報)
インターネットを利用して出身地の観測開始から現在までの
気象情報を入手し,各年の月別平均気温データを作成する.
作成したファイルから気象データを読み込んで,
  (1)平均気温が最も低い年月と最も高い年月を探索して
    両者の年月と気温をディスプレイに出力する
  (2)年間平均気温を計算し,高い年から順に
    年と年間平均気温をファイルに出力する
プログラムを作成しなさい.

気象庁HP(www.jma.go.jp/jma/index.html)参照
[3] 環境
 [3.1] OS: Windows
 [3.2]
 [3.3] 言語:C言語
[4] 期限: 2007年 7月18日の朝
[5] その他の制限: 出身地は神戸でお願いします



199 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:38:00 ]
>>196

>>1のテンプレを漏れなく書け。

200 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:45:39 ]
× 資料なし(欠測) 統計値を求める期間内の観測結果が全て求められなかった場合。
は、どうあつかうんだ?

201 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 02:31:07 ]
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
longが定義されている数の最大値LONGMAXをもとめろ。
例えば、i=1 を2倍していき、LONGMAXの最大値を求める。
別にこの方法でなくてもいい。各自にまかせる。
ちなみに LONGMAXはおよそ2147483647である。
余裕があるものはdouble などもやることが望ましい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: (gcc2.95-3)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: (2007年07月25日23:59まで)
[5] その他の制限:無制限
さぐりで下のようなところまでは書きました。
#include <stdio.h>
#define LONGMAX 2147483647
int main(void)
{
long int i,i2;
/*これは0 ... の無限ループ
for(i=1;i<LONGMAX;i*=2)
printf("%d ",i);
*/
for(i=1;;i2=i,i*=2){
printf("%d ",i);
if(i<i2){
printf("%d is LONGMAX\n",i);
break;
}}}
までできましたが、値が少し違い微妙です。
それと、コメントカットしたらなぜ無限ループになるのでしょうか?
これにかなり悩みました。

202 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:17:08 ]
>>201
無限ループの最初の方で止めれば分かるけど 1,2,4,8…1073741828 の次から0になってるはず。
で、その理由は出力される数を2進表現してみれば分かるはず。キーは32ビット。

後半での出力は…少しの違いなのか?

---
#include <stdio.h>
int main(void)
{
unsigned long max = -1;
printf("Unsigned MAX:%ud\n", max);
printf("Signed MAX:%d\n", max >> 1);
return 0;
}
----

203 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:37:53 ]
>>201
2倍していき・・・verで書いてみた

#include <stdio.h>
#include <math.h>
int main(void)
{
int i=0;
long n, tmp;
while( (tmp = pow(2, i)-1) >= 0 ){
n = tmp;
i++;
}
printf("LONG MAX : %d\n", n);
return(0);
}

204 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:54:03 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4660.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:不明
 [3.3] 言語:C
[4] 期限:7/19まで
[5] その他の制限:課題@はwhile文、Aは両方とも構造体、Bは全てポインタと構造体の単元です
@とAは自分が考えたソースを添えてみたので、どこが悪いのかだけでも教えていただけると幸いです
どうかご教授の程お願いします

205 名前:デフォルトの名無しさん [2007/07/18(水) 07:36:23 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#

問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC
削除文字列(m2)==>ABC
結果文字列(m1):DEFAD

注意:配列の使用はm1,m2のみとする


206 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 07:56:14 ]
>>204
よく見てないけど
@
=< じゃなくて <=
isdigit() -> isdigit(moji)
printf("hogehoge %d"); -> printf("hogehoge %d",); (カンマ)

A
× while(buff = getchar()!="0 0 0"){
whileのなかのsscanfのbufferなんてない
× printf("%4s%4f%4s,stu[j].name,stu[j]height,stu.[j]blood");}


207 名前:206 mailto:sage [2007/07/18(水) 07:57:21 ]
あー
printf("hogehoge %d"fuga); -> printf("hogehoge %d",fuga); (カンマ)
に訂正です

208 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 08:10:29 ]
>>186

ttp://www.sra.co.jp/people/miyata/algorithm/multprec.txt

たぶんこれと同じなんやろうけど、どうやったら速くできるんだろう。



209 名前:デフォルトの名無しさん [2007/07/18(水) 08:34:24 ]
>>177
奮闘中ですが、できませんorz
お願いします!

210 名前:190 ◆Oa0JSQvro2 [2007/07/18(水) 09:12:44 ]
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜夜
[5] その他の制限: 特になし

211 名前:デフォルトの名無しさん [2007/07/18(水) 10:09:46 ]
[1] プログラミング基礎
[2] 検討及び考察」の指示に従って求めた, S/N=3.0 [dB]のときの a. 誤差[%],b. 誤り検出率[%] の数値(有効数字3桁以上)
および実験 2. のために作成したシミュレーションプログラムを使って報告せよ。

詳しいことは次のアドレスに書いてあります。
itohws03.ee.noda.tus.ac.jp/~matsuda/programming/final/programming.pdf

[3.1] Unix
[3.2] gcc
[3.3] c
[4] 7月27日(金)
[5] 私の学籍番号の下三桁は080です。

212 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 10:14:23 ]
どうせその学籍番号は他人のものだろ?

213 名前:デフォルトの名無しさん [2007/07/18(水) 10:41:19 ]
>>177
VBではなくVSです

214 名前:c言語初心者 [2007/07/18(水) 10:56:39 ]
講義名:プログラミング1 … プリントを渡されてやってこいとのことでした。よろしくおねがいします
問3、よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ、ただし、トランプにはジョーカーは含まれないものとする。
#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1.0))

int a[ (1)? ];

void RandomPermutation(int n)



215 名前:c言語初心者 [2007/07/18(水) 10:57:29 ]
『続き』

{
例題2と同じ


int main(void)
{
int i;

RandomPermutation( (1)? );
for(i = 0; i < 5; i++){
if( (2)? ){
printf("ハート% 4d \n", n (3)? );
}else if ( (4)? ){
printf("ダイア% 4d \n", n (5)? );
}else if ( (6)? ){
      printf("クラブ% 4d \n", n (7)? );
}else{
printf("ハート% 4d \n", n (8)? );
}
return 0;
}
例題2と同じというところは、プリントの横に例題2というのがあったんですが、どこかどこまでが例題2と同じなのかがわかりませんでした。そこが必要であれば例題2を打つんでよろしくお願いします。(1)から(8)までを回答としてよろしくねがいします。

216 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:07:22 ]
>>209
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4661.c


217 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:19:47 ]
>>215
四の五の言わないで全部書き出しな

218 名前:デフォルトの名無しさん [2007/07/18(水) 11:21:57 ]
>>175
ですがどうにもうまく三角形が描けませんorz
ファイル出力までで結構ですので、どなたかなにとぞお願いしますm(__)m



219 名前:c言語初心者 [2007/07/18(水) 11:39:59 ]
>>215
0,1,2, … 、99をランダムに並べる

#include<stdio.h>
#include<stdlib.h>
#define uniformrand()((double)rand() / ((double)RAND_MAX + 1))

int a[100]



220 名前:c言語初心者 [2007/07/18(水) 11:40:29 ]
続き
void RandomPermutaion(int n)
{
int i, j, z;
for (i = 0; i < n; i++) {
a[i] = i;
}
for(j = n - 1; j > 0; j--) {
i = (int)(j * uniformrend());
z = a[i]; a[i] = a[j]; a[j] =z;
}
}

int main()
{
int n, i;

n = 100;
RandmPermutation(n);
for (i = 0; i < n; i++){
printf("%4d", a[i]);
}
printf("/n");

return 0;
}
が例題2です。よろしくお願いします

221 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 11:56:24 ]
>>220
できたぞ
つか
 printf("ハート% 4d \n", n (3)? );
とか
 printf("ダイア% 4d \n", n (5)? );
って、問題間違ってないか?

222 名前:c言語初心者 [2007/07/18(水) 12:00:14 ]
間違ってました。申し訳ありません。
printf("ハート% 4d \n", (3)? );
printf("ダイア% 4d \n", (5)? );

です。
よろしくお願いします。

223 名前:デフォルトの名無しさん [2007/07/18(水) 12:07:51 ]
[1] 授業単元: C
[2] 問題文(含コード&リンク):単純選択法
大きさ20の配列keyを用意し、キーボードから値を入力する。
この配列keyの要素を、単純選択法でソートするプログラムを作成せよ。

ただし、ソートの途中経過を画面に出力すること。
また、最後に比較回数を画面に出力すること。

【ヒント】
配列の大きさの指定
#define SIZE 20
単純選択法‥最小の要素を選び、未ソートの部分の先頭の要素と交換する
途中経過‥未ソートの部分が1つ減るたびに(外ループ)出力。
比較回数‥初期値0の変数を用意し、比較のたびに(内ループ)インクリメント。
発展
以下の機能を持つ関数を作成し、利用する形にコードを修正しなさい。

配列要素の入力を行う input_array
配列要素の出力を行う output_array
単純選択法によるソート select_sort
[3] 環境
 [3.1] OS: WindowXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期限: いつでも
[5] その他の制限:なし

224 名前:デフォルトの名無しさん [2007/07/18(水) 12:09:04 ]
>>223
発展までは書いてみました

#include<stdio.h>
#define SIZE 20
void kadai28()
{ int key[SIZE];
int i, j, p, cnt = 0, w;
for(i = 0; i < SIZE; i++)
scanf("%d", &key[i]);
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
for(i = 0; i < SIZE; i++){
p = i;
for(j = i+1;j < SIZE;j++){
if(key[j] < key[p])
p = j;
cnt++;
}
w = key[p];
key[p] = key[i];
key[i] = w;
for(j = 0; j < SIZE; j++)
printf("%3d", key[j]);
printf("\n");
}
printf("cnt = %d\n", cnt);
return;
}
発展の方お願いしますー

225 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:10:49 ]
[1] プログラム基礎復習
[2] charのみを使用し小数点以下100桁まで計算できる計算機を作る(中学程度)
[3] 環境
 [3.1] Windows2000プロ
 [3.2] gcc
 [3.3] C
[4]7/20
[5]main以外の関数を作ってはいけない

お願いします。さっぱりなので・・・

226 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:13:08 ]
>>225
「+」「-」「*」「/」「√」位かな?


227 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:15 ]
>>222
じゃ、パーツだけ教えるよ


a[i]/13==0
a[i]/13==1
a[i]/13==2
a[i]%13
a[i]%13
a[i]%13
a[i]%13

または

n
a[i]&3==0
a[i]&3==1
a[i]&3==2
a[i]/4
a[i]/4
a[i]/4
a[i]/4

好きなほうを使ってくれ

228 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:15:26 ]
>>226
お願いできますか?
charだと256までしか出来ないので積や商がさっぱりで・・・




229 名前:c言語初心者 [2007/07/18(水) 12:20:22 ]
>>221さん。
頼んでおいて申し訳ないのですが、>>214の回答をよろしくお願いします。

230 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:20:25 ]
>>225
小数点以下でcharってprintf出力で表示される答えが100桁でいいんだよね?

231 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:24:54 ]
>>229
>>227にヒントを書いたんだけど、不服?

232 名前:225です mailto:sage [2007/07/18(水) 12:28:13 ]
>>214さん
問題文の意味がよく分からないんですけど
ジョーカーは1枚ですよね?
それでランダムで5枚引くと・・・・




233 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:29:21 ]
>>225
小数点以上は無限大?

234 名前:225です mailto:sage [2007/07/18(水) 12:32:02 ]
>>233
指定されていないので 多分無限だと思います

235 名前:c言語初心者 [2007/07/18(水) 12:33:46 ]
>>231さん
不服なんてとんでもないです。ただ、ヒントもらっても自分が解けないだけです。申し訳ないです。

>>232さん
たぶんジョーカー2枚を抜いた52枚でのことだとおもいます。よろしくお願いします。


236 名前:225です mailto:sage [2007/07/18(水) 12:33:59 ]
足し引きはifで100で固めれば簡単に出来ることはわかったんですけど


237 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:34:33 ]
多倍長の実数計算を実装させて
>[5]main以外の関数を作ってはいけない

冗談きつすぎ

238 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:37:24 ]
>>225
100^256 までしかできなくね? 無限じゃネージャン



239 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:38:15 ]
再帰下降も不可、と

240 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:39:19 ]
>>238
勿論char[]で多倍長を実装するんでしょ
そうじゃなきゃそもそも実数すら扱えん

241 名前:256です mailto:sage [2007/07/18(水) 12:39:40 ]
ごめんなさい頼る所はココしかないので・・・・orz 


242 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 12:40:08 ]
未来からの使者か?

243 名前:149 [2007/07/18(水) 12:58:59 ]
>>153さんのテキストをコンパイルしてみたのですが、

/tmp/ccY67IGB.o(.text+0x163): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x177): In function `angle':
: undefined reference to `sqrt'
/tmp/ccY67IGB.o(.text+0x197): In function `angle':
: undefined reference to `acos'
collect2: ld はステータス 1 で終了しました

と表示されて、./a/out のファイルが作成されなかったのですが
これは何でしょうか・・

244 名前:デフォルトの名無しさん [2007/07/18(水) 13:00:17 ]
何方か205お願いします

245 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:01:49 ]
エラーメッセージじゃないかな??

246 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:05:23 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
特定の単語にgoogle 検索のリンクをはるプログラムをつくれ。
例えば、下は「テスト」という単語をgoogle検索したリンク である。
q= 以降は「テスト」という単語がURLエンコード(unicode)された文字列となっている。
www.google.co.jp/search?hl=ja&q=%E3%83%86%E3%82%B9%E3%83%88
1. htmlファイルを受け取る
2. 検索リンクにしたいいくつかの指定した単語を受け取る
3. すでにリンク済みの単語に注意しながら、指定した単語をgoogle 検索のリンクにする。
(例)「宿題」をgoogle 検索されたリンクにする。
この宿題ができなかったら単位はあげません。
->
この<a href="www.google.co.jp/search?hl=ja&q=%E5%AE%BF%E9%A1%8C">
宿題</a>ができなかったら単位はあげません。
なお、目的を果たせるプログラムだったらこの形式でなくてもかまわない。
余裕がないものは
・検索ワードはURLエンコードの必要のない半角英数等だけでいい。
・受け取った検索ワードはすでにリンクされていないと仮定してもいい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc2.95-3
 [3.3] 言語: C
[4] 期限: (2007年07月31日17:00まで)
[5] その他の制限: 何を使っても構わない

247 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:07:40 ]
>>243
-lmつけると幸せになれる

248 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:08:14 ]

>>225
組むのめんどいからヒントだけあげるよ

現在のCPU能力では「+」と「-」しか演算が出来ない。
「*」「/」はただの演算方法でしかない
例 a*bの場合   int i; for(i=0;i=b;i){a++}






249 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:09:34 ]
>>248
ちょw

250 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:12:39 ]
>>205
何が分からないか分からないんだが・・・・・・・
まんまじゃん




251 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:15:31 ]
>>250
それを言うなwそれ言っちゃこのスレの存在価値がw

252 名前:149 [2007/07/18(水) 13:37:55 ]
>>247さん
幸せになれましたが、どういう原理なのでしょう?
質問ばっかですいません

書き忘れましたが、153さん・247さんありがとうです

253 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:41:52 ]
>>252
mという数学ライブラリをリンクしたのです。

254 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:42:09 ]
>>248
兄さんそれ掛け算になってません。
forの条件式もアレです。意図は伝わるけど。

255 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:46:27 ]
a*bの場合 int i,n; for(i=0;i<b;i++){n+=a;}
暇ですね。

256 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:47:11 ]
a*bの場合 int i,n=0; for(i=0;i<b;i++){n+=a;}

257 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:48:03 ]
>>252
243のエラーメッセージはソースの中に存在しない関数(sqrtとacos)があって
プログラムを作れないというリンカのエラー。
>>253の言うとおり数学ライブラリをリンク指定すれば
その中に関数sqrtとacosという関数があるからリンクが通る。

258 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 13:52:06 ]
>>248



259 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:02:41 ]
馬鹿は彫っとけ

260 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:04:45 ]
やらないか

261 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:16:34 ]
>>175
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4662.c

入力は各行に(別に各行でなくてもいいけど)
x1 y1 Z1 x2 y2 Z2 x3 y3 Z3 r g b
の順で数値を並べたファイル.
(例)
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255

出力先もコンソールにしてるが,変更したければmain冒頭の
FILE *out = stdout;
を書き換えればいい.

画像はLinuxのxvで確認した.ppm形式はいくつか種類があるようなので問題あるかも.
(注:CGは昔かじった程度なのでzバッファについて根本的な勘違いをしてるかもしれない)

262 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:30:47 ]
>>205
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4663.txt
問題2でstrcpy()(文字列のコピー)の替わりにstrcat(文字列の連結)を使った。
strcpy()を使えと言われても俺の能力じゃムリポ

263 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 14:33:09 ]
>>262
strccat(a, b) ≡ strcpy(a + strlen(a), b) ≡ strcpy(strchr(a, '\0'), b)

264 名前:262 mailto:sage [2007/07/18(水) 14:37:06 ]
262の駄文は忘れてくれ
問題2の修正版
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4664.c

265 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:08:56 ]
>>246
色々穴だらけだが
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4666.txt


266 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:18:43 ]
>>262
最後のナル文字にさえ気をつければ便利だし安全だよ。

267 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 15:19:45 ]
サイズの方が重要かも。

268 名前:265 mailto:sage [2007/07/18(水) 15:24:25 ]
あ、コメントの処理入れるの忘れた
まあいいや
どうせもともと穴だらけだ



269 名前:ヒープ [2007/07/18(水) 15:36:58 ]
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):
ヒープソートを用いて、配列に格納された10個の数値データを
大きい順に並び替える。変化がわかるようにソート前と後を出力させる。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 早いとありがたいです
[5] その他の制限: 特にありません
よろしくおねがいします。

270 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 17:26:12 ]
>>177
#include <stdio.h>

int main(void) {
int i,j,k,sn,flg[3]={0},suka;
int n[3][5]={
{157788,457190,-1},
{5161,7093,7485,9614,-1},
{64,79,-1}
};
printf("Input number > ");
scanf("%d",&sn);
for(i=0,k=1000000; i<3; i++,k/=100) {
for(j=0; n[i][j]>0; j++) {
if(n[i][j]==sn%k) {
flg[i]++;
break;
}
}
}
for(i=0,suka=1; i<3; i++) {
if(flg[i]) {
printf("%d等 \n",i+1);
suka=0;
}
}
if(suka) printf("はずれ\n");
return 0;
}


271 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 18:07:53 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
2次元配列の中にデータの入ったファイルを読み込んで代入する方法を
main関数ともう1つ関数をつくって作成せよ。
例. box[5][5];の2次元配列にファイルのデータ(ここではdata.txt)を代入
data.txt
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日中です
[5] その他の制限: 特にありません
よろしくおねがいします。

272 名前:175 [2007/07/18(水) 19:53:23 ]
>>261
ありがとうございました!m(__)m
自分でも色々いじってみましたが、思っていた通りの完璧な出来でした。
本当に助かりました!



273 名前:デフォルトの名無しさん [2007/07/18(水) 20:09:44 ]
[1] 授業単元:情報活用
[2] 問題文:キーボードから順次入力された正の整数を0が入力されるまで、
配列に順番に格納し、入力された(0を除く)値の平均値(実数として扱うこと)
にもっとも近い値(平均との差が最小となる値)が何番目に入力された
どういう値であるかを表示するプログラムを作成せよ。

例)
数字(1)を入力してください。 2
数字(2)を入力してください。 5
数字(3)を入力してください。 3
数字(4)を入力してください。 1
数字(5)を入力してください。 0
入力された数字の平均は2.75です。
これは、3番目に入力された3に最も近いです。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: [7月19日20:00]
[5] その他の制限:特になし

ギリギリまで頑張ったのですができませんでした。わかる方お願いします

274 名前:デフォルトの名無しさん [2007/07/18(水) 20:12:21 ]
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク):○×ゲーム(3目並べ) をプロンプト上で動かす。com/man対戦、先攻後攻は選択可能
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C
[4] 期限: 今週金曜
[5] その他の制限: 特になし

275 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:13:01 ]
>>273
なんか前々スレくらいで全く同じ問題に回答した気がする。

276 名前:スモーク [2007/07/18(水) 20:17:27 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。

277 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:20:53 ]
釣りか?

278 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:21:21 ]
除算の結果の小数点以下は?



279 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:25:19 ]
>>271
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4667.c

280 名前:デフォルトの名無しさん [2007/07/18(水) 20:27:06 ]
[1] 授業単元:情報
[2] 問題文:2次方程式a*x*x + b*x + c = 0の解を求めるプログラムを作成せよ。
係数a,b,cはdouble型で、キーボードから入力するものとする。
虚数解の出力も行うこと。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: あしたまで
[5] その他の制限:ありません

よろしくおねがいします

281 名前:22 mailto:sage [2007/07/18(水) 20:37:28 ]
名前:デフォルトの名無しさん[sage] 投稿日:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4668.txt
ソース:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4669.txt

[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:2007/07/19の12:00まで。
[5] その他の制限:特になし

どうにか講師が作らせたかった内容になったらしく問題1と2はOKでました。
最後の問題3です。よろしくお願いいたします。

282 名前:スモーク [2007/07/18(水) 20:41:23 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): 問題009
多分岐型
整数型の変数a・b と、文字型の変数e を用意し、
キーボードから2つの数値と1つの演算子を入力し
、その計算結果cを出力するプログラムを作成しなさい。

実行される計算は和・差・積・商・剰余の5種類とし、
演算子はそれぞれ’+’、’-’、’*’、’/’、’%’で
表現されるものとする。

演算子にそれ以外の記号が入力された場合は
エラーメッセージを表示する。
また0による除算の回避も含めること。

[3] 環境
 3.1] OS: (Windows XP)
 [3.2] コンパイラ名とバージョン: (VS 2005)
 [3.3] 言語:C
[4] 期限: ([2007年07月20日hh:金曜まで]
[5] その他の制限:

課題の数は残り20くらいありますが、半分は片付けました。
しかし、追加されてくるものを回答する時間がもうありません。
どうかよろしくおねがいします。
あなたの能力が便りです。
小数点以下は切り捨てでいいですよ。
とにかく0による除算の回避とあるだけなのでそのとおりで済むはずです。
多少のミスはかまいません。それ以外がうまく機能すればよいです。
また、ほかの問題も載せますのでよろしくお願いします。


283 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:42:52 ]
ここまでくると、嫌がらせとしか思えないな

284 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 20:43:30 ]
なんか追記の書き方がムカツクのは俺の心が狭いからかな

285 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:07:30 ]
>>280
汚くて&間違ってたらスマソ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4670.c

286 名前:285 mailto:sage [2007/07/18(水) 21:11:36 ]
あー、a=0の時の処理書いてないわ
適当に追加してね

287 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:26:20 ]
>>284
俺も。>>285はキリストかあるいはMだと思う。

288 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:39:00 ]
>>282
#include <stdio.h>
#include <stdlib.h>
int main(void){int a,b,c;char e;if(scanf("%d %d %c",&a,&b,&e)!= 3){
fprintf(stderr, "input error\n");return EXIT_FAILURE;}switch (e) {
case '+': c = a + b; break;case '-': c = a - b; break;
case '*': c = a * b; break;case '/':
case '%':if (b == 0) {fprintf(stderr, "zero divide\n");
return EXIT_FAILURE;}if (e == '/') {c = a / b;} else {c = a % b;}
break;default:fprintf(stderr, "illegal operator\n");return EXIT_FAILURE;}
printf("result = %d", c);
return EXIT_SUCCESS;}




289 名前:alsk [2007/07/18(水) 21:56:33 ]
健康についての英語のエッセイを500〜600字程度でお願いしたいのですが…
可能でしょうか?
タバコとか、肥満についてならなんでもいいんで!

290 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:57:11 ]
>>289
スレ違いすぎ。

291 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:00:17 ]
(´-`).。oO(英語で500〜600"字"ってかなり少なくないか?)

292 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:03:32 ]
(´-`).。oO("語"の間違いだろ・・・常考)

293 名前:デフォルトの名無しさん [2007/07/18(水) 22:04:01 ]
釣りか単なるマルチだろ…

294 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:40:52 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。前回のプログラムのmainとnumber大域変数は変更しない。
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる

+→0 弱低
-→1 ↓
*→2 ↓
/→3 強高


#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;

if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}


295 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:42:19 ]
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2007年07月19日
[5] その他の制限:特になし


296 名前:デフォルトの名無しさん [2007/07/18(水) 23:13:01 ]
>>223
お願いします

297 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:16:30 ]
>>279
回答ありがとうございます。
とてもみやすかったです^^

298 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:24:06 ]
>>297
readfile関数内の int j はいらないから消しといて><



299 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:12:58 ]
>>273

#include <stdio.h>
#include <math.h>
#define N 128
int main(void)
{
int i=0, j, n=0, x[N];
float avg=0.0, tmp;
while(1){
printf("数字(%d)を入力してください。: ", i+1);
scanf("%d", &x[i]);
if(x[i] == 0) break;
avg += x[i];
i++;
if(i == N) break;
}
avg = avg / i;
printf("\n入力された数字の平均は%fです。\n", avg);
tmp = fabs(avg - x[0]);
for(j=1 ; j<i ; j++){
if(tmp > fabs(avg - x[j])){
tmp = fabs(avg - x[j]);
n = j;
}
}
printf("これは、%d番目に入力された%dに最も近いです。\n", n+1, x[n]);
return(0);
}

300 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:33:57 ]
[1] 授業単元:計算機
[2] 問題文(含コード&リンク):
スタックを利用し、入力された文字を逆順に出力するプログラム。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4671.txt
ここまで作ったのですが、ポップアップがうまく出来ません
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) bcc32
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限:7/26

どなたかご教授お願いしますorz




301 名前:273 [2007/07/19(木) 00:47:41 ]
>>299
ありがとうございますmm
明日やってみます。
本当にありがとうございます。

302 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:51:41 ]
>>296
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4672.txt

303 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:58:09 ]
>>300
よく分からないのだが、
対話的に1文字ずつ文字入力を行い、1文字ずつ取り出したいのか?
それとも、
文字列を入力し、結果の反転文字列を一気に出力したいのか?

304 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:58:15 ]
>300
char x;
scanf("%s", &x);
ってなんだ?

305 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:02:05 ]
>>303
入力は1文字ずつで、出力は1文字ずつ出したり全部出したり出きる様にしたいんです。


306 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:11:28 ]
[1] 授業単元:Cぷろぐらみんぐ
[2] 問題文:複素数a+bi(iは複素数)のn乗を求めて出力するプログラムを作れ。
a,bはdouble型とし、nはint型で、キーボードから入力するものとする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: はやめでおねがいします
[5] その他の制限:特にないです


307 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:16:07 ]
「はやめ」っていつまでだよ
明日の朝とかもうちょっと具体的に書け

308 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:19:00 ]
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):sakuratan.ddo.jp/uploader/source/date44998.txt
                  return ????部分が分かりません。
[3] 環境
 [3.1] OS: (Windows/Linux/等々)WinXP
 [3.2] コンパイラ名とバージョン:VC6
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: 今日
[5] その他の制限:なし

よろしくおねがいしますorz



309 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:24:12 ]
なんでいちいち外部に上げるかね

310 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:24:47 ]
>>308
問題文じゃねええええええええええええええええええええええええええええええええええええええええええ


311 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:27:19 ]
>>308
double 型の値を返すんだから、
FXかFX1じゃねえの?

問題文がないしわけがわからんよ


312 名前:308 mailto:sage [2007/07/19(木) 01:28:11 ]
>>310
問題文がついてないんです・・・
一次正弦関数の補完値を求めたいみたいなんですけど
グーグル先生に聞いてもよく分かりませんでした。

313 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:29:36 ]
は?
問題文がないなら宿題じゃねえじゃん

314 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:30:00 ]
>>306
int main(){
double a,b,t; int n;
scanf("%lf,%lf,%d",&a,&b,&n);
while(--n>0)
t=b,b=2*a*b,a=a*a-t*t;
printf("%g+%gi\n",a,b);
}


315 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:31:47 ]
[1] 授業単元: c言語
[2] 問題文(含コード&リンク):
 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
同じ整数は2回以上使ってはいけない。
例えば3を入力した場合
012 021 102 120 201 210
を出力したい。


[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/23
[5] その他の制限: 特に無し

もうさっぱりです。お願いします。

316 名前:308 mailto:sage [2007/07/19(木) 01:32:04 ]
>>313
「ここ埋めてきて」と…

317 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:33:24 ]
>>316
俺たちはその「ここ埋めてきて」とか一時正弦関数の補完とか言われてな・・・
もしかして文章で伝えられずに口頭だったから何も書かなかったのか・・・

もうだめぽ

318 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:46:04 ]
>>315
> 整数nを入力し、1〜nまでの整数を使い、n桁の組み合わせを出力する。
...
>例えば3を入力した場合
>012 021 102 120 201 210

この例だったら、1 〜 n じゃなくて 0 〜 n-1 じゃないのか?




319 名前:300 mailto:sage [2007/07/19(木) 01:46:55 ]
とりあえず1文字ずつ入力して1文字ずつ出力しようとしてみたけど
どうしても最後の文字(1番最初に入力した物)が出力されません。。
配列には入ってるみたいなんだが・・・


320 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:47:47 ]
>>315
n桁ってのは上限はないのか?

321 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:48:52 ]
1違いは良く見直せというのはプログラミングをやる人間にとっての常套句

322 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 01:50:39 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
線形リストを用いて過去に素数とわかった数を保存し、指定された数(N)以下の素数を求めるプログラムを作成する。
Nはプログラム実行中に外部から入力できるようにする。
・素数かどうかを判定する際には線形リストに保存されている素数のみ利用する。
・引数として与えた数が、引数として与えられた素数を保存する線形リスト中の素数で割り切れるかどうかを判定する関数を作る。
・順番に小さい数から線形リストに保存してある素数で割り切れるかどうかを判断し、割り切れない場合(素数)は線形リストに加えていく。 [3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C/C++の違いがわからない
[4] 期限: はやめ
[5] その他の制限: 特になし
わ か り ま せ ん

323 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:53:41 ]
>>318
うっかりしてました。
123 132 213 231 312 321
の間違いです。

>>320
基本的に上限はありませんが、あんまり数が大きいと
馬鹿になりませんので…。
大体5か6くらいまでを想定してます。

324 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:58:48 ]
>>300
変な所は色々あるんだが、とりあえず、
case 3:
while(sp>0){
 sp--;
 printf("%c", Stack[sp]);
}
printf("\n");
break;


325 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:01:00 ]
>>322
最初は線形リストになにも保存されていないと思われるが、どうする?

326 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 02:05:05 ]
たぶん、いくつかの素数を入れた素数テーブルを作っておくんだと思いますが、、、
よくわからないです。
↓授業で使った線形プログラム
sakuratan.ddo.jp/uploader/source/date45003.txt



327 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:07:59 ]
何?
さくらアップローダーが流行ってるの?

328 名前:300 mailto:sage [2007/07/19(木) 02:10:22 ]
きったないプログラムだけどなんとか動くようになりました。。。
あとは修正頑張ってみます。
ありがとうございました。



329 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:12:17 ]
>>323
#include <stdio.h>
#define N 6
int nextperm(int p[], int n){
int i, j, t;
i = n - 1;
p[0] = 0;
while (p[i] >= p[i + 1]) i--;
if (i == 0) return 0;
j = n;
while (p[i] >= p[j]) j--;
t = p[i]; p[i] = p[j]; p[j] = t;
i++; j = n;
while (i < j){ t = p[i]; p[i] = p[j]; p[j] = t; i++; j--; }
return 1;
}

int main(){
int i, n, p[N + 1];
do{ scanf("%d", &n); }while(n < 1 || N < n);
for (i = 1; i <= n; i++) p[i] = i;
do{ for (i = 1; i <= n; i++) printf("%d", p[i]); putchar(' '); }while(nextperm(p,n));
return 0;
}
ぐぐって出てきたのほぼそのまんまだから動作原理はシラネ

330 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 02:23:00 ]
>>300
がんばれ

331 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 03:01:10 ]
自分で書いたソースを晒して質問するのって、それなりに大変だよな。
宿題丸投げして、回答があっても放置される事が多いけど。

332 名前: ◆Kt53Ir50Qk mailto:sage [2007/07/19(木) 03:13:35 ]
>326 まちがってました。授業でやったのは
sakuratan.ddo.jp/uploader/source/date45007.txt
でした。さっきのは自分でぐちゃぐちゃにしたやつでした。

333 名前:306 mailto:sage [2007/07/19(木) 07:44:56 ]
今日、19日のうちにおねがいします

334 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:53:07 ]
>>329
まさにそのまんまがあったんですね…。
ありがとうがざいます。

335 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 08:57:12 ]
>>333
もうで照るだろ

336 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 09:57:38 ]
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
a,b,c,d,eに1〜5の整数を一つずつ入れて
a + b - c * d / e
の結果の最大になる値、最小となる値、そのときのa,b,c,d,eを求めよ。
(算数的に計算するのではなく全パターンをためすこと。)
また、結果は何通りあるかも求めよ。

[3] 環境
 [3.1] OS: (/Linux/)
 [3.2] コンパイラ名とバージョン: (gcc 2.95-2)
 [3.3] 言語: C
[4] 期限: 2007年07月20日17:40
[5] その他の制限: 無し

337 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 11:08:25 ]
[1] プログラミング
[2] 問題 配列 int a[12]を用意し、a[i] = I ( i=0,1,2,…,10),a[11] = a[0]+a[1]+a[2]+…[10]とせよ
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:VS2005
[3.3] 言語: C ++
[4]本日まで

問題の意味がよく分からないかもしれませんがよろしくお願いします。

338 名前:デフォルトの名無しさん [2007/07/19(木) 11:56:02 ]
>>336
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4673.txt



339 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:12:46 ]
>>338
ありがとうございます。
ところで、count が120になったのですが、
a + b - c * d / e
のaとbまたはcとdを入れ替えると同じになると思うので
値は5*4*3*2*1通り未満になりませんか?
よくわからないので、もうすこしがんばってみます。

340 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:17:01 ]
>>339
同値になる入れ換えは考慮してない。
必要かな?

341 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:23:35 ]
>>340
どちらかといえばあったほうがいいです。

342 名前:デフォルトの名無しさん [2007/07/19(木) 12:25:21 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ポインタの利用
英文字の単語の出題をカウントしなさい
英文字に含まれる単語数は10以下とする
ポインタ配列を使用する
char english[] = "My name is Taro.Your name is Hanako.";

実行画面
My:1
name:2
is:2
Taro:1
Your:1
Hanako:1

343 名前:デフォルトの名無しさん [2007/07/19(木) 12:28:13 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:ユーザ関数の作成
問題1:2値の最大を求めるユーザ関数を作成しなさい
プロトタイプ宣言:int Max(int dt1,int dt2);
実行画面
数値1を入力==>10
数値2を入力==>15

大きい値:15

344 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 12:50:24 ]
>>343
#include <stdio.h>

int Max(int dt1,int dt2);

int main(void) {
int a,b,c;

printf("数値1を入力==>");
scanf("%d",&a);
printf("数値2を入力==>");
scanf("%d",&b);

printf("大きい値:%d",Max(a,b));

return 0;
}


int Max(int dt1,int dt2) {
return dt1>dt2 ? dt1 : dt2;
}


345 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:04:30 ]
>>341
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4674.txt
これでどうかな

346 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:25:20 ]
>>345
たとえば
1 +2 -3 *4/ 5
1と2の入れ換えで結果が重複して120の半分の60通りになり
3と4の入れ換えで結果が重複して60の半分の30通りになりそうなので
あっていると思います。
ありがとうございました。
ちなみにこれは算数オリンピックの第一問です。

347 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:31:01 ]
>>346
aとb、cとdの値に順序性を持たせた。
宿題ではないのか?

348 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:42:23 ]
>>347
それをC言語でとかせる宿題です。



349 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:42:49 ]
>>337です。
聞いてみたところどうもfor文を使うらしいのですがどこに使えばいいのか分かりません
よろしくお願いします。

350 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:47:18 ]
>>337>>349
int a[12];
int i;
for(i = 0; i < 11; i++) a[i] = i;
a[11] = 0;
for(i = 0; i < 11; i++) a[11] += a[i];

351 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:48:00 ]
>>337です。
たびたびすみません。
先ほどの問題でデバックの結果がa[11] = a[0]+a[1]+a[2]+…+a[10]と表示できればいいそうです。
よろしくお願いします

352 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:51:54 ]
printf("a[11] = %d\n", a[11]);

353 名前:デフォルトの名無しさん [2007/07/19(木) 13:54:06 ]
何方か342お願いします

354 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 13:55:43 ]
[1]単元:プログラミング
[2]問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4675.c
[3]環境
OS:リナックス
コンパイラ:cc
言語:C
[4]期限:来週の水曜日までに

よろしくお願いします.

355 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:06:47 ]
[1]単元:プログラミング
[2]問題:複数人の、名前と不定個の得点を入力し、平均点が50点を超える場合のみ、
名前と平均点を出力するプログラムをつくれ。得点の最大個数は10個である。
平均点は、小数点以下2桁までとせよ。入力は3人のデータとし、得点の入力終了は負数(-1)とする
一応ココまでやりました
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4676.c
[3]環境
OS:windows
コンパイラ:bcc32
言語:C
[4]期限:7/20

356 名前:デフォルトの名無しさん [2007/07/19(木) 14:06:55 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク)
 
 演算子のオーバーロードにより、複素数a,bの絶対値の大小を与える
 演算子 < を作成せよ。 

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: CC
 [3.3] 言語:C++
[4] 期限: 7月20日

どなたかよろしくお願いします。


357 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:21:04 ]
>>356
#include <complex>
template <typename T>
bool operator<(const std::complex<T>& left, const std::complex<T>& right) {
    return std::abs(left) < std::abs(right);
}


358 名前:デフォルトの名無しさん [2007/07/19(木) 14:32:44 ]
誰か >>306 お願いします。




359 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:53:49 ]
>>385
複素数をn乗するってことでおk?

360 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:58:11 ]
予言者か!

361 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:24:32 ]
>>360
書いた自分でワロタ

362 名前:デフォルトの名無しさん [2007/07/19(木) 15:39:45 ]
>>359 おkです。

363 名前:デフォルトの名無しさん [2007/07/19(木) 15:43:07 ]
授業単元:プログラミング
問題文(含コード&リンク):
環境
OS:Windows xp
コンパイラ名とバージョン:ボーランド
言語:C
期限:
その他の制限:
テーマ:標準関数の利用
問題1:文字列を入力、英文字とそれ以外を収納する配列に振り分けしなさい
使用する標準関数:isalpha()など
実行画面
文字列入力==>A12H&jfTy8uZ3#
英字:AHjfTyuZ
その他:12&83#

問題2:文字列と削除文字列を入力し、文字列中から削除文字列を排除しなさい
使用する標準関数:strncmp(),strcpy(),strlen()など
実行画面
文字列入力(m1)==>ABCDEFAADABC






364 名前:デフォルトの名無しさん [2007/07/19(木) 15:55:56 ]
syntax errorってなんですか?
cygwin上でemacsを使ってCのソースの入力してコンパイルしたのですが、
syntax errorとでまして、コンパイルできません^^;

syntax error before '{' token
とでます^^;

基本中の基本かもしれませんが^^;
誰かわかりますか?

365 名前:364 [2007/07/19(木) 15:59:12 ]
失礼・・・カテ違いでした^^;

366 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:01:42 ]
>>306

#include <stdio.h>

int main(void){
double a, b, prev_a, prev_b, const_a, const_b;
int i, n;

printf("a b n : "); scanf("%lf%lf%d", &a, &b, &n);

const_a = a, const_b = b;
for(i = 1, prev_a = a, prev_b = b; i < n; i++, prev_a = a, prev_b = b){
a = prev_a*const_a - prev_b*const_b;
b = prev_a*const_b + const_a*prev_b;
}

printf("%g + %gi\n", a, b);

return 0;
}

367 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:27:16 ]
>>363
>>205と同じやね。>>262>>264

368 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 17:12:56 ]
>>342
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4678.txt
バグっているかも試練



369 名前:368 mailto:sage [2007/07/19(木) 17:23:40 ]
後、ボーランドで確認してない。よろ

370 名前:デフォルトの名無しさん [2007/07/19(木) 17:58:40 ]
[1] 授業単元:プロA
[2] 問題文

  構造体
  struct coord{
float x;
float y;
}
を用い、また、coord.data(内容は以下のようなもの)を作成して、
 
  1.2 3.4
2.1 4.5
3.2 2.1
2.0 4.9
5.3 2.8
1.5 3.2

これらの値をメンバx,yに読み込み、(例えばa.x,a.y,b.x,b.y
又はa[0].x,a[0].yなど好きな変数名を作成すればよい。
構造体はa[0],a[1]のように配列でもよい。
この場合、メンバとはa[0].xなどとして結びつく)
 
  xとyの平均をoutput2.dataに出力するプログラムを作れ。


[3] 環境
 Windows ,CC ,C++
[4] 期限: 7/19 21:00

よろしくお願いします。

371 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 18:36:25 ]
>>355
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4679.c

372 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 18:46:15 ]
どなたか>>354お願いします

373 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:08:19 ]
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4680.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC 5.5.1
 [3.3] 言語: C
[4] 期限: できればお早めに

お手数ですが宜しくお願いいたします

374 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:25:43 ]
>>354 (>>372)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4681.c

375 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:30:20 ]
>>354
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4682.c

376 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:32:59 ]
>>373
下の二つの関数を追加して
int gcd(int a, int b){ // 最大公約数を求める関数
int c;
while((c=a%b)!=0){a=b;b=c;}
return b;
}

int gcd3(int a, int b, int c){
return gcd(gcd(a, b), c);
}

if(gcd3(a, b, c)!=1) // これが成り立つ時はなにかの倍数

377 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:28:26 ]
>>373
問1は、ループをxyz共に1000回ずつ回すのは無駄だから
for(x=1; x<=MAX-2; x++) {
for (y=x+1; y<=MAX-1; y++) {
for (z=y+1; z<=MAX; z++) {
みたいにすれば速くなるよ
問2はできてるんじゃないの?

378 名前:デフォルトの名無しさん [2007/07/19(木) 20:48:32 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):実行結果と同じ内容を表示するプログラムの作成

実行結果

+
++
+++
++++
+++++

[3] 環境
 [3.1] OS:Windows Vista Business
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:@文字の出力にはprintfを使用し、プログラム中に2回のみ使用できるものとする
Aアルゴリズムはwhile文の2重ループで行うこと



379 名前:デフォルトの名無しさん [2007/07/19(木) 20:49:04 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):月(1〜12)と日(1〜31)をキーボードから入力し、入力された日付を表示する
プログラムの作成

実行結果 (「」内の部分はキーボードからの入力)


月を入力:「15」
月の入力は1以上12以下にしてください
月を入力:「8」
日を入力:「46」
日の入力は1以上31以下にしてください
日を入力:「25」
入力された日付は8月25日です

[3] 環境
 [3.1] OS:Windows Vista Business
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005
 [3.3] 言語:C言語
[4] 期限:2007年9月3日
[5] その他の制限:@月の入力については1〜12で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること
A日の入力については1〜31で範囲チェックを行い、範囲外の入力だった
場合は、エラーメッセージを表示して再入力させること

380 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:54:54 ]
>>378
#include <stdio.h>

int main(void)
{
int i=0, j;

while(i < 5){
j = 0;
while(j <= i){
printf("+");
j++;
}
printf("\n");
i++;
}

return(0);
}

381 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:57:13 ]
>>379
終了の条件は?

382 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:04:44 ]
>>377
問2はいきなり7309から始まるんですよ…

383 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:06:37 ]
>>382
いや、それはそれ以前に処理されたものが画面に表示しきれていないだけでは・・・
実際には処理されているよ。

384 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:07:54 ]
>>382
っ a.exe > result.txt

プロンプトのバッファを超えただけと思う

385 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:21:19 ]
294です。おねがいします

386 名前:デフォルトの名無しさん [2007/07/19(木) 21:23:49 ]
>>381
何の終了条件ですか?

387 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:32:44 ]
ああ、1周でいいのか

388 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:38:22 ]
>>379

#include <stdio.h>
int main(void){
int m, d, tmp;
while(1){
printf("月を入力:");
scanf("%d", &m);
if(m<1 || m>12) fprintf(stderr, "月の入力は1以上12以下にしてください\n");
else break;
}
switch(m){
case 2:
tmp = 2;
break;
case 4:
case 6:
case 9:
case 11:
tmp = 1;
default:
tmp = 0;
}
while(1){
printf("日を入力:");
scanf("%d", &d);
if(d < 1 || d > 31-tmp) fprintf(stderr, "日の入力は1以上%d以下にしてください\n", 31-tmp);
else break;
}
printf("入力された日付は%d月%d日です\n\n", m, d);
return(0);
}



389 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:44:17 ]
うわあ、switch文でbreak;書き忘れた><

390 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:00:18 ]
>>375
サンクスです☆

391 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:09:26 ]
>>379

#include <stdio.h>
int main(void) {
int month = 0, day = 0;
while (month<1 || 12<month) {
printf("月を入力:");
scanf("%d", &month);
if (month<1 || 12<month) printf("月の入力は1以上12以下にしてください\n");
}
while (day<1 || 31<day) {
printf("日を入力:");
scanf("%d", &day);
if (day<1 || 31<day) printf("日の入力は1以上31以下にしてください\n");
}
printf("入力された日付は%d月%d日です", month, day);
return 0;
}

392 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:22:33 ]
>>294>>295
お願いします

393 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:01:43 ]
>>376 >>377 >>383
ありがとうございました〜!

394 名前:体験版ありw mailto:sage [2007/07/19(木) 23:15:53 ]
株式会社リアルクソエイト
www.realcreate.net/

WILLTY(ウィルティ)はネットワーク上や
外部媒体からウィルスやハッカーが侵入する際の
異常な電子の動きをキャッチし、コンピュータの入り口で
確実にブロックしてしまうという世界初の画期的な方法が
とられています。

たとえ、ウィルス感染したCD,FD,USBなどをインストールしても、
コンピューターがウィルス感染することはありません。
正常なデーターのみがコンピューター内に取り込まれます。

■ 電源コンセントからの情報漏洩をブロック
WILLTYは電源LANシステムを応用したデーター漏洩やハッキングをブロックします。
コンピュータ電源をコンセントに差し込んだ瞬間から機密情報は丸裸になっています。
LAN上のセキュリティーをどれだけ強固にしても、電源コンセントから
あなたの情報は筒抜けになっています

395 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:16:32 ]
>>393
if ( dvsr >= trg ){
このtrgって、sqrtを取得して比較すれば
素数判定が早くできないかな。

dvsr++;
これも奇数を見るだけで良いのじゃないかな。
チェック対象件数が半減すると覆うよ。


396 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:17:16 ]
↑のソフト使った人感想ちょうだいw




397 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:22:24 ]
ウィルスに感染した電子ってスピンか何かが違うのか?

398 名前:デフォルトの名無しさん [2007/07/19(木) 23:24:02 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4662.c

>>261を参考にしながらPPMファイルを出力したいのですが、できません。
環境はWindows xp + cygwinです。
0 10 10 100 30 10 50 50 100 255 0 0
0 100 20 100 100 20 50 0 20 0 255 0
0 200 30 100 200 30 80 20 15 0 0 255
をCygwin上で入力しています。
何がいけないのでしょうか・・



399 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:24:10 ]
>>397
違わないだろw

壮大な釣りソフトw

400 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:53:45 ]
こんなソフト通用すると思ってんのかw

401 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:04:20 ]
>>394
あぶねえ。
俺、“そういう試みをチャレンジしている会社がある”と信じるところだった。

402 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:14:35 ]
そういうウィルスを作れたら、
量子コンピュータどころじゃない、
21世紀最大の発明となる鴨。
遺伝情報の媒体って超ひもあたりでやるのか?
エンコードやデコードどうするのかなw

403 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:45:57 ]
>>294
とりあえずは問題の意味が分からないんだけど、それは置いておいて
>>294>>295に出ているソースをベースにして作らないといけないの?

コンパイルさえできないんだけど。



404 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:58:29 ]
>>294>>295です
書いてあるプログラムのmainとnumber大域変数は変更しないで
intのスタックを2つ作る(大域変数)。
1つのスタックは数値をいれる。もう1つには演算子を表す数をいれます。

405 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 02:01:27 ]
コンパイルは出来なくてもいいんです。確か1つ引っかかりますよね。


406 名前:デフォルトの名無しさん [2007/07/20(金) 06:45:10 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 問題010
多分岐型(2)
次の説明は冬季オリンピックの開催年についての説明である。

キーボードから変数year に入力された年号について、
開催された年に第何回大会が開催されたか
画面に表示するプログラムを作成しなさい。

また開催年でない場合は、画面にその旨メッセージを出力すること。

【説明】
1924 年の第1 回大会以来、4 年に1 度開催されている。
1992 年の第16 回大会までは夏季大会と同じ年に開催されたが、
1994 年の第17 回大会からは、夏季大会の2 年後に開催されるようになった。
1940 年、1944 年は第二次世界大戦の影響で中止。
次回は2010 年、第21 回大会、カナダのバンクーバーで開催予定。
[3] 環境
 [3.1] OS: Windows;
 [3.2] コンパイラ名とバージョン: (VS)
 [3.3] 言語: C
[4] 期限: ([2007年07月21日まで]
[5] その他の制限:

よろしく。

407 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 07:02:51 ]
>>406
やだ

408 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 07:26:01 ]
>>406
ほらよ、とっときな

#include <stdio.h>
int main(void){
int year;
while(1){
printf("年号は?");scanf("%d",&year);
switch(year){
case 1924:puts("第@回");break;
case 1928:puts("第A回");break;
case 1932:puts("第B回");break;
case 1936:puts("第C回");break;
case 1948:puts("第D回");break;
case 1952:puts("第E回");break;
case 1956:puts("第F回");break;
case 1960:puts("第G回");break;
case 1964:puts("第H回");break;
case 1968:puts("第I回");break;
case 1972:puts("第J回");break;
case 1976:puts("第K回");break;
case 1980:puts("第L回");break;
case 1984:puts("第M回");break;
case 1988:puts("第N回");break;
case 1992:puts("第O回");break;
case 1994:puts("第P回");break;
case 1998:puts("第Q回");break;
case 2002:puts("第R回");break;
case 2006:puts("第S回");break;
default:puts("開催されなかった、あるいはどうなるか分かりません。");break;
}}return 0;
}



409 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 07:27:22 ]
>>405
コンパイル出来ないのは、
「大域変数を変更する」以前の
「書いてあるプログラム」の問題。


410 名前:デフォルトの名無しさん [2007/07/20(金) 11:06:04 ]
>>354
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4683.txt

411 名前:タウリン2000mg配合 [2007/07/20(金) 11:13:28 ]
[1] 授業単元:計算機プログラミング
[2] 問題文:input7.txtから4×4の行列の要素を読み込み、その逆行列を出力するプログラムを作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:よくわかりません。
 [3.3] 言語: C言語
[4] 期限: 2007/8/3 まで

www.fluid.cse.nagoya-u.ac.jp/~ishihara/c/Sec9prac2.html
を改造して作ればいいという課題です。
抜けてる部分だけ作ればいいんですが、それでもいまいちわかりません。
どなたか親切な方がいたら教えてもらえないでしょうか。

412 名前:デフォルトの名無しさん [2007/07/20(金) 11:42:11 ]
>>406
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4684.txt


413 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 11:48:58 ]
>>412
どんなソースかと思いきやww

414 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:02:20 ]
アマリニモカワイソスギル

415 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:05:47 ]
>>411
nagoya-u.ac.jpって書いてあるけど、ブラクラ?

416 名前:デフォルトの名無しさん [2007/07/20(金) 13:15:02 ]
>>363
#include <stdio.h> #include <string.h> #include <ctype.h>
#define SIZE 500
int main()
{ char English[SIZE] = {'\0'}; char Other[SIZE] = {'\0'};
char buff[SIZE]= {'\0'}; char *temp; int i,j=0,k=0; int len;
fgets(buff,sizeof(buff),stdin); if(temp = strchr(buff, '\n'))
*temp = '\0';
for(i = 0; buff[i] != '\0'; i++){
if(isalpha(buff[i]))
English[j++] = buff[i];
else
Other[k++] = buff[i];
}
printf("English %s Other %s \n",English,Other);

printf("英文字入力\n");
fgets(buff,sizeof(buff),stdin);
if(temp = strchr(buff, '\n'))
*temp = '\0';
printf("削除文字入力\n");
fgets(Other,sizeof(Other),stdin);
if(temp = strchr(Other, '\n'))
*temp = '\0';
len = strlen(Other);
while(temp = strstr(buff,Other)){
memcpy(temp,temp+len,sizeof(buff));
}
printf("削除後 %s \n", buff);

return 0;
}

417 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:17:10 ]
>>415
サンプルソースだ。問題ないと思うが。

418 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:36:14 ]
[1] 授業単元:演習
[2] 問題文:自然数nを入力すると、任意のディレクトリに任意の名前でn個のフォルダを作成するプログラムを作りなさい。
       なお、危険防止のためnの上限は5とする事。
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (vs)
 [3.3] 言語: (C言語)
[4] 期限:今日中



419 名前:デフォルトの名無しさん [2007/07/20(金) 13:38:38 ]
C++の認定試験てあるの?

420 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:52:41 ]
[1] 授業単元: 演習
[2] 問題文(含コード&リンク):
探索パターンと置換パターン、入力ファイル名を引数にとり、
入力ファイルの探索パターンに合致する部分をすべて置換パターンに置き換えるプログラムを作成せよ
パターンにはsedで扱える正規表現のうち、下の部分が使えるように実装せよ

. 改行をのぞく任意の1文字にマッチ
[abc…] aまたはbまたはc…のうちいずれか1文字にマッチ
d*    0個以上のd(dは文字または正規表現)にマッチ
\(str\) 文字列str(strは正規表現を含んでよい)二マッチ
\n    n番目に表れた\(...\)の中の文字列にマッチ (nは1から9の整数)
\c    cに^,$,.,*,[,\をおくことによりそれ自身にマッチ
.*    0個以上の改行を除く任意の文字にマッチ

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 07年7月22日
[5] その他の制限: system()等使わずに正規表現を実装すること

421 名前:お願いします! mailto:sage [2007/07/20(金) 13:54:03 ]
「2個のサイコロ振りをシミュレートするCプログラムを書け。1個目のサイコロ振りにも2個目サイコロ振りにも関数randを使い、2つの出目の和を計算する。」
この問題です!よろしくぅお願いします!

422 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:55:20 ]
>>421
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1;
b = rand() % 6 + 1;
printf("%d", a + b);
return 0;
}

423 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:02:04 ]
>>422
ありがとうございますぅ!ただ、何と何が出たか分からないから個別に表示もおながいもうしあげます

424 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:03:22 ]
printf("%d + %d = %d\n", a, b, a + b);

425 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:04:14 ]
>>423
ほれ
#include <stdlib.h>
#include <stdio.h>
int main() {
int a,b;
a = rand() % 6 + 1
printf("a = %d\n", a);
b = rand() % 6 + 1;
printf("b = %d\n", b);
printf("%d", a + b);
return 0;
}

426 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:05:19 ]
おー!すばらしい!!!あと、半か丁か表示できますか??

427 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:10:53 ]
if(a % 2 == 0) printf("aは丁"); else printf("aは半");
if(b % 2 == 0) printf("bは丁"); else printf("bは半");



428 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:11:47 ]
ちがうよ、2個の合計で丁か半か判断するんだってばwww



429 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:12:12 ]
>>426
そろそろ自分でやったらどうだい?

430 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:13:10 ]
if((a + b) % 2 == 0) printf("丁"); else printf("半");

431 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:15:04 ]
あと、掛け金もおながいします
その辺はきでんのセンスで

432 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:20:09 ]
>>431
なんでいっぺにいわないんだい?
自分でやりなさい。

433 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:22:53 ]
>>431
指定の口座に3本ほど振り込んでくれないか

434 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:23:55 ]
お金はないので他のお礼で。。。

435 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:25:16 ]
釣りだろ

436 名前:デフォルトの名無しさん [2007/07/20(金) 14:25:25 ]
6カ月分のガス料金を求めましょう
使用料金=基本料金+(1㎥当たりの単価×使用量)

使用量         基本料金     1㎥当たりの単価
25㎥以下       690円     127円
25㎥から500㎥以下 1170円    108円
500㎥より多い    6980円    96円

月の使用量を順番にキーボードから入力する。
使用料金は基本料金+(1㎥当たりの単価×使用量)で計算する。
各月の使用料金を算出して以下のように表示させる。

例)
1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin
Charge 12500 25600 35410 19860 13250 2980s0 1278540 21906


437 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:26:15 ]
>>434
体?でどう?

438 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:27:04 ]
㎥が文字化けしているぞ?



439 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:31:26 ]
int ryokin(int siyou)
{
int kihon, tanka;
if(siyou <= 25) { kihon = 690; tanka = 127; }
else if(siyou <= 500) { kihon = 1170; tanka = 108; }
else { kihon = 6980; tanka = 96; }
return kihon + siyou * tanka;
}

440 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:36:55 ]
>>438 してないお(^ω^)

441 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:38:41 ]
>>437
女でよければ。。

442 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:39:41 ]
int i, siyou[6], charge[6];
int gokei,heikin;
gokei = 0;
for(i = 0; i < 6; i++) {
printf("%d月の使用量:", i);
scanf("%d", &siyou[i]);
charge[i] = ryokin(siyou[i]);
gokei += charge[i];
}
heikin = gokei / 6;
printf("1gatu 2gatu 3gatu 4gatu 5gatu 6gatu Goukei heikin \n");
printf("Charge");
for(i = 0; i < 6; i++) printf("%6d", charge[i]);
printf("%6d", gokei);
printf("%6d\n", heikin);

443 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:41:16 ]
>>441はやっぱなし!高校生だし

444 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:47:10 ]
>>443
えええええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええええ
ええええええええええええええええええええええええええええ
えええええええええええええええええええええええええええ
ええええええええええええええええええええええええええ
えええええええええええええええええええええええええ
ええええええええええええええええええええええええ
えええええええええええええええええええええええ
ええええええええええええええええええええええ
えええええええええええええええええええええ
ええええええええええええええええええええ
えええええええええええええええええええ
ええええええええええええええええええ
えええええええええええええええええ
ええええええええええええええええ
えええええええええええええええ
ええええええええええええええ
えええええええええええええ
ええええええええええええ
えええええええええええ
ええええええええええ
えええええええええ
ええええええええ
えええええええ
ええええええ
えええええ
ええええ
えええ
ええ


445 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:50:05 ]
>>444
for(int i = 0; i < 31; i++) {
for(int j = 0; j < 31 - i; j++) printf("え");
puts("");
}

446 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:50:29 ]
>>445
実はもう書いてあったw

447 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 14:57:14 ]
なにこの流れ

448 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:13:49 ]
あと、>>418も私です
お礼はできませんが、ほんとお願いします



449 名前:デフォルトの名無しさん [2007/07/20(金) 15:16:18 ]
名前は指定なしで勝手にきめていいの?

450 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:16:57 ]
指定しないほうがありがたいです☆

451 名前: ◆DpMW3bRjps [2007/07/20(金) 15:26:22 ]
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する
               プログラムのソースコードを提出しなさい。
                
              実行例)
              文字列を入力してください
              yamamotoyama
              さがす文字を入力してください
              y
              入力された文字列の中に指定された文字は2個あります


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007年07月23日17時まで
[5] その他の制限:今回初めて文字配列というものを習いました!春から初めた初心者です
         よろしくお願いします!!

452 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:41:33 ]
>>451

#include <stdio.h>

#define N 128

int main(void)
{
char target, str[N];
int i, count=0;

printf("文字列を入力してください\n> ");
gets(str);
printf("さがす文字を入力してください\n> ");
gets(&target);

for(i=0 ; i<N ; i++){
if( str[i] == target ) count++;
}

printf("\n入力された文字列の中に指定された文字は%d個あります\n", count);

return(0);
}

453 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:02:07 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4686.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々) 自宅はWindows、学内はLinux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) 自宅:Microsoft Framework SDK 学内:gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月21日まで(おそらく日付変わるまでなら大丈夫)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
基本的に情報系の高校生でも組めるようなプログラムにしていただけると助かります。
多少複雑になってもいいので、できるだけ基本的な命令(ifとかfor)でお願いします

454 名前: ◆DpMW3bRjps [2007/07/20(金) 16:25:21 ]
>>451さんへ
ありがとうございます!!

455 名前: ◆UoNQqijD4I [2007/07/20(金) 17:08:04 ]
>452ですが。今コンパイルしたら下のようにエラーがでました(><)

/tmp/cc2eSWqP.o(.text+0x38): In function `main':
: warning: the `gets' function is dangerous and should not be used.

456 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:13:46 ]
内容:
[1] 授業単元:C++
[2] 問題文 文字列の長さを計算する関数を作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C++
[4] 期限: (20日18:00まで]
[5] その他の制限: 以下の内容に手を加えて欲しいのですが・・・
#include <stdio.h>
#define MAX 100
string_length(char str[MAX]);
int main(void){
int i,string_len;
char string[MAX];
printf("入力:");
scanf("%s",string);
printf("文字列の大きさは%dです。",string_length(string));
return(0);
}
int string_legth(char str[MAX]){
int i;
int str_len;
for(i=0;str[i]!='\0';i++);{
}
str_len=i;
return(str_len);
}
Error: 外部シンボル '_string_length' が未解決
と、出て四苦八苦してるのでよろしくお願いします

457 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:15:06 ]
>>455
ワーニングだ
fgetsに帰ればおk

458 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:16:07 ]
> char target, str[N];
> gets(&target);
コレは幾らなんでもマズい



459 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:19:11 ]
>>456
- string_length(char str[MAX]);
+ int string_length(char str[MAX]);

- int string_legth(char str[MAX]){
+ int string_length(char str[MAX]){


460 名前:456 mailto:sage [2007/07/20(金) 17:22:01 ]
>>459さん
ありがとうございます。俺が間抜けでした!!
レポート出してきます!!


461 名前:デフォルトの名無しさん [2007/07/20(金) 18:32:36 ]
>>418
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4687.txt
チェックは甘いが。

462 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:41:06 ]
試験勉強中です…付き合ってくださる師匠様募集中…

[1] 授業単元:関数を自作する
[2] 問題文:n!を計算するプログラムを作る
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:???
 [3.3] 言語:C++ …なんですけど、先生はいつもC言語と混ざっている気がする。

#include <stdio.h>
int kaijo(int n)
{
int ans,i;
ans=i;
for(i=1;i<=n;i++) ans*=i;
return ans;
}
int main(void)
{
int n,k;
printf("n="); scanf("&d",&n);
k=kaijo(n);
printf("%d!=%d\n",n,k);
return 1;
}

とやってみたら、

n=5
10494432!=0

となってしまって…。

463 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:44:44 ]
scanf("&d",&n);をscanf("%d",&n);に変えると幸せになれる

464 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:47:59 ]
kaijo()もおかしいから、それだけじゃ幸せにはなれない

465 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:52:57 ]
順を追って考えろ
int ans, i;

このときのansの値とiの値は特に決められていない
だからans = i;
としたところで何も意味がない
ans = 定数にしてやれ


466 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:53:09 ]
>>463
それだけで幸せになれました。ありがとうございます。
またわからないとこが出てきたら来ます。

467 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:55:12 ]
これで電通かよ・・・
大阪電気通信大学の間違いじゃないのか・・・

468 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 19:58:03 ]
>>462
一緒に幸せになろう



469 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 19:59:05 ]
いや、私は電気通信大学じゃないですよw
電気通信大学意以外でも電通って訳すところ、以外とたくさんあるようで。

470 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:03:29 ]
[1] 授業単元: 情報演習基礎
[2] 問題文(含コード&リンク):

・ 区間[ a, b ]において連続なる関数f ( x) について,定積分の計算を行う。
・適用する式は,シンプソンの公式f ( x)=1/(1+x2)とする。
・a=0, b=100, e=0.0000001の場合の積分値とnの値を表示する
・各変数(nを除く)の型はdoubleとする

[3] 環境
 [3.1] OS: WinXP
 [3.2] コンパイラ名とバージョン: visualstudio2005
 [3.3] 言語:C++
[4] 期限: 2007 7/22
[5] その他の制限:標準ライブラリは禁止

よろしくおねがいします。

471 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:05:12 ]
>>470
printfも使っちゃだめなのか?w

472 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:08:25 ]
#include <stdio.h>

int add(int a,int b)
{
int c=a+b;
a=100;b=200;
return c;
}

int main(void)
{
int a,b,c;
a=1;b=2;c=add(a,b);
printf("%d+%d=%d\n",a,b,c);
return 1;
}

これの実行結果が1+2=3になるんですけど、最初の方の100も200も消えちゃってるってことですか?

473 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:12:04 ]
>>472
関数の中で宣言した変数は関数を抜けると消えてなくなるよ?

474 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:17:42 ]
ここは宿題スレであって質問スレではないから
質問をしたいなら質問スレに行け。

475 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:23:41 ]
おっと、すみません。
初心者歓迎スレに移行しまする。

476 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:23:42 ]
>>453
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4690.txt

477 名前: ◆UoNQqijD4I [2007/07/20(金) 20:27:13 ]
>>457さん、fgetsに変えたのにまだエラーがでます泣

478 名前: ◆UoNQqijD4I [2007/07/20(金) 20:30:25 ]
>477ですが、ちなみに今度はこんなエラーです
tin.c: 関数 `main' 内:
tin.c:12: error: too few arguments to function `fgets'
tin.c:14: error: too few arguments to function `fgets'
tin.c:16: error: `gcc' undeclared (first use in this function)
tin.c:16: error: (Each undeclared identifier is reported only once
tin.c:16: error: for each function it appears in.)
tin.c:16: error: 文法エラー before "for"
tin.c:16: error: 文法エラー before ')' token
tin.c: トップレベル:
tin.c:20: error: 文法エラー before string constant
tin.c:20: 警告: conflicting types for built-in function `printf'
tin.c:20: 警告: data definition has no type or storage class




479 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:33:22 ]
>>471
ttp://www.geocities.jp/ky_webid/cpp/library/000.html
こういうやつのつもりで言ったんですが、違うんですか?
課題が出るときに標準ライブラリ禁止といわれただけなので、よくわからないです

480 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:35:13 ]
>>478
いやゴメン、使い方はオンラインマニュアルなりで確認しようね
とりあえず
fgets(buf, sizeof(buf), stdin);
にすればおk

あと>>458

481 名前:480 mailto:sage [2007/07/20(金) 20:35:50 ]
bufじゃなかった、strだった

482 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:49:02 ]
finを思い出した。

483 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 20:57:35 ]
スイマセンこれは宿題なんでこっちで教えてください。
1+2+3+…+nをつくるんですが、

#include <stdio.h>

int sum(int n)
{
int ans,i;
ans=i;
for(i=0;i<=n;i++) ans+=i;
return ans;
}

int main(void)
{
int n,s;
printf("n="); scanf("%d",&n);
s=sum(n);
printf("1から%dまでの和は%dです。\n",n,s);
return 1;
}

こうしたら実行結果が

n=5
1から5までの和は16です。

となってしまったんですが、どこで1増えてしまってるんでしょうか?

484 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:16 ]
>>483
よく見てないけど、sum()の中の
ans=i;



485 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:42 ]
ans=i;をans=0;に変えると幸せになれる

486 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:44 ]
>>483
>ans=i;
何を代入してるんだ。

487 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 21:00:39 ]
ああ!
ans=0;
ですね!ありがとうございました!

488 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:11:04 ]
上に書いてあったのに読んでないんだな




489 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:19:48 ]
宿題を人に投げる人間なんてそんなもん。


490 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:20:35 ]
ans=iはans=1の写し間違いだとesp

491 名前:電通女 ◆v1Uy5WkQ7k mailto:sage [2007/07/20(金) 21:38:53 ]
おお、なるほど。

492 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:44:31 ]
コピペに移し間違いなんt

493 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:48:16 ]
>>479
C言語にprintf関数やputs関数など、多数の関数群(標準ライブラリ関数)があるように

よく読んだか?

494 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:49:58 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次のようにプログラムを作成せよ。以下のプログラムのmainとnumber大域変数は変更しないで、
intのスタックを2つ作る(大域変数)。1つのスタックは数値をいれる。もう1つには演算子を表す数をいれる

#include<stdio.h>
#include<ctype.h>
char *p;char c[100];
int expression(void);
int term(void);
int number(void);
main(){
int ans;
while(1){
printf("Enter expression : ");
fgets(c,90,stdin);
p=&c;

if(*p == '\n')
{break;}
ans=expression();
printf("Answer:%d\n" , ans);
}
}

495 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:50:48 ]
int expression(){
int ans;
ans = term();
while(1){
if(*p == '+'){
*p++;
ans = ans + term();
}
else if(*p == '-'){
*p++;
ans = ans - term();
}
else
break;
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2007年07月21日
[5] その他の制限:特になし

496 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:55:05 ]
>>494
翻訳ソフトにかけた日本語みたいだな。さっぱりわからん。

497 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:56:27 ]
>>494
こんな問題出す糞教官は死んだ方がいいな

498 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 22:58:10 ]
>>493
読み飛ばして勘違いしていました
すみません

>>470は標準ライブラリではなく
C++標準ライブラリです



499 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:01:05 ]
>>494
問題文は?

500 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:02:02 ]
>>498
std::coutとかも標準ライブラリじゃねぇの?

501 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:23:13 ]
必要なものはアセンブラで組めと

502 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:24:09 ]
>>494です
書いたプログラムのmainとnumber大域変数は変更しないで、
intが2つのに変えます。1つにはスタックは数値をいれて、もう1つには演算子を表す数をいれます。
それで、+−*/を出来るようにします。
例えば
+の時は0
-の時は1
*の時は2
/の時は3 を入れるそうです。


503 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:24:54 ]
日本語でおk

504 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:29:52 ]
>>1
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

ってあるから標準ライブラリ使うなって言うトチ狂った事が多発するんじゃね?
ここで
[5] その他の制限: (どこまで習っているか、ある特定の標準ライブラリ関数は使ってはいけない等々)

って書いとけばちょっとはマシになるのでは?

505 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:30:58 ]
別にどうでも良い。
スルーするなり、非標準の関数を用いるなり、好きにすれば良いじゃん。

506 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:31:08 ]
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4691.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 7/23
[5] その他の制限: 特になし

よろしくお願いします

507 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:34:06 ]
[5] その他の制限:(#include<stdio.h>は使ってはいけない等々)
[6] どこまで習っているか (for文を習いました等々)

もっと具体的に、そして分けたほうがいいんじゃないか?

508 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:39:25 ]
>>494
括弧は使うの?



509 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:41:46 ]
>>507
んなコマいこと言ってたらキリが無い

510 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:44:49 ]
>>508
括弧はどこの括弧ですか?大域変数なら、その大域変数を用いて
プログラムを作成するみたいです

511 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:45:05 ]
>>506
再帰

int fib(int n) {
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib(n-1) + fib(n-2);
}

非再帰

int fib(int n) {
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}

512 名前:508 mailto:sage [2007/07/20(金) 23:48:54 ]
>>494, 510
入力する式で括弧を使うかってこと

513 名前:デフォルトの名無しさん [2007/07/20(金) 23:52:35 ]
>>506
そのフィボナッチ数列あってる?
初項と第2項は共に1じゃなかったっけ?

514 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 23:55:37 ]
>>513
fib(1)とfib(2)を1にしたいんじゃないかな
そうすっと、fib(0)を0にしてfib(1)を1にするとちょうどよくなる

515 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:03:37 ]
>>512
括弧は使っても使わなくても大丈夫です。
とにかく、問題文の内容を使い動けばいいみたいです

516 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:04:58 ]
>>506

#include <stdio.h>
int fib1(int n) { //再帰
if (n == 0) return 0;
else if (n == 1) return 1;
else return fib1(n-1) + fib1(n-2);
}
int fib2(int n) { //非再帰
int a = 0;
int b = 1;
while (n > 0) {
int t = a+b;
a = b;
b = t;
n = n-1;
}
return a;
}
int main(void) {
int n[] = {10, 20, 30, 40, 45};
int i;
for (i=0;i<5;i++) printf("%d ", fib1(n[i]));
putchar('\n');
for (i=0;i<5;i++) printf("%d ", fib2(n[i]));
putchar('\n');
return 0;
}

517 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:20:07 ]
>>515
>以下のプログラムのmainとnumber大域変数
mainとnumberは大域変数なのか?

>とにかく、問題文の内容を使い動けばいいみたいです
前スレで回答があったんだがな。気がつかなかった?


518 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:51:20 ]
>>511 >>516
ありがとうございました
参考にさせてもらいます



519 名前:デフォルトの名無しさん [2007/07/21(土) 02:36:41 ]

3目並べのプログラムです。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4692.c

何度も対戦できるようにするために列の判定の配列を初期化するようにしたらコンパイルエラーが出るようになってしまいました。
頭の中がぐちゃぐちゃになってきたので、アドバイス等いただければと思います。

正常にプログラムを実行したとき、先攻or後攻を決めることになりますが
また実装はしていませんのでお飾り状態です。

520 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:39:33 ]
>>517
以下のプログラムのmainとnumber大域変数は変更しないで、
1つのスタックは数値ともう1つには演算子を表す数を大域変数にすればいいと
思います



521 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:50:35 ]
>>520
mainは大域変数なのか?

522 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 02:58:09 ]
>>519
酔っぱらっているので、ロジックはチェックできないがw

まず、変数と関数に同じcheckを割り当てることを止めろ。
配列={0}とできるのは、配列変数の宣言をする時。
それ以外の箇所で初期化したいなら、
ループで各要素に0を代入するか、
>memset(area,sizeof(area),0);
とかするといいぞ。

523 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:18:49 ]
>>520
宿題の回答を依頼したいなら、
使う用語は理解してからにしてくれ。

大域をpublicと言う意味で使うにしても、
mainやnumberは変数ではないよ。
スタックと言う言葉の意味は分かっているのか?
依頼したい内容が、そもそも通じてないから、
回答が無いのじゃないかな?

524 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:27:57 ]
>>521>>523
あやふやな言い方ですいません。mainとnumber大域変数は変更しないで、
intのスタックを2つ作りたいです。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。

よろしくお願いします

525 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:36:44 ]
>>519
battle→put→battleって流れがあるからずっと対戦続けてるとばぐるよ。
int check[8]がグローバルである必要が無い。check関数内のみでOK。
もちろん名前は>522の言うように別でw

あと、do-whileですっきりしそうなところがいっぱいある。
別に直さなくても動くから無視してくれていいけど。

526 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:36:51 ]
だから、そもそもmainは変数じゃないって。
変数じゃない物を、変更できる訳はないよ。
あなたが言う「スタック」とは何なのか
説明してくれないと、意味が分からない。

527 名前:526 mailto:sage [2007/07/21(土) 03:39:36 ]
振り先は>>524です。orz

528 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:41:46 ]
>>524
あやふやな言い方を直したつもりなのか同じことを繰り返しているぞw
元のプログラムに「number大域変数」というものが存在しない。
よって変更するしないとかいう意味がわからない。
提示したプログラムだが途中までしかコピペしていないんじゃないか?
break;なんかで終わってるしterm関数が見当たらない。



529 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:44:40 ]
>>526
スタックはおそらくそのままスタックでいいかと。
2つってのが引っかかるが演算子と数値で2つ作るんだろう。
「1+2-3」って入力ならスタックA「1 2 3」スタックB「+ -」になって
popA popB popAの演算をスタックがなくなるまで行う。
って感じでエスパーしてみた。

乗除に対応しようとした時点で破綻する設計だなw

530 名前:526 mailto:sage [2007/07/21(土) 03:54:08 ]
この問題、奇特な人が回答しているんだが。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4615.c
依頼者はこれが気に入らないのかな。
もちろん、この時の依頼者は別人かも試練。
だが、「スタックで実装しろ」の言う意味は
理解してからにして欲しい。


531 名前:519 [2007/07/21(土) 03:55:30 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4693.c

checkをローカルに戻してareaの再初期化をforに変更しました。
プログラムを実行すると、途中でうまく配置できていない感じになってしまいます。

先攻後攻は先ほどと同じく未実装です。

532 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:57:18 ]
すいませんでした。
プログラムが途中でした。
}
return(ans);
}
int number(void){ //数値データ
int i=0;
while (isdigit(*p)){
i = i*10+(*p++)-48;
}
return(i);
}

533 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:58:33 ]
とりあいずmainとnumberは変更しないで、
intのスタックを2つ作る。
1つのスタックは数値をいれる。
もう1つには演算子を表す数をいれる。です。

534 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:00:58 ]
>>530さん
書き込みが食い違いになってしまいすいません。

535 名前:526 mailto:sage [2007/07/21(土) 04:02:18 ]
だから、スタックって何?

536 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:05:17 ]
whileをintだけで書けってことをいいたいのか?

537 名前:526 mailto:sage [2007/07/21(土) 04:07:07 ]
>>533
「演算子を表す数」を定義してくれ

538 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:07:33 ]
あれか?それともint使ってとにかく数値をいれるのと
演算子を表す数のを作ればいいのか?



539 名前:526 mailto:sage [2007/07/21(土) 04:13:19 ]
要件定義ができないなら、それでも良いが、
どういう物を作って欲しいのか、理解可能な表現にして下さい。
少なくとも宿題をそのまんま書いてくれないと、espの領域になる。

540 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:17:12 ]
演算子を表す数ですか?
一応黒板に書いてあったのを書き込みました

541 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:19:48 ]
確か+が一番弱く/が一番強くなるように作ると言っていました

542 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 04:20:14 ]
>>531
print関数がおかしい。
ループ部分を以下みたいにしてみ。
for(i=0;i<9;i++){
if(area[i] == 0)
printf(" ");
else if(area[i] == 1)
printf("○");
else if(area[i] == 4)
printf("×");
else
printf("as");
printf("|");
if ( i % 3 == 2 )
printf("\n");
}
とりあえずは動くよ。

543 名前:526 mailto:sage [2007/07/21(土) 04:21:36 ]
>>531で示した回答にどういう不満があるのか、
せめてそれだけども答えてくれ。

>演算子を表す数ですか?
>一応黒板に書いてあったのを書き込みました
見落としたかも知れないから、
演算子と定数の対応表を再掲してくれ。


544 名前:526 mailto:sage [2007/07/21(土) 04:23:51 ]
スタックの定義も提示してくれ。

545 名前:519 [2007/07/21(土) 04:31:10 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4694.c

>>542
挙動は正常になったようなのですが
2度目以降の対戦がうまく動作しません・・・(´・ω・`)
area[]の初期化は出来ていると思うのですが・・・


>>543
レスアン間違ってないですか?

546 名前:519 [2007/07/21(土) 04:33:00 ]
初期化できてなかったですね・・・^^;
すいません、みすってました

547 名前:526 mailto:sage [2007/07/21(土) 04:35:27 ]
>>541
宿題の意味が分からないなら、>>531で宿題の回答にしたらいい。
この回答に不満があるなら、
この回答のどこが設問と違うか、提示すればいいだけだと思うが。

548 名前:519 [2007/07/21(土) 04:41:21 ]
526さんは何を言ってるんでしょうか?

私ともう一人質問をされてる方がいるんだとおもんですが・・・?

私は3目並べの話をしてるんですが?



549 名前:526 mailto:sage [2007/07/21(土) 04:46:50 ]
>>548 気にしないで下さい。あなたの推察通りです。

済まん、酔っぱらいだ
>>547で書いた>>541>>540の間違いだ。訂正する。

550 名前:519 [2007/07/21(土) 05:08:59 ]
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4695.c

先攻or後攻も考慮してみました。

課題の指示としては
1,二人対戦・com対戦可能
2,毎回com/man対戦・終了を選ぶ

というものです。

このプログラムでみたせてるでしょうか?

私の中ではOKだとは思うのですが

できてねーぞごるぁ! とかあればおねがいします

551 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 05:14:31 ]
【即会い!!】

私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。
↓↓↓
【ブログ 〜即出会えるサイト】deaigets.blog97.fc2.com/

552 名前:519 [2007/07/21(土) 05:18:33 ]

もう一つ指示があったのを忘れていました。

・戦歴の表示

というのがあったので、追加しました
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4695.c

評価お願いします。

553 名前:519 [2007/07/21(土) 05:22:51 ]
何度もすみません、凡ミスがあったので修正しました。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4696.c

554 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 07:22:22 ]
とても丁寧な読みやすいコーディングだね。
ソース流し読みしただけだけど敢えて問題があるとするなら
ループでscanfを使ってるくらい?

555 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 09:35:31 ]
>>519
良くできてると思いますよ。

556 名前:519 [2007/07/21(土) 10:06:42 ]
ありがとうございました。

557 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:21:02 ]
すいません、あんまりわからないので、教えてください。
ほんとに初歩の質問ですいません

1] 授業単元: プログラミング基礎
[2] 問題文(含コード&リンク):
<次のプログラムの断片は誤りを含んでいるところがある。
その誤りの理由を述べ、正しい動作をするようにその箇所を修正した
プログラム断片全てを書け。ただし無関係のところまで変えないこと。

[3] 環境
 [3.1] OS: Linuxです
 [3.2] コンパイラ名とバージョン: gcc です
 [3.3] 言語: Cでお願いします。
[4] 期限: 25日いっぱいまでです。


558 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:22:35 ]
すいません。問題忘れてました…
(1)
if(c = '\0')
n++;

(2)
while(c = getchar() !=EOF)
putchar(c);

(3)
for(i = 0; i < 10; j++){
total += i;
}

(4)
switch(c){
case 'y':
state = 1;
case 'n':
state = 0;
default:
state = -1;
}

お願いします…



559 名前: ◆yb5ufjhaCo [2007/07/21(土) 11:23:13 ]
(5)
if(k = 0)
1++;
else
1--;


(6)
for (i = 0; i < 8; j++){
b[i] -= a[i+j];
}

(7)
switch(c){
case 'y':
count--;
case 'n':
count++;
default:
break;
}


560 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 11:28:31 ]
1:=
2:(c=getchar())
3:無限るーっぷって怖くね?
4:break;
5:=, 1++, 1--
6:3に同じ
7:break;

違うかも

561 名前:519 [2007/07/21(土) 13:07:12 ]
comが1Pのリーチを阻止できるようにしたいのですが、
どういうコードを書けばいいでしょうか?

562 名前: ◆M2clACoxQA [2007/07/21(土) 13:28:04 ]
[1] 授業単元: プログラミング 基礎
[2] 問題文(含コード&リンク):
#include <stdio.h>

int main(void)
{
int i = 1;
int j = 0;

do{
j = j + i;
i += 2;
}while(i<=99);

printf("1から99までの奇数の総数は%dです。\n", j);

return 0;
}

以上の「奇数の総和」を求めるプログラムを関数化して作成しなさい。
開始値と終了値を引数として使用し、main関数で確認する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: visual studio2005
 [3.3] 言語: C言語
[4] 期限: 2007年7月21日15:00まで
[5] その他の制限:
習ったのは、if-else文 do-while文 for文。
sum関数を使うと言っていました。
まだ習いたてなので、あまり難しいのはわかりません。
よろしくお願いします・・・

563 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 13:32:20 ]
>>562
お前さんのところで作ったsum関数とやらは知らんがそれ見ながらdo{}whileの処理を
sum関数の要領でmain文の外に追い出せばいいだけ。

564 名前: ◆M2clACoxQA mailto:sage [2007/07/21(土) 13:40:18 ]
>>563
なるほど・・・そういうことだったんですね。
変に難しいことを考えてしまいました^^;
親切に教えてくださり、ありがとう御座いました!!

565 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:13:55 ]
>>547
エラーで書けなくなった為遅くなりました。
checkはまだ習っていません。何通りかやり方があると
言っていたので他にも実行するプログラムはありますか?
何度もあやふやな言い方だと迷惑だと思うので、友達に確認してから
もう一度書き込みします。
よろしくお願いします


566 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:31:37 ]
習ってないも糞もおまいさんの作った関数だろうから習ってないとか意味不明。
授業中に提示された関数をただ使ってるだけだならちゃんと話聞いとけ馬鹿で終了だし。

他に実行できるプログラムはあると言えるけど、
>>519の要件満たせばいいだけならプログラマの数だけやり方はあると言えるから、
質問自体の意味がない。

何がしたいのかはっきりすればどうすればいいのか言えるけど、
何がしたいのかを言わないようじゃエスパーに頼るしかないし。

567 名前:519 [2007/07/21(土) 14:37:48 ]
>>566

私は565じゃないですよ!!!!!

568 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:42:14 ]
>>565
お前さんが>>494なら、>>547>>594にあるとおり、ただの勘違いのようだから
スルー汁
>>530のレスは読んだのか?



569 名前:568 mailto:sage [2007/07/21(土) 14:43:13 ]
×>>547>>594にあるとおり
>>547>>549にあるとおり

570 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 14:48:50 ]
なんかここんとこgdgd説教したりそんなんじゃ相手に伝わらないよ俺はわからんよって
だったらgdgdレスしてないで答えなきゃ良いじょのいこっ(えなり君風に)

571 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:04:37 ]
>>568
>>530は読みました。>>530自体が問題のプログラムで。

問題は、/*-+の順に計算できるようにする。そのためにint2つ作る。
1つは数字、1つは記号(/*-+)

572 名前:デフォルトの名無しさん [2007/07/21(土) 15:11:11 ]
>>420をお願いします

573 名前:519 [2007/07/21(土) 15:17:54 ]
私が質問している3目並べは
>>561をおねがいします!

574 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:48:08 ]
>>573
check関数内で、check変数の値が2になっているラインに置けばいい。
ってか、checkの名前がかぶってるのをやめたほうがいいって言われてなかった?

575 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:01:30 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
整数n、rを入力し全組み合わせを配列に配置するプログラムを作成しなさい。
例えばn=4,r=2の場合
{{1,2},{1,3},{1,4},{2,3},{2,4},{3,4}}
となる。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7/25
[5] その他の制限: 特に無し

画面に出力するだけなら何とかなりそうなんですが配列に入れるとなると
もう何がなんだか…

576 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:06:56 ]
>>575
配列なんて出てくるか?
2重ループで一発だと思うんだが?違う?

577 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:08:30 ]
お前は何を言ってるんだ

578 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:16:34 ]
適当に大きめの2次配列に入れるなり、
動的確保するなりして入れればいいだけじゃないか。
表示できるなら配置もできるだろ。



579 名前:デフォルトの名無しさん [2007/07/21(土) 16:20:31 ]
【即会い!!】

私自身が使用してみて、即出会えた出会い系サイトを紹介するブログ始めました。
2chと併用して使える良質な即日系サイトのみを厳選して薦めております。

フリメ登録OKなサイトを拡充しました!
↓↓↓
【ブログ 〜即出会えるサイト】deaigets.blog97.fc2.com/

580 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:34:05 ]
>>494
最小限の実装.変な式を入れたときにどうなるかは知らない.
<変更点>
・以下のグローバル変数を追加
int ops[100], vals[100], optop, valtop;

・term()は使わないので消していい

・expression() の内容を以下に変更
int expression() {
valtop = optop = -1;
vals[++valtop] = number();
while (1) {
int opcode;
if (*p == '+') opcode = 1;
else if (*p == '-') opcode = 2;
else if (*p == '*') opcode = 3;
else if (*p == '/') opcode = 4;
else opcode = 0;
while (optop >= 0 && ops[optop] >= opcode) {
if (ops[optop] == 1) vals[valtop-1] += vals[valtop];
if (ops[optop] == 2) vals[valtop-1] -= vals[valtop];
if (ops[optop] == 3) vals[valtop-1] *= vals[valtop];
if (ops[optop] == 4) vals[valtop-1] /= vals[valtop];
valtop--; optop--;}
if (opcode == 0) break;
ops[++optop] = opcode;
*p++;
vals[++valtop] = number();}
if (valtop != 0) printf("some error\n");
return vals[0];}

581 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:40:46 ]
>>578
なんで2次配列なのか小一時間問い詰めたい

582 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:44:54 ]
>>576
なんで2重ループなのか小一時間問い詰めたい

583 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 16:55:27 ]
>>578
表示できるといっても再帰で表示させてるんで
うまいこと添字があわなくて…
配列に配置させるのに利用できないんです

584 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:16:20 ]
>>453 俺もやってみた。クソースだがw
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4698.c

585 名前:519 [2007/07/21(土) 17:31:19 ]
>>574
名前が被ってるというと?

586 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:43:21 ]
>>575
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4699.txt
2次元配列ではなくポインタ配列だが。

587 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:44:29 ]
>>585
関数と変数が同じ名前ってこと。
問題ないけどソース読みづらい。

588 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:28:35 ]
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):
ゼータ関数は次式で定義される。

   ζ(s) = (1/n^s)

s=6のとき、π^6/945に収束する。これを確認するプログラムを作製せよ。
ただし、級数の和を無限個とるのではなく、有限の範囲内で(n=100)で計算せよ。

条件1:倍精度型で計算し、6パターン以上は比較できるようにすること。
条件2:二重ループを使うこと。そのため、外側ループでは初期値をmとして,
nまでm刻みで値を変更し、内側ループでは該当する値に応じたゼータ関数値を算定できるようにコーティングせよ。(例えば、n=1000と、m=100に設定した場合、nの値を10パターン変化させることができる。)

[3] 環境
 [3.1] OS:MAC OS X
 [3.2] コンパイラ名 gcc
 [3.3] 言語:C
[4] 期限:来週の月曜日まで
[5] その他の制限: とくに無し

条件が多いですが、よろしくお願いします。





589 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:43:31 ]
それ7/18までじゃなかったっけ?

590 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:03:58 ]
>>587
同じ名前で変数と関数があったら、
普通、再定義エラーにならないか?

591 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:14:43 ]
グローバルとローカルの違いってCの基礎じゃないの?

592 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:20:33 ]
グローバル変数と関数が同じ名前だったんだが。

593 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:22:03 ]
ローカルでも普通にエラーでるんじゃね?

594 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:23:01 ]
っていうか>>519の最新が553?

595 名前:593 mailto:sage [2007/07/21(土) 19:25:33 ]
さっき>>553で名前被りエラー出なかったからあのレス忘れてくれ。

596 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:29:31 ]
最新にしてはエラーや警告出まくるんだけどw
で、comに考える力を与えてみた。

int com_put(){

int input;

do{
input = rand()%9;
}while(area[input] != 0);

if (area[0] + area[1] + area[2] == 8) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 8) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 8) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 8) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 8) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 8) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 8) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 8) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;
else if(area[0] + area[1] + area[2] == 2) input = (area[0] == 0)*0 + (area[1] == 0)*1 + (area[2] == 0)*2;
else if(area[3] + area[4] + area[5] == 2) input = (area[3] == 0)*3 + (area[4] == 0)*4 + (area[5] == 0)*5;
else if(area[6] + area[7] + area[8] == 2) input = (area[6] == 0)*6 + (area[7] == 0)*7 + (area[8] == 0)*8;
else if(area[0] + area[3] + area[6] == 2) input = (area[0] == 0)*0 + (area[3] == 0)*3 + (area[6] == 0)*6;
else if(area[1] + area[4] + area[7] == 2) input = (area[1] == 0)*1 + (area[4] == 0)*4 + (area[7] == 0)*7;
else if(area[2] + area[5] + area[8] == 2) input = (area[2] == 0)*2 + (area[5] == 0)*5 + (area[8] == 0)*8;
else if(area[0] + area[4] + area[8] == 2) input = (area[0] == 0)*0 + (area[4] == 0)*4 + (area[8] == 0)*8;
else if(area[2] + area[4] + area[6] == 2) input = (area[2] == 0)*2 + (area[4] == 0)*4 + (area[6] == 0)*6;

area[input] = 4;

}

597 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 21:56:05 ]
>>586
どうもありがとうございます。
なんか今更情報科にきたことを後悔…
複雑になると頭がこんがらがる

598 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:32:47 ]
[1]単元:プログラミング
[2]問題:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4700.txt
[3]環境
  OS:リナックス
  コンパイラ:gcc
言語:C
[4]7月23日
 よろしくお願いします。



599 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:41:33 ]
>>588 MinGWで。Macで動くか知りません
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[])
{
int i, j, s = 6, n = 100, m = 10;
double d = 0;
for(i = m; i <= n; i += m) {
for(j = i-m+1; j < i; j++) d += 1/pow(j,s);
printf("n = %i\t:\t%.15f\n", i, d);
}
printf("π^6/945:\t%.15f\n", pow(M_PI,s)/945);
return 0;
}

600 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:55:00 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):以下のプログラムのmainとnumberは変更しないで、
intのスタックを2つ作る。1つは数値をいれる。もう1つには演算子を表す数をいれる
#include <stdio.h> #include <stdlib.h> #include <ctype.h>
char *p; char c[100]; int expression(void);int term(void);
int number(void);main(){ int ans;while(1){
printf("Enter expression : ");fgets(c,90,stdin);
p=c;if(*p == '\n') break;ans = expression();
printf("Answer:%d\n", ans);}}int expression(){
int ans;ans = term();while(1){if(*p == '+'){
p++;ans = ans + term();}else if(*p == '-'){
p++;ans = ans - term();}else break;}
return(ans);}int term(){int ans,x;ans = number();
while(1){if(*p == '*'){p++;ans = ans * number();}
else if(*p == '/'){p++;x = number();
if(x == 0){printf("Division by 0\n");
exit(1);}ans = ans / x;}
else break;}return(ans);}
int number(){int i=0;while (isdigit(*p)){i=i*10+(*p++)-48;}
return(i);}
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 年07月23日
[5] その他の制限: 特になし


601 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:04:37 ]
いい加減にしろよカス

602 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:09:04 ]
>>600
インクルードくらいは改行しなよ、ナス!

603 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:26:13 ]
>>602
600です。すいません。改行が多いと言われてしまったので。
確かに読みずらいですよね。でも、お願いします。

604 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:27:08 ]
>>603
上のほう見ろ、答えあるから

605 名前:デフォルトの名無しさん [2007/07/21(土) 23:33:42 ]
>>603
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm


606 名前:519 [2007/07/21(土) 23:34:53 ]
>>553で、私の環境では特にエラー出ませんでした^^;

>>596さんのやつはどういう挙動になるんですか?


607 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:38:59 ]
>>598
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4701.c

608 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:42:11 ]
>>606
エラーはカンマとピリオドを打ち間違ってるところ、
警告は戻り地が無い関数なのにintで宣言してるところ。



609 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:47:36 ]
>>604>>605
同じ書き込みがあったんですね。
ありがとうございます

610 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:29 ]
>>606
あれで動くってどんな環境だよwww

611 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:02:17 ]
>>607
助かりました☆

612 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:02:55 ]
>>607
ここ> animal=(animal+direction+road_size)%road_size;
と、ここ> fp=fileopen("data");
仕様と違うと思う

613 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:06:51 ]
>>598
道の右端と左端はつながってないの?

>>612
ファイル名の data1.txt data2.txt data3.txt ... になるんだけどどの辺が違う?

614 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:19:46 ]
>>612 プログラムの冒頭に「系列ファイル文字列」をキーボードから入力するってあるので

同じだけど一応オレも。
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4702.c

615 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:28:05 ]
>>614
thx
見落としてた

>>598
>>607 はキーボードからの入力になってないので >>614 をどうぞ

616 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:33:28 ]
>>607 は他にも間違いがある…orz

関数 fileopen 中の
fclose(fp);

else fclose(fp);

617 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:49:50 ]
UPする前に質問します
C言語の筆記問題はスレ違いになるのでしょうか?


618 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:50:34 ]
スレ違いではないとおもうけど、食指が動かない



619 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:51:12 ]
別にいいんでね?質問する前にUPして欲しい。
すれ違いなら優しいおじさんが誘導してくれるかもしれない。

620 名前:617 mailto:sage [2007/07/22(日) 00:58:38 ]
レスありがとうございます
食指は動かないかもしれませんが、後でUPしてみます

621 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:10:02 ]
後でって、さっさとうpしろよw
みんな寝ちゃうぞ

622 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:23:50 ]
2 4 6 30 32 34 36 40 42 44 46 50 52 54 56 60 62 64 66

この数列の、20項以降を表示させる関数を作れといわれたのですが
分かりませんでした

623 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:28:07 ]
>>622
0は入らないのか?10台、20台は入らないのか?
数列の並びがよくわからん。

624 名前:617 mailto:sage [2007/07/22(日) 01:30:15 ]
筆記問題なので、注意してくださいませ

[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク):
www-2ch.net:8080/up/download/1185034647068718.NcCDgq
※jpegファイルが6つ入ってます(No1〜No6)
 No3〜No6までが、今回やってもらいたいファイルです
 No1とNo2は自分でも問題無かったので入れる必要は無かったのですが
 テスト形式なので(100点満点)、中途半端に抜かすのもどうかと思い入れました
 
[3] 環境
 [3.1] OS:windowsXP
 [3.2] コンパイラ名とバージョン:Visual studio.2005
 [3.3] 言語:C言語
[4] 期限:23日のAM1時くらいまでが好ましいですが、25日くらいまで大丈夫です
[5] その他の制限:


625 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:56:58 ]
>>622
それ英語のなぞなぞ (答えTwo thousands)

626 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:06:35 ]
1時なんかもう過ぎてるだろボケ
・・・ボケは私です。
4-1 for(i=0;i<N;i++)b[i]=a[i]; 4-2 1
5-1 t1.a+t1.b; 5-2 5
6-1 4 6-2 7
7-1 return y; 7-2 (a)5 (b)20
8-1 (a) i=0; (b) (i<10) (c) += 8-2 84 8-3 6.800000 + 11.200000 i
8-4 (a) NULL (b)cellp->next 8-5 (a) b==0 (b) gcd( b, a%b )
9-1 変数 9-2 型 9-3 typedef 9-4 定義 9-5 桁オチ 9-6 情報欠落

かなりテキトー。特に用語のあたりとか。

627 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:10:56 ]
>>622
答えは >>625 の言葉でググったら出てきたけど
プログラムで書こうとすると難しいよ

628 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:16:26 ]
>>624
No.3
[4]
(1) : (a) 0 (b) N (c) b[i] = a[i]
(2) : (a) 1
[5]
(a) t1.a + t1.b (b) 5
[6]
(a) 4 (b) 7
[7]
・・・・・・・もうめんどくせ



629 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 03:17:14 ]
>>622
#include <stdio.h>
int main(){int *a,*b,*c,*d,i=0,val;
int n[]={0,2,4,6,-1};int m[]={0,3,4,5,6,-1};
for(a=m;*a>=0;a++)for(b=n;*b>=0;b++)
for(c=m;*c>=0;c++)for(d=n;*d>=0;d++){
val=((*a*10+*b)*100+*c)*10+*d;i++;
if((i>20)&&(i<=320)) printf("%d\n", val);}return 0;}


630 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 04:37:34 ]
設問者がなぞなぞ好きならそれはそれで良いのかもしれないが。
それで単位を取れるかどうかとなると、学生がちょと河合祖。

631 名前:519 [2007/07/22(日) 11:12:25 ]
戻り値が無い関数はvoidがいいんですか?

632 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:16:21 ]
そうだよ☆
でもmainだけは戻り値がいらなくてもintにするのが習慣みたいね

633 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:19:41 ]
>なぞなぞ
また1つ賢くなった、ありがとう

634 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:23:57 ]
>>632
お前は要らないかもしれないけど、システムにとって必要だよ。

635 名前:519 [2007/07/22(日) 11:35:30 ]
あと . と , は直してアップしたつもりでした

636 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 11:37:10 ]
>>622
#include <stdio.h>

int main(void)
{
    int i;
    for(i = 1; i < 100; i++)
        printf("%ld\t", i%4*2 + i/4*10 + (i < 4 ? 0 : 20));
    return 0;
}

英語のなぞなぞって何?

637 名前:617 mailto:sage [2007/07/22(日) 13:34:20 ]
解答ありがとうございました
参考にさせていただきます!

638 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:14:48 ]
>>632
習慣じゃなく規格で決まっている。



639 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:50:54 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
行列のサイズ n, m, l と,それに応じた n×m, m×l の行列が記録されたファイルを食べて,結果を別のファイルに書き出そう.

%cat testfile

3
2
3

3.2 4.8
8.2 6.5
4.3 -2.2

-5.0 6.2 8.9
3.5 -0.2 -5.8

であるとする.3×2, 2×3の行列の積をとり,3×3の行列を得る事になる.そこでプログラムを開発して、

% ./prog0 testfile ANSWER

とすれば,積が ANSWER というファイルに書き込まれるようにせよ.argv[], argc, fscanf(), fprintf() を総動員する.
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/25まで

よろしくおねがいしますm(_ _)m

640 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:51:45 ]
argv[], argc, fscanf(), fprintf() を総動員する.
ワロタ

641 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:07:42 ]
>>639
もうマジで日本語でおk

642 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:11:50 ]
入力テキストは
n
m
l

行列1

行列2
って形式なんだろう

643 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:31:25 ]
>結果を別のファイルに書き出そう.

>そこでプログラムを開発して、

出題者はどういうノリなんだ。

644 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:35:10 ]
>>639
#include <stdio.h>
#define N 128
int main(int argc, char *argv[])
{
    FILE *fpin, *fpout;
    int n, m, l, i, j, k;
    double mat1[N][N], mat2[N][N], mat3[N][N];
   
    if(argc < 3 || (fpin = fopen(argv[1], "r")) == NULL || (fpout = fopen(argv[2], "w")) == NULL) return 1;
   
    fscanf(fpin, "%d%d%d", &n, &m, &l);
    for(i = 0; i < n; i++)
        for(j = 0; j < m; j++)
            fscanf(fpin, "%lf", &mat1[i][j]);
    for(i = 0; i < m; i++)
        for(j = 0; j < l; j++)
            fscanf(fpin, "%lf", &mat2[i][j]);
   
    for(i = 0; i < n; i++){
        for(j = 0; j < l; j++){
            mat3[i][j] = 0;
            for(k = 0, mat3[i][j] = 0; k < m; k++)
                mat3[i][j] += mat1[i][k]*mat2[k][j];
            fprintf(fpout, "%f ", mat3[i][j]);
        }
        fprintf(fpout, "\n");
    }
   
    fclose(fpin), fclose(fpout);
    return 0;
}

645 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:36:27 ]
学校行けよ

646 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:45:22 ]
今時期は夏休み返上で赤点補習かな

647 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 16:53:38 ]
>>644
出来ました。ありがとうございますm(_ _)m


648 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 17:39:10 ]
はしかのせいで補習のやつが多そうだな



649 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 17:46:05 ]
なるほど、失速しないのはその影響か。

650 名前:デフォルトの名無しさん [2007/07/22(日) 18:52:14 ]
行列matの転置行列を求めて次のように出力するプログラムを完成させよ。

| 1 6 11 16 21 |
| 2 7 12 17 22 |
| 3 8 13 18 23 |
| 4 9 14 19 24 |
| 5 10 15 20 25 |


651 名前:デフォルトの名無しさん [2007/07/22(日) 18:52:45 ]
#include <stdio.h>
#define MSIZE 5
void swap(int *a, int *b) {
int c;
(a) = *a;
*a = *b;
*b = (a) ;
}
void main(void) {
int i, j, mat[MSIZE][MSIZE] = { { 1, 2, 3, 4, 5},
{ 6, 7, 8, 9,10},
{11,12,13,14,15},
{16,17,18,19,20},
{21,22,23,24,25} };
for(i = 0; i < MSIZE - 1; i++) {
for(j = (b) ; j < (c) ; j ++) {
swap( (d) , (e) );
}
}
for(i = 0; i < MSIZE; i ++) {
printf("|");/25小計
for(j = 0; j < MSIZE; j ++) {
printf("%3d ", mat[i][j]);
}
printf(" |\n");
}
}

さっぱりわかりません
よろしくお願いします

652 名前:デフォルトの名無しさん [2007/07/22(日) 18:53:43 ]
あるカップラーメンの値段を店ごとに調べた.それを配列に
入れて,下の出力のように10円刻みに分布をとることを考える.
そのためのプログラムを下に示す.空白を補え.

80- 89円: 2
90- 99円: 2
100-109円: 1
110-119円: 2
120-129円: 1
130-139円: 2


653 名前:デフォルトの名無しさん [2007/07/22(日) 18:55:33 ]
#include <stdio.h>
#define C_NUM 6

void makedist(int a[10], int b[C_NUM]) {
int i;

for(i = 0; i < 10; i ++) {
b[ (a) ] += 1;
}
}

void main(void) {
int price[10] = {80, 120, 111, 130, 139, 95, 98, 89, 105, 119};
int dist[C_NUM], i;

for(i = 0; i < C_NUM; i++) {
dist[i] = (b) ;
}
makedist( (c) , dist);
for(i = 0; i < C_NUM; i++) {
printf("%3d-%3d円: %3d\n", (d) ,
(e) , dist[i]);
}
}

これもさっぱりです・・・
教えてください


654 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 18:58:12 ]
>653
(a)a[i]/10-8
(b)0
(c)price
(d)80 + i * 10
(e)89 + i * 10

655 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 19:08:49 ]
>>650-651
a:c
b:0
c:i
d:mat[i][j]
e:mat[j][i]


656 名前:655 mailto:sage [2007/07/22(日) 19:10:03 ]
訂正
d:mat[i][j]→&mat[i][j]
e:mat[j][i]→&mat[j][i]

657 名前:655 mailto:sage [2007/07/22(日) 19:20:36 ]
何度も済まん…

>>650-651
a:c
b:0
c:i+1
d:&mat[i+1][j]
d:&mat[j][i+1]


658 名前:デフォルトの名無しさん [2007/07/22(日) 19:23:54 ]
ありがとうございます!!




659 名前:デフォルトの名無しさん [2007/07/22(日) 19:29:39 ]
与えられた正数aの逆数1/aを,除算を用いずに求めるアルゴリズムを
ニュートン法によって作りたい.
ただし,初期値x0は十分に解に近いところから出発するものとする.
次の[1]から[4]の空欄(a)から(f)を埋めよ.

[1]
ニュートン法でaの逆数1/aを求めるためには
f(x)=(a)のゼロ点を求めればよい.

[2]
[1]の式に対して,ニュートン法による第n+1回目の反復による値Xn+1は,
第n回目の反復による値Xnを用いて
Xn+1=(b)と表される.



660 名前:デフォルトの名無しさん [2007/07/22(日) 19:30:11 ]
[3]
[2]で示した反復によるアルゴリズムを実現すると次のようになる.
#include <stdio.h>

void main(void) {
double u, v;
int i;
printf("正数を入力して下さい.\n");
scanf( (c) );
printf("逆数に十分近い初期値を入力して下さい.\n");
scanf( (d) );
for(i = 0; i < 3; i ++) {
u = (e) ;
printf("%5.3f\n", u);
}
}

[4]
[3]で作ったプログラムを実行し,「3」,「0.5」の順に入力した際に
for文の中のprintf関数による出力結果をすべて示すと次のようになる.

(f)



661 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:37:35 ]
>>659
(a) 1/x - a {x = 1/a → 0 = 1/x - a だから}
(b) Xn*(2-a*Xn) {Xn-f(Xn)/f'(Xn) →Xn-(1/Xn-a)/(1/(-Xn*Xn))だから}
(c) "%lf",&v (d) "%lf",&u (e) u*(2-v*u)
(f)
0.5
0.250
0.332

662 名前:デフォルトの名無しさん [2007/07/22(日) 20:37:52 ]
関数myreplaceを使って実際に文字列を変換させるプログラムを作成したところ,
出力結果(1)は「tuat」となった.
空欄(a)〜(f)を埋めて次のプログラムを完成させ,
出力結果(2)を空欄(g)に記入せよ.



663 名前:デフォルトの名無しさん [2007/07/22(日) 20:39:44 ]
#include <stdio.h>
(a) ;

void main(void) {
char code[16] = "GHIGFACDFDBA";
char ret[16] = "";
myreplace(" (b) ", ret);
printf("%s\n", ret); ・・・出力結果(1)
myreplace(code, ret);
printf("%s\n", &ret[5]); ・・・出力結果(2)
}
void myreplace(char org[ ], char ret[ ]) {
char string1[16] = (c) ;
char string2[16] = "v)(^e_tua";
int i, j;
for(i = 0; org[i] != (d) ; i ++) {
for(j = 0; string1[j] != (d) ; j ++) {
if(org[i] == string1[j]) {
(e)
}
}
}
(f) /* 終端記号 */
}

出力結果
(g)




664 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:42:23 ]
>>659 訂正
(f)
0.250
0.313
0.332


665 名前:デフォルトの名無しさん [2007/07/22(日) 21:04:07 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):
2 つのchar 型配列x[],y[] に格納された文字列を入れ替えるプログラムを作成せよ.
ただし入替え処理には,関数swap array(char *,char *) を作成して用いること.
% ./test
入替前のx: "abcdefgh"
入替前のy: "ABC"
関数swap_array() を呼び出しました
入替前のx: "ABC"
入替前のy: "abcdefgh"
%
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc 3.4)
 [3.3] 言語: (C)
[4] 期限: (07月23日00:00まで)
[5] その他の制限:ポインタまで習ってます
よろしくおねがします


666 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:05:33 ]
>>650マルチ必死だな(´,_ゝ`)プッ

667 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 21:39:34 ]
>>662 なんかヤな問題だな。回答は複数あるけどたぶん↓
(a) void myreplace(char org[], char ret[]); (b) GHIG (c) "ABCDEFGHI"
(d) '\0' (e) ret[i] = string2[j]; (f) ret[i] = '\0'; (g) v(^_^)v

668 名前:デフォルトの名無しさん [2007/07/22(日) 22:05:25 ]
[1] 授業単元:
[2] 問題文(含コード&リンク):
1start で示されるアドレスからlength バイト分だけの領域に関して,
値val で埋める関数cmemset(char*start, int value, int length) を作成せよ.
さらに,malloc() 関数を用いてchar 型配列のメモリ領域を確保し,
cmemset() が正確に動作することを確認
(メモリ領域の内容を整数値として表示)するプログラムを作成せよ.
%./kadai
4 -89 0 1 5 43 ... 112 ← cmemset 使用前
0 0 0 0 0 0... 0 ← 0 で埋めたとき
88 88 88 88 88 88 ... 88 ← 88 で埋めたとき
%
2src で示されるアドレスからlength バイト分だけの領域を,dest で示される領域へコピーする関数
cmemmove(char *dest, char *src, size t length) を作れ.なお,送り元の領域と送り先の領
域がオーバーラップしていても,正しくコピーできる仕様にせよ.さらに,malloc() 関数を用いて
char 型配列のメモリ領域を確保し,cmemmove() が正確に動作することを確認(メモリ領域の内容を
整数値として表示)するプログラムを作成せよ.
% ./kadai
1 2 3 4 5 0 0 0 0 0 0 0 0 0 0 0 0 0 ← cmemmove 実行前
1 2 3 4 5 0 0 0 0 0 1 2 3 4 5 0 0 0 ← 0 番目から5 個を10 番目へ
1 2 3 1 2 3 4 5 0 0 1 2 3 4 5 0 0 0 ← 0 番目から5 個を3 番目へ
%
[3] 環境
 [3.1] OS: (Linux3.2)
 [3.2] コンパイラ名とバージョン: (gcc 3.4)
 [3.3] 言語: (C)
[4] 期限: (07月23日まで)
[5] その他の制限:おねがいします



669 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:24:59 ]
char配列埋めるのにvalueはintかよ

670 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:27:26 ]
標準のmemset()もそうでしょ

671 名前:デフォルトの名無しさん [2007/07/22(日) 22:41:46 ]
わかる方でいいのでおねがいします

672 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:43:25 ]
何を?

673 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:43:59 ]
どれを?

674 名前:671 mailto:sage [2007/07/22(日) 22:45:03 ]
すみません全部忘れてました
村上ファンド事件についてインサイダー取引という単語を用いて100字以内にまとめよ
です

675 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 22:47:02 ]
he is very very bad

676 名前:デフォルトの名無しさん [2007/07/22(日) 22:51:21 ]
665と668です

677 名前:671 [2007/07/22(日) 23:03:48 ]
本当に誰か答えてください><

678 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:11:30 ]
>>665
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4711.c
ココの人、みんな"わかる方"だからさ。そういう言い方なんか違うと思うよ。



679 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:16:22 ]
Linux3.2 うひょ

680 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:31:17 ]
char *cmemset(char *start, int value, int length)
{
const unsigned char ch = value;
while(num--)
*ptr++ = ch;
return start;
}
char *cmemmove(char *dest, char *src, size t length)
{
while(length--)
*(dest+length) = *src;
return dest;
}

681 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:34:45 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4712.zip
[3] 環境
 [3.1] OS: (Mac)
 [3.2] コンパイラ名とバージョン: (gcc 3.4)
 [3.3] 言語: (C)
[4] 期限: ([2007年7月23日9:00まで] )
[5] その他の制限:問題文、プログラム内で使うデータファイル、自分で作ったソースをzipにしました
            何故動かないのかわからないのでご教授下さいませ

682 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:35:25 ]
メモリコピーはアドレスの大小関係で
昇順、降順を切り替えないとおかしなことになるよ

683 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:45:59 ]
>>681
その汚いソースをなんとか動くようにしてくださいっていうなら絶望的だな
どっかしらでsegmentation faultが起きてるから頑張って探しな

684 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 23:52:08 ]
>>679
大分未来からお越しのようですね

685 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:14:45 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):整数集合 { 1, 2, 3, 4, 5 } と { 2, 4, 6 } の 共通集合を求め、表示するプログラム
集合をリストを用いて実現し、emptySet, inSet, addElem, intersection, printSet, freeSet を リストを用いた集合操作に変更しなさい。

コード:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4713.c
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2007/7/25 15:00

プログラムのコード自体はやってる最中なのでめちゃくちゃですが気にしないでください。
コンパイルは特にエラーもなく通ります。
実行したあと

  %./a.out

と出るだけでそこから何も起きません。
無限ループに陥ってる可能性を考えてmain関数内にprintfを設置しました。
コードを見てもらえばわかるのですが、main関数内の2行目に配置したprintfすら実行されません(1行目はint型の変数宣言)。
これはmain関数が実行されていないということでしょうか?
原因解明お願いします。


686 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:16:28 ]
>>681
enter と enter2 で xtopx->child1 や xtopx->child2 が使われているけど
xtopx 自体が初期化されていない気がする


687 名前:デフォルトの名無しさん [2007/07/23(月) 00:17:31 ]
>>680もう少しヒントをください

688 名前:685 mailto:sage [2007/07/23(月) 00:19:53 ]
すいません。捕捉です。
このプログラムは、元は配列を用いて集合を実現してました。これをリスト構造に改編しろ。
という問題です。



689 名前:686 mailto:sage [2007/07/23(月) 00:27:52 ]
>>681
あとグローバルでstruct member **result; が宣言されているのに
search および search2 で ローカルで struct member **result; が宣言されている
ローカル側のresult;に代入しているから 
result=(struct member **)malloc(sizeof(struct member *)*(MEMBER_MAX+1));
で確保した領域が保存されていない.returnで戻しているけどmain でその戻り値保存していないし

というかこのresultのポインタリストはどこで使われているのだろうか?

690 名前:デフォルトの名無しさん [2007/07/23(月) 00:32:12 ]
最近のCって型定義に変数宣言しても通るの?

691 名前:デフォルトの名無しさん [2007/07/23(月) 00:34:02 ]
間違えた

×型定義に
○型定義前に

普通は構造体定義してから変数宣言だよね?

692 名前:686 mailto:sage [2007/07/23(月) 00:35:39 ]
>>681がすでにいない気もするけど

>>681
Top1 と Top2 は 0 か NULL で初期化されていないので
enter と enter2 の if(!Top1){ } が実行されずに
top=Top1; while(top){ } で失敗する可能性がある


(HDDから怪しい音が・・・こわい)

693 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:42:08 ]
>>685
int inSet(ElementP s,int v){/*変更可*/
while(s->next!=NULL){
if(s->data==v){
return 1;
}
}
return 0;
}
ここで無限ループしてる

694 名前:デフォルトの名無しさん [2007/07/23(月) 00:46:51 ]
>>680もう少し補足していただくと・・・

695 名前:685 mailto:sage [2007/07/23(月) 00:46:57 ]
>693
指摘ありがとうございます。
しかし、修正してみたものの症状変わらず・・・。

696 名前:681 mailto:sage [2007/07/23(月) 00:47:46 ]
>>692
すいません、プログラムと睨めっこしてました

ちょっといじってみます、また何かあったらご教授いただけると幸いです

697 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 00:48:48 ]
while(p->next!=NULL)
{
if(p->data < val->data)
val=p;
p=p->next;


}

ここでも無限ループしてる

698 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:04:24 ]
>>685
流し読みだけど、ElementP emptySet(){ return NULL; }で。
やり方は他にもあるけど、少なくとも次がない=空じゃないです。そうすると
mallocは、s==NULLのとき、addElemでして、return sってことになるかと。
void addElem(ElementP s,int v) → ElementP addElem(ElementP s,int v)
ですね。あと、freeSetが最初しか開放してないから再帰でnextたどってく感じで。




699 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 01:17:33 ]
>>680 int main()内が分かりません
助けてください><

700 名前:685 mailto:sage [2007/07/23(月) 01:31:09 ]
>697
すいません、どこで無限ループなのかわからないです。

>698
その方法もやってみます。
freeSetの件も修正してみます。

701 名前:685 mailto:sage [2007/07/23(月) 02:00:10 ]
どうやら環境の差のようです。Windowsで実行したところ正常に動きました。
いろいろとありがとうございました。

702 名前:681 mailto:sage [2007/07/23(月) 02:01:28 ]
>>681ですが、アドバイスをいただいて直してみましたがうまくいきません
アップしたソースの不都合な所はばっさり変更しても良いので、
なんとか動くように訂正お願いします

703 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:04:14 ]
環境の差なわけねえwww

704 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:18:42 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
 [プログラム説明]
2桁の16進数('41'〜'49'、 '50'〜'59')を入力すると対応する文字を表示する。
ただし、%xは使用しないこと。なお、入力に間違いはないものとする。(ヒン
ト:入力は一つの数値か、二つの文字か?)

実行結果
2桁の16進数('41'〜'49'、 '50'〜'59')を入力してください:53
文字コード「53」文字は「S」です。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC
 [3.3] 言語: C++
[4] 期限: ([明日の朝まで] または [無期限] のいずれか)
[5] その他の制限: printf() scanf()を最近習いました

705 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:27:40 ]
>>704

#include <stdio.h>
int scan_ascii(){
int c1,c2;
printf("2桁の16進数('41'〜'49'、 '50'〜'59')を入力してください:");
scanf("%c%c", &c1, &c2);
return (c1<<4 + c2);
}
int print_ascii(int c){
printf("文字コード「%d」文字は「%c」です。\n", c, c);
}
int main(){
print_ascii(scan_ascii());
return 0;
}

706 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:34:50 ]
すいません、returnとasciiは習ってないです・・・
でもありがとうございます!1原型ができました

707 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 02:40:08 ]
>>702
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4715.c

708 名前:707 mailto:sage [2007/07/23(月) 02:42:00 ]
アンカー間違えた
>>702 じゃなくて >>701 だった



709 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:09:46 ]
>>420
まだ全然わからないんでお願いします

710 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:28:43 ]
\n    n番目に表れた\(...\)の中の文字列にマッチ (nは1から9の整数)

が意味わからね
方針として入力文字列を"トークン"列に変換してから置換処理がクレバーじゃね?
struct toknの設計がつぼおおおぉおおおおぉおぉおぉおおおおおおおおおおおあおあさだおssd

711 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 03:44:20 ]
\nの前の正規表現を\( \)で囲っておくとあとで呼び出せるってやつです
ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE

\([asdf]\)\(fty\)\([frty]\)\(t\)\3

aftytterをチェックした場合
\3はtと同じです

system()からsed呼び出して同じ動作するものは作れたんですけど、それだと題意にあわないんで・・・

712 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 10:36:35 ]
>>530
返事が遅くなってすいません。>>530に書いてあるものを使ってpop,pushを使い
たいです。+-*/は数字の大きさで表したいです

713 名前:デフォルトの名無しさん [2007/07/23(月) 11:05:05 ]
[1]授業単元:プログラミング技術III
[2]問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4718.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ: gcc
 [3.3] 言語: C
[4] 期限:7/24まで
[5]その他の制限:特になし

よろしくお願いします

714 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:12:26 ]
>>712は、自分が書いた文を自分で理解できるのか?


715 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 11:51:28 ]
\(\(c\)b\)d\) の場合"2"番目は何を意味する?
\([ab]\)\1の場合
aa と bb にはマッチするが ab にはマッチしないと理解して良いのか?
(否なら単に[ab][ab]と記述すればいいしなクソ)


それとこれ本当に宿題か?
\nさえなけりゃ理論的な意味の正規表現についての良問だと思うが
\nの性で劇的に難しくなってね?
お前何科の何年生?
あるいは問題間違ってねえ?

716 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:02:40 ]
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4719.txt
プログラム問題文に沿って作ったものと、それに2つの要素を追加修正した
2つのプログラムの作成をお願いします。

[3] 環境
 [3.1] OS: windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/07/26 13:00まで
[5] その他の制限: 特に無し

よろしくお願いします

717 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:18:51 ]
\(\)って入れ子にはしないんじゃないか

718 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:25:06 ]
[1] 授業単元:C
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4721.txt
[3] 環境
 [3.1] OS: windows XP
 [3.2] bcc32
 [3.3] 言語: C
[4] 期限: 2007/07/23 13:00まで
[5] その他の制限: 特に無し




719 名前:デフォルトの名無しさん [2007/07/23(月) 13:06:20 ]
>>715
問題文には正規表現の各表現の説明があった後に
. * [abc…]、\が使えるようなプログラムを実装せよとかかれてました
ちなみに2回のC初心者向けの演習です
期末レポートなんですが、人によって問題が違って明らかにはずれくじをひいたっぽいですorz

720 名前:デフォルトの名無しさん [2007/07/23(月) 13:08:52 ]
あと、正規表現では括弧の入れ子は外から順に数えていくはずです

721 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:54:35 ]
二回で正規表現の実装かよ
Perlとかでならまだしも・・・

722 名前:デフォルトの名無しさん [2007/07/23(月) 14:02:30 ]
ほかの人の課題は1時間とかで終わるのもあるんで、\n入れると難易度極端に変わるなら、実はそれ無しかもしれないです

723 名前:デフォルトの名無しさん [2007/07/23(月) 14:06:51 ]
出題者は、正規表現の複雑な仕様を完全に実装しろと言っている訳ではないよね。
単純なパターンチェックと置換を実装すればいいんじゃないの?


724 名前:デフォルトの名無しさん [2007/07/23(月) 14:09:17 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):
 クラスcomplexのメンバ関数で、複素数の絶対値を与える関数を新たに作成せよ。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: CC
 [3.3] 言語: C++
[4] 期限: [無期限]
[5] その他の制限: 特になし
 
よろしくおねがいします。


725 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:15:43 ]
>>716
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4722.cpp

726 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:16:34 ]
(含コード&リンク):
のくせになんにも貼られてないってどうよ

727 名前:デフォルトの名無しさん [2007/07/23(月) 14:26:47 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):正の整数を入力し1からその数までの間に素数がいくつあるのか数えるプログラムを作れ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C++
[4] 期限:7月中
[5] その他の制限:特にないです。
よろしくお願いします。


728 名前:デフォルトの名無しさん [2007/07/23(月) 14:30:37 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): nを入力してs=1/1-1/3 + 1/5-1/7 + 1/9....+(-1)^n-1/(2n-1)
の和を求めるプログラムを作れ。nが大きくなるにつれてs*4がどうなるか
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語:C++
[4] 期限:7月中
[5] その他の制限:特にないです。

問題が難しくて困っています。
お願いいたします。




729 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:35:16 ]
double s;
int i,n,j;
printf("n: ");
scanf("%d", &n);
j = 1;
for(i = 0; i < n; i++) {
s += j/(2n-1);
j = -j;
}
printf("s = %lg\n", s);

730 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:57:03 ]
これはひどい

731 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:58:48 ]
#include<stdio.h>
int main(){
double s=0;
int i,n,j=1;
printf("n: ");
scanf("%d", &n);
for(i = 1; i <= n; i++) {
s += (double)j/(2*i-1);
j = -j;
}
printf("s = %lg\n", s*4);
return 0;
}


732 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:33:33 ]
設問的にはcout/cinじゃまいか

733 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:41:51 ]
>>727
おまいのレベルに合わせてコーディングした

#include<stdio.h>
int main(){
while(1){
int i,j,n,c=0;
printf("正数 = ");
scanf("%d",&n);
for(i=2;i<=n;c++,i++)
for(j=2;j<=i/2;j++)
if(i%j==0){
c--;
break;
}
printf("素数 = %d 個\n",c);
}
return 0;
}


734 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:52:57 ]
正規表現のアルゴリズムとか考えたこともなかったな
一度単純な実装見てみたい

735 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:27:02 ]
>>728
#include <iostream>
#include <iomanip>
#include <cmath>

int main()
{
    double s = 0;
    int i, n;
   
    std::cin >> n;
    for(i = 1; i <= n; i++){
        s += pow(-1, i - 1)*1/(2*i - 1);
        std::cout << std::setw(10) << i << " : " << s*4 << std::endl;
    }
   
    return 0;
}

736 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 17:23:18 ]
>>714
出来ます。+-*/の順に1234とつけて行き大きい数字から(/から)優先
で計算するようにしたいんです。

737 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 17:53:38 ]
>>736
スタックを2つ作り、数字と演算子を別々に積み上げておいて、演算子はどの数字を計算対象にしたら良いか、分かるのか?

738 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:05:53 ]
>>736
もうちょいで自分でできるぞ
なんかね、道間違えている気がする



739 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:22:04 ]
>>734
ttp://www2.starcat.ne.jp/~fussy/algo/index.htm
に単純な実装があるよ。

740 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:12:04 ]
>>725
Test operator = (const Test& t) とかを
Test& operator = (const Test& t) にしないと
return *this が Test(const Test& t) を呼んじまうぜよ

741 名前:ゆみ [2007/07/23(月) 19:24:32 ]
超初心者です。制限時間45分で出題されましたが、解答できなかった為持ち帰りになりました(>_<)
どうか御教授お願いします。

・char 型の配列aに"HellowWorld"の文字列を格納すること。
・配列aからchar 型の配列bにデータをコピーすること。
 ※標準関数(memcpy,strcpy等)を使用しないこと。
・配列bからchar 型の配列cにデータをコピーすること。
 ※但し、"w"、"W"は"*"にデータをすりかえてデータをコピーすること。
  →配列cには文字列"Hello**orld"を格納すること。
・printf()で表示する際は、配列cのデータを一文字づつ表示すること。
 ※"o"を表示する際は、"o"を表示する代わりに"O"を5つ表示すること。
・VCのプロジェクト名は"ckadai3"とすること。

742 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:27:52 ]
>>741
ESPの俺が応える
お前男なのにキモイ

743 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:30:51 ]
>>741-742
ESPってなに?

744 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:31:32 ]
>>742
知り合いみたいだからよろしく

745 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:31:36 ]
ESPなら、カキコを阻止してくれよ

746 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 19:49:57 ]
>>744
マジ?


747 名前:デフォルトの名無しさん [2007/07/23(月) 20:06:13 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4727.txt
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限:2007/07/24
[5] その他の制限:なるべく問題文の指定以外の変更はしないで頂きたいです。どうか宜しくお願いします。


748 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:29:41 ]
>>747
>>294
>>494
>>600



749 名前:741 [2007/07/23(月) 20:57:04 ]
741です。どなたかお願いします。For文もif文もままならないレベルなので、自力で解くのは厳しいです。また30分後にきます(´〜`;)

750 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:58:46 ]
うざ

751 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:06:14 ]
質問テンプレを利用しましょう。

752 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:08:29 ]
向こうで回答されてなかったっけ

753 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:15:49 ]
>>420
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4728.c
どう考えても2回の宿題のレベルじゃなくね?
一日かかっちまったわ
完全じゃねえけどな
\(\)は無理,ってか>>719の言い方じゃイラネエじゃんクソ

つーかなに?ほんとはライブラリとか使えんじゃねーのか???
>>420が問題の趣旨を理解していない気が激しくするぞコラ

まあ俺は勉強になったがなクソ

754 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:17:13 ]
#include <stdio.h>

int main(void)
{
char a[11]="HellowWorld", b[11], c[11];
int i;

for(i=0 ; i<11 ; i++){
b[i] = a[i];

if(b[i]=='W' || b[i]=='w') c[i] = '*';
else c[i] = b[i];

if(c[i] == 'o') printf("OOOOO");
else printf("%c", c[i]);
}

printf("\n");

return(0);
}

755 名前:ゆみ mailto:sage [2007/07/23(月) 21:30:16 ]
>754
ありがとうございます。
助かりました。

756 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:35:04 ]
>>754
ウホッこれはいい再提出

757 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:44:36 ]
別に文字列コピーした後に表示とか書いてないからおkじゃね?
出題者の意図とは違うと思うけど

758 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:46:38 ]
printf("\n");

return(0);

これはないだろ



759 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 21:52:07 ]
>>757
よく見れば大丈夫そうだな

760 名前:デフォルトの名無しさん [2007/07/23(月) 22:33:47 ]
下記の仕様と条件を満たすプログラムを作成しなさい。

●仕様
・"Hello"、"World"、"kadai"を指定された順番で表示すること。
 ※初期の順番は、"Hello"、"World"、"kadai"とする。
 ※順番はテーブル固定とし、変更毎にビルドを行うこととする。

●条件
・char 型index(1Byte)とchar型の配列hako[6](6Byte)をメンバとする構造体STRINDEX_TBLを作成すること。
・STRINDEX_TBL型の配列tableに、"Hello"、"World"、"kadai"の3つの文字列と表示順番indexを格納すること。
・文字列を表示の際は、printf()を使用し1文字("%c")づつではなく、文字列指定("%s")で指定すること。
・VCのプロジェクト名は"ckadai6"とすること。

●制限時間
・30分


761 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:40:25 ]
これほどまで見下してる出題者は初めてだな

762 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:42:31 ]
今年の4月から、去年質問した初心者が回答者側に回ったのか知らんが
gdgd質問者に注文つけたりうるせーよ、答える気がないなら黙ってスルーしろ。
っつかお前みたいな奴はこのスレには必要ないから、とっとと就職して
安月給プログラマーでもやってろ。

763 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:45:32 ]
スルーできないお前もだろ
まあ俺もだが

764 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:47:22 ]
>>761 = >>763 さすがに痛いわ、こいつ。自覚ありか。うぜぇ。失せろ。
お前みたいな奴に回答なんて求めてねーんだよ、他の回答者も。

765 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:47:51 ]
#include <stdio.h>

typedef struct {
char index;
char hako[6];
} STRINDEX_TBL;

int main(void)
{
STRINDEX_TBL st[] = {{0, "Hello"}, {1, "World"}, {2, "kadai"}};
int i, j;
const int num = sizeof(st)/sizeof(st[0]);
for(i=0; i<num; i++)
for(j=0; j<num; j++)
if(st[j].index == (char)i){printf("%s\n", st[j].hako);break;}
return 0;
}

やっつけ

766 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:53:43 ]
>>761-764
何方もどっちだな

767 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:54:36 ]
>>737>>738
スタックを2つ作り、数字と演算子を別々に積み上げておいて、演算子はどの数字を計算対象にしたら良いか、分かるのか? は、
数字が1234で演算子は+-*/です。これを1は激弱、2は弱、3は強、4は激強
にして指定した数が大きいほど優先順位が高い。
/→*→-→+の順で計算する。

768 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 22:56:35 ]
>>767
> これを1は激弱、2は弱、3は強、4は激強
4は激強
4は激強
4は激強
4は激強
4は激強

げきつよ?
げききょう



769 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:00:43 ]
>>9
>>32
>>39
>>50
>>148
>>259
>>313
>>327
>>407
>>503


770 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:07:29 ]
>>769
逆によくそんな前からレス探してくるなと感心。
まぁ質問者も丸投げするのは構わないんだけど
催促レスしまくってくるのと問題に最低限の必要事項が
無いのは止めて欲しいかなぁ。


771 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:11:27 ]
>>770 = 去年は質問者だったが、質問の仕方が悪くて散々叩かれた挙句に
答えてもらえなかった腹いせにこのスレで今年の質問者をねちねち詰り弄ることが
今の趣味になってしまった可愛そうな就職浪人。

772 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:11:58 ]
>>770
問題に最低限の事と言われても言われたのはこれくらいです。
使うプログラムも乗せてありますし。

773 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:14:04 ]
>>771
まぁ落ち着け、そう噛み付くな。
自分は基本的にこのスレに住みついてなくて
暇な時に見て解いてるだけで普段はレスもしてないから。

774 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:15:35 ]
>>772
誰もyouにレスしてないyo!

775 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:16:51 ]
やべぇ、ネチネチ質問者を弄っている奴らが簡単に釣れちゃったぜ。
これだから釣りは面白くて止められないぜ。

776 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:16:52 ]
>>774
勝手に勘違いしてすいません

777 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:18:12 ]
ほんとにバカばっかりだな

778 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:19:33 ]
ほんとだね



779 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:19:57 ]
釣れたってww勝手に一人でファビョってただけじゃねぇかwww

780 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:21:33 ]
俺「釣り」とか「釣り師」っていうのは、

 釣り師 ↓     
.            /| ←竿
     ○  /  |
.    (Vヽ/    |
    <>     |
゙'゙":"''"''':'';;':,':;.:.,.,__|_________
             |
  餌(疑似餌)→.§ >゚++< 〜
                 の組み合わせだと思ってたんだけど、

最近自称釣り師がダイレクトで自分の本音を攻撃されて「釣れた!」とか
言ってるの多いよね。
 これは、どっちかというと、



          ,〜〜〜〜〜〜 、
|\     ( 釣れたよ〜・・・)
|  \    `〜〜〜v〜〜〜´
し   \
゙'゙":"''"''':'';;':,':;.:.,.,  ヽ○ノ
          ~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                 ト>゚++<
              ノ)

かと思うんだけど、どうよ?


781 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:21:38 ]
やべぇ、今度は自分がファビョってますって公言する必死な奴も釣れちゃったYO!
あのなぁ、こっちは質問者を弄っている奴をピンポイントで指して指摘しているんじゃなくて
そういう奴がうぜぇと言っているだけで、それに 反応 しちゃっている奴がわざわざ
エサに食いついちゃっていることに気づかないから笑えるんだよw

782 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:22:47 ]
バカって自分で書いたことと他人が書いたことを見間違えちゃうって本当だったんだ・・・
かわいそう

783 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:23:01 ]
こんなスレあったのか
楽しいwwwwwwwww

784 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:24:33 ]
>>767
素直に釣られましたが教えてください

785 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:26:52 ]
演算子に割り当てた数字と、計算対象としての数字がゴッチャになっている。
優先順位の高さが、何を指しているのか分かっているのか?
何でも良いから加減乗除を使っている計算式を書いて、
それぞれのスタックとやらに計算対象の数字と演算子に割り当てた数字が
どのように積まれていくのか書いてみろ。

786 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:27:01 ]
>>762=>>764=>>769=>>771=>>775=>>781
はいはいクマクマ…はぁ。

787 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:30:47 ]
>>785
わかりません。わからないから来ています

788 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:25 ]
即答せず、少しは考えろよ。
式を書いてみろ。
小学生でも理解できる事だ。



789 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:41 ]
>>753
おまいのソース見て、俺も書きたくなってきた。
でも、正規表現アルゴリズムって何? というレベル。

790 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:34:53 ]
鳥でもコテ半でもいいからつけてくれんとはぁ〜さっぱりさっぱりだわw

791 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:38:15 ]
1+1=2

792 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:31 ]
>>753
授業2回でこんな問題解けるような生徒がいるなら職業プログラマいらないよなw
みんなバイトでいいやってなっちまうわ。
俺もやってみたいけど1時間やそこらじゃ絶対終わらないな・・・
ってか、講師はちゃんとテスト、レビューするのかな?

793 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:41:50 ]
>>788
式ですか?

794 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:49:22 ]
なんかしつこいからさっさと教えたら?

795 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:55:05 ]
>>788
俺も同じ問題がわからない。
教えてくれないか?

796 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:58:10 ]
mainの中の
p=&c;
間違いだって誰か言ってる?

797 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:59:36 ]
>>796
間違えなんですか?

798 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:04:53 ]
>>797
だって洗剤はP&Gだろ?

配列なんだから&はいらんよ。
p=cでpにアドレスがコピーされる。



799 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:04:57 ]
間違えという言葉が間違っていると揚げ足取り。

800 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:07:06 ]
p=cでもp=&c; でもいいと言われました


801 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:10:29 ]
確かに言ってた

802 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:22:13 ]
>>580じゃダメなん?

803 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:22:26 ]
>>747
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4729.c
一応580でも答えたんだけどスルーされてしまったらしい.
完成したソースでないと受理されないのか.
いずれにしても出題の仕方がひどい.p=cでもp=&cでもいいとかどこの講師だよ.

804 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:26:09 ]
>>803
ありがとうございます

805 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:33:56 ]
何だ、回答が出ているんだ。これだけ聞いていれば答えてくれているよね。
悪いが、作業は中止する。
提示された回答をチェックしてみて下さい。要求通りだと思うよ。
気になったのがあるんだが。
number()で数値と演算子に空白がある時と無い時で動きは違わないか?

806 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 00:35:47 ]
×数値と演算子に空白
○数値と演算子の間に空白

807 名前:803 mailto:sage [2007/07/24(火) 00:41:03 ]
スタック回りに微妙なバグがありそうだけど,いい加減に書いたから適当な修正方法が見当たらない.
とりあえずの応急処置ってことで,expression()内の最後のreturn ans;の直前に
op_stack = val_stack = NULL;
の一行を追加しといて.


808 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:02:26 ]
expressionの初っ端の処理がヤバイっぽい



809 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:05:50 ]
>>805
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4730.c
しかし作っちまったので俺は投稿する
因みに
struct stack *op_stack, *val_stack;

struct stack *op_stack=NULL, *val_stack=NULL;
なんだとおもふ

810 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:41:49 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク): 二分探索木の拡張
詳細はうpしました。元になるプログラムも入っています。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4731.zip
[3] 環境
 [3.1] OS: (Windows/Linux/等々) windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) VC6.0
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7/27まで
[5] その他の制限:

どなたかご教授よろしくお願いします。


811 名前: ◆DpMW3bRjps [2007/07/24(火) 07:34:56 ]
1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):任意の文字列を入力し、その文字列の中に任意の文字が何個入っているかを出力する
               プログラムのソースコードを提出しなさい。
                
              実行例)
              文字列を入力してください
              yamamotoyama
              さがす文字を入力してください
              y
              入力された文字列の中に指定された文字は2個あります


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007年07月25日まで
[5] その他の制限:>>452で教えてもらい、その後少し訂正したんですがダメでした。
しつこいですがもう1回お願いします。。

812 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:55:11 ]
>>452で全く問題なくコンパイル通るが

813 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:58:32 ]
>>811
#include<stdio.h>
int main( void ){
char c, string[100], *pstr;
int count;

printf( "文字列を入力してください\n" );
scanf( "%s%*c", string );
printf( "さがす文字を入力してください\n" );
scanf( "%c%*c", &c );
pstr = string;
count = 0;
while ( *pstr != '\0' ) {
if ( *pstr == c ) {
count++;
}
pstr++;
}
printf( "入力された文字列の中に指定された文字は%d個あります\n", count );
return 0;
}


814 名前:813 mailto:sage [2007/07/24(火) 08:01:47 ]
その他制限に全く目を通していなかったorz
朝っぱらかやろうとするとすぐこれだ・・・

815 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:16:18 ]

[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):括弧が使用可能な四則演算の電卓プログラムを作成せよ。文字入力で、入力時の関数はgetsを使用する事。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc3.4
 [3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限:自作関数は不可、スキルは初心者用の参考書一冊を一通り読んだくらいです。

よろしくお願いします。

816 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:37:51 ]
自作関数は不可って?

817 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:45:17 ]
ごめんなさい、そこは無視して大丈夫ですorz

818 名前: ◆MmITqPYxy6 [2007/07/24(火) 13:42:22 ]
[1] 授業単元: IT入門B1 C言語
[2] 問題文(含コード&リンク): 1辺10の立方体内部に含まれる四面体をN個発生し、
               体積の分布(区間数は20程度)を表示するプログラムを
               以下の要求に従って作成し、実行しなさい。
1,四面体を表す構造体(4つの3次元位置ベクトルをメンバーとする) を Tetra という名前で定義する.
typedef struct {. . .} Tetra;

2,構造体 Tetra を返却する,すなわち四面体を生成する以下の名前の関数を作成する.
Tetra mk_tetra(void)

3,四面体の体積を返す次の名前の関数を定義する.
double vol_tetra(Tetra t)

4,Nの値は実行時にキー入力するように設計しなさい.
          
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月25日迄
[5] その他の制限:
ヒントとして 1、講義で用いた"vector.h" を必ずincludeして使いなさい。
       2、四面体の1つの頂点を原点にして、他の3つの位置を表すベクトルを r1,r2,r3とすると、四面体の体積Vは以下のように与えられる
          V=1/6|(r1×r2)・r3|
がありました。
vector.h はこれです www-it.sci.waseda.ac.jp/teachers/w405201/ITB1/Sources/vector.h




819 名前: ◆MmITqPYxy6 [2007/07/24(火) 13:46:23 ]
よろしくお願い致します。

820 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:20:45 ]
>>811
>[5] その他の制限:>>452で教えてもらい、その後少し訂正したんですがダメでした。
もしかして、gets()をfgets()に修正したと言うことですか?
それ以外にも変更していますか?
fgets()だけなら、引数を変更するだけで良いんじゃないでしょうか。


821 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:50:12 ]
>452はgets()の使い方が阿呆過ぎる。
それはさておき、>811はなんで自分がどう修正してダメだったかも書かないんだ?

822 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 14:59:12 ]
>>821
gets()の使い方なんか可愛いもんだ。突っ込みどころ満載で目も当てられない。

823 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 15:09:24 ]
取り敢えず書いてみた。
#include <stdio.h>
int main()
{
puts("文字列を入力してください");
char buf[200];
if (fgets(buf, sizeof(buf), stdin) == NULL) return 1;
puts("さがす文字を入力してください");
char key;
if (scanf("%c", & key) != 1) return 1;
unsigned count = 0;
for (unsigned ic = 0; buf[ic] != '\0'; ++ic) if (buf[ic] == key) ++count;
printf("入力された文字列の中に指定された文字は%d個あります\n", count);
return 0;
}

824 名前:デフォルトの名無しさん [2007/07/24(火) 16:33:28 ]
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):”rand1000.dat”というデータの個数nとその個数分の整数データが保存されているファイルがある
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4151.txt


このデータをファイルから読み込み

挿入ソート
基数ソート
ヒープソート
クイックソート
マージソート

によってソートできるよう各プログラムを作成せよ

データ数が100,000個のときでも対応できるようメモリを確保しておいてください。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7月28日
[5] その他の制限:出来る限り単純なアルゴリズムで作ってください。合計5つのプログラムを作成してください。

大変な問題で申し訳ありませんがどなたか詳しい方よろしくお願いいたします

825 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:43:08 ]
>>824
なんで露骨にマルチするわけ?
専用ブラウザ使ってる連中の多くが両方とも見ているから、逆効果にしかならないのだが。
#それともネタか? ネタにマジレスしちゃったか?w

826 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:58:03 ]
だから答える気がない奴はいちいちうぜーレスするなよ、邪魔。お前みたいな奴いらねーって
行頭 # 野郎w

827 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:03:33 ]
>>826
お前も、なぁ…?

828 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:07:01 ]
>>826
こいつ、他のスレにも潜んでるよな
IDが出ないのをいいことに好き勝手やってやがる



829 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:08:26 ]
>>828
あ〜はいはい、去年質問したけど質問の仕方が悪くて
今年は自分が質問者を弄るようになった基地外えせ回答者さん乙でありますw
うぜぇから他の回答者の迷惑になるから、文句を言うだけのレスはするなや、答える気も
答える能力もないくせに、うざすぎ

830 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:10:00 ]
[1] 授業単元:プログラミングT
[2] 問題文(含コード&リンク):
二つの任意の正の整数の乗算(*)を、シフト演算の組合わせと除算(/)と
加算(+)のみで解くプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 7月25日まで
[5] その他の制限: ビット演算まで習っています。

お願いします。

831 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:11:10 ]
>>828
まぁ、アレだからスルーしてあげてくれ。

832 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:11:43 ]
答える気も能力もないクズらが質問者を叩くだけで自己満足か、必死だな

833 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:17:21 ]
何だ、本当に答える気がなくて質問者をスレのルールに則って詰るだけの低レベルか。
相手にするだけ無駄だ、お前ら俺がいる限り、もうこのスレには来なくて良いから。
邪魔だから失せろ。

834 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:19:16 ]
>>827
質問者に対して、回答ではなく叩きでレスしているって意味だと思うんだが。
頭大丈夫か?

835 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:20:30 ]
ここは馬鹿がアホをたたくスレですか?

836 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:21:31 ]
>>834
お前こそ頭大丈夫か?文盲?

837 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:21:38 ]
>>833
勝手にすればwww

838 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:22:39 ]
>>834
>いちいちうぜーレスするなよ、邪魔。お前みたいな奴いらねーって
これに対してオマエモナーだろ。



839 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:24:38 ]
>>838
いや、オマエモナーは>>827=>>838さんの専売特許ですから

840 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:27:21 ]
なんか話が通じてないぞ。

841 名前:にゃ〜 [2007/07/24(火) 18:31:53 ]
f(x)=sin(x)をテイラー展開すると

   ∞
f(x)=(-1)^(k-1)*{x^(2k-1)/(2k-1)!}
   k=1

となる.これを利用してsin(x)の値を多項式近似する関数double mysin(double x)を定義し,この関数を利用して,読み込んだ実数xのsin(x)を計算して出力するプログラム(sin.c)を書け.
また,数学関数sin(x)と自分で作ったsin(x)を比較せよ.

という問題なのですがどうしてもわからないんです。
今日中にできる方いらっしゃいますか??  
理解したいので、コメント付きでどうかお願いします。

842 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:36:48 ]
ループで適当なとこまで足してきゃいいだけだろ。

843 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:39:32 ]
>>841
どの辺が分からない?式の意味は分かるよね?

844 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:58:17 ]
>>841
#include <stdio.h>
#include <math.h>

double mysin(double x) {
double sub = 1.0;
int last = 1001; /* 奇数 */
while (last > 1) {
sub = 1 - (x*x / ((last-1)*last)) * sub;
last -= 2;
}
return x * sub;
}
int main(int argc, char *argv[]) {
while (1) {
double x;
scanf("%lf", &x);
printf("mysin(x) = %lf\t(sin(x) = %lf)\n", mysin(x), sin(x));
}
}
/* コメント:原点から遠ざかると近似が効かなくなるのはマクローリンの宿命だな */

845 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:27:21 ]
マクローリン云々よりも漸化式の形で解くのに疑問を持つ
1001もマジックでエロい人だなぁ

846 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 21:42:25 ]
>>841
クソわかりやすいつもり。わからないなら数学やりなおせ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4737.c

847 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 21:55:07 ]
>>753
ありがとうございますー
最長一致するようにして使わせてもらいます

>\(\)は無理,ってか>>719の言い方じゃイラネエじゃんクソ
勘違いしてたみたいですね
すいません

>つーかなに?ほんとはライブラリとか使えんじゃねーのか???
>>>420が問題の趣旨を理解していない気が激しくするぞコラ
授業ではプリプロセッサにまったく触れてないんでそれはないです

848 名前:デフォルトの名無しさん [2007/07/24(火) 22:22:39 ]
さんざん考えたけど難しかったです。
よろしくお願いします。
[1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク):
2つの複素数z=a+bi、w=c+di(ただしiは虚数単位)を読み込み、足し算とかけ算を計算して表示するプログラムを作成せよ。
但し、以下の仕様を満足するように作成すること。
・複素数の実部と虚部を示す実数型変数をメンバとする構造体COMPLEXを構造体で定義する。
・足し算の関数:COMP_ADD(z、w)とかけ算の関数:COMP_MULT(z、w)を作成し、main関数ではこれらの関数を呼び出す。
(実行例)
1つ目の複素数(実部):2
1つ目の複素数(虚部):3
2つ目の複素数(実部):4
2つ目の複素数(虚部):-2
足し算:(6)+(1)i
かけ算:(14)+(8)i
(ヒント)
複素数を扱う構造体(メンバで実数部、虚数部を2つの数値で格納)を宣言し、各変数を格納、演算を行う。
複素数同士の足し算、かけ算は普通に行う。
(a+bi)+(c+di) (a+bi)×(c+di)
を展開して虚数の2乗は-1という知識があれば解ける。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C言語
[4] 期限:7/26(木)12:00まで



849 名前:にゃ〜 [2007/07/24(火) 22:46:34 ]
いろいろやってみたところ自己解決しました
載せてくれた人もいるみたいですが
いちおう礼をいっておきます

850 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:00:02 ]
>構造体COMPLEXを構造体で定義する。
構造体を構造体以外でどうやって定義するんだよw

851 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:00:30 ]
>>848 ほい。名前が適当だから、そこだけ自分で修正して。

#include <stdio.h>
typedef struct{
double r;
double i;
} comp;

comp add_comp(comp c1,comp c2){
comp tmp;
tmp.r=c1.r+c2.r;
tmp.i=c1.i+c2.i;
return tmp;
}

comp mul_comp(comp c1,comp c2){
comp tmp;
tmp.r=c1.r*c2.r-c1.i*c2.i;
tmp.i=c1.r*c2.i+c1.i*c2.r;
return tmp;
}


852 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:01:35 ]
>>851の続き

int main(){
comp c1={2.0,3.0};
comp c2={4.0,-2.0};
comp result;
printf("1つ目の複素数(実部):%lf\n",c1.r);
printf("1つ目の複素数(虚部):%lf\n",c1.i);
printf("2つ目の複素数(実部):%lf\n",c2.r);
printf("2つ目の複素数(虚部):%lf\n",c2.i);

result=add_comp(c1,c2);
printf("足し算:(%lf)+(%lf)i\n",result.r,result.i);
result=mul_comp(c1,c2);
printf("かけ算:(%lf)+(%lf)i\n",result.r,result.i);

return 0;
}


853 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:24:02 ]
[1] 授業単元:c言語
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4739.txt
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:bcc32
 [3.3] 言語: C
[4] 期限: 7月26日まで
[5] その他の制限:ファイルを読込んだり、書込んだりするところを習いました。

854 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:29:39 ]
>>853
例をみると、改行も区切りと見なしてるが、それでいいのか?

855 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:32:04 ]
>>854
はい

856 名前:にゃ〜 [2007/07/25(水) 00:37:12 ]
>>844
わかりやすいっす!!
ありがとうございます。勉強しなおします

857 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:39:18 ]
>>853
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4740.c

858 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:52:03 ]
>>853
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4741.c



859 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:54:40 ]
>>853 ちょい修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4742.c

860 名前:853 mailto:sage [2007/07/25(水) 00:57:53 ]
すいません。
補足で
入力ファイルを読込モードでオープン
出力ファイルを書出モードでオープン
while ( 1 ) {
入力ファイルから書式付で字句を読込
ファイル終端なら脱出
出力ファイルに書式付で番号を付けて書込
}
入力ファイルをクローズ
出力ファイルをクローズ
と言う形で作れと書いていました。

861 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:02:14 ]
>>860
後だしイクナイ

862 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:03:16 ]
>>853 >>860
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4743.c

863 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 01:04:32 ]
>>862の#include <ctype.h>は不要だから消しておいて

864 名前:853 mailto:sage [2007/07/25(水) 01:15:02 ]
ありがとうございました。

865 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ]
>>851 >>852
ありがとうございます。
ソースも分かりやすく書いてくれたみたいで、参考になります。

866 名前:デフォルトの名無しさん [2007/07/25(水) 10:02:24 ]
パワプロ14でオールAを作るプログラムを作れ

867 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 10:48:35 ]
すごい宿題だな

868 名前:デフォルトの名無しさん [2007/07/25(水) 11:20:58 ]
>>866
攻略本が必要だ。
でも宿題の内容熱いな。



869 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 11:44:08 ]
探索とその評価の方法をパワプロを通して学ぶわけだな

870 名前: ◆6MtsdamhF6 [2007/07/25(水) 11:45:35 ]
すいません、まだ初心者であんまりわかりません。
締切が近いのでどうかお願いします

【質問テンプレ】
[1] 授業単元:プログラミングC言語
[2] 問題文(含コード&リンク):
次の違いに注意しながら、forの変わりにwhileを使うものにそれぞれ
書き換えなさい。ただし書き換えは最低限にすること
(1)
#include<stdio.h>
main(){
int nc, c;
for(nc = 0; (c= getchar()) != EOF; nc++)
printf("%c", c);
printf("\nTatal=%d\n", nc);
}

A#include<stdio.h>
main(){
int nc, c;
for(nc = 0; (c= getchar()) != EOF; nc++)
putchar(c);
printf("\n%d\n", nc);
}
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:今日の14時までなんです。
どうかおねがいします。

871 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:19:36 ]
#include<stdio.h>
main(){
int nc=0, c;
while((c= getchar()) != EOF) {
printf("%c", c);
nc++;
}
printf("\nTatal=%d\n", nc);
}

#include<stdio.h>
main(){
int nc=0, c;
while((c= getchar()) != EOF) {
putchar(c);
n++;
}
printf("\n%d\n", nc);
}

期限切れだが

872 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 14:22:21 ]
Aのn++はnc++の間違い

873 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:46:14 ]
今、>>841をやってみた。最初は簡単かと思ったけど、
そのまま階乗つかうとオーバーフローするから面倒なのね。
>>844ほど華麗ではないけど、x/n * ...x/3 * x/2 * x/1の和で計算した。

874 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 15:55:45 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下のように、2桁以下の正整数が1行に3つずつ書かれたファイルを input.txt とする。
ただし、ファイルの末尾には、終了を表す番兵0がある。
1 45 90
2 7 41
13 67 60
0
入力リダイレクトで input.txt を読み込み、出力リダイレクトで、以下のような形式で output.txt に保存するプログラムを作れ。
番号 数学 英語 合計
01 45 90 135
02 7 41 48
13 67 60 127
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン:bcc32
 [3.3] 言語: C
[4] 期限:7/27
反復構文を使うっぽいです。

875 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:42:24 ]
[1] 授業単元:情報基礎
[2] 問題文:次の仕様を満たすプログラムを作成せよ
(1)入力は2以上の整数n
出力はnのすべての正の約数
(2)入力は2以上の整数n
出力はnの正の約数の個数
(3)入力は2以上の整数n
出力はnが素数ならば"n is prime",
合成数ならば"n is not prime"
(nの部分には、入力した整数が表示されるようにすること)
3つのプログラムは1つにまとめてもよい。その場合には、ど
れが約数でどれが約数の個数を表しているかが分かるようにす
ること。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:c
[4] 期限:7月27日(金)提出は20:45までです


876 名前:デフォルトの名無しさん [2007/07/25(水) 16:43:30 ]
>>874
#include <stdio.h>
void main(){
int buf = 0;
int count = 0;
int total = 0;
printf("番号 数学 英語 合計\n");
while(scanf("%d",&buf)) {
if(buf == 0)
break;
count++;
printf("%d ", buf);
total += buf;
if(!(count%3)){
printf("%d\n", total);
total = 0;
}
}
}
なんにもエラー処理してないけどこんなんでいいかな・・・


877 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 16:58:51 ]
>>875
#include<stdio.h>
int main(){
int n,c=0,i;
printf("n=");
scanf("%d",&n);
for(i=2;i<=n;i++)
if(n%i==0)
c++,printf("%d ",i);
printf("\n%d\nn is ",c);
if(c!=1)
printf("not ");
printf("prime.\n");
return 0;
}

878 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:01:34 ]
間違えた・・
#include<stdio.h>
int main(){
int n,c=0,i;
printf("n=");
scanf("%d",&n);
for(i=2;i<=n;i++)
if(n%i==0)
c++,printf("%d ",i);
printf("\n%d\n%d is ",c,n); //修正
if(c!=1)
printf("not ");
printf("prime.\n");
return 0;
}




879 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:03:43 ]
学校の先生はこのスレにかかれているままのコードで
宿題をだしている生徒がいたら、減点すればいいわけだなwwww

880 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:17:55 ]
教官、見てるなら指摘された問題の間違い位直せよ。

881 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 17:31:47 ]
そこまで良心的な教師いないよ

882 名前:デフォルトの名無しさん [2007/07/25(水) 17:55:14 ]
[1] 授業単元: IT入門B1 C言語
[2] 問題文(含コード&リンク): 1辺10の立方体内部に含まれる四面体をN個発生し、
               体積の分布(区間数は20程度)を表示するプログラムを
               以下の要求に従って作成し、実行しなさい。
1,四面体を表す構造体(4つの3次元位置ベクトルをメンバーとする) を Tetra という名前で定義する.
typedef struct {. . .} Tetra;

2,構造体 Tetra を返却する,すなわち四面体を生成する以下の名前の関数を作成する.
Tetra mk_tetra(void)

3,四面体の体積を返す次の名前の関数を定義する.
double vol_tetra(Tetra t)

4,Nの値は実行時にキー入力するように設計しなさい.
          
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc 3.4
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 7月25日20時迄
[5] その他の制限:
ヒントとして 1、講義で用いた"vector.h" を必ずincludeして使いなさい。
       2、四面体の1つの頂点を原点にして、他の3つの位置を表すベクトルを r1,r2,r3とすると、四面体の体積Vは以下のように与えられる
          V=1/6|(r1×r2)・r3|

vector.h はこれです www-it.sci.waseda.ac.jp/teachers/w405201/ITB1/Sources/vector.h

今日が期限なんですが、全然わからないんです。
よろしくお願い致します

883 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:01:02 ]
>>882
結果表示のイメージが分からない。グラフにするのかな?合計数値?

884 名前: ◆TDJK/P.926 [2007/07/25(水) 18:16:42 ]
【質問テンプレ】
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク)
講義中の題材として扱っていた電卓を、以下の点について改良せよ。
(1)変数に文字列を代入できるようにする。たとえば
   s1="Programing"
word="apple"
 のような代入が可能になる。

(2)文字を扱う関数を取り扱えるようにする。たとえば
 s1="Programing"
s2="Language"
s3=concatenate(s1,s2) 上で代入されたs1とs2を連結したものをs3に代入する。
s3
=ProgramingLanguage

(5)次のようなif文を使えるようにする。→if(条件式) 実行文
例: if(a+b>10) a=a-1
条件式には、>または<が使用できるものとする。条件式が成立していたときには、実行文(複文も可)を実行する。

(6)その他、この電卓に追加するとよいと思う昨日を考え、実現してみよ。

[3] 環境
 [3.1] OS:WindowsXP 上でのUNIX
 [3.2] コンパイラ名とバージョン: gcc (※yaccとlexのプログラミングです。
 [3.3] 言語:C言語
[4] 期限: (2007年07月27日20:00まで]
[5] その他の制限:講義中の題材のソースはすぐアップします。

885 名前: ◆TDJK/P.926 [2007/07/25(水) 18:19:36 ]
>>884のソースです。

※ヘッダファイル:ch3-05.h
#define NSYMS 20 /* maximum number of symbols */
struct symtab {
char *name;
double (*funcptr)();
double value;
} symtab[NSYMS];
struct symtab *symlook();

886 名前: ◆TDJK/P.926 [2007/07/25(水) 18:20:42 ]
>>885 続き

※lexファイル:ch3-05.l
%{
#include "y.tab.h"
#include "ch3-05.h"
#include <math.h>
%}
%%
([0-9]+|([0-9]*\.[0-9]+)([eE][-+]?[0-9]+)?) {
yylval.dval = atof(yytext);
return NUMBER; }
[ \t] ; /* ignore white space */
[A-Za-z][A-Za-z0-9]* { /* return symbol pointer */
struct symtab *sp = symlook(yytext);
yylval.symp = sp;
return NAME;
}
"$" { return 0; /* end of input */ }
\n |
. return yytext[0];
%%
yyerror(char *errmsg)
{
fprintf(stderr,"ERROR: %s at %s\n", errmsg, yytext);
}
yywrap(){}

887 名前:デフォルトの名無しさん [2007/07/25(水) 18:20:50 ]
説明不足でした。申し訳ありません

N = 10000000
0.0 - 16.7: 0.699031
16.7 - 33.3: 0.206966
33.3 - 50.0: 0.065772
50.0 - 66.7: 0.020377
66.7 - 83.3: 0.005860
83.3 - 100.0: 0.001542
100.0 - 116.7: 0.000351
…中略…
316.7 - 333.3: 0.000000

が実行例としてありました。それぞれ体積の範囲ごとに
どれくらい分布しているかを箇条書きみたいに出すみたいです。

888 名前: ◆TDJK/P.926 [2007/07/25(水) 18:23:05 ]
>>886続き

※yaccファイル:ch3-05.y
%{
#include "ch3-05.h"
#include <string.h>
#include <math.h>
%}
%union {
double dval;
struct symtab *symp;
}
%token <symp> NAME
%token <dval> NUMBER
%left '+' '-'
%left '*' '/'
%nonassoc UMINUS
%type <dval> expression
%%
statement_list: statement '\n'
| statement_list statement '\n'
;
statement: NAME '=' expression { $1->value = $3; }
| expression { printf("= %g\n", $1); }
;




889 名前: ◆TDJK/P.926 [2007/07/25(水) 18:25:09 ]
>>888 yaccの続き。次で最後です。
expression: expression '+' expression { $$ = $1 + $3; }
| expression '-' expression { $$ = $1 - $3; }
| expression '*' expression { $$ = $1 * $3; }
| expression '/' expression { if($3==0.0) yyerror("Divide by Zero");
else $$ = $1 / $3; }
| '-' expression %prec UMINUS { $$ = -$2; }
| '(' expression ')' { $$ = $2; }
| NUMBER { $$ = $1; }
| NAME { $$ = $1->value; }
| NAME '(' expression ')' { if( $1->funcptr ) $$ = ($1->funcptr)($3);
else {printf("%s not a function.\n", $1->name);
}
}
;
%%
/* look up a symbol table entry, add if not present */
struct symtab *symlook(char *s)
{
char *p;
struct symtab *sp;
for(sp=symtab; sp<&symtab[NSYMS]; sp++) {
/* is it already here? */
if( sp->name && !strcmp(sp->name, s) ) return sp;
/* is it free */
if( !sp->name ) { sp->name = strdup(s);
           return sp;}
/* otherwise continue to next */
}
yyerror("Too many symbols");
exit(1); /* cannot continue */
} /* end of symlook */

890 名前: ◆TDJK/P.926 [2007/07/25(水) 18:35:56 ]
>>889 これで最後です。
void addfunc(char *name, double (*func)())
{
struct symtab *sp = symlook(name);
sp->funcptr = func;
}
int main()
{
extern double sqrt(), exp(), log(), sin(), cos();
addfunc("sqrt", sqrt);
addfunc("exp", exp);
addfunc("log", log);
addfunc("sin", sin);
addfunc("cos", cos);
yyparse();
return 0;
}

891 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:44:24 ]
>>1にもある様に長文はロダ使おうぜ
その方が回答者にとってはやりやすい

って書くといつもの基地外に噛み付かれるのかなぁ?

892 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:19 ]
◆TDJK テンプレ嫁

893 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:47:47 ]
>>891
ガブ

894 名前: ◆TDJK/P.926 [2007/07/25(水) 18:47:51 ]
>>891
うpロダには学校からアクセスしてるので規制されててアクセスできないんですよ(汗)申し訳ないです。

895 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 18:50:20 ]
2chはおkなのに?おかしな話だ

896 名前: ◆TDJK/P.926 mailto:sage [2007/07/25(水) 18:54:39 ]
>>895
2ch自体にはアクセスできますがPink板など18禁系には規制かかります。
うpロダもそれで規制かかったので。

897 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:05:05 ]
いくらでもあるのに規制って(´,_ゝ`)プッ
宿題まるなげするやつのいいそうなことだ。(´,_ゝ`)プッ

898 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:10:14 ]
>>897
>>762




899 名前:デフォルトの名無しさん [2007/07/25(水) 19:11:16 ]
説明不足でした。申し訳ありません。

N = 10000000
0.0 - 16.7: 0.699031
16.7 - 33.3: 0.206966
33.3 - 50.0: 0.065772
50.0 - 66.7: 0.020377
66.7 - 83.3: 0.005860
83.3 - 100.0: 0.001542
100.0 - 116.7: 0.000351
…中略…
316.7 - 333.3: 0.000000

が実行例としてありました。それぞれ体積の範囲ごとに
どれくらい分布しているかを箇条書きみたいに出すようです。
よろしくお願いします。



900 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:12:19 ]
>>898こてはずして必死だなwww

901 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:54:06 ]
>>900
>>762

902 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 19:58:05 ]
>>882 間に合うかな?
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4746.c

903 名前:デフォルトの名無しさん [2007/07/25(水) 19:58:54 ]
age

904 名前:デフォルトの名無しさん [2007/07/25(水) 20:01:53 ]
スマン影響ないけど if(j > 30) j = 30; → if(j > 29) j = 29;

905 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:04:49 ]
[1] プログラミング
[2]
キーボードから入力された1行を読み込み,そのアルファベットを全て大文字に
変換して表示するプログラムを作成しなさい。なお,以下に与えられるメイン関数を必ず使用し,
文字列を大文字の文字列に変換する関数str_capを作成することで完成させなさい。

ヒント:小文字とは「'a'以上 かつ 'z'以下」の文字であるので,条件式が成立した場合に
小文字→大文字変換を行う。それ以外の文字はそのままにする。 Program: pt3-3.c の一部
#include <stdio.h>
#define MAXLINE 1024
void str_cap(char src[], char dst[]);

int main(void) {
char line[MAXLINE], conv[MAXLINE];

printf("Input a line ->");
gets(line);
str_cap(line, conv);
printf("Original : %s\n", line);
printf("Converted: %s\n", conv);
return 0;
}

実行結果

$ ./pt3-3
Input a line -> hiroshima city
Original : hiroshima city
Converted: HIROSHIMA CITY
$

906 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:05:46 ]

[3] 環境
 [3.1] Linux
 [3.2] gcc 3.4
 [3.3] C
[4] [無期限]
[5] 関数部分をifを使って組む、toupperは使ってはいけない

お願いします

907 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:26:03 ]
どなたか>>810
分かりませんか?

offspringを使って左右に潜っていくんだろうけど
最終的にどうなれば求める値なのかさっぱりわからん・・・・

908 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:29:28 ]
>>905 mainより上にコピーして
void str_cap(char str1[], char str2[]) {
int i;
for(i = 0; str1[i] != '\0'; i++) {
if(('a'<=str1[i]) && (str1[i]<='z')) str2[i]=str1[i]-'a'+'A';
else str2[i]=str1[i];
}
str2[i]='\0';
}



909 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:34:48 ]
>>908 ごめん、str1 -> src、str2 -> dst、ってことで。

910 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:18 ]
>>905
ヒントは無視してるがやってみた
#include<stdio.h>
int main(void){
char lower[]="abcdefghijklmnopqrstuvwxyz";
char upper[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int i;
printf("void str_cap(const char *src, char *dest){\n");
printf("\tdo{\n");
printf("\t\t*dest=*src;\n");
for(i=0;i<26;i++) printf("\t\tif(*src=='%c') *dest='%c';\n", lower[i], upper[i]);
printf("\t\tsrc++;\n");
printf("\t\tdest++;\n");
printf("\t}while(*src);\n");
printf("}\n");
return 0;
}

911 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:39 ]
>>905
それvipでみたな
ヒントもらえたのに解決しなかったのか?

912 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:38:40 ]
4文字の文字列を入力してF,R,E,Eの4文字で構成されていたらOK
それ以外なら入力しなおす。

ERFEやEERFもOK。この4文字で構成(F,RとEが2回で

913 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:40:28 ]
DEAD BEEF
BAD FACE

914 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:42:48 ]
>>910 は '\0' 入れ忘れてる orz

printf("}\n");

printf("\t*dest='\0';\n}\n");

915 名前:デフォルトの名無しさん [2007/07/25(水) 20:56:53 ]
>>902
ありがとうございます。ギリギリ間に合いました。
お手数かけてすみませんでした。

916 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:04:05 ]
>>912
宿題なら >>1 を読んで書きなおし

917 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:10:39 ]
>>908
>>910
ありがとうございました。

918 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:22:18 ]
>>908のように打ち込んだのですが、gets以外でfunction mainでエラーが発生し
printf("Converted: %s\n", conv);のconvの部分が出力されません
newjizou.s6.xrea.com/cgi-bin/source/up0098.c



919 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:27:47 ]
>>918
これじゃコンパイルできんだろ?

920 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:29:33 ]
>>919
コンパイルはできたのですが、その部分が出力されないのです。

921 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:30:11 ]
>>909の通りに置換されきれてない上に置換された文字が間違ってる
置換すらまともにできないのかYO

922 名前:デフォルトの名無しさん [2007/07/25(水) 21:36:52 ]
>>902
度々すみません。コンパイルがうまくできてないようなんですが
どこが間違っているのかわからないのですが。
お教え願いないでしょうか?

923 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:05 ]
int main(int argc, char *argv[]) → int main(void)

にするといいかもNE!

924 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:43:11 ]
>>921
コンパイルはできたのはこっちでした
newjizou.s6.xrea.com/cgi-bin/source/up0099.c

925 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:49:44 ]
だからね・・・
置換された文字が間違ってるからダメなんだ

926 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:53:32 ]
>>925
落ち着いて見てみると修正した部分以外にも違っていた
すみません、本当に自分が馬鹿でした・・・


927 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:57:13 ]
>>924
折角変換処理を通した後で '\0' で上書きするということは
memset(dest, '\0', strlen(str));
と等しい。

928 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:04:12 ]
>>927
>>908のstc[i]='\0';の部分を修正したところ、正常に動作しました
ありがとうございました、お世話かけました。



929 名前:デフォルトの名無しさん [2007/07/25(水) 22:08:37 ]
[1] 授業単元:OS概論
[2] 問題文(含コード&リンク):
Linuxでは、mmap()システムコールを使うと、
複数のプロセス間で仮想アドレス空間の一部を共有することができる。
このようなプログラムを作成し、
実際に仮想アドレス空間の一部が共有されていることを確認しなさい。

[3] 環境
 [3.1] OS: LINUX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2007年7月26日まで

さっぱり見えてきません。
何卒宜しくお願い致します。

930 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:20:51 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
正の整数nを入力して、1からnまでの積(階乗)を求めるプログラムを
作成さいなさい
[3] 環境
 [3.1] OS: Windows
 [3.2] 言語: C言語
[4] 期限: 2時間以内
よろしくお願いします

931 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:34:26 ]
#include <stdio.h>
int main(void)
{
unsigned int n, val = 1;

scanf("%d", &n);
while (n > 0) {
val *= n--;
}
printf("%d\n", val);
return 0;
}

こんなんでいいの?
unsigned intを超える値を表示させろというなら面倒だな。

932 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 22:39:03 ]
>>930
#include <stdio.h>
int main(void) {
int n,i,r;
printf("n = ");
scanf("%d",&n);

for(i=1,r=1; i<=n; i++)
printf("%d! = %d\n",i,r*=i);
return 0;
}

933 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:10:40 ]
>>930 ちょっと変わったところで、こんなのはどう?
>>931の言うように、任意のnには無理だけど。
#include <stdio.h>

int fact(int n){
return n>1?n*fact(n-1):1;
}

int main(){
int n;
printf("n = ");
scanf("%d",&n);
printf("%d\n",fact(n));
return 0;
}


934 名前:プログラミング初心者 [2007/07/25(水) 23:23:39 ]
[1]授業単元:c言語

[2]問題文(含コード&リンク): 2つの符号なし整数a,b(ただし、a>bとする)を
キーボードから読み込み
@a,bを2進表示し、配列の中にビットを格納しなさい
Aa,bの四則演算
c=a+b
d=a-b
e=a*b
f=a/b(商f1と余りf2)を計算しその結果を出力しなさい

[3]環境
 [3.1] OS: Windows
 [3.2] 言語: C言語

[4]期限:2007年7月28日まで
全然見えてきません。
よろしくお願いします。

935 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:34:59 ]
[1] 授業単元: C言語演習
[2] 問題文:
自分で作成したデータファイルを読み込みんで以下のような出力が出るようにする。
abc efg abc hijkl efg xxxxxxxxx これを
abc, 3 efg, 3 hijkl, 5 xxxxxxxxx, 9 のようにする。
同じ文字は二度も表示させない。それぞれの文字数をカウントする。
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C++
[4] 期限:7月30日まで

よろしくお願いします。

936 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 23:54:44 ]
>>934
こんなんでいいかい?

#include <stdio.h>
void dtob(unsigned int n, char *s) {
unsigned int i = 32;
s[i] = '\0';
for (i = 31; i >= 0; i--) {
s[i] = (((n >> (31 - i)) & 1) + '0');
}
}

int main(void) {
unsigned int a, b;
char buf[33]; /* for 32bit */

scanf("%d %d", &a, &b);
dtob(a, buf);
printf("%s\n", buf);
dtob(b, buf);
printf("%s\n", buf);
printf("%d + %d = %d\n", a, b, a+b);
printf("%d - %d = %d\n", a, b, a-b);
printf("%d * %d = %d\n", a, b, a*b);
b && printf("%d / %d = %d(%d)\n", a, b, a/b, a%b);
return 0;
}


937 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:17:33 ]
>>929 やっつけなので、かなりアレだかけど、一応、課題は満たせると思う。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4748.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4749.c
使い方
1:4748と4749を同じディレクトリ内でコンパイルする。
さらに、同じディレクトリ内に、hogeという名前のファイルを作る。
2:端末を二つ立ち上げ、片方で4748を、もう片方で4749を実行する。
3:4748で2,3文字入力してエンターしたあと、4749で'x'以外で何か一文字入力してエンター
4:すると、4748で入力した文字列が4749のプログラムに出力される。

938 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:18:31 ]
どなたか>>929を御願いします…



939 名前:938 mailto:sage [2007/07/26(木) 00:20:49 ]
リロードし忘れorz
>>937のを試してみます
ありがとうございました

940 名前:686 mailto:sage [2007/07/26(木) 00:26:12 ]
>>702
sa-wiki.com/upload/src/up0151.txt

>期限: ([2007年7月23日9:00まで] )
もうとっくに切れているし、必要ないかもしれませんが、一応作ったので
極力ソースの変更はしないようにしたつもりです
コメントは入れてませんし、メモリの開放が失敗しているかもしれません
問題の「その後、木のノードからつながる住所データを表示する。」の意味が分からなかったので手を付けていません
素人(自分)がやったのできれいではありません

941 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:26:38 ]
>>935
「同じ文字は二度も表示させない」ってのは何のこと?
「同じ単語は…」のことか?


942 名前:デフォルトの名無しさん [2007/07/26(木) 00:41:47 ]
>>810
dataType* f(nodeType *p,int k) {
int n=k;
if(k<1)return NULL;
if(p->left!=sentry)n-=(p->left->offspring+1);
if(n==1)return &(p->data);
if(n<1)return f(p->left,k);
if(p->right!=sentry)return f(p->right,n-1);
return NULL;
}
dataType* RBSTfindKth(int k){
return f(head,k);
} 該当箇所にコピー,ヘッダにf()の宣言追加,
メニュー文字列に5:find追加でおk

943 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:39:43 ]
[1] 授業単元:プログラミング演習I
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4751.txt
[3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7/31まで
[5] その他の制限:特になし


締め切り間近です。
どうか皆さんの力を貸してください。


944 名前:デフォルトの名無しさん [2007/07/26(木) 01:45:29 ]
[1] 授業単元: プログラミング言語論
[2] 問題文:
読み込んだ分数を連分数として出力せよ。全ての分子が1になったときに連分数にする計算はとめればよい。
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C++
[4] 期限:明日(正確には今日)まで・・・

お願いします。

945 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:18:38 ]
>>944
まず
> 読み込んだ分数
っていう前提条件をよこせ

946 名前:944 [2007/07/26(木) 02:21:10 ]
問題があやふやですいません。

float a, b, c;
std::cin >> a;
std::cin >> b;

c = a/b;

上記でいうcが読み込んだ分数です。
よろしくお願いします。

947 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:26:58 ]
>>943
なんとなく lexico だけ
#define lwstr(x) (isupper(x)?tolower(x):(x))
int lexico(char *a,char *b){
int i=0;
while(*a && *b)
i=lwstr(*a)-lwstr(*b),a++,b++;
return i;
}

948 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:33:59 ]
>>943
ヒント・参考のとおりに書いたつもり
くそーすだが
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4752.c



949 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 02:35:07 ]
>>944
よりによってfloatか.微妙な誤差が出るかも
記法はwikiにならった
#include <iostream>
using namespace std;
int main() {
float A, B;
cout << "input numerator (A in A/B)" << endl;
cin >> A;
cout << "input denominator (B in A/B)" << endl;
cin >> B;
if (A == 0) {
cout << 0 << endl;
} else if (B == 0) {
cout << "error" << endl;
} else {
cout << "[" << (int)(A/B) << "; ";
A = A-(int)(A/B)*B;
while (A != 1) {
if (B-(int)(B/A)*A == 0) { B /= A; break; }
cout << (int)(B/A) << ", ";
float w = A; A = B-(int)(B/A)*A; B = w; }
cout << (int)B << "]" << endl; } }


950 名前:944 [2007/07/26(木) 02:46:42 ]
>>949

ありがとうございます!このアルゴリズムを理解して寝ますwww
本当に助かりました☆

951 名前:948 mailto:sage [2007/07/26(木) 02:53:49 ]
lexico関数の中の int k はいらないから消しといて><

952 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 05:58:29 ]
クソースってのは俺が最初に使った言葉だ、一回使うたびに¢10徴収するニダ

953 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 06:38:34 ]
どう考えてもブルドックソースのほうが先

954 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:04:59 ]
んじゃブルドックソースに一部を納めるから、クソースを使うたびに¢50徴収する二ダ

955 名前:デフォルトの名無しさん [2007/07/26(木) 09:10:02 ]
だれかクイックソートのフローチャートを図付きで詳しく説明してください
俺の頭じゃわかりません><

956 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:10:39 ]
>>955 ¢50払え

957 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:11:48 ]
>>955
www.google.co.jp/search?q=%E3%82%AF%E3%82%A4%E3%83%83%E3%82%AF%E3%82%BD%E3%83%BC%E3%83%88&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox

958 名前:デフォルトの名無しさん [2007/07/26(木) 09:21:14 ]
ググってもわかりやすいフローチャートが出ないんだ(´・ω・`)



959 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 09:23:06 ]
あれで理解できないなら諦めろ。所詮、才能の無い奴、理解力の無い奴は
一応学校の規定で単位はもらえるが、適切に行動が起こせないから困る。
今はなんだかんだ言ってもバカでも金で学歴が買える時代だしな。

960 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:40:50 ]
>>955
要は再帰呼び出しが理解できないでハマってるんだろうけど
フローチャートで書いてもそこんところは分かりやすくならんのよ

961 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:44:20 ]
寧ろ、フローチャートなんか使うから余計に理解しにくくなると思うんだが。

962 名前:デフォルトの名無しさん [2007/07/26(木) 13:56:20 ]
トランプかなんかで、試してみれ

963 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 13:57:03 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): ttp://s-io.mydns.jp/up/1/_/jump/1185417223.c/attatch PASS:c
四則演算のプログラムとして提出したのですがgets関数を使って書き換えろといわれ返されてしまいました
上のプログラムを元にして文字入力(取得)にgets関数を使った物を作ってください。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語:C言語
[4] 期限: 7月27日
[5] その他の制限: gets関数をつかっていればそれ以外には特に指定なし

よろしくお願いします。

964 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:02:17 ]
教育目的とはいえ今時gets使えとかどこのアホ教授だ

965 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:36:12 ]
>>963
void readch(void) /* 1文字を読む、空白は読み飛ばす */
{
#if 0
do {
if ((ch = getchar()) == EOF) return;
} while (ch == ' ' || ch == '\t');
#else
static char buf[1000];
static int index;
if (index == 0) gets(buf);
do {
if ((ch = buf[index++]) == '\0') {
ch = '\n';
return;
}
} while (ch == ' ' || ch == '\t');
#endif
}

966 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:41:22 ]
>>965
改悪にしかなってないのがwarosu

教官どんだけアホなのかと

967 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:45:15 ]
>>965
ありがとうございます。
やっぱり無理に書き換えても無駄が増えるだけですよね・・・
最初から新しく書き直したほうがいいんでしょうか?

968 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:47:15 ]
板谷だろ



969 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:52:53 ]
>>967
どう書き直そうがgets()を使う限り改悪にしかならんから諦めろ
(というかこのコードなら、例えfgets()であろうと同じことが言える)

970 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:26:16 ]
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4720.txt
プログラム問題文に沿って作ったものと、それに2つの要素を追加修正した
2つのプログラムの作成をお願いします。

[3] 環境
 [3.1] OS: windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2007/07/26 13:00まで
[5] その他の制限: 特に無し

よろしくお願いします


971 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:12:59 ]
投稿時すでに期限切れなのか

972 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:15:21 ]
ほんとだwこれは新しいww

973 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:27:04 ]
ごめんなさい、ごめんなさい。
>>970 の期限は
[4] 期限: 2007/07/30 13:00まで です。
先生方、お願いしまつ。

974 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:32:00 ]
[1] 授業単元:C言語
[2] 問題文

文字列が回文かどうか判定をするプログラムを作成せよ

実行例

文字列を入力してください。
abcdcba(Return)
abcdcbaは回文です。

文字列を入力してください。
unko6yy6oknu(Return)
unko6yy6oknuは回文です。

文字列を入力してください。
abcdefg(Return)
abcdefgは回文ではありません。

[3] 環境
 [3.1] Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7/30まで
[5] その他の制限:特になし

ポインタを使わなければいけないみたいですがさっぱり分かりません。
先生方、もしよろしければお助けください。お願いします。


975 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 17:58:32 ]
>>974
pc11.2ch.net/test/read.cgi/tech/1184003625/598

976 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:12:28 ]
>>974
釣りはとっとけこのクソッタレ野郎
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4758.c

977 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:15:23 ]
ワザとやってんのかな

978 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:17:28 ]
// >>974
#include <stdio.h>
#include <string.h>
#include <stdbool.h>

bool isPalindrome(const char * word)
{
unsigned len = strlen(word);
if (len == 0) return false;
for (unsigned ic = 0; ic < len / 2; ++ic) {
if (word[ic] != word[len - 1 - ic]) return false;
}
return true;
}

int main()
{
char buf[200];
scanf("%199[^\n]", buf);
printf("%s is%s palindrome.\n", buf, isPalindrome(buf) ? "" : " not");
return 0;
}




979 名前:974 mailto:sage [2007/07/26(木) 19:52:31 ]
>>975
>>976
>>978
ありがとうございました

980 名前:943 mailto:sage [2007/07/26(木) 20:05:11 ]
>>947
>>948

返事遅れてすいませんでした
明日実行してみます
ありがとうございました

981 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:21:04 ]
>>970
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4759.zip
問題文に沿って作ったものと、2つの各要素を個別に追加したもの計3ファイル
2つの要素を両方追加したファイルが必要なら自分で作ってくろ。

982 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:28:47 BE:94671252-2BP(12)]
次スレ立てました
C/C++の宿題を片付けます 94代目
pc11.2ch.net/test/read.cgi/tech/1185452895/

983 名前:プログラミング初心者 [2007/07/26(木) 22:18:40 ]
>>936
ありがとうございます。
一度やってみましたがデバッグ後に何すればいいのかわかりません

984 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 22:27:32 ]
とりあえず、分かるところまででいいから解読しようとしようよ。

985 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:11:17 ]
>>935 同じディレクトリのwc_test.txtを読み込んで、単語数を数えて出力する。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4760.c

986 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:04:02 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
以下の円周率を求めるプログラムに、
ニュートン法を適用し、加減乗算のみに書き換えなさい。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4761.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: 特になし
 [3.3] 言語: C
[4] 期限: 2007年7月27日23:00まで
[5] その他の制限: よろしくお願いします。

987 名前:デフォルトの名無しさん [2007/07/27(金) 00:33:50 ]
[1] 授業単元: プログラム言語
[2] 問題文:
再帰関数を用いて以下のような三角形を印字せよ。
入力:3

**
***
*の個数も印字せよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2007年7月23日22:00まで
[5] その他の制限:
forで以下のように作ったのですが、再帰の場合の書き方がわかりません。以下を再帰に書き換えるような形で作っていただけると、大変有り難いです。
よろしくお願い致します。

#include<stdio.h>
int kazu(int n);
main()
{ int a,b;
scanf("%d",&a);
b=kazu(a); }
int kazu(int n)
{ int i,j;
for(i=1;i<=n;i=i+1)
{ for(j=0;j<i;j=j+1)
{ printf("*"); }
printf("\n"); }
}

988 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:42:55 ]
>>815
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4762.c
凝りに凝りまくったぜぇ
誰かに丸投げしたのが一目瞭然なほどにな
本当に丸投げスレは地獄だぜフウハァハー



989 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 00:47:56 ]
>>987
#include<stdio.h>
int kazu(int n);
main()
{ int a,b;
scanf("%d",&a);
b=kazu(a);
printf("%d\n",b);}
int kazu(int n)
{ int i,j;
if(n<1)return 0;
j=kazu(n-1);
for(i=0;i<n;i=i+1)
{ printf("*"); }
printf("\n");
return j+n;}

990 名前:デフォルトの名無しさん [2007/07/27(金) 00:58:54 ]
>989さん
どうもありがとうございます。
本当に助かりました。

991 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:07:29 ]
おねがいします
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):
空白または改行で区切られている単語だけからなる文章があるとする。
これを列は15文字以内(全角を1文字、半角は0.5文字とする)
にして、最小の行に納めるようにせよ。
注意:単語の途中で改行をはさむことはできない。
(例)
123456789012345<-15文字分はここまで
--------ここから-----------------
日本 中国 アメリカ インド
フランス イタリア スペイン
メキシコ ドイツ カナダ イギリス スイス
サウジアラビア 南アフリカ共和国 ブラジル
--------ここまで----------------
(実行結果)
日本 中国 アメリカ インド
フランス イタリア スペイン
メキシコ ドイツ カナダ イギリス
スイス サウジアラビア
南アフリカ共和国 ブラジル

[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc2.95-3
 [3.3] 言語: C
[4] 期限: 8月1日
[5] その他の制限:
無制限(授業でならっていないものでも、自分で勉強して理解したのなら何をつかってもいい)

992 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:10:50 ]
丸投げってことは何も使っちゃ駄目ってことか・・・

993 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:24:04 ]
>>991
面白そうな問題だ。ちょっと時間がないんで解けないが・・・
これってナップサック問題っていうんだっけ?
あれみたいな感じで、入力内容によっては全パターン検索
しようとしたら膨大な時間になりそうな風に感じるんだが。
そういうの詳しい人いない?

994 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:33:03 ]
ナップサックというより組み合わせ計画問題。
グリーディ法でいけそうな問題だね。めんどくさそうだけど

995 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 03:03:10 ]
>>935
#include<iostream>
#include<string>
#include<vector>

using namespace std;

int main(void){
    vector<string> v;
    string word;
    int i;

    while(1){
        cin >> word;
        if(cin.eof() || cin.fail()) break;
        for(i=0;i<v.size();i++){
            if(v[i]==word) break;
        }
        if(i>=v.size()) v.push_back(word);
    }
    for(i=0;i<v.size();i++){
        cout << v[i] << "," << v[i].size() << " ";
    }
    cout << endl;

    return 0;
}

996 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 04:18:53 ]
#include <iostream>
#include <set>
#include <string>

int main( int argc, char ** argv ) {
typedef std::set< std::string > dict_t;
dict_t wc;
while ( 1 ) {
std::string word;
std::cin >> word;
if ( std::cin.eof() || std::cin.fail() ) break;
wc.insert( word );
}
for ( dict_t::iterator it = wc.begin(); it != wc.end(); it++ ) std::cout << *it << ", " << it->length() << " ";
std::cout << std::endl;
return 0;
}
set<> なり,map<> なりじゃなきゃ遅くてどうしようもないだろうに

997 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:13:33 ]
>>988
指定にgets使わないといけないとか言ってクレームした出題者がいるから
それもgets使わないといけないと思われ。

998 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:51:42 ]
>>991
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4773.c
全角半角の判定のために非標準の関数wcwidthを使った。



999 名前:998 mailto:sage [2007/07/27(金) 08:54:04 ]
>if(feof(stdin) || ferror(stdin))
>  break;
これは消し忘れ。

1000 名前: ◆mM9WALL8Ws [2007/07/27(金) 08:54:13 ]
1000GET

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<328KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef