トップページ⇒tech
1001コメント387KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/01/18(水) 03:35:45
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
 投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 2.9 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

【前スレ】
C/C++の宿題を片付けます 57代目
http://pc8.2ch.net/test/read.cgi/tech/1136768567/l50#tag993
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0002デフォルトの名無しさん2006/01/18(水) 04:02:48
#include <windows.h>
int main()
{
MessageBox(0,"スレ立て乙"," ",0);
return 0;
}
0003デフォルトの名無しさん2006/01/18(水) 04:06:33
#include<stdio.h>
int main(void){
while(1){
puts(">>1スレ立て乙");
}
return 0;
}
0004デフォルトの名無しさん2006/01/18(水) 04:08:10
class otu{
public static void main(String arg[]){
while(true){
System.out.println("スレ立て乙");
}
}
0005デフォルトの名無しさん2006/01/18(水) 04:14:18
http://samurize.nsf.tc/upload/source/up1656.rar
遅くなりました
0006デフォルトの名無しさん2006/01/18(水) 04:17:43
http://samurize.nsf.tc/upload/source/up1656.zip
すいません。こちらでお願いします。
0007デフォルトの名無しさん2006/01/18(水) 04:24:47
りょーかい・・・って、当たり前だけど、ヘッダだけじゃ、実行ファイル作れないのよね・・・(^^;;
0008デフォルトの名無しさん2006/01/18(水) 04:34:28
HALOでコブナントぶっ殺してくるからあとは頑張って
000992006/01/18(水) 04:53:09
[1] 授業単元:プログラミングB
[2] 問題文(含コード&リンク):

#include <stdio.h>
int ch;
void getch0(void) {
 ch = getchar();
}
int expression(void);
int factor(void) {
  int val;
  if(ch >= '0' && ch <= '9') {
  val = ch-'0';
  getch0();
  }
  else if(ch == '(') {
  getch0();
  val = expression();
  getch0();
  }
  return val;
}
int term(void) {
  int val;
  val = factor();
  while(ch == '*') {
  getch0();
  val = val * factor();
  }
  return val;
}
001092006/01/18(水) 04:54:00
int expression(void) {
  int val;
  val = term();
  while(ch == '+') {
   getch0();
   val = val + term();
  }
  return val;
}
int main(void) {
 printf("expression? ");
 getch0();
 printf("value=%d\n", expression());
}

この計算プログラムにおいて,2*(3+(4+5)*6) を計算するとき,
どういう順番で,expression, term, factorを呼び出して計算がなされて,
最終的な答えに行き着くのかを説明しなさい。

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 2006年1月20日まで

 何とぞお手柔らかにお願いします!
001192006/01/18(水) 04:57:56
慌てず急いで正確にな
001292006/01/18(水) 04:59:30
ちゃんとやれよ。
00139 ◆jcfgG7aJMA 2006/01/18(水) 05:07:11
>>11-12
朝早くからのいたずら、お疲れ様です
0014デフォルトの名無しさん2006/01/18(水) 05:56:04
>>9-10
浅学な我輩にはなかなか面白いプログラムだったよ
2*(3+(4+5)*6)

expression //mainより 戻り値117
term
factor
factor

expression //最初の( , 戻り値57
term
factor
term
factor

expression //2番目の( , 戻り値9
term
factor
term
factor
factor
0015デフォルトの名無しさん2006/01/18(水) 06:01:12
ごめ//mainより 戻り値117 → 戻り値114
何やってんだか
001692006/01/18(水) 07:55:04
>>14-15
どうもありがとうございます。そんなにややこしいんですか!・・・
あの〜、ちなみにこのプログラムってどのコマンドで数字を読み取ってるんですか?
scanf() みたいなものが見当たらないので・・・
0017デフォルトの名無しさん2006/01/18(水) 08:02:31
慣れてる人は簡単に思うけど俺にとっては結構面白いプログラムだったね

数式を受け取ってどの様に処理してるかは、入力ストリームの話題になるんだけど
文字を受けとる関数はgetch0()関数のgetchar()関数
こいつは標準入力デバイスのバッファからEOFになるまで1文字1文字を読み込む関数で
例えば次のプログラムを見ると

int ch;
while( (ch=getchar())!=EOF )
printf("%c %d\n",ch,ch);

getcharの動作が良くわかる

次に
int ch
while( (ch=getchar())!=EOF ){
printf("%c %d\n",ch,ch);
fflush(stdin);
}
を実行してみると"標準入力デバイスのバッファってのが良くわかるはず
適当にぐぐって
0018デフォルトの名無しさん2006/01/18(水) 08:29:48
括弧が閉じてないと無限ループ
   ァ  ∧_∧ ァ,、
  ,、'` ( ´∀`) ,、'`
   '`  ( ⊃ ⊂)  '`
001992006/01/18(水) 08:33:55
>>17
丁寧にどうもありです。調べて理解できるようにがんばります!
0020デフォルトの名無しさん2006/01/18(水) 08:48:00
[1] 授業単元: 大学のゼミ
[2] 問題文(含コード&リンク):
問題文自体は無いのですが、コンソール画面上で動く、サーバーとクライアントの通信をする
簡単なゲームプログラムに組み込むタイマー(カウントダウン)を作りたいのです。
仕様としては、サーバー側プログラムの起動時に、引数としてint型で時間の「分」(min)を渡すと、ゲームが開始し、
ゲーム中は画面の端に「mm:ss」と表示してカウントダウンしていく感じにしたいです。
そのタイマーが00:00になったとき、ゲームが終了するようにしたいです。

[3] 環境
 [3.1] OS: Linux(RedHat7)
 [3.2] コンパイラ名とバージョン: gcc (付属のもので、バージョンは分かりません)
 [3.3] 言語: C
[4] 期限: 2006年1月18日 13時15分
[5] その他の制限: 標準ライブラリとmylib.hというヘッダを利用します。
【添付】http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1491.zip
mylib.hは添付のファイルの中にあり、純粋にコンパイルしたもののみ使う形です。
ゲーム自体は、添付のファイル内にあるtagというフォルダの中にある鬼ごっこプログラムです。
(他のフォルダ内のものは今回は使わないです。)


よろしくお願いしますm(_ _)m
0021デフォルトの名無しさん2006/01/18(水) 09:15:14
>>9
プログラミングB って大学ですか?
0022デフォルトの名無しさん2006/01/18(水) 10:18:05
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):

