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


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

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



1 名前:デフォルトの名無しさん [2009/06/24(水) 23:28:21 BE:454421568-DIA(282072)]
あなたが解けない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++の宿題片付けます 127代目
pc12.2ch.net/test/read.cgi/tech/1244449887/

700 名前:デフォルトの名無しさん [2009/07/06(月) 23:15:40 ]
int first,second;

printf("first: ");
scanf("%d",&first);
if(first>=100)
printf("入力した値は3桁以上\n");
else if(first>=10)
printf("入力した値は2桁以上\n");
else if(first<=9)
printf("入力した値は1桁\n");

printf("second: ");
scanf("%d",&second);
if(second>=100)
printf("入力した値は3桁以上\n");
else if(second>=10)
printf("入力した値は2桁以上\n");
else if(second<=9)
printf("入力した値は1桁\n");

if(first>second)
printf("firstが大きい\n");
else if(first==second)
printf("同じ\n");
else
printf("secondが大きい\n");

701 名前:デフォルトの名無しさん [2009/07/06(月) 23:28:11 ]
>>700
あれ?C++なんですけど
coutとかなのですが

702 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:30:28 ]
>>701
C++もCコードかけるからねえ
最初にそういうのは注文で出しておいた方がいいかも

703 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:32:19 ]
using〜を見落としてたわ
もう寝るから別の人やって

ところで、テンプレ使えと逆ギレOK?

704 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:45:35 ]
だから、今まで何度もC言語とC++は別言語だからスレッドを分けてくれと言ってきたじゃないか

705 名前:デフォルトの名無しさん mailto:sage [2009/07/06(月) 23:54:07 ]
初耳だ

706 名前:デフォルトの名無しさん [2009/07/07(火) 00:09:40 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
www.dotup.org/uploda/www.dotup.org209303.txt
[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:c
[4] 期限: 7月7日23:59
[5] 特になし

よろしくお願いします

707 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 00:54:21 ]
>>701
なにがcoutなのですか?
printfはC++じゃないとおっしゃる?

708 名前: ◆/91kCCQXBo mailto:sage [2009/07/07(火) 00:56:04 ]
>>698
// ここまではC++テンプレート
cout<<"1番目の整数: ";
cin>>first;
cout<<"2番目の整数: ";
cin>>second;
if(first>second)
  cout<<"最初の数のほうが大きいです"<<endl;
else if(first<second)
  cout<<"2番目の数のほうが大きいです"<<endl;
else
  cout<<"両者は等しいです"<<endl;

cout<<"3番目の整数: ";
cin>>first;
if(first>=100 || first<=-100)
  cout<<"入力した値は3桁以上です"<<endl;
else if(first>=10 || first<=-10)
  cout<<"入力した値は2桁です"<<endl;
else
  cout<<"入力した値は1桁です"<<endl;
// ここからはC++テンプレート



709 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:02:07 ]
>>689
多数のファイルをだからこんな感じじゃないの
うちの環境だとエラーすら出ずに29ファイル目で終わった
コンパイラはbcc,OSはXP SP3
原因はリソース不足?
#include <stdio.h>
#define N 1000
int main(){
int i;
char fname[256];
FILE* in[N];
FILE* out;
for(i = 0;i < N;i++){
sprintf(fname,"hoge%u",i);
out = fopen(fname,"w");
fclose(out);
if((in[i] = fopen(fname,"r")) == NULL){
perror("error");
for(i--;i >= 0;i--){
fclose(in[i]);
}
exit -1;
}
}
for(i = 0;i < N;i++){
fclose(in[i]);
}
return 0;
}

710 名前:512 mailto:sage [2009/07/07(火) 01:07:49 ]
>>680
>>685で解答済みみたいだけど、一応>>512のコードで求めてみた
codepad.org/4TnvGRE5
「ElementOf(mat,row,clm)」と「PrintPythagoreanTheorem(int v1, int v2, int v3)」を追加して
main関数に1行追加しただけ
#こっそりMltMatrixをMulMatrixに修正してたりw

711 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:09:23 ]
>>709
1020ファイル作ってsegmentation faultだった。
CentOS5.3(仮想マシン) gcc4.1.2

712 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:11:50 ]
>>711
丁度 out==NULL になったんじゃないかな

713 名前:711 mailto:sage [2009/07/07(火) 01:12:41 ]
流れをなんにも見てなくてとりあえず動かしただけだったすまん。

>>691
ええと、fclose(NULL)がなぜダメなのかを考察するのはちょっとズレてる
その前にfopenがNULLを返したことに対して考察をすべきよー

714 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:14:45 ]
>>712
大抵out==NULLになって終わるんじゃないかな

715 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:15:34 ]
>>714
in[i]==NULL になることもあるさ

716 名前:711 mailto:sage [2009/07/07(火) 01:22:12 ]
#include <stdio.h>
#include <stdlib.h>
#define N 10000
int main(){
int i;
char fname[256];
FILE* in[N];
FILE* out;
for(i = 0;i < N;i++){
sprintf(fname,"file/hoge%04u",i);
out = fopen(fname,"w");
if(out == NULL){
perror("error[out]");
for(i--;i >= 0;i--){ fclose(in[i]); }
exit(-1);
}
fclose(out);
if((in[i] = fopen(fname,"r")) == NULL){
perror("error[in]");
for(i--;i >= 0;i--){ fclose(in[i]); }
exit(-1);
}
}
for(i = 0;i < N;i++){ fclose(in[i]); }
return 0;
}

とりあえずちょっと変えてみた。
まあ、他の要因で落ちることを考慮すればin[i]==NULLになることもあるのだろうけれど、
ファイルの開きすぎで落ちるという観点で行けばoutのみじゃない?

717 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:35:43 ]
>>695
いろいろ間違ってる。
nextを使うべきでないところで使っている(このためstr->next・str2->nextでstrやstr2がNULLになることがある)。
最小値がstr1でない場合に、次のループではstr1を跳ばしている(このためstr1がNULLになることがある)。
どうしてもtop入れ換えでやりたいなら、図でも書いて落ち着いて考えること。

top入れ換えではなく、最小値を1個ずつ抜いて別のツリーをつくる方がややこしくなくてお勧め。

struct data *sort(struct data *top){
  struct data work, *d, *target = top, *current = &work;
  for(target = top; target != NULL; target = top){ //元のツリーがなくなるまで
    for(d = target->next; d != NULL; d = d->next){ //最小値探索
      if(strcmp(target->name, d->name) > 0) target = d;
    }
    if(top == target){
      top = target->next; //最小値がtopならtopにnextを保持
    }else{
      for(d = top; d->next != target; d = d->next) ; // 最小値がtop以外なら最小値の親と最小値の子をつなげる
      d->next = target->next;
    }
    current->next = target; // 新しいツリーの末尾に最小値を追加
    current = target;
    current->next = NULL;
  }
  return work.next;
}

718 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:42:03 ]
1] 授業単元:C言語
[2] 問題文(含コード&リンク):n個の整数データを入力し,最後に平均を出力,nは最初に入力する(nは自然数),平均は小数部まで求める実行例として
[3] 環境
 [3.1] OS:Windows
 [3.2] gcc 3.4
 [3.3] 言語:C
[4] 期限:7/7 18時まで
#include<stdio.h>
void main(void)
{
int x,y,z,sum;
double ave;
y=1;
sum=0;
printf("入力するデータ数は? ");
scanf(" %d", &x);
if(x>1){
for(y=1; y=x; y++){
printf("No .%d",y);
y++;
scanf("%d", &z);
sum=sum+z;
}
ave=sum/x;
printf("以上%d個の平均は:%.6f",x,ave);
}
}
とりあえず自分でここまでやってみましたけどわかりません><



719 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:52:24 ]
>>716
横レスだけどファイルを開きすぎて落ちるってどういうこと?
outはきちんとfcloseしてるから再利用してよさそうなんだけどやっちゃダメなの?
後学のためにご教示願います。

720 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 01:57:27 ]
outはちゃんと閉じてるけどinは増える一方でしょ

0
1 out open
0 out close
1 in open
2 out open
1 out close
2 in open

というながれで、ファイルカウントが最初に最大になるのはoutをopenしたときでしょ

721 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 02:06:14 ]
なるほどそういうことか。サンクス。

722 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 02:26:49 ]
>>718
#include<stdio.h>
void main(void)
{
int x,y,z,sum;
double ave;
sum = 0;
printf("入力するデータ数は? ");
scanf("%d", &x);
if(x>=1){
for(y=1; y <= x; y++){
printf("No.%d ",y);
scanf("%d", &z);
sum=sum+z;
}
ave=(double)sum/x;
printf("以上%d個の平均は:%.6f",x,ave);
}
}

723 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 02:48:35 ]
>>722
ありがとうございます

724 名前: ◆jmI6IAV7WI [2009/07/07(火) 05:34:13 ]
>>676
ありがとうございました
助かりました

725 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:44:06 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 整数 nissu をキー入力して、1 月1 日から数えて nissu 日目が何月何日かを表示
したい。 main() 関数を以下のように作った。ここで呼ばれている関数 tuki_hi () を作成せよ。
#include <stdio.h>
int main(){
int nissu, tuki, hi;
void tuki_hi(int, int *, int *);
printf("日数を月日に変換\n");
printf("日数は? "); scanf("%d", &nissu);
tuki_hi(nissu, &tuki, &hi);
printf("%d 日目は%d 月%d 日です", nissu, tuki, hi);
return 0;
}
[3] 環境
[3.1] OS: Windows/vista
[3.2] コンパイラ名とバージョン: borland c++
[3.3] 言語:C
[4] 期限: ([2009年07月7日2:30まで]
[5] よろしくお願いします

726 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 12:55:20 ]
>>725
void tuki_hi(int nissu, int *tuki, int *hi)
{
int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; /* days[0]は使わない */
int i;
for (i=1; i<=12 && nissu>days[i]; ++i) { nissu -= days[i]; }
*tuki = i;
*hi = nissu;
}

727 名前:デフォルトの名無しさん [2009/07/07(火) 14:09:24 ]
>>686 ありがとうございました。

ただ、それぞれの問題につき1つのプログラムという形にしていただけないでしょうか?
自分なりにやってみたんですが、どうも上手くいきませんでした。

お手数ですが、よろしくお願いしますm(_ _)m

728 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 14:48:07 ]
>>726
ありがとうございましたm(__)m



729 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 14:56:29 ]
>>727
何も理解できてないな
>>686動かしてみた?

730 名前:デフォルトの名無しさん [2009/07/07(火) 16:35:47 ]
>729 すみません… 本当に何も理解しておりません。
>実行結果です。
t23.c: In function `insert_node':
t23.c:130: error: `new' undeclared (first use in this function)
t23.c:130: error: (Each undeclared identifier is reported only once
t23.c:130: error: for each function it appears in.)
t23.c:130: error: parse error before "node_t"
t23.c: In function `remove_node':
t23.c:139: error: `delete' undeclared (first use in this function)
t23.c:139: error: parse error before "del"
t23.c: In function `random_list':
t23.c:149: error: 'for' loop initial declaration used outside C99 mode
t23.c: In function `get_node':
t23.c:155: error: 'for' loop initial declaration used outside C99 mode

731 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 16:53:30 ]
それ実行じゃなくてビルド時のエラーだろう。
とりあえず C++ でやってみては。

732 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:03:29 ]
[1] 授業単元: プログラミングC
[2] 問題文(含コード&リンク):
キーボードから半角英数で文字列を入力し、英字については大文字を小文字に、小文字を大文字にするプログラムを作成せよ。

実行例 文字列入力 :AbCdEfG123
    変換文字列 :aBcDeFg123
[3] 環境 windows
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2009/7/9
[5] その他の制限:全くの初心者なのでよろしくお願いします。

733 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:32:46 ]
すいません>>732のものなんですがもう一問あったのでこちらもよろしくお願いします
[1] 授業単元: プログラミングC
[2] 問題文(含コード&リンク):
キーボードから半角英数で文字列を入力し、これを数字(0→9)、大文字(A→Z)、
小文字(a→z)の順に並べ替えるプログラムを作成せよ。
ヒント:並べ替えアルゴリズムは、バブルソート(隣接交換法)を使うと簡単だろう。
    文字列長はstrlen命令を使うとよい。みたいです。
[3] 環境 windows
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限: 2009/7/9
[5] その他の制限:

734 名前:デフォルトの名無しさん [2009/07/07(火) 17:36:08 ]
>>731 提出先のコンパイラーでg++がインストールされてないようです…

cに書き換えるにはどうしたら良いでしょうか?

735 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:37:38 ]
>>730
コンパイルすらできていないのに>>727のコメントが出てくるのがおかしいんだよ。
自分なりに何をやったんだ?って思うんだよなぁ。
てっきりmainがありませんぐらいまではたどり着いてるものだと思っていたが。。