 �@ 変数x,yにそれぞれ4と9を代入して,x/yを計算し,商sと余りrを出力するプログラムを作
   成せよ。

 �A sを入力し,sから100までの整数のうち7の倍数となる整数を出力するプログラムをfor文ま
   たはwhile文を用いて作成せよ。

 �B n円を入力した後,画面に「1・ドル 2・ユーロ 3・ウォン」と表示され,1,2,3のいず
   れかの番号を入力すると,その指定した通貨の額にn円を換算するプログラムを作成せよ。
   なお、為替レートは,ネットなどで調べること。

 �C n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,それぞれの合計点を
   計算した後,n人を合計点の小さい順に並び替え,出力するプログラムを作成せよ。ただし
   ,各科目の変数名をko,sy,su,ri,eiとし,配列名はtokutenとすること。

 �D 10文字以内の文字列(英字)を入力し,母音(a,i,u,e,o)を取り除いた文字列を出力
   するプログラムを作成せよ。(例:momotarou → mmtr)

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] すいません。わかりません
 [3.3] 言語: C
[4] 期限: [2006年01月25日24:00まで]
[5] その他の制限:特にありません。
  5問もあって申し訳ありませんが、初心者なので難しいです。よろしくお願いします。
0023デフォルトの名無しさん2006/01/18(水) 10:31:00
>>22
ttp://pc8.2ch.net/test/read.cgi/tech/1136768567

�@�Aとかで検索するとすぐみつかるかもne♥
0024222006/01/18(水) 10:48:48
>>23
過去ログ読みました。
�Aはできました!ありがとうございます。�@はまだです。
0025デフォルトの名無しさん2006/01/18(水) 11:11:49
�B�C�Dも個別で出てるはず