736 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:40:05 ]
>>734
new deleteをmalloc/calloc freeにする
変数の宣言をブロックの先頭で行うようにする

737 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 17:57:20 ]
Cに書き換えるのも書こうかと思ったんだけど
元々の条件にC/C++って書いてあったからなー

738 名前:デフォルトの名無しさん [2009/07/07(火) 18:00:05 ]
>>736 ありがとうございます。



739 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 18:02:11 ]
>>732
#include <stdio.h>
#include <ctype.h>

int main(void)
{
char str[128];
int i;
scanf("%s", str);
for (i = 0; str[i]; ++i)
if (isupper(str[i])) str[i] = tolower(str[i]);
else if (islower(str[i])) str[i] = toupper(str[i]);
puts(str);
return 0;
}

740 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 18:31:32 ]
>>733
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int compare(char x, char y)
{
if (isdigit(x)) return isdigit(y)? y - x: 1;
if (isupper(x)) return isdigit(y)? -1: isupper(y)? y - x: 1;
if (islower(x)) return isdigit(y) || isupper(y)? -1: islower(y)? y - x: 1;
return 0;
}
void bsort(char *str)
{
int i, j;
for (i = 0; i < strlen(str) - 1; ++i) {
for (j = 1; j < strlen(str) - i; ++j) {
if (compare(str[j], str[j - 1]) > 0) {
char t; t = str[j]; str[j] = str[j - 1]; str[j - 1] = t;
}
}
}
}
int main(void)
{
char str[128];
scanf("%s", str);
bsort(str);
puts(str);
return 0;
}

741 名前:デフォルトの名無しさん [2009/07/07(火) 18:57:59 ]
>>737 そうですね、迂濶でした。
今度こそ自分なりにやってみますが、ダメだったときはお願いしてもよろしいでしょうか…

742 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 19:02:25 ]
>>734
> 提出先のコンパイラーでg++がインストールされてないようです…
何のエラーメッセージでそう思った? 

とりあえず int main(void){return 0;} の一行を追加して、g++でコンパイルみてはどうだろう。

743 名前:デフォルトの名無しさん [2009/07/07(火) 19:52:53 ]
>>742 g++: p11.cpp: No such file or directory
>g++: no input files   です。
>

744 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 19:56:43 ]
>>743
ばっちりインストールされてるじゃねーかw

745 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 19:57:03 ]
>>743
which g++
とでもしてろよwwwww

746 名前:デフォルトの名無しさん [2009/07/07(火) 19:57:41 ]
↑間違えました。

747 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 20:01:47 ]
[1] 授業単元:
コンパイラの構成
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9696.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C(yacc、lex)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
7月14日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
前回も>>204で助けていただいたのですが、yaccとlexの問題です。
スレ違いかもしれませんがどなたかよろしくお願いします。

748 名前:デフォルトの名無しさん [2009/07/07(火) 20:13:40 ]
>>744 >>745 そうなんですか?W

とりあえず>>686を参考にどうにかしてみます。
どうにもならなかったらまた来させて下さい…

長々とお付き合いありがとうございました!



749 名前:デフォルトの名無しさん [2009/07/07(火) 21:07:31 ]

[1] 授業単元:C言語
[2] 問題文:配列を用いた計算機のプログラムを作成してください。
計算は前から順に行われていく。
入力される数値の個数は最大でも20個としてください。

[3] 環境
 [3.1] OS: XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C言語

[4] 期限:2009年7月12日
[5] その他:特になし
よろしくおねがいします

750 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:09:52 ]
>>706
/*Q1*/
#include <stdio.h>
int main() {
FILE *fp_in, *fp_out; char fname[256], key, buf;
printf("ファイルを暗号化します!\n\n");
printf("入力ファイル名は:"); scanf("%s", fname); fflush(stdin);
if ((fp_in = fopen(fname, "rb")) == NULL) return 1;
printf("出力ファイル名は:"); scanf("%s", fname); fflush(stdin);
if ((fp_out = fopen(fname, "wb")) == NULL) return 1;
printf("暗号化のキー文字は:"); key = fgetc(stdin);
while (fread(&buf, sizeof(char), 1, fp_in) == 1) {
buf = buf ^ key; fwrite(&buf, sizeof(char), 1, fp_out);
}
printf("暗号化が完了しました!\n");
fclose(fp_in); fclose(fp_out);
return 0;
}
/*Q2*/
#include <stdio.h>
void rotate(unsigned char *a) {*a = (*a) << 1 | (*a) >> 7;}
int main() {
int i, k, x; unsigned char a;
printf("1〜255の整数を入力 : "); scanf("%d", &x);
a = x;
for (i = 1; i <= 16; i++) {
rotate(&a);
printf("%2d-th shift: %3d ", i, a);
for (k = 7; k >= 0; k--) {printf("%d", (a & (1<<k)) >> k);} printf("\n");
}
return 0;
}

751 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 21:15:24 ]
>>706
/*Q3*/
#include <stdio.h>
#include <stdlib.h>
void itoa_r(int n, char *str);
enum {MAX = 100};
main() {
int n;
char str[MAX];
while (1) {
int i;
for (i = 0; i < MAX; i++) str[i] = '\0'; // 追加
printf("\n整数を入力して下さい(終了 = 0):");
scanf("%d", &n);
if (n == 0) break;
itoa_r(n, str);
printf("文字列に変換すると %s です\n", str);
}
}
void itoa_r(int n, char *str)
{
if (n < 0) {
*str = '-';
itoa_r(-n, str + 1);
} else if (n != 0) {
int m = n, d = 1;
while (m /= 10) d++;
*(str + d - 1) = '0' + (n % 10);
itoa_r(n / 10, str);
}
}

752 名前:デフォルトの名無しさん [2009/07/07(火) 21:58:55 ]
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):


C++言語を使ってスタックを実現するクラスを定義して,その実行を確認するプログラム(main関数)を書く。

クラス名はstackとする。

要素のデータの型はintとする。
格納できる要素の最大数は10とする。
公開されているインターフェースは下記のものとする。

void push(int data);
int pop();

初期設定は,以下のいずれかによって行う。
(1) クラスのコンストラクタ(constructor)の機能を用いる。
(2) 初期設定用のインターフェース(init)を定義し,スタックを使用する前に,initを呼び出す。

機能確認のためのインターフェース(たとえばスタック内のデータを表示させる)を追加してもよい。

上記の仕様を満たさない(インターフェース名が上記と一致しない等)プログラムは評価の対象としない。

#入出力はprintfを用いること。
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: 2009年7月10日まで
よろしくおねがいします

753 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:44:39 ]
>>752
>#入出力はprintfを用いること。
入力もprintfを使わなきゃダメなの?

754 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 22:54:15 ]
>>752
#include <cstdio>
const int MAX = 10;

class stack {
int *data_;
int n;
public:
stack() { data_ = new int[MAX]; }
~stack() { delete data_; }
void init() { n = 0; }
void push(int data) { if (0 <= n && n < MAX) data_[n++] = data; }
int pop() { if (0 <= n && n < MAX) return data_[n--]; }
void print() { for (int i = 0; i < n; ++i) printf("%d\n", data_[i]); }
};

int main()
{
stack s;
s.init();
s.push(5); s.push(-8); s.push(2); s.print();
s.pop(); s.print();
return 0;
}

755 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:04:34 ]
>>753
とつっこむあなたはprintfで入力ができるんですか?

756 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:25:39 ]
>>752
チェック用の関数と例外処理でcoutを使ってる。
だめそうなら、そこをprintfに書き換えて。

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9699.txt

757 名前:デフォルトの名無しさん [2009/07/07(火) 23:28:24 ]
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): 二次元配列を使って以下のファイルを読み込み、同じように表示しなさい。
 【test.dat】
  ** ** **
  ** ** **
  ** ** **

ポインタを宣言;
データを宣言;
ポインタ=fopen("test.dat",r);

if(ポインタ == NULL) return;

for(i=0; i<3; i++){
for(j=0; j<3; j++){
fscanf(ポインタ,"%d"&sub[i][j]); }}

/* 此処の printf() がどうしてもできません。ご協力お願い致します。 */

fclose(ポインタ);

[3] 環境
 [3.1] Windows
 [3.2] Visual Studio
 [3.3] 言語: C++
[4] 期限:2009年7月8日 09:00まで
[5] その他の制限:特にありませんが、理解したいので比較的簡単なものでお願い致します。

758 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:33:26 ]
>>757
test.datの内容それであってる?整数が3行3列=9個あるんじゃないのか?



759 名前:デフォルトの名無しさん mailto:sage [2009/07/07(火) 23:37:20 ]
>>757
"**"は整数なんじゃないかとエスパー

#include <stdio.h>

int main(void)
{
FILE *fp = fopen("test.dat", "r");
int sub[3][3];
int i, j;

if (fp == NULL) return 1;
for (i = 0; i < 3; i++)
for (j = 0; j < 3; j++)
fscanf(fp, "%d", &sub[i][j]);

for (i = 0; i < 3; i++) {
for (j = 0; j < 3; j++)
printf(" %d", sub[i][j]);
printf("\n");
}
fclose(fp);
return 0;
}

760 名前:757 [2009/07/07(火) 23:39:56 ]
>>758さま

すみません間違えていました;;
指摘していただいて確認したところ、
【test.dat】
** ** **
** ** **
** ** **
** ** **
でした。
そうなると、
for(i=0; i<4; i++){
for(j=0; j<3; j++){
fscanf(ポインタ,"%d"&sub[i][j]); }
}
になると思います・・・すみませんでした><



761 名前:757 [2009/07/07(火) 23:43:19 ]
>>759さま
あ!そういう意味でしたか・・・すみません、おっしゃるとおりです!
しかも早急にご回答ありがとうございます!!
printf()は普通に書けばよかったんですね・・・なるほど。

>>758さま
>>759さま
お二方、ありがとうございました。

762 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 00:19:10 ]
[1] 授業単元: 情報処理T
[2] 問題文: 乗算合同法で整数乱数を生成.。
区間(0.1)の一様にして、1以上、ある特定の整数の乱数を生成する。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: TurboC
[3.3] 言語: C
[4] 期限: 2009年7月20日00:00まで
[5] その他の制限: #include <stdio.h>で始まるようにお願いいたします。

よろしくお願いします。

763 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 02:15:09 ]
>>624で質問し、>>677で答えていただいた者ですが、
プログラムにコメント文も付けていただけますでしょうか?

764 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 03:19:26 ]
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):
問1:フィボナッチ数列を23番目まで計算して配列fibに格納した後、キーボードから何番目かを指定して表示するプログラムを作成せよ。
  要素を表示する処理は何回も繰り返し行えるようにし、キーボードから1〜23以外の数値が入力されたら終了する。
  実行例 数の入力:2
        fib[2]:1
        数の入力:23
        fib[23]:28657
        数の入力:24
        終了

問2:(1)キーボードから半角英数で文字列を2つ入力し、これを比較して同じか否かを判定するプログラムを作成せよ。
   実行例 文字列1:ABC               文字列1:ABc
      文字列2:ABC               文字列2:ABC
      2つの文字列は同じです         2つの文字列は違います  
   
(2)(1)のプログラムを、strcmpを使って書き換えなさい。

問3:1週間の売り上げ一覧を表示するプログラムを作成せよ。
   実行例  野菜の1週間の売り上げた合計数量と合計金額 
                                  合計  合計
        種類 単価 月 火 水 木 金 土 日 数量  金額
        レタス 150 50 55 60 65 70 75 80 455  68250
        トマト  50 20 25 30 35 40 45 50 245  12250
        もやし  20 10 15 20 25 30 35 40 175  3500
        ナスビ  40 5  10 15 20 25 30 35 140  5600 
[3] 環境
 [3.1] OS:(Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2009/7/9
[5] その他の制限: C言語の基本くらいしかやっていません。

765 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 08:50:32 ]
[1] 授業単元: 数値計算プログラミング
[2] 問題文(含コード&リンク): (1)√57を求めよ (2)三乗根の7を求めよ
               (3)f(x)=3x^3+2x^2+5x-15=0の解を求める
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C++
[4] 期限: ([2009年07月10日まで]
[5] その他の制限:ニュートン法を用いる 初期値 x0=1
お願いします



766 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 09:24:58 ]
>>764
問1
#include <stdio.h>

#define N 23

int main()
{
    int fib[N + 1], i, n;

    fib[0] = 0, fib[1] = 1;
    for(i = 2; i <= N; i++)
        fib[i] = fib[i - 2] + fib[i - 1];

    while(1){
        printf("数の入力:");
        scanf("%d", &n);
        if(n < 1 || n > N) break;
        printf("fib[%d]:%d\n", n, fib[n]);
    }
    printf("終了\n");
    return 0;
}