�@ぐらいはがんがれ。
0026デフォルトの名無しさん2006/01/18(水) 11:18:52
ウォンが気に食わないのでその課題はしたくないです
0027デフォルトの名無しさん2006/01/18(水) 11:20:49
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):50人のアルファベット表記の名前を、
(1)マージソート (2)クイックソート で辞書順にソートして出力する
プログラムを作成せよ。各プログラムのアルゴリズムも記述すること。
50人の名前は二次元配列で実現し、プログラム内で設定すること(ファイルから読み込むなどの処理は不要)。

[3] 環境
 [3.1] OS: WindowsXP Pro
 [3.2] コンパイラ名とバージョン: Borland C 5.5
 [3.3] 言語: C
[4] 期限: 2006年1月18日19:00まで
[5] その他の制限: 特にありません。時間が迫っておりますのでよろしくお願いいたします。
0028232006/01/18(水) 11:29:46
作った覚えはあるんだが…
微妙に改変されてるな。

実は>>22が宿題先生じゃないのか?
0029232006/01/18(水) 11:40:29
>>22
�D小文字aiueoのみ対応

#include <stdio.h>
int main()
{
  char s[10+1],*p;
  fgets(s,10+1,stdin);
  p=s;
  while(*p!='\0'){
    if(*p!='a'&&*p!='i'&&*p!='u'&&*p!='e'&&*p!='o')
      putchar(*p);
    *p++;
  }
  return 0;
}
0030loi ◆qMuXz8UNv6 2006/01/18(水) 11:56:03
[1] プログラミング入門
[2]• ファイルから数値データを読み込み,その数値の平均をファイルに書き込むプログラ
ムを作成する
• 数値データは全部で100行(ファイルには実際に100 行以上存在している)
• 数値データの入っているファイルは授業用HP にある.なおデータは実数である.
ファイル名: kadai.dat

• 平均を書き込むファイル名はheikin.dat とする.平均はすべてのデータ(600個)の平
均とする
[3] 環境
 [3.1] Windows
 [3.2] コマンドプロンプト 秀丸
 [3.3]C
[4] 本日中
[5]
正直まったくわかりません。というか授業にでていないです。
でも単位が欲しいです。どうすれば課題を提出できるか教えてくれませんか?
お願いします。
0031loi ◆qMuXz8UNv6 2006/01/18(水) 11:57:36
以下を参考にしてください
include "stdio.h"
/* file_read 関数は【】内を記述する */
double file_read( void )
{
【 】
int i, j;
double data[600];
double heikin;
【 】
for( i=0 ; i<600 ; i+=6 )
{
for( j=0 ; j<6 ; j++ )
【 】
}
for( i=0, heikin=0.0 ; i<600 ; i++ )
{
heikin += data[i];
}

heikin /= 600.0;
printf("heikin -> %lf\n",heikin);
【 】
return heikin;
}

/* file_write 関数の中身を全部記述すること */
void file_write( double heikin )
{
/* ここの中身を記述する */
}
0032デフォルトの名無しさん2006/01/18(水) 12:00:07
授業に出てないのなら理由はどうあれ単位もらえないくて当たり前
0033デフォルトの名無しさん2006/01/18(水) 12:12:00
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):

 [�T] n人分について国語,社会,数学,理科,英語の5科目の得点を入力し,
    各科目の最高点を出力するプログラムを作成せよ。
  ただし,各科目の配列名をjap,soci,math,sci,engとすること。

 [�U] 5人の学生の4科目の試験の得点(1科目につき満点は100点)を入力する.
    1人分入力する毎に「合計得点が240点以上で,
    かつ各得点が40点以上であるとき合格とする」の条件で,合否を判定せよ.

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] 初心者なんでわかりません。
 [3.3] 言語: C かな。
[4] 期限: [2006年01月20日まで]