767 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 09:34:17 ]
>>764
問2
#include <stdio.h>

#define SIZE 1024

int main()
{
    char s1[SIZE], s2[SIZE];
    int i;

    printf("文字列1:"), fgets(s1, SIZE, stdin);
    printf("文字列2:"), fgets(s2, SIZE, stdin);
    for(i = 0; s1[i] != '\0' && s2[i] != '\0' && s1[i] == s2[i]; i++);
    if(s1[i] != s2[i]) printf("2つの文字列は違います\n");
    else printf("2つの文字列は同じです\n");
    return 0;
}

768 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 09:36:12 ]
>>764
問2(2)
#include <stdio.h>
#include <string.h>

#define SIZE 1024

int main()
{
    char s1[SIZE], s2[SIZE];

    printf("文字列1:"), fgets(s1, SIZE, stdin);
    printf("文字列2:"), fgets(s2, SIZE, stdin);
    if(strcmp(s1, s2) != 0) printf("2つの文字列は違います\n");
    else printf("2つの文字列は同じです\n");
    return 0;
}




769 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 09:59:42 ]
問3
#include <stdio.h>>

struct weekly_sales_t{
    char kind[1024];
    int price;
    int daily_sales[7];
};

int main()
{
    struct weekly_sales_t sales[4] = {
        {"レタス", 150, {50, 55, 60, 65, 70, 75, 80}},
        {"トマト",  50, {20, 25, 30, 35, 40, 45, 50}},
        {"もやし",  20, {10, 15, 20, 25, 30, 35, 40}},
        {"ナスビ",  40, { 5, 10, 15, 20, 25, 30, 35}},
    };
    return 0;
}

時間ないので誰か任せた

770 名前:デフォルトの名無しさん [2009/07/08(水) 10:06:09 ]
>>765
www.geocities.jp/supermisosan/newtonhou.html
↑元のソースはここ。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9700.txt
↑今回の課題に合わせた変更



771 名前:デフォルトの名無しさん [2009/07/08(水) 11:11:32 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):下記に
[3] 環境
 [3.1] OS:VistaSP1
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語:C
[4] 期限:2009年7月8日23時まで
[5] その他の制限:できるだけ基本で

登録番号"int no"と名前"char *name"と年齢"int age"を含む構造体person型の配列を定義し初期化せよ.
なお, 最後のデータの名前にはNULLを入れておく. 登録番号は入力順に1,2,3,4,5とする.
そして, 登録されている人の平均年齢を計算する関数を作成せよ.
引数は, 配列の先頭アドレスを指す構造体person型のポインタとする.

772 名前:デフォルトの名無しさん [2009/07/08(水) 11:57:37 ]
[1] 授業単元: 4次のルンゲ−クッタ法を用いて連立微分方程式を解く
[2] 問題文:システムの状態x = (x, y, z) が、以下の連立微分方程式に従う場合の挙動をシミュレーション
する.
dx/dt= −y − z
dy/dt= x + ay
dz/dt= b + (x − c)z
【課題1】4 次のルンゲ-クッタ法を用いて上記方程式を数値的に解くプログラムreport.c を完
成させよ.report.c には3 つの関数が定義されている.ルンゲ-クッタ法を1 ステップ行う関数
rungekutta() は完成しているが、導関数を求める関数deriv() とプログラム全体を制御する関
数main() は不完全である.各関数に適切な実行文等を記述し、プログラムを実行できるよう完
成させよ.
【課題2】課題1で完成させたプログラムreport.c を用い、シミュレーションを実行する.シス
テムパラメータが
1. (a, b, c) = (1.0, 0.2, 1.0)
2. (a, b, c) = (1.0, 0.2, 8.0)
の2つの場合に、時刻t = 200.0 からt = 400.0 の間にx が位相空間に描く軌跡を図に表せ.シ
ミュレーションの時間刻みはdt = 0.02 とし、初期値x(0) = (x(0), y(0), z(0)) は適当な値を選ぶ
こと.またそれぞれの場合について、初期値をわずかに変化させた場合に軌跡がどのように変化
するかを、同様に図に表して比較せよ.
[3] 環境 Vine Linux
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語:C
[4] 期限:2009年7月28日
[5] その他の制限:ソースは長いので次レスに投稿します。できれば理解したいのでコメント付きで解説して戴けると助かります。面倒臭い場合は結構です。

どうか宜しくお願いします。

773 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 11:58:52 ]
ろだつかえよ

774 名前:デフォルトの名無しさん [2009/07/08(水) 12:07:00 ]
>>772です。ソースを三つに分けます。ややこしくてすみません。
#include <stdio.h>
#include <math.h>
#define N 3 //システムの次元
double a = 0.20;
double b = 0.20;
double c = 10.0;
/* 導関数 */
/* x における dx/dt を求める */
void derivs(double t, double x[], double dxdt[])
{
/* dx/dt = f(x) */
dxdt[0] = ;
dxdt[1] = ;
dxdt[2] = ;
}


775 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 12:07:29 ]
>>765 ニュートン法を用いる
問題>>540 解答>>543(CODE)

長い解答なら、ろだつかえよ

776 名前:デフォルトの名無しさん [2009/07/08(水) 12:09:24 ]
>>774の続き
/* ルンゲクッタ法を1ステップ行う関数   */
/* x(t)=xin から x(t+h)=xout を求める */
void rungekutta(double xin[], double xout[], double t, double h)
{
int i;
double th2,h2,h6;
double dxdt0[N], dxdt1[N], dxdt2[N], dxdt3[N], xt[N];
double deriv(double, double [], double []);

h2=h*0.5;
h6=h/6.0;

th2=t+h2;
derivs(t,xin,dxdt0);
for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt0[i];

derivs(th2,xt,dxdt1);
for(i=0;i<N;i++) xt[i] = xin[i] + h2*dxdt1[i];

derivs(th2,xt,dxdt2);
for(i=0;i<N;i++) xt[i] = xin[i] + h*dxdt2[i];

derivs(t+h,xt,dxdt3);
for(i=0;i<N;i++)
xout[i] = xin[i] + h6*(dxdt0[i]+2.0*(dxdt1[i]+dxdt2[i])+dxdt3[i]);
}



777 名前:デフォルトの名無しさん [2009/07/08(水) 12:11:11 ]
>>776の続き
int main()
{
int i;
double t, tmax, dt;
double x[N], x_next[N];
FILE *fp;
void rungekutta(double [], double [], double, double);
/* 諸変数を初期化 */
tmax = ;
dt = ;
/* システムの状態を表すベクトルx(N次元)の初期化 */

/* 計算結果を書き出す為のファイルを開く */
fp = fopen("result.dat","w");
/* 時間tを刻み幅dtずつ増加させながら時間発展 */
for(t=0.0;t<tmax;t+=dt){

/* 時刻tとxの各要素をファイルに書き出す */
fprintf(fp,"%lf %lf %lf %lf\n ", t, x[0], x[1], x[2]);
/* xを更新 */
x +=
}
/* ファイルを閉じる */
fclose(fp);
return 0;
}



778 名前:デフォルトの名無しさん [2009/07/08(水) 12:12:14 ]
>>773 すいませんロダってどう使うのですか?



779 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 12:16:16 ]
ハタチになると分かる。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm

780 名前:デフォルトの名無しさん [2009/07/08(水) 12:29:36 ]
>>779 ありがとうございます。今投稿してみたのですがファイルが添付されてませんでしたorz

参照にファイルを添付したら良いんですよね?こんな馬鹿に詳しく教えて貰えないでしょうか?

781 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 12:50:51 ]
>>780
ここのうpろだはいちおう制限があるよ
# 添付可能ファイル : TEXT, LHA, ZIP, C, CPP
# 最大投稿データ量 : 100 KB

782 名前:デフォルトの名無しさん [2009/07/08(水) 14:08:18 ]
>>775
そのプログラムをコンパイルしたらエラーが出ちゃったので出来ませんでした
すいません

783 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 15:56:26 ]
>>782
そうですか

784 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 16:20:34 ]
[1] 授業単元:アルゴリズム入門
[2] 問題文(含コード&リンク):
課題1: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9702.txt
課題2: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9703.txt
課題3: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9704.txt
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C 
[4] 期限:7月9日 15:00まで
[5] その他の制限: 特になし。どうかよろしくお願いします

785 名前:>>772 [2009/07/08(水) 17:18:53 ]
>>781さんありがとうございます。それで容量も1.5kでファイル形式もCなんでいけると思ってもう一度投稿しましたが無理でした...

すいませんが>>772を問題文、>>774>>776>>777をソースファイルとしてどなたかお願いできますか?

786 名前:デフォルトの名無しさん [2009/07/08(水) 17:32:59 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9706.txt
[3] 環境
[3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VisualC++
 [3.3] 言語: C
[4] 期限: 7月13日
[5] その他の制限:一つ目の課題はテキストファイルからバイナリファイルの作成



787 名前:769 mailto:sage [2009/07/08(水) 17:53:28 ]
>>764
問1 >>766
問2(1) >>767
問2(2) >>768
問3 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9707.txt

788 名前:デフォルトの名無しさん [2009/07/08(水) 18:12:28 ]
Dijkstra法の課題が出たのですが全く分かりません。助けてください。

(課題)
Dijkstra法のプログラムを完成せよ。

(Dijkstraのアルゴリズムの擬似コード)

#include <stdio.h>
#define M 8 //ノードの数
#define Z 300 //無限大
int c[M][M] = { 0, Z, Z, Z, Z, Z, 7, 2},{ Z, 0, 8, 7, Z, Z, Z, 1},{ Z, 8, 0, Z, Z, Z, Z,10},{ Z, 7, Z, 0,10, 3, Z, Z},{ Z, Z, Z,10, 0, 8, Z, 5}, { Z, Z, Z, 3, 8, 0, 2, Z}, { 7, Z, Z, Z, Z, 2, 0, 9}, { 2, 1,10, Z, 5, Z, 9, 0}; //隣接行列
int main(void){
int start; //ソースのノード
int d[M]; //ノードまでのコスト
int v[M]; //確定フラグ
int p[M]; //前のノードへのポインタ
     printf("start\n");
scanf("%d",&a);//ソースノードstartを指定する
for (j=0; j<M; j++){
        //最小コストのノードを探す、最小コストのノードを確定する
         for(k=0; k<M; j++){
           //wを経由してkにいたるコストがそれまでの最短路のコストより小さければd(k)を更新
          }
}
     //ソースノードから各ノードへの最小コストと最短路を表示する
}






789 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 18:17:16 ]
>>788
1>>嫁。テンプレ使おうぜ。

790 名前:デフォルトの名無しさん [2009/07/08(水) 19:28:29 ]
[1] デジタル信号処理
[2] 入力したtxtファイルをFFT、IFFTせよ
[3] 環境
 [3.1] Windows
 [3.2] gcc 3.4
 [3.3] C
[4] 期限:7月8日 24:00まで

よろしくお願いします


791 名前:デフォルトの名無しさん [2009/07/08(水) 19:39:21 ]
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9708.txt
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9709.txt
u9.getuploader.com/himajinn/download/219/Dll_BMP_C.dll
u9.getuploader.com/himajinn/download/220/Dll_BMP_C.h
u9.getuploader.com/himajinn/download/221/Dll_BMP_C.lib
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C 
[4] 期限:7月15日まで
[5] その他の制限: お願いします


792 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 19:54:59 ]
>>791
通報しようかどうしようか悩むな。
アウアウなことはガチなんだけど。

793 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 19:59:01 ]
某著作権寄生団体に見つかるまえに削除しとけー

794 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:23:22 ]
>>786
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9710.c
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9711.c

795 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:24:16 ]
バイナリと問題文で違いがあるの?

796 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:42:12 ]
>>771
#include <stdio.h>
struct person {
int no;
char *name;
int age;
};
double average_age(struct person *persons) {
int n, sum = 0;
for (n = 0; persons[n].name != NULL; n++) {
sum += persons[n].age;
}
if (n == 0) {
return -1;
} else {
return (double)sum / n;
}
}
int main(void) {
struct person persons[] = {
{1, "ichiro", 30},
{2, "jiro", 27},
{3, "saburo", 23},
{4, "shiro", 19},
{5, NULL, 0}
};
printf("平均年齢は%g\n", average_age(persons));
return 0;
}

797 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 21:45:00 ]
[1] C言語を使って計算を簡略化する:
[2] XY平面上の3点P1(x1,y1)P2(x2,y2)P3(x3,y3)の座標を順に入力した時、3点が同一直線上にあるかどうかを調べて
  結果を表示するプログラムを作成せよ。:
[3] 環境
 [3.1] Windows
 [3.2] Borland
 [3.3] C:
[4] 2009年7月10日8:35まで:
[5] その他制限:
  入力される座標はすべて第一象限です。
  よろしくお願いします。