C言語難しくて、僕には全くわからないです。
よろしくお願いします!!!
0034デフォルトの名無しさん2006/01/18(水) 12:18:11
>>33
前スレに解答あります。
0035デフォルトの名無しさん2006/01/18(水) 12:21:25
>>30
kadai.dat っていうやつをアップして
0036デフォルトの名無しさん2006/01/18(水) 12:27:57
#include<stdio.h>
main()
{
int dec, bit, coef=0;
char hex[11]={0}, endchar;
do{
printf("10進法での数字を入力してください");
scanf("%d%c",&dec,&endchar);
printf("10進法の%3d\tは",dec);
while(dec!=0)
{
bit=dec%16;
dec/=16;
hex[coef] = "0123456789ABCDEF"[bit];
++coef;
}
printf("16進法では%10s\n",hex);
return;
} while(endchar!='*');
}
だと210がD2じゃなくて2Dってでるんですけどどこが間違ってますか?
0037デフォルトの名無しさん2006/01/18(水) 12:36:17
>>36
int a = 210;
printf( "\X\n", a );
0038デフォルトの名無しさん2006/01/18(水) 12:43:20
>>33
japだと
0039デフォルトの名無しさん2006/01/18(水) 12:46:58
japか
なめんじゃねーぞ糞が
0040デフォルトの名無しさん2006/01/18(水) 13:16:29
>>36
あ、>>37 は
printf( "%X\n", a );
ね。失礼。
0041362006/01/18(水) 13:37:52
>>40さん、すいません
質問の仕方が悪かったです、
210だったら2D、258だったら201、280だったら811
というように1桁目>2桁目>3桁目というふうに出力されるのを直したくて質問しました。
前スレの854さんに教えていただいたのを実際に使うとこうなってしまい、今日提出なんで焦ってます。
0042デフォルトの名無しさん2006/01/18(水) 13:39:42
あせってるは自業自得
0043デフォルトの名無しさん2006/01/18(水) 13:52:10
coef=0   ===>  coef=9
++coef   ===>  --coef
hex)    ===>  hex + coef + 1)
0044デフォルトの名無しさん2006/01/18(水) 14:17:36
10桁での一次連立方程式の解き方をおしえてください。
0045402006/01/18(水) 14:20:40
>>41
printf のフォーマット使いたくないならこれでどう?

#include <stdio.h>
char *convert_base( unsigned n, unsigned base )
{
static char buf[ 1024 ];
char *end = buf + sizeof(buf) - 1;
char *expression = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
*end-- = '\0';
while ( buf != end ) {
*end = expression[ n%base ];
if ( n < base ) break;
n /= base; --end;
}
return end;
}
int main( void )
{
char buf[32];
int a;
while (1) {
fgets( buf, sizeof(buf), stdin );
if ( buf[0] == 'q' ) break;
sscanf( buf, "%d", &a );
printf( " %d\t%s", a, convert_base(a,2) );
printf( "\t%s", convert_base(a,8) );
printf( "\t%s\n", convert_base(a,16) );
}
}
0046デフォルトの名無しさん2006/01/18(水) 14:29:48
>>36
これで良いや。

#include<stdio.h>
int main()
{
int dec, bit, coef;
char hex[11]={0}, endchar;
do{
printf("10進法での数字を入力してください");
scanf("%d%c",&dec,&endchar);
printf("10進法の%3d\tは",dec);
for(coef=10;dec;dec/=16){
bit = dec%16;
hex[--coef] = bit["0123456789ABCDEF"];
}
printf("16進法では%10s\n",hex+coef);
}while(endchar!='*');
return 0;
}
0047デフォルトの名無しさん2006/01/18(水) 14:38:01
>>44
ガウス消去法
0048302006/01/18(水) 15:22:40
kadai.datです

1.3 4 0 0 36.179598 36.179598
1.3 4 0 0.1 36.238542 36.238542
1.3 4 0 0.2 36.238542 36.238542
1.3 4 0 0.3 36.238542 36.238542
1.3 4 0 0.4 35.268814 35.268814
1.3 4 0 0.5 35.022824 35.022824
1.3 4 0 0.6 36.626796 36.626796
1.3 4 0 0.7 38.423352 38.423352
1.3 4 0 0.8 42.404821 42.404821
1.3 4 0 0.9 50.056847 50.056847
1.3 4 0 1 56.29155 56.29155
1.3 4 0 1.1 63.364309 63.364309
1.3 4 0 1.2 69.133599 69.133599
1.3 4 0 1.3 73.891168 73.891168
1.3 4 0 1.4 77.865372 77.865372
1.3 4 0.1 0.1 36.238542 36.238542
1.3 4 0.1 0.2 36.238542 36.238542
1.3 4 0.1 0.3 36.238542 36.238542
1.3 4 0.1 0.4 35.126008 35.126008
1.3 4 0.1 0.5 35.149002 35.149002
1.3 4 0.1 0.6 37.415956 37.415956
1.3 4 0.1 0.7 39.538102 39.538102
1.3 4 0.1 0.8 44.041386 44.041386
1.3 4 0.1 0.9 52.435181 52.435181
1.3 4 0.1 1 58.998314 58.998314
1.3 4 0.1 1.1 66.336784 66.336784
1.3 4 0.1 1.2 72.194806 72.194806
1.3 4 0.1 1.3 76.944402 76.944402
1.3 4 0.1 1.4 80.857437 80.857437
0049302006/01/18(水) 15:24:17
1.3 4 0.2 0.2 36.238542 36.238542
1.3 4 0.2 0.3 36.238542 36.238542
1.3 4 0.2 0.4 35.003256 35.003256
1.3 4 0.2 0.5 35.544757 35.544757
1.3 4 0.2 0.6 38.752023 38.752023
1.3 4 0.2 0.7 41.186905 41.186905
1.3 4 0.2 0.8 46.237783 46.237783
1.3 4 0.2 0.9 55.412151 55.412151
1.3 4 0.2 1 62.247766 62.247766
1.3 4 0.2 1.1 69.790496 69.790496
1.3 4 0.2 1.2 75.667226 75.667226
1.3 4 0.2 1.3 80.342333 80.342333
1.3 4 0.2 1.4 84.136243 84.136243
1.3 4 0.3 0.3 36.238542 36.238542
1.3 4 0.3 0.4 35.452965 35.452965
1.3 4 0.3 0.5 36.77885 36.77885
1.3 4 0.3 0.6 41.180944 41.180944
1.3 4 0.3 0.7 43.711862 43.711862
1.3 4 0.3 0.8 49.223951 49.223951
1.3 4 0.3 0.9 59.133336 59.133336
1.3 4 0.3 1 66.113423 66.113423
1.3 4 0.3 1.1 73.747224 73.747224
1.3 4 0.3 1.2 79.538658 79.538658
1.3 4 0.3 1.3 84.05313 84.05313
1.3 4 0.3 1.4 87.659236 87.659236
0050302006/01/18(水) 15:25:13
1.3 4 0.4 0.4 38.388558 38.388558
1.3 4 0.4 0.5 38.388558 38.388558
1.3 4 0.4 0.6 44.500205 44.500205
1.3 4 0.4 0.7 46.779962 46.779962
1.3 4 0.4 0.8 52.761729 52.761729
1.3 4 0.4 0.9 63.546086 63.546086
1.3 4 0.4 1 70.61663 70.61663
1.3 4 0.4 1.1 78.302961 78.302961
1.3 4 0.4 1.2 83.945404 83.945404
1.3 4 0.4 1.3 88.23714 88.23714
1.3 4 0.4 1.4 91.595744 91.595744
1.3 4 0.5 0.5 44.451739 44.451739
1.3 4 0.5 0.6 51.347464 51.347464
1.3 4 0.5 0.7 51.347464 51.347464
1.3 4 0.5 0.8 57.603556 57.603556
1.3 4 0.5 0.9 69.419834 69.419834
1.3 4 0.5 1 76.38392 76.38392
1.3 4 0.5 1.1 83.987591 83.987591
1.3 4 0.5 1.2 89.329809 89.329809
1.3 4 0.5 1.3 93.259877 93.259877
1.3 4 0.5 1.4 96.259406 96.259406
0051302006/01/18(水) 15:25:54
1.3 4 0.6 0.6 51.347464 51.347464
1.3 4 0.6 0.7 51.347464 51.347464
1.3 4 0.6 0.8 60.812886 60.812886
1.3 4 0.6 0.9 75.35268 75.35268
1.3 4 0.6 1 82.39328 82.39328
1.3 4 0.6 1.1 90.047312 90.047312
1.3 4 0.6 1.2 95.065067 95.065067
1.3 4 0.6 1.3 98.574162 98.574162
1.3 4 0.6 1.4 101.152511 101.152511
1.3 4 0.7 0.7 51.347464 51.347464
1.3 4 0.7 0.8 70.349869 70.349869
1.3 4 0.7 0.9 86.527557 86.527557
1.3 4 0.7 1 91.687356 91.687356
1.3 4 0.7 1.1 98.379777 98.379777
1.3 4 0.7 1.2 102.38411 102.38411
1.3 4 0.7 1.3 105.012379 105.012379
1.3 4 0.7 1.4 106.860022 106.860022
0052302006/01/18(水) 15:26:29
1.3 4 0.8 0.8 100.859711 100.859711
1.3 4 0.8 0.9 100.859711 100.859711
1.3 4 0.8 1 100.859711 100.859711
1.3 4 0.8 1.1 106.202542 106.202542
1.3 4 0.8 1.2 108.970987 108.970987
1.3 4 0.8 1.3 110.632941 110.632941
1.3 4 0.8 1.4 111.735982 111.735982
1.3 4 0.9 0.9 100.859711 100.859711
1.3 4 0.9 1 100.859711 100.859711
1.3 4 0.9 1.1 108.970987 108.970987
1.3 4 0.9 1.2 111.735982 111.735982
1.3 4 0.9 1.3 113.099775 113.099775
1.3 4 0.9 1.4 113.904037 113.904037
1.3 4 1 1 100.859711 100.859711
1.3 4 1 1.1 116.846683 116.846683
1.3 4 1 1.2 116.846683 116.846683
1.3 4 1 1.3 116.846683 116.846683
1.3 4 1 1.4 116.846683 116.846683
0053デフォルトの名無しさん2006/01/18(水) 16:14:14
大変だ、荒らされてる
0054デフォルトの名無しさん2006/01/18(水) 16:28:40
>>30

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
static double next_double( FILE *fp, double *d )
{
char buf[256], *p = buf, c;
while ( !isdigit( c = fgetc(fp) ) )
if ( c == EOF ) return 0;
ungetc( c, fp );
while ( isdigit( c=fgetc(fp) ) || c == '.' )
*(p++) = c;
*p = 0;
*d = atof( buf );
return 1;
}
int main( void )
{
char *filename = "kadai.dat";
FILE *fp;
double sum = 0, d;
unsigned num = 0;
if ( NULL == ( fp = fopen( filename, "r" ))) return 1;
while ( next_double( fp, &d ) ) { sum += d; ++num; }
printf( "Sum: %lf\nNum: %u\nAverage: %lf\n", sum, num, (sum/num) );
fclose( fp );
return 0;
}
0055デフォルトの名無しさん2006/01/18(水) 16:30:02
間違った
4行目: static double next_double( FILE *fp, double *d )
じゃなくて
訂正 : static int next_double( FILE *fp, double *d )
0056デフォルトの名無しさん2006/01/18(水) 17:05:10
>>21
うん、大学の宿題だけど・・・ほとんどの人がそうじゃないの?
0057デフォルトの名無しさん2006/01/18(水) 17:14:37
多桁の割り算のプログラムが作れません。助けてください。
0058デフォルトの名無しさん2006/01/18(水) 17:29:21
助けて欲しかったらちゃんとテンプレに従って内容を書けよ。
0059デフォルトの名無しさん2006/01/18(水) 17:36:23
>>21
同名の講義あるが俺の所はパスカルだな
006027 ◆bgdlxVqI.o 2006/01/18(水) 17:41:31
すみませんが>27をお願いします、これで単位が決まるんです
0061デフォルトの名無しさん2006/01/18(水) 17:49:06
50人分の名前考えるとか無理
0062デフォルトの名無しさん2006/01/18(水) 17:51:48
マージとクイック程度の物が理解できないのに
アルゴリズムの単位が貰えるなんてどう考えてもおかしいよな
0063デフォルトの名無しさん2006/01/18(水) 18:27:03
んでクイックソートでqsort使ったらだめだとか言うんだろ
0064デフォルトの名無しさん2006/01/18(水) 18:43:10
言うだけ言って27はどっか逝ったなw
0065デフォルトの名無しさん2006/01/18(水) 19:11:03
>>63
一応、あれの実装は処理系定義じゃなかったっけ?
0066デフォルトの名無しさん2006/01/18(水) 19:16:14
>>65
ISO/IEC 9899:1999には、その件については何も書かれてないな。
0067デフォルトの名無しさん2006/01/18(水) 19:33:25
クイックソートを単方向リストで実装したときは死んだ。
かなり頑張った。
0068デフォルトの名無しさん2006/01/18(水) 19:34:32
[1] 授業単元:プログラミング
[2] 問題文: 1.入力用テキストファイルに番号、2科目の得点(0〜100)
         を用意する。データ数は5。
       2.↑のデータを出力用テキストファイルに出力する。
       3.副プログラムを利用し、2科目それぞれの合計点と平均点を出力ファイル
         の2.の続きに出力する。(ポインタ変数を扱い、主プログラム
         とは別に記憶し、includeする。)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: わかりません
 [3.3] 言語: C++