798 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:15:37 ]
>>797
#include <stdio.h>
int main()
{
int x1,y1,x2,y2,x3,y3;
printf("x1>"); scanf("%d", &x1);
printf("y1>"); scanf("%d", &y1);
printf("x2>"); scanf("%d", &x2);
printf("y2>"); scanf("%d", &y2);
printf("x3>"); scanf("%d", &x3);
printf("y3>"); scanf("%d", &y3);
if ((x3 - x1) * (y2 - y1) == (x2 - x1) * (y3 - y1))
printf("同一直線上にあります\n");
else
printf("同一直線上にありません\n");
return 0;
}



799 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:26:35 ]
[1]C言語中級
[2] int bitmap[640][480]はビットマップ画像の画素を表すものとする。
指定された点x,yを含む指定された境界色C2で囲まれた平面領域を
指定された色C1で塗りつぶす関数
paint(int x,int y,int c1,int c2)を作成
[3] linux/gcc/C言語
☆再帰(間接を含む)を使ってはならない。
☆十分な速度が必要( 基準PC(PCセンター端末 Cerelon 800MHz)で100回/秒以上)
☆三角形、四角形、円、楕円、放物線で囲まれた領域、それぞれ5つのケース
について実行前のbitmapと実行後の配列をバイナリファイルとして
triangle.pre.bitmap triangle.post.bitmap
rectangle.pre.bitmap rectangle.post.bitmap
circle.pre.bitmap circle.post.bitmap
ellipse.pre.bitmap ellipse.post.bitmap
parabora.pre.bitmap parabora.post.bitmap
という名称で保存したものとソースコード、これをコンパイルしたものを
work20090717.xxxxxx.zipという形式でzip圧縮したものをメール添付
(xxxxxxは学籍番号下6桁)
[4] 7/17 正午まで

800 名前:デフォルトの名無しさん mailto:sage [2009/07/08(水) 22:26:48 ]
>>798
ありがとうございます!できました


801 名前:デフォルトの名無しさん [2009/07/09(木) 04:59:49 ]
[1] 授業単元: コンピュータネットワーク
[2] 問題文(含コード&リンク):(課題)
  Dijkstra法のプログラムを完成せよ。
(Dijkstraのアルゴリズムの擬似コード)
#include <stdio.h>
#define M 8 //ノードの数
#define Z 300 //無限大
int c[M][M] = { 0, Z, Z, Z, Z, Z, 7, 2},{ Z, 0, 8, 7, Z, Z, Z, 1},{ Z, 8, 0, Z, Z, Z, Z,10},{ Z, 7, Z, 0,10, 3, Z, Z},{ Z, Z, Z,10, 0, 8, Z, 5}, { Z, Z, Z, 3, 8, 0, 2, Z}, { 7, Z, Z, Z, Z, 2, 0, 9}, { 2, 1,10, Z, 5, Z, 9, 0}; //隣接行列
int main(void){
int start; //ソースのノード
int d[M]; //ノードまでのコスト
int v[M]; //確定フラグ
int p[M]; //前のノードへのポインタ
     printf("start\n");
scanf("%d",&a);//ソースノードstartを指定する
for (j=0; j<M; j++){
        //最小コストのノードを探す、最小コストのノードを確定する
         for(k=0; k<M; j++){
           //wを経由してkにいたるコストがそれまでの最短路のコストより小さければd(k)を更新
          }
     } //ソースノードから各ノードへの最小コストと最短路を表示する
}
[3] 環境
 [3.1] OS: Windows [3.3] 言語: C++
[4] 期限: 2009年7月9日16:00まで
[5] その他の制限:なし

488です。焦りすぎて規約を読まずに投稿してしまいました。すみません。
期限ギリギリなのですがお力を貸していただけると嬉しいです。よろしくお願いします。

802 名前:784 mailto:sage [2009/07/09(木) 09:35:23 ]
784です。

一晩やってみたのですが、結局まったく出来ずに朝を迎えてしまいました・・・orz

どなたか、どうかお願いします。

803 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 09:56:18 ]
>>802 少し簡単にしてみた
char* getword(FILE* f){
char buffer[MAXSIZE]={0}, firstchar[10]={0};

fscanf(f, "%*[^a-zA-Z]");
if(fscanf(f, "%1[a-zA-Z]%1022[0-9a-zA-Z]", firstchar, buffer+1)>=1){
buffer[0]=firstchar[0];
return strdup(buffer);
}
return NULL;
}

804 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 10:47:17 ]
[1] 授業単元:確率論
[2] 問題文(含コード&リンク):

・正規乱数の発生 (ボックスミュラー法)
ボックス・ミュラー法により,区間[0, 1) の一様乱数から標準正規分布N(0, 1) に従う
正規乱数を100,000 個発生し,そのデータから得られる以下の各項目を報告せよ。
なお、一様乱数の生成は合同式法を用い,また正規乱数の生成はBox-Muller 法
を用いて,いずれもC言語プログラムで実現すること.(既存のRAND関数などを用いてはならない)

1. 正規乱数の平均値.
2. 正規乱数の標準偏差.
3. 正規乱数のヒストグラム.区間[-5, 5] を100 分割したものとする.
(ヒストグラムはhistgram[100]の様に宣言し、100個それぞれの出現個数を足していったものです)

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: ([2009年7月10日12:00まで]
[5] その他の制限: 既存のRAND関数使用不可

先日>>251で教えていただいた中心極限定理を書き換えて作成していたのですが、
上手くできませんでした。

宜しくお願いします。

805 名前:デフォルトの名無しさん [2009/07/09(木) 11:53:21 ]
>>804
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9712.txt
RAND_MAXがダメだって話だったから、INT_MAXに書き換えておいた。

806 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:19:34 ]
[1] 授業単元: 情報処理
[2] 問題文(含コード&リンク):
  二つの複素数 α、βの実数部、虚数部の値(実数)をそれぞれ入力し、
   α/β
(αをβで割った商)を求めて表示せよ。(表示方法は複素数らしくなるよ
うに工夫せよ。)

 ただし、複素数を、実数部と虚数部に対応するメンバで構成される構造体
として表し、複素数の除算用関数c_div()を作成して、これを利用すること。
 この関数は、sとtを複素数を表す構造体としたとき、c_div(s,t)と呼び出
すと、戻り値としてsをtで除算した結果である複素数の構造体を返すものと
する。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: c++Builder
 [3.3] 言語: C
[4] 期限: 2009年7月10日12:00まで
[5] その他の制限: なし

お願いします。


807 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 12:28:34 ]
>>806
あれ?デジャブ・・・

808 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 13:28:30 ]
>>802
こんなんでいいかい?
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9713.zip



809 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:29:10 ]
>>801
もう見てないかも試練がクソース

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

810 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 14:46:45 ]
>>805
ありがとうございました。

811 名前:デフォルトの名無しさん [2009/07/09(木) 14:52:22 ]
>>809
ありがとうございました。
助かりました!

812 名前:デフォルトの名無しさん [2009/07/09(木) 14:58:07 ]
[1] 授業単元:C言語で簡単なゲーム
[2] 4目並べの勝ち負け判定
[3] 環境
 [3.1] OS: UNIX
 [3.2] gcc
 [3.3] cのみ
[4] 期限: 7/9 18:00
[5] その他の制限:できるだけ簡単な作りにしていただきたいです。中高生なみの。

お願いします。

813 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:08:12 ]
>>812
4目並べにもいろいろあるぞ。重力の有無、盤面サイズ、その他もろもろを教えれ

814 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:19:41 ]
>>806
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9716.txt

思いっきりデジャブだけど、その時に作ったソースがそのまま
残っているのでそのままうpした

815 名前:784 mailto:sage [2009/07/09(木) 15:23:16 ]
>808

すいません、今見に来ました。
何とか今日の夜まで猶予をもらったので、
もう一度zip落とさせてもらえないでしょうか。
落としてみたら、ファイルが無かったようなので・・・。

816 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:24:11 ]
>>815
今やってみたら普通に落とせたけど?

817 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 15:24:37 ]
>>815
まだ残ってるぞ

818 名前:784 mailto:sage [2009/07/09(木) 15:30:02 ]
すいません、今もう一度やってみたらできました!!

>>816 >>817
失礼しました。

>>784
本当にありがとうございました!大感謝です。
これで単位がもらえる・・・

皆様、ありがとうございました。



819 名前:784 mailto:sage [2009/07/09(木) 15:31:08 ]
興奮して間違えたorz

改めて
>>808
ありがとうございました!

820 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 16:18:20 ]
お願いします。

[1] 授業単元: 論理設計
[2] 問題文: 3入力のクワイン・マクラスキー法のプログラムを作成せよ
[3] 環境
特に無し(紙に書いて提出)
言語:C++
[4] 期限:07月13日(月)まで
[5] その他の制限:特にないです。

821 名前:812 [2009/07/09(木) 17:07:41 ]
812での追記
4目並べ
重力は無しです、盤面サイズは10×10。
駒黒1
駒白−1
っと設定しています。これで、作っていただきたいです。

822 名前:デフォルトの名無しさん [2009/07/09(木) 17:34:59 ]

何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理するプログラムを作る。

(1)科目別の最高点、最低点を表示する。
(2)各学生の3教科の平均点を表示する。
(3)各教科の平均点を表示する。

ただし Ctrl+zが押されるまで次々と整数値を読み込んでいくものとする。

以上の問題お願いします
m(__)m

823 名前:デフォルトの名無しさん [2009/07/09(木) 17:49:24 ]
>>812
>>449のプログラムを流用で
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9717.txt

824 名前:デフォルトの名無しさん [2009/07/09(木) 18:32:51 ]
>>822

質問テンプレ忘れてました。
[1] 単元:プログラミング工学1
[2] 問題文:下記にあります。
[3] 環境
:Windows
[3.3] 言語: C++
[4] 期限:あと40分位でお願いします。

何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理するプログラムを作る。

(1)科目別の最高点、最低点を表示する。
(2)各学生の3教科の平均点を表示する。
(3)各教科の平均点を表示する。

ただし Ctrl+zが押されるまで次々と整数値を読み込んでいくものとする。

以上の問題お願いします
m(__)m

825 名前:デフォルトの名無しさん [2009/07/09(木) 19:20:54 ]
〔1〕授業単元:C言語
〔2〕問題文:kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9718.txt
〔3〕環境
 [3.1] OS: Windows
 [3.3] 言語: C言語
〔4〕期限:7月10日 18時
〔5〕コマンド引数、再帰呼び出しまで習いました
   よろしくお願いします


826 名前:デフォルトの名無しさん [2009/07/09(木) 20:13:56 ]
1] 授業単元: 宿題
[2] 問題文(含コード&リンク): 整数を入力し、奇数か偶数かを判断するプログラム(switch文で
[3] 環境
 [3.1] OS: (Windows/Linux/等々) XP
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) borland
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 明日まで
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)


827 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 20:41:18 ]
[1] 授業単元:オペレーティングシステムT
[2] 問題文(含コード&リンク):exp7.cのプログラムを応用し、コマンドの引数xxxxで指定したファイルが更新されたら直ちに
"Modified xxxxfile on Day Month date hh:mm:ss yyyy"
というメッセージを表示するプログラム(ファイル更新を監視する常駐プログラム)を作成せよ。常駐プログラム(バックグランドで起
動され一般に広義のデーモンと呼ばれる)は、kill pid コマンドが入力されるまで、動き続けるように作成すること。

exp7.cは
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9720.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 09年7月13日正午
[5] その他の制限: プログラミング能力を問う科目でないため、特に制限はありません。
ですが、添付したソースに適したレベルでお願いします。

<実行結果>
$ gcc -o exp8 exp8.c
$ exp8 exp8 &
$ ps
PID TTY TIME CMD
3028 pts/1 00:00:00 bash
3073pts/1 00:00:00 exp8
3074 pts/1 00:00:00 ps
$ touch exp8
$
Modified exp8 file on Sun May 25 14:20:26 2008
touch exp8
$
Modified exp8 file on Sun May 25 14:20:26 2008
kill 3073
$

828 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:19:28 ]
>>827
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>

int main(int argc, char **argv)
{
 char *file_name = argv[1];
 struct stat sb;
 time_t old_mtime;

 stat(file_name, &sb);
 old_mtime = sb.st_mtime;
 while (1) {
  usleep(500000);
  stat(file_name, &sb);
  if (old_mtime != sb.st_mtime) {
   printf("'%s'が書き換えられた!%s", file_name, ctime(&sb.st_mtime));
   old_mtime = sb.st_mtime;
  }
 }
}




829 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:46:36 ]
>>826
switch文で判定するとか問題がカス過ぎるだろ

#include <stdio.h>
int main(){
int n;
printf("input number > ");
scanf("%d",&n);

switch(n){
default: printf("%s",n&1 ? "odd" : "even");
}

return 0;
}