[4] 期限:本日中
  たらない頭を使って考えましたがわかりませんでした。
  よろしくお願いします!!

006927 ◆bgdlxVqI.o 2006/01/18(水) 19:35:22
いますよ、所用でいなかっただけです
この他にもあって他は出来てるんですがどうしてもこれだけできないんです
0070デフォルトの名無しさん2006/01/18(水) 19:46:05
>>69
来年、もう一度受けろや
そんなのが理解できないならオワットル
0071デフォルトの名無しさん2006/01/18(水) 20:10:14
>>70
ここで出てる課題ってクイックソートよりだいぶ程度が低いのが多いけどな。
クイックソートtは結構面倒くさい。
むしろクイックソートが自力で実装できるようになれば、Cは大体理解できてると思う。

0072デフォルトの名無しさん2006/01/18(水) 20:10:23
>>69
んなら、50人分のアルファベット表記の名前リストだけ作って
>>1の所にでもうpしれ。
手持ちのマージソートルーチンとクイックソートルーチンを
くっつけてみるから。
0073むう2006/01/18(水) 20:10:47
[1] 授業単元:Cプログラム
[2] 問題文:配列[2][2]にそれぞれ0か1が格納されている。
[0][0] [1][0] [2][0]
[0][1] [1][1] [2][1]
[0][2] [1][2] [2][2]
0なら上下左右に移動でき、1なら移動できない。そのとき現在地と目的地を入力し
目的地まで最短で移動するプログラムを作成せよ。出力は「↑に移動する。→に移動する。→に移動する。↑に移動する」というようにする事
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual Windows For BC++
 [3.3] 言語:C
[4] 期限:無期限
よろしくおねがいします
0074デフォルトの名無しさん2006/01/18(水) 20:10:55
[1] 授業単元: 情報処理基礎
[2] 問題文: 整列されたn 個の数列から二分探索でデータを探索する場合、
        与えるデータによって比較する回数は異なるはずである。
        そこで、nを1〜10万まで変化させ、その都度、最悪の比較回数を求めるプログラムを作成せよ
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 1月23日
[5] その他の制限:
0075デフォルトの名無しさん2006/01/18(水) 20:11:37
よろしくお願いします
0076デフォルトの名無しさん2006/01/18(水) 20:14:46
[1] 授業単元: 情報処理基礎
[2] 問題文:CGIを使ったプログラムを作成せよ
        
        
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: BCC
 [3.3] 言語: C
[4] 期限: 1月23日
[5] その他の制限: CGIを使っていればどういうプログラムでもいいです。

よく分からないので、お願いいたします。
0077デフォルトの名無しさん2006/01/18(水) 20:17:03
>>76
http://www.kumei.ne.jp/c_lang/intro/no_80.htm
0078デフォルトの名無しさん2006/01/18(水) 20:18:38
>>77
ありがとうございます
0079デフォルトの名無しさん2006/01/18(水) 20:21:11
>>77
もう少し複雑なプログラムとかもありますか?
>>76に書き忘れたのですが、あと2つCGIプログラムを作らない
といけないらしいです
0080デフォルトの名無しさん2006/01/18(水) 20:28:14
ちゃんと内容を書け。
0081デフォルトの名無しさん2006/01/18(水) 21:08:16
>>68
C++?
Cじゃないの?
本当にC++?
ウソじゃない?
0082デフォルトの名無しさん2006/01/18(水) 21:14:58
>>43
>>46
ありがとうございました、助かりました
0083デフォルトの名無しさん2006/01/18(水) 21:43:27
>>81
ウソではないですよ??
C++です
0084デフォルトの名無しさん2006/01/18(水) 21:44:25
>>83
C と C++ の区別が出来てますか、ということね。
文字を出力するのに使うのは printf と習ったか、cout と習ったか、どっち?
0085デフォルトの名無しさん2006/01/18(水) 21:51:25
>>84
coutと習いましたよ
0086デフォルトの名無しさん2006/01/18(水) 21:54:02
#include <:iostream.h>
と習いましたか?
#include <iostream>
と習いましたか?
0087デフォルトの名無しさん2006/01/18(水) 21:54:05
>>84
この問題を解くのに、
そんなにCとC++の違いが影響するのか?