830 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 21:51:11 ]
#include <stdio.h>
int main(){
int n;
printf("input number > ");scanf("%d",&n);
switch(n%2){
case 0: printf("even¥n");break;
case 1: printf("odd¥n");break;
default: printf("Bug of processor??¥n");break;
}
return 0;
}
としたらBug of processorと表示されることは内と言える?


831 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:07:22 ]
>>829
ひどい奴だなwww もっとこう出題者の意向をくんでやれよ。いいよ俺が答えてやる

>>826
#include <stdio.h>
int main(){
int n;
printf("input number > ");
scanf("%d",&n);

switch(n){
case 0: case 2: printf("偶数です!\n"); break;
case 1: case 3: printf("奇数です!\n"); break;
default: printf("わかりません!\n"); break;
}

return 0;
}

832 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:32:39 ]
>>831
「わかりません」ってなんだよ

>>826
下のプログラムを実行したら、ちゃんとintの範囲なら全部判定できるプログラムができるからやってみなw

#include <stdio.h>
#include <limits.h>

int main(){
  int i;
  printf("#include <stdio.h>\n"
    "int main(){\n"
    "\tint n;\n"
    "\tprintf(\"input number > \");\n"
    "\tscanf(\"%%d\",&n);\n"
    "\tswitch(n){\n"
    "\tcase %d:\n", INT_MIN);
  for(i = INT_MIN + 2; i > INT_MIN + 1; i+=2) printf("\tcase %d:\n", i);
  printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);
  for(i = INT_MIN + 3; i > INT_MIN + 1; i+=2) printf("\tcase %d:\n", i);
  printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n", INT_MIN % 2 ? "偶数" : "奇数");
  printf("\t}\n"
    "\treturn 0;\n"
    "}\n");
  return 0;
}

833 名前:832 mailto:sage [2009/07/09(木) 22:41:20 ]
わりぃ、1箇所ばぐっとった

printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);
  ↓
printf("\t\tprintf(\"%sです!\\n\");\n\tbreak;\n\tcase %d:\n", INT_MIN % 2 ? "奇数" : "偶数", INT_MIN+1);

これで完璧。
期限までに間に合わんかったらごめんな。

834 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:48:06 ]
2009/7/9 24:00 締め切り埋め祭り
>>830 &yen;以外で文字化け
#include <stdio.h>
int main(){
  int n;

  printf("input number > ");
  scanf("%d",&n);
  switch( (n&1) == 0 ) { // 最下位ビットは0か
    case 0: printf("奇数です!\n"); break; // いいえ
    case 1: printf("偶数です!\n"); break; // はい
  }
  switch( (n&1) != 0) { // 最下位ビットは1か
    case 0: printf("偶数です!\n"); break; // いいえ
    case 1: printf("奇数です!\n"); break; // はい
  }
  return 0;
}

835 名前:デフォルトの名無しさん [2009/07/09(木) 22:49:40 ]
パスカルの三角形を出力するのに
#include <stdio.h>
#define N 10

int main(void){
int i, j = 1, x, y;
int d[N][N]={};

/* 三角形を作成 */
for (i = 1 ; i < N ; i++){
d[i][0] = 1;
while (j <= i - 1){

d[i][j] = d[i-1][j-1] + d[i-1][j];
j ++;
}
}

/* 三角形の表示 */
for (y = 0; y < N; y++) {
for (x = 0; x < N-y; x++)
printf(" ");
for (x = 0; x < y; x++)
printf("%3d ", d[x][y]);
printf("\n");
}
return 0;
}
と書きましたが、すべての要素がゼロになってしまいます。
どこがまちがっているのでしょうか??


836 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 22:58:02 ]
>>835
while文の前にj=1の初期化が抜けてる
表示部分でd[x][y]のxとyが逆

837 名前:836 mailto:sage [2009/07/09(木) 23:01:01 ]
>>835
おま、Cなら俺に聞けスレとのマルチポストじゃねえか!
しかもあっちで答もらってんじゃんよ!
>>836は取り消す。答えなかったことにする

838 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:02:35 ]
やっぱテンプレ守れんやつは
守れんやつだけのことはあるってことか

ご愁傷様



839 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:06:16 ]
>>835
マルチポスト乙。

マルチポスト - Wikipedia
ttp://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88


840 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:07:56 ]
>>830
CPUにバグなんてあるわけないだろ
プログラムが仕込まれているわけでもあるまいし


841 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:09:11 ]
>>840
CPUの場合はバグとはいわずエラッタという言葉で予定してない動きをさすのはあるよ

インテルとかAMDもたまにやらかしてる

842 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:09:16 ]
いやいやwww

843 名前:842 mailto:sage [2009/07/09(木) 23:10:15 ]
>>842>>840にっすよ念のため

844 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:34:09 ]
>>835
別のスレに回答しておいた。
出力結果のサンプルはこんな感じ。
                           
                            1 
                         1     1 
                      1     2     1 
                   1     3     3     1 

845 名前:デフォルトの名無しさん mailto:sage [2009/07/09(木) 23:36:07 ]
・3・3・3・3・3・3・)v

846 名前:842 mailto:sage [2009/07/09(木) 23:39:12 ]
ネタにマジレスして恥ずかしいので軽く吊ってくる

847 名前:デフォルトの名無しさん [2009/07/09(木) 23:43:14 ]
デフォルトの名無しさん:2009/07/09(木) 20:13:56
1] 授業単元: アルゴリズム
[2] 問題文(含コード&リンク): LLLアルゴリズムをCでプログラミング
[3] 環境
 [3.1] OS: (Windows/Linux/等々) Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc
 [3.3] 言語: C言語
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 2009年7月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

Webや本を見ているのですが、
二次行列で書いてあったり一次行列で書いてあったりしてよく分かりません。
よろしくお願いします


848 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:19:21 ]
[1] 授業単元:C++
[2] 問題文(含コード&リンク):日曜日から土曜日までの曜日を表す列挙型Dayが定義されている.このとき,2つの曜日を引数として与えると,その曜日間の最短距離を計測する関数day_distanceを作成せよ.
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:C++
 [3.3] 言語: C++
[4] 期限: 2009年7月10日午前9時半 なので午前5時ぐらいまでにやっていただければ・・・
[5] その他の制限:

関数distanceの呼び出しは↓
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};
int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

以下,続きへ



849 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:21:47 ]
>>848の続きです

#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};//曜日を表す列挙型の定義
void day_load(Day a, Day b){
if(a<b){
Day temp;
temp=a,a=b,b=temp;}
switch(a-b){
case 1:
cout << "1" << endl;
break;
case 2:
cout << "2" << endl;
break;
case 3:
cout << "3" << endl;
break;
}
}
int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

のように作ったら,day_distanceが宣言されないと言われます
どうすればいいでしょうか?

850 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:25:35 ]
day_loadじゃないの?

851 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:27:35 ]
voidの横をday_distanceにすると,voidとcoutの3つにエラーが出てしまいます
ちなみにEclipseでやってます

852 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:38:58 ]
>>849
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される



day_load(Sun, Tue);
day_load(Mon, Fri);
day_load(Sun, Sat);

に変える

853 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:40:17 ]
とりあえず答えだけ。いろいろアレ過ぎるんで、ネットじゃなくリアルで指導してもらった方が良い。

int day_distance(Day a, Day b){
  return a > b ? a - b > 7 - a + b ? 7 - a + b : a - b : b - a > 7 - b + a ? 7 - b + a : b - a;
}


854 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:42:05 ]
>>849
>のように作ったら,day_distanceが宣言されないと言われます
>どうすればいいでしょうか?
day_distanceを宣言する

#include <iostream>
#include <cmath>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};

int day_distance(Day d1,Day d2){
int table[]={0,1,2,3,3,2,1};//,{1,0,1,2,3,3,2},
return table[abs(d2-(d1-Sun))%7];
}

int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

そのswitch-case

855 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:43:17 ]
は汎用性無いからやめた方がいい

途中で書き込んでしまったorz

856 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 00:47:39 ]
>>854
すみません,includeの<cmath>って何でしょうか・・・?
<iostream>しか使ったこと無いので・・・

857 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:09:13 ]
math.hのC++版。数学関連の関数を使うために入れてる。ここではabs

858 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:10:36 ]
追記
iostreamをなぜ使っているかを理解してれば、そのような疑問は出てこないと思うんだけどね。
おまじないの犠牲者じゃないことを祈る。



859 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:25:55 ]
>>857
すみません,習ってないので分からないです・・・
もしswitchでやる場合は,どこをいじればいいでしょうか?

860 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:30:25 ]
>>857だけど、>>854は別人ね。

iostreamは習ったから使ってるという認識でいいのかな。
何のためにiostream使ってるの?

861 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:33:10 ]
>>860
すみません、恥ずかしながら分からないです・・・
ただ「プログラミング演習」という授業で、プリントなどに最初からinclude<iostream>と書いていたので・・・

862 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:34:23 ]
問題点1
 ・day_load関数を定義した
 ・day_distance関数を呼び出した
 という名前の矛盾
問題点2
 day_(load|distance)関数の戻り値がvoidであるにも関わらず、
 main関数で cout に放り込んでしまっていること

switchがどうとかよりも、根本的な問題点はここなので、
そこを解決すればとりあえずは動くようになると思うし、
これまで通りロジックを考えることに専念できると思う

863 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:39:40 ]
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat}



int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}
は最初から問題で定義されているので,この状況でswitchを使う場合はどうすればいいでしょうか?

864 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:40:03 ]
問題点1について>>850が解決方法を提案し
>>851で問題点1を解決した結果、問題点2が表面化した。
>>852は問題点2の解決方法を提案してくれたが>>849はそれを無視している。

問題解決は目前であるにも関わらず、全く別の解決方法である>>854に目を向けて
cmathがなんであるかなどと悩んでいる。

865 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:42:21 ]
day_distance関数が数値を返すようにすればいい。

866 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:44:41 ]
>>864
あ、すみません
coutの3つをday_loadに変更してもエラーが発生したもので・・・

>>865
すみません、分かりません・・・
本当に無知で申し訳ないです・・・

867 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:53:15 ]
>>866
int day_distance(Day a, Day b){ // 戻り値をintに変えた
中略
case 1:
return 1; // コンソール出力をするのではなく、数値を返却するように変えた
case 2:
return 2; // コンソール出力をするのではなく、数値を返却するように変えた
case 3:
return 3; // コンソール出力をするのではなく、数値を返却するように変えた
}
return -1; // どれにも当てはまらない場合は不正とみなして-1を返却するようにした
}

そもそも、main関数の記述が指定されている以上、>>852の提案をはねつけるべき。

868 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 01:59:25 ]
>>867
共に3と1が出力されるはずの2行目と3行目で-1が出力されてしまいます・・・



869 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:02:05 ]
>>848 >>849
に質問があるけど
>>859
switchを使うのは必須なの?
題意を満たすプログラムの制約をちゃんと示さないと無駄な回答が増えるだろ

>>868
よくわかんないけど今まで言ってた条件満たしたプログラム書いてやるから待ってろ

870 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:03:38 ]
>>868
それはあなたがこだわっていたswitchのロジックがおかしいだけ。
>>862の、
> これまで通りロジックを考えることに専念できると思う
はそれを指しているんじゃないの。

871 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:04:55 ]
>>869
作ってくれなんて言われてないのに親切なお方

872 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:05:12 ]
>>869
学校で友人に聞いたプログラミングの中にswitchが入っていたのですが、時間の都合上途中までしか聞けなかったもので・・・

873 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:08:25 ]
#include <iostream>
using namespace std;
enum Day{Sun, Mon, Tue, Wed, Thu, Fri, Sat};

int day_distance(Day d1,Day d2){
int table[]={0,1,2,3,3,2,1};//,{1,0,1,2,3,3,2},
int distance=d2-(d1-Sun);
distance=(distance<0)?-distance:distance;
return table[distance%7];
}

int main(){
cout << day_distance(Sun, Tue) << endl;//2が出力される
cout << day_distance(Mon, Fri) << endl;//3が出力される
cout << day_distance(Sun, Sat) << endl;//1が出力される
return 0;
}

874 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:13:25 ]
>>873
ありがとうございます! ちゃんと出力されました!

他の皆さんも多大な迷惑をかけて申し訳ないです・・・

875 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:24:10 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
文字列xに文字列yが含まれるかどうかを判定する関数str_comp(char[],char[])を作成せよ.

出力例:

文字列x(64字まで)? University
文字列y(64字まで)? sity
"University"に"sity"は含まれます。

文字列x(64字まで)? University
文字列y(64字まで)? city
"University"に"city"は含まれません。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/17
[5] その他の制限:文字列まで.

お願いします

876 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:36:23 ]
>>875
/* 含まれる場合は1 含まれない場合は0を返却 */
int str_comp(char src[],char dst[])
{
return (strstr(src, dst) != NULL);
}