0088デフォルトの名無しさん2006/01/18(水) 21:55:12
違ってたらエラーが出ます。直してください。と言われる<影響
0089デフォルトの名無しさん2006/01/18(水) 21:55:49
言語 C++って書いてあるからC++で解答したら、
やっぱりCで書いてって言われたことある。
0090デフォルトの名無しさん2006/01/18(水) 21:57:12
>>86
#include<iostream.h>と習いました
0091デフォルトの名無しさん2006/01/18(水) 22:03:30
標準C++は、普及してないみたいだな。・・・と、いうわけで、C++の人、よろしく。
標準C(C89)はけっこう普及しとるようだが。
0092前スレ9202006/01/18(水) 22:10:10
スレ住人様のご助力のおかげで無事プログラム完成、提出完了致しました

なんのお礼も出来ませんが、とりあえずぬこ置いてきます
ttp://www.uploda.org/uporg289807.jpg
0093デフォルトの名無しさん2006/01/18(水) 22:11:04
>>74
2分探索 真面目に書くのメンドクセ。
#include<stdio.h>
unsigned ulog2(unsigned int n){
    unsigned r=0,i=16;
    do if(n>>i)n>>=i,r+=i;while(i>>=1);
    return r;
}
int main(void){
    int i;
    printf("数列の要素数  最悪の比較回数\n");
    for(i=1;i<=100000;++i)printf("%12d%16d\n",i,ulog2(i)+1);
    return 0;
}
0094デフォルトの名無しさん2006/01/18(水) 22:42:17
[1] 授業単元: 情報処理研究
EUCコードでひらがな「あ」は(164,162)の2バイトです。
文字→EUCコード数値への変換プログラムはできたのですが、
逆(EUCコード数値→文字)ができません・・・
つまり
(164,162) を入力して「あ」に変換するにはどうすればいいのでしょうか?
お願いします。
0095デフォルトの名無しさん2006/01/18(水) 22:45:52
>>93
ありがとうございます
助かりました
0096デフォルトの名無しさん2006/01/18(水) 22:50:47
>>92
いわれのない非難だが、コラっぽい笑顔がムカつく_| ̄|○
名前忘れた関西系の大御所漫才師みたい
0097デフォルトの名無しさん2006/01/18(水) 22:53:19
>>94
これでいいのかな?
int main(void)
{
int a,b;
::printf("code1 code2->");
::scanf("%d%d",&a,&b);
char s[3] = {(char)a,(char)b,0};
::printf("->");
::printf(s);
::system("pause");
return 0;
}
0098デフォルトの名無しさん2006/01/18(水) 22:55:36
>>94
#include <stdio.h>
int main( void )
{
char a = 164, b = 162;
printf("%c%c\n", a, b );
return 0;
}

>>96
気になるから是が非でも名前を思い出してくれ。
てゆかこの画像有名だよね。
0099デフォルトの名無しさん2006/01/18(水) 22:56:16
>>97
C++でCを書くなよw
0100デフォルトの名無しさん2006/01/18(水) 22:58:00
system("pause") って何?
0101デフォルトの名無しさん2006/01/18(水) 23:01:09
>>97
って、DOS プロンプトで EUC でるかよ
「これでいい?」とかいって、いいわけない
■ このスレッドは過去ログ倉庫に格納されています