877 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 02:38:31 ]
変数名がおかしすぎた。

/* 含まれる場合は1 含まれない場合は0を返却 */
int str_comp(char target[],char search[])
{
return (strstr(target, search) != NULL);
}

878 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 03:13:47 ]
[1] 授業単元:プログラミング言語
[2] 問題文(含コード&リンク):
char型配列xに格納された文字列を一文字ごとに空白を開けて逆順に出力する関数
reverse_array(char[])を以下のように出力されるよう作成せよ。

処理前:Tokyo
関数reverse_array()を呼び出しました
処理後:"o y k o T"


[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 7/14
[5] その他の制限:おねがいします。



879 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 03:49:22 ]
>>878
void reverse_array(char s[])
{
int i, len = strlen(s);
printf("処理前:%s\n", s);
puts("関数reverse_array()を呼び出しました");
printf("処理後:\"");
for(i=len-1; i>=0; --i){
putchar(s[i]);
if(i) putchar(' ');
}
puts("\"");
}

880 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 04:20:26 ]
>>877
ありがとう
それ使って書いてみたんだけどエラーが出てしまう・・・。
関数勉強し直します……。
誰か暇だったらでいいので例をつくってください。

881 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 04:47:24 ]
>>880
877じゃないけどどんなエラーがでたのか書こうぜ

例ってなにを作って欲しいんだ?

882 名前: ◆/91kCCQXBo mailto:sage [2009/07/10(金) 07:20:19 ]
エラーはこれを定義すれば直ると思う。
#include <string.h>

main(スタブ)からは、関数パラメータを2個付けて呼び出すだけでいいだろう。

883 名前:デフォルトの名無しさん [2009/07/10(金) 11:10:12 ]
すいません、どなたか>>825をお願いします
厚かましくて申し訳ありません・・・

884 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:32:07 ]
>>883
課題1
#include <stdio.h>

int main(int argc, char **argv)
{
if (argc < 3) { fprintf(stderr, "Error: too few arguments\n"); return 1; }
if (argc > 3) { fprintf(stderr, "Error: too many arguments\n"); return 1; }
printf("My name is %s %s\n", argv[1], argv[2]);
return 0;
}

885 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:37:46 ]
>>883
課題2
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main(int argc, char **argv)
{
int s = 0;
int i;
if (argc < 3) { fprintf(stderr, "Error: too few arguments\n"); return 1; }
for (i = 1; i < argc; i++) {
char *c;
for (c = argv[i]; *c; c++) {
if (!isdigit(*c)) {
fprintf(stderr, "Error: %s is illegal arguments\n", argv[i]);
return 1;
}
}
s += atoi(argv[i]);
}
printf("%d\n", s);
return 0;
}

886 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:37:59 ]
>>882
ありがとう、それ入れたらコンパイルできた。
>>881
コンパイルできる状態のプログラムが見たかったんだ。


887 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 11:42:37 ]
>>883
課題3
実行例3の結果は4になるんじゃないかな

#include <stdio.h>

int sum(int n, int m)
{
return (n >= m)? n: n + sum(n + 1, m);
}

int main(int argc, char **argv)
{
int n, m;
printf("n m: "); scanf("%d %d", &n, &m);
if (n > m) { fprintf(stderr, "n should be smaller than m.\n"); return 1; }
printf("%d\n", sum(n, m));
return 0;
}

888 名前: ◆/91kCCQXBo mailto:sage [2009/07/10(金) 11:50:27 ]
3連続投球終わったか?
//>>863 >>848の先生は、なんで火曜から月曜が1日なんて常識はずれな。
enum Day {Sun,Mon,Tue,Wed,Thr,Fri,Sat}; // Sun=0
int day_load[7][7] = {{0,1,2,3,3,2,1},{1,0,1,2,3,3,2},{2,1,0,1,2,3,3},{3,2,1,0,1,2,3},{3,3,2,1,0,1,2},{2,3,3,2,1,0,1},{1,2,3,3,2,1,0}};
int table[]={0,1,2,3,3,2,1};
int day_distance(enum Day st, enum Day en){
  int work,a=st,b=en;

  switch(0) { /* ここには 1 から 4 の数字を入れる。どれでも同じ結果になる。 */
  case 1: /* compact cost > speed cost */
    work = st<en?en-st:st-en;
    return work<=3?work:7-work;
  case 2: /* compact cost < speed cost */
    return day_load[st][en];
  case 3: /* >>853 */
    return  (a > b) ?
        (  (a - b > 7 - (a - b)) ?
            (7 - (a - b)) :
            (a - b)
        ):( (b - a > 7 - (b - a)) ?
            (7 - (b - a)) :
            (b - a)
        );
  case 4: /* >>854 */
    work = st<en?en-st:st-en;
    return table[work%7];
  default: /* NORMAL */
    return (en-st+7)%7;
  }
}



889 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:00:07 ]
>>762
これもできればよろしくお願いします。

890 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 12:35:51 ]
>>889
よくわからんけどなんとなくそれっぽいものを書いてみた
#include <stdio.h>

#define A 3
#define M 65535
#define N 128
#define S 17

int main(void)
{
int a[N];
int x0, x1;
int i;

x0 = S;
for (i = 0; i < N; ++i) {
x1 = (A * x0) % M; a[i] = x1; x0 = x1;
}
for (i = 0; i < N; ++i) {
printf(" %8d", a[i]);
if ((i + 1) % 8 == 0) puts("");
}
return 0;
}

891 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 14:54:16 ]
>>890
ありがとうございます。助かります。

892 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 17:01:55 ]
yaccとlexですがどなたか>>747よろしくお願いします。

893 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 18:14:31 ]
>>892
fabs,cosはlogを参考にすればいいし。
キャストは簡単だよね。

894 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 18:21:51 ]
>>893
すいません、やってもらうことはできませんか?

895 名前:505 [2009/07/10(金) 19:44:39 ]
 未解決問題
>>847 LLLアルゴリズムをCでプログラミング 7月17日
>>827(9720) コマンドの引数xxxxで指定したファイルが更新されたら直ちにメッセージを表示する 7月13日正午
>>824>>822 何人かの学生の3教科(数学、国語、英語)の得点を2次元配列を用いて処理する 7月9日 19:10
>>820 3入力のクワイン・マクラスキー法のプログラム 7月13日
>>799 指定された点x,yを含む指定された境界色C2で囲まれた平面領域を指定された色C1で塗りつぶす 7月17日 正午
>>791(9708,9709,DLL_BMP_C) 歌詞を暗号鍵Kとして読み込み、画像 NewYear2003.bmpを暗号化した画像Cを生成する。 7月15日
>>790 入力したtxtファイルをFFT、IFFTせよ 7月8日 24:00
>>772 2問。4次のルンゲ−クッタ法を用いて連立微分方程式を解く 7月28日
>>749 配列を用いた計算機のプログラム 7月12日
>>747(9696)>>892 yacc,lex 7月14日
>>681(down11.ddo/1246872574) DirectX マップチップ 7月9日
>>660(fukushima.jp) パソコン甲子園 2008 予選問題 問7 ふしぎな虫 7月6日
>>607 簡単なデータベース機能を持つプログラム 7月13日
>>451(9656)>>504(9661,9662) 最短路問題を解くアルゴリズムとしてベルマンフォード法がある。 7月6日

896 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 22:36:21 ]
[1] 授業単元: プログラミングW
[2] 問題文(含コード&リンク): オブジェクト指向を使って何でも良いのでプログラム
                を書け
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C++
[4] 期限: 7月17日(金)
[5] その他の制限: メソッドを5個以上使う 変数はpublicとprivateを使いわける

897 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:02:41 ]
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):この続きからC言語でベルマンフォードをお願いしたいです。

#include <stdio.h>
#include <stdlib.h>

main(void)
{
int n, s;   /*頂点数、始点*/
int M;     /*辺のないところを指定する数*/
int i, j, k;
int W[100][100]  /*重みを指定した行列*/
FILE *infile;   /*入力ファイル*/

infile = fopen("data1.txt", "r");  /*入力ファイル名はdata1.txt*/
fscanf(infile, "%d %d", &n, &s);   /*頂点数、始点の読み込み*/
for ( i=1 ; i<=n ; i++ ){
for ( j=1; j<=n; j++){
fscanf(infile,"%d\n",&W[i][j]); /*読み込み部分*/
}
}
fclose(infile);  /*ファイルを閉じる*/

[3] 環境
 [3.1] OS:linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: c
[4] 期限: 2009年7月31日
[5] その他の制限:一番簡潔な書き方でお願いします@@;

898 名前:デフォルトの名無しさん [2009/07/10(金) 23:17:25 ]
コンパイルしてアスタリスクがダイヤ形になるプログラムを教えてください。




899 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:35:21 ]
>>897
・問題文は、出題されたまま全文を書いてください。


900 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:42:12 ]
>>886
文字列まで習ったって書いてあったから。。。

901 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:50:52 ]
[1] 授業単元: C言語プログラミング演習
[2] 問題文(含コード&リンク): プログラムを実行すると
行列1:
1,2,3
4,5,6
7,8,9
行列2:
3,4,5
6,7,8
9,10,11
と表示する。最後に行列1と行列2の積を計算し、以下のように表示
するプログラム。
[行列1と行列2の積は
?,?,?
?,?,?
?,?,?]

課題2
配列のサイズを大きくして、時間を計測する。配列の内容は、各自指定すること。1から順に値を入れていってもよい

[3] 環境
 [3.1] OS: Windows/vista
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: ([2009年7月15日まで]
[5] その他の制限: この流れの通りにやること
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9721.txt

お願いします。

902 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:51:59 ]
>>827
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>
#define SLEEP_TIME 1
int main(int argc, char *argv[])
{
  struct stat file;
  time_t prev_mtime;
  if (argc != 2) {
    printf("Usage: exp7 file1 file2\n");
    exit(1);
  }
  if (stat(argv[1], &file) != 0) {
    printf("%s not found\n", argv[1]);
    exit(1);
  }
  prev_mtime = file.st_mtime;
  while (1) {
    stat(argv[1], &file);
    if (file.st_mtime != prev_mtime) {
      printf("\nModified %s %s", argv[1],
        asctime(localtime(&file.st_mtime)));
      prev_mtime = file.st_mtime;
    }
    sleep(SLEEP_TIME);
  }
}

903 名前:デフォルトの名無しさん mailto:sage [2009/07/10(金) 23:53:35 ]
>>897
すみません

>>896
問題:与えられた重みつき有向グラフGと指定された頂点sに対してベルマンフォード法を実行するプログラムをC言語を用いて作りなさい。

・入力は以下の形式で記述されたテキストファイルによるものとする。

Gの頂点数、頂点s(番号)
Gの各辺の重みを指定した行列(辺のないところは値を100とする)


5 1
100 2 1 100 100
100 100 100 -1 100
100 -1 100 100 1
100 100 3 4 100
100 100 100 100 100

・頂点数は最大100まで対応できるようにする
・入力ファイルから読み込む形式にする

904 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:12:47 ]
>>901 課題1
#include <stdio.h>

int main(void)
{
int a[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[3][3] = {{3, 4, 5}, {6, 7, 8}, {9, 10, 11}};
int ans[3][3];
int i, j, k;
puts("行列1:");
for (i = 0; i < 3; ++i) {
for (j = 0; j < 2; ++j) printf("%d,", a[i][j]);
printf("%d\n", a[i][j]);
}
puts("行列2:");
for (i = 0; i < 3; ++i) {
for (j = 0; j < 2; ++j) printf("%d,", b[i][j]);
printf("%d\n", b[i][j]);
}
for (i = 0; i < 3; ++i) for (j = 0; j < 3; ++j) ans[i][j] = 0;
for (i = 0; i < 3; ++i)
for (j = 0; j < 3; ++j)
for (k = 0; k < 3; ++k) ans[i][j] += a[i][k] * b[k][j];
puts("[行列1と行列2の積は");
for (i = 0; i < 2; ++i) {
for (j = 0; j < 2; ++j) printf("%d,", ans[i][j]);
printf("%d\n", ans[i][j]);
}
for (j = 0; j < 2; ++j) printf("%d,", ans[i][j]);
printf("%d]\n", ans[i][j]);
return 0;
}

905 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:34:56 ]
>>903
アンカミス?だよね


906 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 00:47:17 ]
>>898
#include <stdio.h>

int main(int argc, char **argv)
{
if (argc > 1) {
char *c;
for (c = argv[1]; *c; c++)
if (*c == '*') printf("◇");
else putchar(*c);
}
return 0;
}

907 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:00:04 ]
わざと誤読すんなw

908 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:00:49 ]
>>896
オブジェクト指向?それっておいしいの??と思ってる人間が書いたソース。
継承しないで委譲って感じになってると思う。
あと、動作は保障しない。うちの環境はVC9EEだ。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9722.zip



909 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 01:41:23 ]
>>896
>>908さんとかぶったが一応やってみた
俺はC++本当にど素人なので何も保障できない
参考までに使ってくれ
ttp://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/15-16

910 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:37:06 ]
901ですが>>904 ありがとうございます
じつは自分でもやっていたのですがkansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9723.txt
この文の最初のfor(j=0;j<3;j++)の後ろにfor(l=0;l<3;l++)
main文の中のj=0;j<3;j++)の後ろにfor(l=0;l<3;l++)をつけたい
場合(答えはつける前と同じで)各 ans[i][j]=○○をどうやって書いたらいいのでしょうか?
 

911 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:40:06 ]
>>910
>>904見ればわかるだろ

912 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:52:28 ]
と突き放しつつ
ans[i][j]=ans[i][j]+a[i][l]*b[l][j];

913 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 03:56:22 ]
>>911
>>912
911のコメントの後、作ったらできました。ありがとうございました!またそのあとのフォローのコメントもうれしかったです!


914 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 05:51:46 ]
>>905
間違えました!すみませぬ。。。

>>903>>897の修正です。よろしくお願いします。

915 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 11:17:40 ]
>>898 ダイヤマークは周囲だけ?つまりダイヤマークの中は半角空白?
 問題 >>前953(9534) 解答 >>014(9548)

916 名前:デフォルトの名無しさん [2009/07/11(土) 14:08:29 ]
【質問テンプレ】
[1] 授業単元:情報基礎B
[2] 問題文(含コード&リンク):(1) 平均、標準偏差
(2) 得点の高い順の点数のリスト
[3] 環境
 [3.1] OS:Linux
 [3.2] 不明です
 [3.3] 言語: C++
[4] 期限: 7・18まで
[5] その他の制限:基本的なやつでお願いします。(2)はバブルソート

917 名前:デフォルトの名無しさん [2009/07/11(土) 14:09:57 ]
連投すいません
問題文に「試験の点数10人分をキーボードから入力」が抜けていました

918 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:10:35 ]
>>916
丸投げもできないのか?



919 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:13:29 ]
>916

しね

920 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:16:40 ]
>>916

おまえはカスだ

921 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:17:33 ]
>>916

sageろカス

922 名前:デフォルトの名無しさん [2009/07/11(土) 14:32:29 ]
[1] 授業単元:プログラミング入門
[2] 問題文(含コード&リンク):
if文を使って、月数に応じてコメントを表示するプログラム(1月ならばwinter、3月ならspringといった具合に)を作る。
月は1月〜12月までなので、13月以上の数値を打ち込んだ場合はerrorと表示させること。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4…?
 [3.3] 言語:C
[4] 期限: 2009年7月25日
[5] その他の制限:全くの初心者です。コメントつけてくれるとさいわいです

923 名前:デフォルトの名無しさん [2009/07/11(土) 14:37:13 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):下に示すように,最初に整数を読み込み,その後,その個数だけ整数を読み込んでいき,そ
の合計と平均を表示するプログラムを作成せよ。
整数は何個ですか: 6
No.1 : 65
No.2 : 23
No.3 : 47
No.4 : 9
No.5 : 153
No.6 : 777
合計値: 1074
平均値: 179.00
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 09年07月30日
[5] その他の制限:どうかよろしくお願いします。

924 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:38:34 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
多数のファイルをクローズせずに何個もオープンするとどうなるか実験せよ.
実験用プログラム fopen.c のソースと実験結果と考察をレポートすること.

% ./fopen
入力ファイル:fopen.c
オープン 1 回目
オープン 2 回目
オープン 3 回目
...
オープン ??? 回目
これ以上オープンできません!

注意:「○○回までオープンできた」とかでは,現象・結果の説明にすぎず,考察とは言えない. その結果から何が理解できるのか?推理せよ. 換言:実験結果(具体例)から一般規則を導き出せ.

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:09/07/20
[5] その他の制限: 特になし

925 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 14:59:22 ]
>>916 LinuxならコンパイラはgccだろJK

926 名前:LOG参考まで mailto:sage [2009/07/11(土) 14:59:29 ]
>>922 if文を使って、月数に応じてコメントを表示する
問題>>019 解答>>022(CODE)>>025(CODE)


>>923 最初に整数を読み込み,その後,その個数だけ整数を読み込んでいき,合計と平均を表示する
問題>>050 解答>>052(CODE)


>>924 多数のファイルをクローズせずに何個もオープンするとどうなるか実験せよ
問題>>688-689(9693) 回答>>696(9695)>>709(CODE)>>716(CODE)

927 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:04:46 ]
>>916
トンぺ─乙wwwww

928 名前:デフォルトの名無しさん mailto:sage [2009/07/11(土) 15:20:19 ]
>>922 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9725.txt
>>923 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9726.txt




929 名前:デフォルトの名無しさん [2009/07/11(土) 22:21:40 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
主語、目的語、述部が入ったデータファイルを読み込み、それらをランダムに組み合わせて生成した短文を20個ファイルに出力するプログラムの作成。
短文の構文は必ず、「(主語)は、(目的語)(述部)。」となるようにする。

出力例:俺は、カレーが大好きだ。

データファイルは以下を使用すること。
主語: 俺 私 あなた 彼 彼女 先生 犬のポチ 猫のタマ ライオン その人 政治家 ネズミ  の12個
目的語: カレー ご飯 肉 授業 男 女 すごいもの アレ アンパン お金  の10個
述部: が大好きだ が大嫌いだ を作った をなくした が欲しい に全力を尽くす を新しいものに交換した ?なにそれ美味いの? について深く考えた を捨てた に塩をふりかけた の11個
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: C
[4] 期限: 2009年7月20日

930 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:02:34 ]
全角空白' '区切り、1項目目は(主語などの)タイトルでいいのか?

931 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:07:48 ]
むしろ>>930が何を言ってるのか分からない
タイトルって何だ

932 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:10:43 ]
>>931
なんで分からないのかが分からない

933 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:11:23 ]
つまりレコードの第1フィールドと各フィールドの区切り文字の話をしたいんじゃろ。
まったくもって>>930の考えているとおりでいいんじゃないか?

>データファイルは以下を使用すること。

ってなってるんだから、この形のまま記録されてるってことになる。

934 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:12:44 ]
当然 "  の12個" とかも含まれるんだろうね

935 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 01:12:48 ]
ちなみに最終フィールドは「の12個」のように
全角でそのレコードの総単語数が記録されているということに・・・

936 名前:デフォルトの名無しさん [2009/07/12(日) 01:28:41 ]
「の12個」などは含みません!
「の12個を使用すること」 という意味です。
分かりやすいようにつけたつもりだったんですが、逆にわかりづらくしてしまいました。
ごめんなさい。

937 名前:931 mailto:sage [2009/07/12(日) 02:07:36 ]
ああ、おk
>>930がネタだと気づかなかった

938 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 02:30:17 ]
どういう思考をしたらネタになるんだよ
文字ごとの区切りは本当に全角スペースでいいのか
各行の始まりに本当にXX: があるのかは重要なポイントだろ
てかサンプルファイルをロダに上げろよ



939 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 03:10:30 ]
>>929
一応作ってみた
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9730.txt

元々用意しておくファイルは、test2.txtとなってるから、そこは自分で名前変えて
あと、あまり自信はないから間違ってたらごめん
他にも作ってる人いるっぽいからそっち参考にした方が良いと思う
test2.txtはノートパッドに↓を貼り付け、実行ファイルと一緒のフォルダに保存
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9731.txt

940 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 04:59:18 ]
>>897
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9732.c (ベルマンフォード法)

941 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:19:08 ]
以下のプログラムを、C++で動作させるにはどうしたらよいでしょうか

#include <stdio.h>
#include "gauss.h"
#define LL 10


int main(void)
{
double a[LL] [LL+1] ,x[LL],esp10.e-19;
int i, j, n;
int ipivot;
int sw=1;

scanf("%d",&n);
for (i=0; i<n; i++)
for(j=0; j<=n; j++)
scanf(" %lf",&a[i] [j]);

ipivot=gauss(*a,x,LL,n,esp,sw);

if(ipivot== 1)
for(i=0;i<n;i++)
printf("x %d=%lf\n",i+1,x[i]);
else{
printf("ピボット値が小さすぎるので");
printf("計算を中断、終了させました");
}
return(0);
}


942 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:42:56 ]
>>941
1.#include <stdio.h> 
 を
 #include <cstdio>
 にかえる

2.C++のコンパイラでコンパイルする

以上

943 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 12:43:15 ]
>>941
gauss.h を見せて

944 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:00:00 ]
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
www.dotup.org/uploda/www.dotup.org229227.zip
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2005
 [3.3] 言語: C
[4] 期限:7/16 18:00 〆
[5] その他の制限:2つあります よろしくお願いします

945 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 14:14:04 ]
>>940
助かりました!ありがとうございましたー

946 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 15:34:11 ]
【質問テンプレ】
[1] 授業単元 C言語
[2] 問題文(含コード&リンク):
二つのバイナリファイルの中身を比較して等しいか、等しくないかを比較して結果を返す関数を作る
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン Visual Studio 2005
 [3.3] 言語: C
[4] 期限:7月13日
[5] その他の制限 ヒントにはバイトを比べると書いてありました


947 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:22:12 ]
>>944 文字列strの中に、文字chが含まれている個数を返す関数
問題>>332(9629) 解答>>338(9632)>>341(1246384344/6)

>>944 文字列を左右逆に並び替える関数
問題>>150 解答>>153(9574)

948 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 16:56:04 ]
>>941 >>1 これでOKならC++じゃなくてCのミス。
イプシロンの後にイコールを1つ入れる。
double a[LL] [LL+1] ,x[LL],esp=10.e-19;
D:\>type gauss.h
int gauss(double*,double*,int,int,double,double);
int gauss(double *a,double *b,int c,int d,double e,double f){
printf("%lf %lf %lf %lf\n",a[0],a[1],a[2],a[3]);
}
ファイル名を、任意.cで保存する。
D:\>gcc mondai.c
D:\>a
2
11
12
13
14
15
16
11.000000 12.000000 13.000000 nan
ピボット値が小さすぎるので計算を中断、終了させました



949 名前:デフォルトの名無しさん [2009/07/12(日) 18:15:29 ]
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9733.txt
[3] 環境
 [3.1] OS: windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C
[4] 期限: 7月14日 00:00まで
[5] その他の制限: テキストに記載してあります。C言語の基本的なことは大方学びました。

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

950 名前:デフォルトの名無しさん [2009/07/12(日) 19:15:07 ]
【質問テンプレ】
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
下に示すように,要素数が7 でint 型の配列に読み込んだ全要素を逆順に並べ替えるプログ
ラムを作成せよ.

vx[ 0] : 58
vx[ 1] : 32
vx[ 2] : 17
vx[ 3] : 46
vx[ 4] : 22
vx[ 5] : 73
vx[ 6] : 69
vx[ 0] = 69
vx[ 1] = 73
vx[ 2] = 22
vx[ 3] = 46
vx[ 4] = 17
vx[ 5] = 32
vx[ 6] = 58
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 7月14日まで
[5] その他の制限:

951 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:31:40 ]
>>950
#include <stdio.h>
void rev(int* a,int size){
int i,temp;
for(i = 0;i < size/2;i++){
temp = a[i];
a[i] = a[size-i-1];
a[size-i-1] = temp;
}
}
int main(){
int i;
int vx[] = {58,32,17,46,22,73,69};
printf("before\n");
for(i = 0;i < sizeof(vx)/sizeof(vx[0]);i++){
printf("vx[%d] = %d\n",i,vx[i]);
}

rev(vx,sizeof(vx)/sizeof(vx[0]));

printf("after\n");
for(i = 0;i < sizeof(vx)/sizeof(vx[0]);i++){
printf("vx[%d] = %d\n",i,vx[i]);
}
return 0;
}

952 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 19:35:58 ]
>>950
#include <stdio.h>
#define MAX_COUNT 7
int main() {
  int i, t, vx[MAX_COUNT];

  for(i=0; i<MAX_COUNT; i++) { /* 入力 */
    printf("vx[%2d] : ", i);
    if(scanf("%d", &vx[i]) != 1) {
      scanf("%*s"); i--;
    }
  }
  for(i=0; i<MAX_COUNT/2; i++) { /* 入れ替え */
    t = vx[i], vx[i] = vx[MAX_COUNT-1-i], vx[MAX_COUNT-1-i] = t;
  }
  for(i=0; i<MAX_COUNT; i++) { /* 表示 */
    printf("vx[%2d] = %d\n", i, vx[i]);
  }
  return 0;
}

953 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:05:19 ]
誰か>>946をお願いいたします。

954 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:18:51 ]
>>946
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
  FILE *fp1, *fp2;
  
  if(argc != 3) {printf("Usage : %s file1 file2\n", argv[0]); return 1;}
  if(strcmp(argv[1], argv[2]) == 0) {puts("同じファイルです"); return 0;}
  fp1 = fopen(argv[1], "rb");
  if(fp1 == NULL) {printf("%s file open error!\n", argv[1]); return 1;}
  fp2 = fopen(argv[2], "rb");
  if(fp2 == NULL) {printf("%s file open error!\n", argv[2]); fclose(fp1); return 1;}
  while(getc(fp1) != getc(fp2)) {
    puts("異なります");
    fclose(fp2);
    fclose(fp1);
    return 2;
  }
  puts("同じです");
  fclose(fp2);
  fclose(fp1);
  return 0;
}

955 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 20:56:03 ]
>>954
ありがとうございます

956 名前:デフォルトの名無しさん [2009/07/12(日) 22:07:29 ]
どなたか>>949お願い出来ませんか?
一つのプログラムにまとめて頂いても結構ですので、よろしくお願いいたします。

957 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 22:55:27 ]
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
100個の乱数を発生させ最大値、最小値、平均を求める
また最大値、最小値それぞれ何番目にあるか答えよ
(最初に読み込んだデータを1番目とする)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 7月20日まで
[5]基本的なのでお願いします

958 名前:デフォルトの名無しさん [2009/07/12(日) 23:13:34 ]
>>957
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9734.txt



959 名前:デフォルトの名無しさん mailto:sage [2009/07/12(日) 23:54:24 ]
>>958
ありがとうございました!

960 名前:デフォルトの名無しさん [2009/07/13(月) 00:34:48 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
下に示すように,要素数が5 でint 型の配列に、5 人の学生の身長を読み込んで、その平均
身長を求めるプログラムを作成せよ。
身長を入力してください
1 番: 178
2 番: 175
3 番: 165
4 番: 179
5 番: 172
平均身長: 173.8vx[ 0] : 58
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 7月15日まで
[5] その他の制限: まだ基礎しか習ってません。

よろしくお願いします。

961 名前:960 [2009/07/13(月) 00:36:39 ]
訂正です

平均身長: 173.8vx[ 0] : 58

平均身長: 173.8

962 名前:デフォルトの名無しさん [2009/07/13(月) 01:09:27 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
www.dotup.org/uploda/www.dotup.org231968.txt.html
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C
[4] 期限: 090714
[5]特になし

お願いします

963 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:40:40 ]
>>949 >>956
はいよ。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9735.c

964 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 01:59:52 ]
[1] 授業単元: プログラミング演習2
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9736.zip
[3] 環境
 [3.1] OS: Linux CentOS5
 [3.2] コンパイラ名とバージョン: gcc 3.4.1
 [3.3] 言語: C
[4] 期限: 2009年07月14日10:00
[5] その他の制限: じpに入っているk1.cを書き換えて完成させろという課題です。
よろしくお願いいたします。

965 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:00:02 ]
>>960
#include <stdio.h>

int main(void)
{
double ave = 0;
int a[5];
int i;
for (i = 0; i < 5; i++) { printf("%d番: ", i + 1); scanf("%d", &a[i]); }
for (i = 0; i < 5; i++) ave += a[i];
printf("平均身長: %.1f\n", ave / 5);
return 0;
}

966 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:12:45 ]
>>964
最初から自分で書くなら兎も角、他人の書いた途中なソースに加筆して完成させるというのは
それ以上の高度なスキルが必要でこのスレでそれが出来そうなのは麻呂(ry

967 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:21:10 ]
分子=1
分母=1063
1/1063=(0.000940733772342)
0.
[
0009407337723424270931326434619002822201317027281279397930385700846660( 70)
3951081843838193791157102539981185324553151458137347130761994355597365( 140)
9454374412041392285983066792097836312323612417685794920037629350893697( 210)
0837253057384760112888052681091251175917215428033866415804327375352775( 280)
1646284101599247412982126058325493885230479774223894637817497648165569( 350)
1439322671683913452492944496707431796801505174035747883349012229539040( 420)
4515522107243650047036688617121354656632173095014111006585136406396989( 490)
6519285042333019755409219190968955785512699905926622765757290686735653( 560)
8099717779868297271872060206961429915333960489181561618062088428974600( 630)
1881467544684854186265286923800564440263405456255879586077140169332079( 700)
0216368767638758231420507996237064910630291627469426152398871119473189( 770)
0874882408278457196613358419567262464722483537158984007525870178739416( 840)
7450611476952022577610536218250235183443085606773283160865475070555032( 910)
9256820319849482596425211665098777046095954844778927563499529633113828( 980)
7864534336782690498588899341486359360301034807149576669802445907808090( 1050)
310442144873]( 1062)


968 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 02:30:59 ]
下手の横好きってやつなんだけど、>>954のプログラムについて聞きたい
getc関数は一文字しか返さないから、その文字がたまたま一緒だった場合、
別の内容だったとしても同じだと判断してしまう危険性とかはないんだろうか?
バイナリファイル自体がよく解ってない初心者なので、
誰かちょっと解説してもらえると助かる



969 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 03:04:25 ]
>>968
その通り、getc,fgetcは使用すべきではないし、
ロジックもあなたの言う通り間違ってる。
コードを加筆修正して正しいコードを書いてみそ

とでも>>954は言いたげな漢字

970 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:13:09 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9737.zip

[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C
[4] 期限:7/16/
[5] その他の制限:
問題文の通りにやっていただければ結構です。
宜しくお願いします。

971 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 05:51:03 ]
>>970
/* */
len = (int)str_length(st);
for(i=0;i<len/2;i++) {
temp = *(st+i);
*(st+i) = *(st+len-i-1);
*(st+len-i-1) = temp;
}
/* */
rev_str(str);

972 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:03:57 ]
>>949
#include <stdio.h>
#define LEN 8192

int findrepeat(int r[], int *head, int *tail)
{
int i, j;
for (i = 0; r[i]; ++i)
for (j = i + 1; r[j]; ++j)
if (r[i] == r[j]) { *head = i; *tail = j; return 1; }
return 0;
}
int main(void)
{
int q[LEN], r[LEN];
int n, head, tail, i;

printf("n? "); scanf("%d", &n);
if (n == 1) { printf("1 / 1 = 1"); return 0; }

for (i = 0; i < LEN; ++i) q[i] = r[i] = 0;
head = tail = -1;
q[0] = 1 / n; r[0] = 1 % n;
for (i = 1; i < LEN && r[i - 1] != 0; ++i) {
q[i] = 10 * r[i - 1] / n; r[i] = 10 * r[i - 1] % n;
if (findrepeat(r, &head, &tail)) break;
}

printf("1 / %d = %d.", n, q[0]);
for (i = 1; q[i] || r[i]; ++i) { if (i - 1 == head) printf("("); printf("%d", q[i]); if (i == tail) printf(")"); }
return 0;
}

973 名前:デフォルトの名無しさん [2009/07/13(月) 06:42:36 ]
おはようございます>>678 です。

結局>>686をCに変換できませんでした…
どなたか、Cに書き換えてはいただけないでしょうか。

974 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:47:12 ]
最初からCって書いて置けよ
C++もはいってるじゃねーか

975 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:50:32 ]
>>973
どうみてもC++じゃなくてCで書かれてるんだが

976 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:53:10 ]
>>975
拡張子がtxtのままとかどうせレベルの低い話なんだろうけどなw

977 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:54:32 ]
>>976
それプラス
・課題(11_1)はmain_11_1をmainに書き換えてコンパイル
・課題(11_2)はmain_11_2をmainに(ry
ってのがわかってないんだと思う

978 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 06:56:50 ]
ああ、あまりにもあほらしくて中みてなかったが課題をまとめてくれてるのかw
ほんとにて取り足取りでないとできないのかw



979 名前:デフォルトの名無しさん [2009/07/13(月) 07:36:42 ]
これはいいツンデレ

980 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 07:47:26 BE:511223696-DIA(287979)]
次スレ立てました
C/C++の宿題片付けます 129代目
pc12.2ch.net/test/read.cgi/tech/1247438792/

981 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:28:03 ]
>>968
getcでもファイルの最後まで比較しながら読み込んでいけばいいんだけどね。
あなたの言うとおり、>>954は最初の1文字でしか判定してないから思いっきり間違ってる。
本人はwhile使ってるあたり、最後まで比較したつもりなんだろうけど。

982 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:50:46 ]
>>954 をいじるとこうなるのかな
do {
char c1, c2;
c1 = getc(fp1);
c2 = getc(fp2);
if (c1 != c2) { puts("異なります"); return 2; }
} while (c1 != EOF);
puts("同じです");
return 0;

983 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 08:51:41 ]
char じゃなくて int じゃないとまずいか

984 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 09:01:24 ]
初心者のころcharで受けて、ファイルの途中で読み込み終了して困ったことがあったなぁ。

985 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:00:54 ]
>>966
そこで麻呂はない

986 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:29:46 ]
>>975 >>736

987 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 10:45:07 ]
>>986
「どうみても」といいつつちゃんと見てなかったw
こいつは失礼した

988 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:48:55 ]
[1] 授業単元:アルゴリズム論演習
[2] 問題文(含コード&リンク):
 (1)3つ以上の整数の階層的プログラミングを行うプログラムを
 作成せよ。ただし、整数間の距離は差、クラスタ間の距離はそ
 れぞれの要素間の距離のうち最小のものとする。出力は、クラ
 スタか、あるいは整数a,bを足して得られるクラスタをa,bとし、
 これを帰納的に適用する表現で表せ。たとえば、1,2,5に対す
 る出力は((1,2),5)である。

 (2)3つ以上の2次元ベクトルの階層的プログラミングを行うプ
 ログラムを作成せよ。ただし、ベクトル(u1,u2)と(v1,v2)の間
 の距離をsqrt(u1*v1 + u2*v2)とし、クラスタ間の距離はそれ
 ぞれの要素間の距離の平均とする。出力は(1)の表現を用いよ。
[3] 環境
 [3.1] OS:Windows
 [3.2] VisualStudio2008EE
 [3.3] 言語:C/C++のどちらでも可
       (できれば後学のためC++でお願いします。)
[4] 期限: [2009年07月23日まで]
[5] その他の制限:特に制限はありません。




989 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 12:50:09 ]
>988
よろしくお願いいたします><;

990 名前: ◆/91kCCQXBo mailto:sage [2009/07/13(月) 13:00:51 ]
>>982 お世話になった。
>>953 の時は作業中だったのに無理してしまった。

>>955 line 12 : while(getc(fp1) != getc(fp2)) {
 ↓
int c1=0,c2;
/*  do if((c1 = getc(fp1)) != (c2 = getc(fp2))) {
    puts("異なります");
    fclose(fp2);
    fclose(fp1);
    return 2;
  } while (c1 != EOF);
*/
  while (c1 != EOF) if((c1 = getc(fp1)) != (c2 = getc(fp2))) {

991 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 13:17:08 ]
>>678
g++ でコンパイルしてみること。
エラーが出たらエラーメッセージを貼り付けること。

992 名前: ◆jG/Re6aTC. mailto:sage [2009/07/13(月) 14:14:37 ]
>988
(誤)階層的プログラミング
(正)階層的クラスタリング
でした^^;
よろしくです。

993 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 14:35:11 ]
>>971
ありがとうございます。

994 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 15:20:18 ]
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9738.txt
[3] 環境
 [3.1] OS: Windows Vista
 [3.2] コンパイラ名とバージョン: VC 2009 
[3.3] 言語: C言語
[4] 期限: 7/14 15時
[5] その他の制限: define,for文など

よろしくお願いします



995 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 15:27:54 ]
>>994 連立1次方程式の解をガウスの消去法用いて解く
問題>>162 解答>>174(9580)>>183(9582)

996 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:18:31 ]
たとえば
3481
という数字(4桁/0含む)が与えられたとき
0 = 3 + 4 - 8 + 1
1 = 3 + 4 - 8 * -1
2 = -(3 + 4 - 8 - 1)
3 = 3 * 4 - 8 - 1
4 = (3 / (4 + 8))^-1
...
のように加減乗除のみで整数を順に造っていってください

997 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 16:24:11 ]
最後の例で思いっきり加減乗除を使っていない件

998 名前:794 mailto:sage [2009/07/13(月) 19:34:47 ]
ここ2日ほど熱があり寝込んでました
先生に相談すると今週の間だけ待ってくれるとのこと
まだ未解決なので再度宜しくお願いします



999 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 19:47:01 ]
>>998
なんかのギャグですか?

1000 名前:デフォルトの名無しさん mailto:sage [2009/07/13(月) 20:39:34 ]
ume

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<375KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef