C/C++の宿題を片付けます 103代目at TECH
C/C++の宿題を片付けます 103代目 - 暇つぶし2ch306:デフォルトの名無しさん
08/01/20 14:40:53
午後なら、11:30PMか23:30と書くべきだな。

307:デフォルトの名無しさん
08/01/20 14:43:53
>>304
スイマセン……頑張っても頑張っても理解を超えた内容でした
>>305 >>306
ややこしくてすいません。23:30です

308:デフォルトの名無しさん
08/01/20 14:59:47
>>307
下手に頑張っても頑張っても…とか書かれると、どう頑張って何を身につけたのか訊きたくなるじゃないか。
頑張ったからには途中まで出来ているだろうから、そこまでのソースを見せろ、とかね。

309:デフォルトの名無しさん
08/01/20 15:10:17
単位がかかっていると言われると期限過ぎてから回答したくなる

310:デフォルトの名無しさん
08/01/20 15:16:37
>>309
サディスト吹いたわw

311:デフォルトの名無しさん
08/01/20 15:21:45
ここに丸投げして課題をクリアしようとした自分が間違っていました。すいません
今から苦Cでもう一度基礎から勉強して何とかやってみます
見苦しいレスばかりしてしまい、申し訳ありませんでした

312:デフォルトの名無しさん
08/01/20 15:29:22
別に間違ってないんじゃない?
ただ「~がかかっている」とか理由をつけて解答を迫ってるのが
人によっては癪に障るだけで。

313:デフォルトの名無しさん
08/01/20 15:41:42
ちょっと待て、「苦C」って「苦しんで覚える……」か?
あんなサイトで基礎から勉強するから見につかないんだと思うぞ。

314: ◆8QYSceiIsU
08/01/20 15:49:45
>>298
3しか出ないのですが、どこを書き換えればいいですか?

315:デフォルトの名無しさん
08/01/20 15:51:32
>>314
>>298のレスを3で検索かけてみればいいだろ

316: ◆8QYSceiIsU
08/01/20 15:55:00
>>315
int brace_num=3;のところだと思うのですが、そこをどう書き換えればいいのかわからないのですorz

scanfだと思っていろいろいじったのですがエラーになってしまって…

317:デフォルトの名無しさん
08/01/20 16:15:10
scanfもわからないのに再帰を提出するのはまずいと思うぞw

318: ◆8QYSceiIsU
08/01/20 16:17:01
>>317
今は提出だけが目的なんで…すみませんorz

319: ◆1FgF6ehpzk
08/01/20 16:17:50
>>238だが、>>288お前なりすましか?
注意書き通り名前のところにトリップ入れておけばよかった。


スレ汚しすまん。
もう消える。

320:デフォルトの名無しさん
08/01/20 16:24:17
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:1月21日




321:デフォルトの名無しさん
08/01/20 16:50:13
>>301
ありがとうございます!なんでエラーがおこるのかわからなくて相当困ってました。

322:デフォルトの名無しさん
08/01/20 16:59:35
>>272
URLリンク(kansai2channeler.hp.infoseek.co.jp)
<<><>><<>><>
<<><>><><<>>
<<>><<><>><>
みたいに入れ子関係を変えない並び替えで同じになるものは同一とみなした.
これってグラフ理論とかの講義?


323: ◆8QYSceiIsU
08/01/20 17:07:17
>>322
ありがとうございます!
これはゼミの問題でしたσ(^_^;)アセアセ...

324:デフォルトの名無しさん
08/01/20 17:41:22
[1] 授業単元:文字列
[2] 問題文:
最大50文字で文字列を読み取り、
その文字数を出力するプログラム
(例:aiueo=5文字)

[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:?
 [3.3] 言語:C++
[4] 期限: 2008年1月20日22:00まで
[5] その他の制限:


お願いします(ノ_・。)

325:デフォルトの名無しさん
08/01/20 17:46:55
>>324
#include<iostream>
#include<string>
int main()
{
std::string str;
std::cin>>str;
std::cout<<str.size()<<"文字"<<std::endl;
return 0;
}

326:デフォルトの名無しさん
08/01/20 17:47:24
>>324 は削除でお願いします!!
ごめんなさい..

[1] 授業単元:
[2] 問題文:
数値を文字列として2つ入力し、
大小を求めるプログラムを作成せよ
(例:52846>48426)
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C++
[4] 期限:2008年1月20日22:00まで
[5] その他の制限:

お願いします(ノ_・。)

327:デフォルトの名無しさん
08/01/20 17:48:16
>>325
ありがとうございます!!

328:デフォルトの名無しさん
08/01/20 17:50:40
>>326
int main(void)
{
using namespace std;
int a, b;
cin >> a;
cin >> b;
cout << max(a,b) << ">" << min(a,b) << endl;
return 0;
}

329:デフォルトの名無しさん
08/01/20 18:03:55
>>320
URLリンク(kansai2channeler.hp.infoseek.co.jp)

330:269
08/01/20 18:09:26
プリーズ、プリーズ

331:デフォルトの名無しさん
08/01/20 18:16:18
>>326

#include <iostream>

int main (int argc, char **argv) {
using namespace std;
int a, b;
cout << "数字を二つ入力してよ" << endl;
cin >> a >> b;
cout << a << (a == b ? "=" : (a < b ? "<" : ">")) << b << endl;
}      


332:デフォルトの名無しさん
08/01/20 18:20:46
>>330
問題文が理解不能だった

333:デフォルトの名無しさん
08/01/20 18:56:02
>>330 >>278
とりあえずA.txtとB.txtとC.txtの見本みたいのがないとよくわからんな
あと樹形図化ってあるけど、どういう規則の木構造なのかもわかるとうれしい

334:デフォルトの名無しさん
08/01/20 19:11:11
まじで何回も聞いてますができません↓
わかるかたお願いします↓


[1] 授業単元:
[2] 問題文:

最大50文字の数値を文字列として2つ入力して、
その差を求めるプログラムを作成せよ。
なお、最初に入力したものから後に入力したものを引くこととする

[3] 環境
 [3.1] OS:WindowsVista
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:C++
[4] 期限:2008年1月20日23:00まで
[5] その他の制限:
答えがマイナスになる場合もお願いします、、
あとできれば説明もお願いします

335:デフォルトの名無しさん
08/01/20 19:51:31
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):添付されたファイル"city.txt"に、
日本の政令指定都市に関するデータが収められている。
このファイルを読んで、構造体の配列に格納し、
ソートを実行するプログラムを作成する。

構造体のメンバは、
都市名・登録年月日・面積・人口とし、
ソートはレコードの内容について、
まず、都市名の昇順(アルファベット順)にソートし、
次に、登録年月日の昇順にソートするものとする。

単純交換法でソートを実行した場合と、
単純選択法でソートを実行した場合の結果を示し、
違いがあれば、その違いの特徴を説明し、理由も書きなさい。

[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:VS2005
 [3.3] 言語: C
[4] 期限: 1/22日まで
[5] その他の制限:city.txtなどは次に書きます。よろしくお願いします。

336:デフォルトの名無しさん
08/01/20 19:52:30
>>335
city.txtの中身


都市名 登録年月日 面積[km^2] 人口[人] (2007年12月1日現在)
Sapporo 1972/04/01 1,121.12 1881218
Sendai 1989/04/01 735.16 1029595
Saitama 2003/04/01 217.49 1192005
Chiba 1992/04/01 272.08 938293
Yokohama 1956/09/01 437.38 3,630830
Kawasaki 1972/04/01 142.70 1,372762
Niigata 2007/04/01 726.10 813170
Shizuoka 2005/04/01 1,388.78 710902
Hamamatsu 2007/04/01 1,511.17 811446
Nagoya 1956/09/01 326.45 2238223
Kyoto 1956/09/01 827.90 1469242
Osaka 1956/09/01 222.27 2645790
Sakai 2006/04/01 149.99 835257
Kobe 1956/09/01 552.15 1530912
Hiroshima 1980/04/01 905.13 1163051
Kitakyushu 1963/04/01 487.71 987337
Fukuoka 1972/04/01 340.60 1429828

337:デフォルトの名無しさん
08/01/20 19:53:26
>>336
すいません見にくかったです。

都市名 登録年月日 面積[km^2] 人口[人] (2007年12月1日現在)
Sapporo 1972/04/01 1,121.12 1881218
Sendai 1989/04/01 735.16 1029595
Saitama 2003/04/01 217.49 1192005
Chiba 1992/04/01 272.08 938293
Yokohama 1956/09/01 437.38 3,630830
Kawasaki 1972/04/01 142.70 1,372762
Niigata 2007/04/01 726.10 813170
Shizuoka 2005/04/01 1,388.78 710902
Hamamatsu 2007/04/01 1,511.17 811446
Nagoya 1956/09/01 326.45 2238223
Kyoto 1956/09/01 827.90 1469242
Osaka 1956/09/01 222.27 2645790
Sakai 2006/04/01 149.99 835257
Kobe 1956/09/01 552.15 1530912
Hiroshima 1980/04/01 905.13 1163051
Kitakyushu 1963/04/01 487.71 987337
Fukuoka 1972/04/01 340.60 1429828


338:デフォルトの名無しさん
08/01/20 19:58:11
>>335>>336>>337
337はミスりました、すいません。

#include<stdio.h>
#define N 17 //*keyの個数
#define SIZE 20 //*nameの大きさ

struct city{
char name[SIZE];
int year, month, day;
double area;
int population;
};
struct city key[N];
int main(void){
FILE *fp;
int i;
char naka[100];
fp = fopen("city.txt","r");
if(fp!=NULL){
printf("ファイルを開きました\n");
}
fgets(naka,100,fp);
for(i = 0; i < N; i++){
fscanf(fp,"%s %d/%d/%d %lf %d",key[i].name, &key[i].year, &key[i].month, &key[i].day, &key[i].area, &key[i].population);
printf("%s %d/%d/%d %lf %d\n",key[i].name, key[i].year, key[i].month, key[i].day,key[i].area, key[i].population);
}
return 0;
}
これを元に作ってほしいです。よろしくお願いします

339:デフォルトの名無しさん
08/01/20 20:09:55
>>334
#include <iostream>
using namespace std;
int main()
{
double n1, n2;
// 一つ目入力
cout << "n1 : ";
cin >> n1;
// 二つ目入力
cout << "n2 : ";
cin >> n2;
// 結果出力
cout << "n1 - n2 : " << n1 - n2 << endl;
return 0;
}

340:デフォルトの名無しさん
08/01/20 20:32:40
>>339
ありがとうございます!
でもまだ
using namespace std;
をならってません(ノ_・。)

341:デフォルトの名無しさん
08/01/20 20:34:03
ほんとにC++かよw

342:デフォルトの名無しさん
08/01/20 20:38:37
つうか、doubleで大丈夫なのか?
stringなりchar配列でやれって意味だと思うんだけど

343:デフォルトの名無しさん
08/01/20 20:42:32
>>340
文字列から数値への変換は自分でやるの?
入力とかは、scanfとかでやれとか?
使っていいものの条件をかいてくれ。

344:デフォルトの名無しさん
08/01/20 20:57:51
>>340
URLリンク(kansai2channeler.hp.infoseek.co.jp)
冗長だが。

数値に区切って算出した方がいいんだよな。

345:デフォルトの名無しさん
08/01/20 21:04:56
>>335
URLリンク(kansai2channeler.hp.infoseek.co.jp)
city.txtの","って取り除かないと読めなくない?

346:344
08/01/20 21:05:41
すまん、こっちで
URLリンク(kansai2channeler.hp.infoseek.co.jp)

ますますクソだわ、吊ってくる...

347:デフォルトの名無しさん
08/01/20 21:09:54
char配列だと思います。。
あとscanfもまだ習っていません、、
文字列の入力は cin.getline しか習ってないんですが。。。
まさかこれでこの問題乗り切るのむりですか?(´△`)


よくわかんないので、以前に和を出す方法を教えてもらったのでそれの一部のせます!
前後はしょってるので意味わかんなかったらごめんなさい、、

// 足し算
// a = b + c
int add(char a[], char b[], char c[])
{
int i ,carry = 0;
for( i = 0 ; i < Max_Length ; i++ ) {
a[i] = b[i] + c[i] + carry;
carry = a[i] / 10;
a[i] = a[i] - carry * 10;

}
return carry;
}

348:デフォルトの名無しさん
08/01/20 21:43:20
250ってそのまま書いても大丈夫なんですかね?
今ソフトがないもんで・・・

349:デフォルトの名無しさん
08/01/20 21:53:38
お願いします

[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
問題1;nの階乗の表を表示するプログラム(intで表示できる範囲のみ)

問題2: 二次元配列を使い、以下の点数表から各人の3科目の平均点と各科目ごとの5人の平均点を求めるプログラム

    国語 数学 英語
安藤  56  45   67
加藤  64  34   55
田中  53  76   46
山田  75  78   78
山本  60  67   62

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:コマンドプロンプト
 [3.3] 言語: C
[4] 期限: 2008年1月21日00:00まで
[5] その他の制限: なし

350:デフォルトの名無しさん
08/01/20 21:55:48
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C言語
[4] 期限:1月22日
[5]制限 : お願いします。


351:デフォルトの名無しさん
08/01/20 22:24:16
>>350
#include <stdio.h>
#define LMAX 100
int char_counter(char c, char * str)
{
int cnt=0;
while(*str!='\0'){
if(*str==c)
cnt++;
str++;
}
return cnt;
}
main()
{
char c,str[LMAX];
int cnt=0;
printf("文章:");
fgets(str,LMAX-1,stdin);
for(c=33;c<127;c++){
cnt=char_counter(c,str);
if(cnt>0)
printf("[%c]->%d個\n",c,cnt);
}
}

352:デフォルトの名無しさん
08/01/20 22:33:36
[1] 授業単元:C言語
[2] 問題文
1つ以上の空白文字で区切られた英文を半角文字列として入力し、空白文字
を区切りとし分解して表示する。以上の動作をNULLが入力されるまで繰り返
すプログラムを作成しなさい。
①文字列の入力にはgets関数を使用すること。また、最大で80文字
 までしか入力されないものとする。
②空白文字かどうかは文字検査関数(is・・・)を使用して調べること。
③半角文字しか入力されないもとする
[3] 環境
 [3.1] OS:Windows xp
 [3.2] コンパイラ名とバージョン:VisualStudio2005
 [3.3] 言語: C
[4] 期限:なし
[5] その他の制限:

353:shogo
08/01/20 23:15:54
>>>273
ディフォルトの名無しさんご回答ありがとうございました!
大変参考になりました!!


354:デフォルトの名無しさん
08/01/20 23:27:08
ディフォルトの名無しさんって宿題全部やっちゃってすごいよね

355:デフォルトの名無しさん
08/01/20 23:30:25
>>352
URLリンク(kansai2channeler.hp.infoseek.co.jp)
無駄に長くした。

356:デフォルトの名無しさん
08/01/20 23:32:25
>>352
空白を複数個入れると表示が見苦しくなるが気にするな。
そうしちゃいけないとは書いていないから。


#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main()
{
char buf[81];
int i;

while(gets(buf)){
if(!strcmp(buf,"NULL"))
break;
for(i=0;buf[i];i++)
putchar(isspace(buf[i])?'\n':buf[i]);
printf("\n\n\n");
}

return 0;
}

357:デフォルトの名無しさん
08/01/20 23:56:04
>>352 では表示が見苦しくならないようにしたものを。先頭に空白が入ってても大丈夫にしてある。
#include <stdio.h>
#include <ctype.h>
#define LMAX 80
main()
{
int i=0;
char str[LMAX+1];
while(gets(str)){;//本当はfgets(str,LMAX,stdin)を使いたい
while(str[i]!='\0'){
if(isspace(str[i])){
if(i>0&&!isspace(str[i-1]))
putchar('\n');
}else
putchar(str[i]);
i++;
}
putchar('\n');
}
}

358:デフォルトの名無しさん
08/01/21 00:09:07
>>352
URLリンク(kansai2channeler.hp.infoseek.co.jp)
なんとなく。

359:269
08/01/21 00:33:14
>>333
混乱させていたらごめんなさい、樹形図化とはただの総書き出しのことです。
以下は私のイメージによる、辞書式に総書き出しをした場合の最初と最後の100件ずつ計200行です。

1行は常に25bytesです(Numberの右揃え7桁で7bytes+半角スペース1個で1byte+Combinationの2桁表記数字が6個分と半角カンマ5個分で17bytes)。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

これはn2c処理の材料の一例、B.txt(右揃え無し)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
これはB.txtにn2c処理をした後=C.txt(Number部分は右揃え7桁になっている)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

n2c処理出来るものさえ頂戴出来れば僥倖ですが、c2n処理の材料であるA.txtは以下。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
あと、自分でヒントを探した際に理解できなかったのですが(C#だし)考え方のノリとしてはこれです。
URLリンク(www.microsoft.com)

360:デフォルトの名無しさん
08/01/21 00:36:34
【時間切れ】 (1/20)
>303

【未解決問題】
>>86 1/22
>>335 1/22
スレリンク(tech板:229番) 1/31
>79 無期限
>144 無期限 問題文>>148
>278 無期限

361:デフォルトの名無しさん
08/01/21 00:41:37
Cプログラマ必須テキスト!

URLリンク(mori.eco.to)

362:デフォルトの名無しさん
08/01/21 00:44:15
宣伝するなクソが

363:デフォルトの名無しさん
08/01/21 01:06:33
>>355>>358
Thanks!!

364:デフォルトの名無しさん
08/01/21 01:43:30
ここって仕様書のせたらプログラム作ってくれますか?(゚゚)
もしだめなら仕様書のせてプログラム作ってくれるスレ教えてくだされ(ノ_・。)

365:デフォルトの名無しさん
08/01/21 01:46:29
>>364
無償では誰もやらないと思うYO!

366:デフォルトの名無しさん
08/01/21 01:50:05
スレ立てればいいじゃん

367:デフォルトの名無しさん
08/01/21 02:53:00
仕事代行スレ?面白そうだね。
作るならJAVAやC#その他言語もOKなスレにして欲しいな。
【無料】仕事代行ギコ猫商会【無保証】
猫の手を借りたいほど忙しい人が、プログラム好きの猫たちに仕事を依頼するスレです。
猫たちは気紛れなので、依頼を受け無い時もあります。途中で投げ出すかも知れませんし
出来たとしても猫たちの能力はまちまちなので品質は保証できません。
また、倫理や契約に違反する可能性がありますので十分注意してください。

まあ利用できるのは、個人ぐらいだろうな。企業とかでこんな所に仕事を投げたのが
ばれたら大変な事になりそう。

368:デフォルトの名無しさん
08/01/21 03:06:34
>>359
ロト6のできたよ
URLリンク(kansai2channeler.hp.infoseek.co.jp)
何に使うのか気になるなw


369:348
08/01/21 03:21:22
スイマセン勘違いしてました
ところで250の
printf("input (e.g. ****/**/**)\n>>");
の意味がわからないのですが・・・

370:デフォルトの名無しさん
08/01/21 03:27:15
>>369
いや、"input (e.g. ****/**/**)\n>>"って表示するだけのことだろ。
****/**/**は年/月/日で入力しろってことでしょ

371:348
08/01/21 03:38:29
>>370
ありがとうございます!
助かりました!

372:デフォルトの名無しさん
08/01/21 04:03:55
>>272
面白そうなので、ちょっとやってみた。
期限過ぎてるし、手元に開発環境がなくてrubyだしで
スレ違いすまん

--
def create(n)
 if n < 2
  return "<>"
 else
  strs= create(n-1)
  result = []
  strs.each do |str|
   result.push "<"+ str +">"
   result.push str +"<>"
  end
  return result
 end
end

create(ARGV.shift.to_i).each { |str| print str, "\n"}
--

373:269
08/01/21 04:10:06
>>368
おお…おお!ありがとうございます!!
たった10文字だけど、他に表現できる言葉を知らないので、もう一度「ありがとうございます」

374:デフォルトの名無しさん
08/01/21 04:13:44
>>372
スクリプト系だと結構楽にかけそうなんだよね。
Cだと、リストと文字列処理が貧弱すぎて泣ける

375:デフォルトの名無しさん
08/01/21 09:39:31
1] 授業単元: プロ基礎
[2] 問題文(含コード&リンク):ある金額を入力し、その金額のお金の種類と数(1万円札~1円玉)を求めるwhile文を作れ。
[3] c言語
[4] 期限:今
[5] その他の制限:ど基礎。for,while程度


よろしくお願いします。

376:デフォルトの名無しさん
08/01/21 09:43:34
>[4] 期限:今

377:デフォルトの名無しさん
08/01/21 09:44:10
じゃあもう期限切れだな残念

378:375
08/01/21 09:47:12
自動販売機のおつりみたいなものです

379:デフォルトの名無しさん
08/01/21 09:57:51
なぜループさせる必要があるのか、おじさんに分かるように教えてくれ

380:デフォルトの名無しさん
08/01/21 10:03:26
>>364
そんなスレあったら俺が依頼したいww

381:デフォルトの名無しさん
08/01/21 10:17:45
#include <stdio.h>
int main(void) {
int N=147568,a=10000;
while(N) {
printf("%d円:%d枚\n",a,N/a);
N%=a;
a/=2;
if(N) {
printf("%d円:%d枚\n",a,N/a);
N%=a;
a/=5;
}
}
return 0;
}

382:デフォルトの名無しさん
08/01/21 10:22:53
[1] 授業単元: 基礎プログラミング
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 今日の24時まで
[5] その他の制限:
長いプログラムになっても構わないので、
if文やfor文などの初歩的な関数を使いまくる感じでお願いします

383:382
08/01/21 10:24:37
すみません、最後の構造体のは氏名はローマ字表記でも大丈夫です

384:デフォルトの名無しさん
08/01/21 10:27:15
>>381
なるほど、そういう風にwhileを使うのか・・・全然思いつかなかった・・・・・orz

385:デフォルトの名無しさん
08/01/21 12:05:48
>>382
#include <stdio.h>

struct student {
char name[32];
int ID;
int score;
};

int main(void) {
int i,j,x;
char buf[32];
struct student s[5];

for(i=0;i<5;i++) {
printf("氏名:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%s",&s[i].name);
printf("ID:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&s[i].ID);
printf("点数:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&s[i].score);
}
printf("何点以上?:");
fgets(buf,sizeof(buf),stdin);
sscanf(buf,"%d",&x);
for(i=0;i<5;i++) if(s[i].score>=x) printf("%s ID:%d %d点\n",s[i].name,s[i].ID,s[i].score);
return 0;
}

386:デフォルトの名無しさん
08/01/21 12:28:44
>>86
URLリンク(kansai2channeler.hp.infoseek.co.jp)


387:デフォルトの名無しさん
08/01/21 12:57:00
>>382の1
URLリンク(kansai2channeler.hp.infoseek.co.jp)

388:デフォルトの名無しさん
08/01/21 13:13:09
>>387の修正版
#include<stdio.h>
long get_power(long base, int expt);
int main(int argc, char *argv[]){
int base, expt;
long power_out;
if(argc != 3){
fprintf(stderr, "input error\n");
return 1;
}
base = atoi(argv[1]);
expt = atoi(argv[2]);
if(expt < 0){
fprintf(stderr, "input error\n");
return 1;
}
power_out = get_power(base, expt);
printf("%d^%d = %ld\n", base, expt, power_out);
return 0;
}
long get_power(long base, int expt){
if(expt == 0) return 1;
if(expt % 2 == 0){
expt /= 2;
base *= base;
return get_power(base, expt);
}else{
expt -= 1;
return base * get_power(base, expt);
}
}

389:デフォルトの名無しさん
08/01/21 13:27:02
>>382の2
#include<stdio.h>
int get_gcd(int num1, int num2);
int main(int argc, char *argv[]){
int num1, num2;
int gcd_out;
if(argc != 3){
fprintf(stderr, "input error\n");
return 1;
}
num1 = atoi(argv[1]);
num2 = atoi(argv[2]);
if(num2 < 0){
fprintf(stderr, "input error\n");
return 1;
}
gcd_out = get_gcd(num1, num2);
printf("GCD(%d,%d) = %d\n", num1, num2, gcd_out);
return 0;
}
int get_gcd(int num1, int num2){
if(num1 == num2) return num1;
if(num1 > num2){
return get_gcd(num1-num2, num2);
}else{
return get_gcd(num1, num2-num1);
}
}

390:デフォルトの名無しさん
08/01/21 15:27:31
【質問テンプレ】
[1] 授業単元:プログラミングC++
[2] 問題文(含コード&リンク):
以下のデータを空白を区切りとしてキーボードから入力して
配列に読み込み、英語のアルファベット順に並び替えよ。
ただし、文字列の大きさの比較にはstrcmp関数を
文字列の入れ替えにはstrcpy関数を利用しなさい。

日本語   英語   味わい月
鯖    mackerel 10
新巻鮭  salmon 12
岩魚 charr 7
牡蛎   oyster 2
帆立貝 scallop   1

正答動作画像
URLリンク(www-2ch.net:8080)


[3] 環境
 [3.1] OS: WindowsXP 
[3.2] Microsoft Visual C++
 [3.3] C++
[4] 期限: 2008年1月23日18:00まで
[5] その他の制限:strcmpとstrcpyを利用したソートをさせるのが問題の主眼かなと思います。

よろしくお願いします。

391:デフォルトの名無しさん
08/01/21 17:06:20
[2] 問題文:最長文字列の検出
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] gcc 3.4
 [3.3] 言語:C

カンマで区切った単語を入力してその中で一番長い文字列を表示させる。

単語を入力してください:1,10,10,1000
最長文字列は1000です。

strtokでカンマごとに切断することは出来たのですがそこからどうすればいいか分かりません。
よろしくお願いします。

392:デフォルトの名無しさん
08/01/21 17:10:23
strtok()で区切った文字列を配列に突っ込んでstrlen()で長さを数えればいい

393:デフォルトの名無しさん
08/01/21 17:53:14
すいません、よく分からないです・・・無知ですいません。

394:デフォルトの名無しさん
08/01/21 18:36:29
>>391
#include <stdio.h>
#include <string.h>
int main()
{
int i = 0, max = -1, max_i = -1;
char buf[200], *p, *tmp[100];

printf("単語を入力してください:");
fgets(buf, sizeof(buf), stdin);
sscanf(buf, "%s", buf);
for (p = strtok(buf, ","); p != NULL; i++)
{
int len = strlen(p);
if (max < len)
{
max = len;
max_i = i;
}
tmp[i] = p;
p = strtok(NULL, ",");
}
printf("最長文字列は%s", tmp[max_i]);

return 0;
}

395:デフォルトの名無しさん
08/01/21 19:24:02
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008/01/27 23:59
[5] できれば配列とforメインでおねがいします

396:デフォルトの名無しさん
08/01/21 19:45:45
#include <stdio.h>

int main () {

int y, m, d, sum = 0;
int m_array[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
char *week[7] = {"日", "月", "火", "水", "木", "金", "土"};
printf("input (e.g. ****/**/**)\n>>");

スイマセン、このinputとe.gの意味がわかりません

397:デフォルトの名無しさん
08/01/21 19:49:15
おめーはぷりんとfもわかんねーのかよ

398:デフォルトの名無しさん
08/01/21 19:59:56
inputは、えいごでにゅうりょくっていみだよ
e.gは、らてんごでたとえばっていみだよ

399:デフォルトの名無しさん
08/01/21 21:14:09
[1] 授業単元:基礎プログラミング
[2] 問題文(含コード&リンク):オンラインゲームを作成せよ。
ラグナロクオンラインやリネージュのようなオンラインゲームを
作成してみよう。データを送信するのに必要なライブラリ等は各自
調べておくこと。またDirectXを使用すること。
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VisualStudio2005
 [3.3] 言語: C++
[4] 期限: 2008/2/1 23:59
[5] できれば3DのデータをMAXやMAYA、Shade等で作成する。


400:デフォルトの名無しさん
08/01/21 21:16:06
>[1] 授業単元:基礎プログラミング

401:デフォルトの名無しさん
08/01/21 21:30:47
>>399 なんとか完成したぞよ

#include <stdio.h>

int main(void)
{
char input[100];

printf("******ログイン画面******\n");
printf("UserID:");
scanf("%s",input);
printf("Password:");
scanf("%s",input);
printf("@@@@ログイン完了@@@@\n\n");

//roop for ever
while(1){
printf("チャット発言:");
scanf("%s",input);
printf("\n ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄\n");
printf("( ´∀`)< %s\n",input);
printf("(   ) \______________\n");
printf(" | | |\n");
printf("(__)_)\n\n");
}

return 0;
}


402:デフォルトの名無しさん
08/01/21 21:39:40
>>399 ごめ、C++だったか!
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
string input;

cout<<"******ログイン画面******"<<endl;
cout<<"UserID:";
cin>>input;
cout<<"Password:";
cin>>input;
cout<<"@@@@ログイン完了@@@@\n"<<endl;

//roop for ever
while(1){
cout<<"チャット発言:";
cin>>input;
cout<<endl;
cout<<" ∧_∧  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄"<<endl;
cout<<"( ´∀`)< "<<input<<endl;
cout<<"(   ) \______________"<<endl;
cout<<" | | |"<<endl;
cout<<"(__)_)\n"<<endl;
}

return 0;
}


403:デフォルトの名無しさん
08/01/21 21:43:02
俺が見る限り >>400 と >>401 は間違ってるな
これが正解だw

#include <iostream>
#include <string>

int main(void)
{
std::string input;

while(true){
std::cout<<"******ログイン画面******"<<std::endl;
std::cout<<"UserID:";
std::cin>>input;
std::cout<<"Password:";
std::cin>>input;
std::cout<<"IDまたはパスワードが違います\n"<<std::endl;
}

return 0;
}


404:デフォルトの名無しさん
08/01/21 22:26:06
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):()
自動販売機のオブジェクトを作成し実現しなさい(ジュース,たばこ,カップラーメンなど何でも良い(何の自販機は出力すること))。
ただし,下記の条件を満たすこと。
<条件>
自動販売機で購入できる「商品」,「お金」,「自動販売機」は最低限クラス化すること。
「カプセル化」,「継承」,「多様性」を全て利用すること。
例外処理をすること(プログラムが頓挫した時点でNGとします)。
入出力は,下記のとおり行うこと。

【入力】
・お金(10円~1000円)の個数(枚数)   
・購入商品選択(複数可)    
【出力】
・つり銭(10円~100円)の個数(枚数)と総購入代金
・購入商品名(複数)


実現は,main()関数で「自動販売機」クラスのインスタンスを1つ作成し,そのクラスのbuy( )メンバ関数を呼び出したら全てが動作するようにする。

※条件以外に動的メモリ,ファイル入出力などを用いて自動販売機の機能が拡張されるほど良い。ただし,明らかに無駄なコードを追加して機能を増やしている場合はその限りではありません。

[3] 環境
 [3.1] OS: Windows XP
 [3.2] visual studio 2005
 [3.3] 言語: C++
[4] 期限: 2008/1/25まで
[5] その他の制限: 特に無し。
よろしくお願いします。

405:デフォルトの名無しさん
08/01/21 22:28:22
【時間切れ】 (1/21)
なし

【未解決問題】
>>335 1/22

>>390 1/23 18:00
>>404 1/25
>>395 1/27 23:59
スレリンク(tech板:229番) 1/31
>>399 2/1 23:59
>79 無期限
>144 無期限 問題文>>148

406:デフォルトの名無しさん
08/01/21 22:30:21
#include<stdio.h>
#define N 1;

typedef struct{


}Record;

void inputData(int n, Record r[]);
void outputData(int n, Record r[]);
void calcBMI(int n; Recordr[]);


int main(void)
{
Record rrr[N];

int i;

printf("%d人まで処理します",N);
for(i=0;i<N;i++){
inputData(i,rrr);
outputData(i,rrr);
calcBMI(i,rrr);
printf("\n");
}

return 0;
}


407:デフォルトの名無しさん
08/01/21 22:30:45
/*inputData関数の定義*/
void inputData(int n, Record r[]){
printf("%d人目の入力\n",n+1);
printf("名前は? →");scanf("%s", r[n].personal);
printf("生年月日は?(8桁)→");scanf("%s", r[n].birth);
printf("身長は?(cm) →");scanf("%lf", &r[n].height);
printf("体重は?(cm) →");scanf("%lf", &r[n].weight);
}
/*outputData関数の定義*/

/*calcBMIの定義*/


実行結果は
1人まで処理します
1人目の入力
名前は?     →hoge
生年月日は?   →19700917
身長は(cm)?   →174.5
体重は(kg)?  →69.5
1人目の出力
名前は      hoge
生年月日は 1970年09月17日
身長は  174.50cm
体重は  69.50kg
1人目のBMIは  22.82


Record型構造体の定義とoutputData関数の定義とcalcBMIの定義がよくわからないのですがどなたかわかりませんか?
BMIの計算内にはpower関数を利用しなくてはいけないんですが


408:デフォルトの名無しさん
08/01/21 22:45:51
すいませんテンプレもつかわずに・・
[1] 授業単元:C実習
[2] 問題文(含コード&リンク):()
キーボードから氏名、生年月日、身長、体重をそれぞれよみこんでRecord構造体変数に格納し
そのデータからBMIを計算し同じ構造体メンバに格納し、画面に表示するプログラム
氏名、生年月日、身長、体重、BMIをメンバとする構造体Recordを定義する
なおBMIは次の計算で求められる
BMI=体重(kg)/身長^2(m)
BMIの計算には、power関数も利用し、また、身長の入力単位がcmであることに注意する

[3] 環境
 [3.1] OS: Windows vista
 [3.2] visual studio 2005
 [3.3] 言語: C
[4] 期限: 2008/1/22まで
[5] その他の制限: 特に無いです

よろしくおねがいします

409:デフォルトの名無しさん
08/01/21 23:16:08
2つの整数を入力して、最大公約数と最小公倍数を
求めなさい。

このプログラムをお願いします。

410:デフォルトの名無しさん
08/01/21 23:18:28
前見たな
>>408
>>233

411:デフォルトの名無しさん
08/01/21 23:28:58
>>409
まあ落ち着いて>>1でも読めよ

412:デフォルトの名無しさん
08/01/21 23:40:13
>>410
ありがとうございます。
>>233さんの方法を試してみたのですがじっこうけっかがうまくいかなくて・・

413:デフォルトの名無しさん
08/01/21 23:44:04
>>409
今年のセンター試験2Bでそのプログラムが出たよ
BASICだけど

414:デフォルトの名無しさん
08/01/21 23:45:19
>>412
何が駄目なのかくらい書けよ。

415:デフォルトの名無しさん
08/01/21 23:50:43
関数powが定義されていないのとinputDataの定義を確認してくださいとでます
あと出力のところで~年~月~日とださなければいけないのですがその部分もわからないです


416:デフォルトの名無しさん
08/01/21 23:51:45
includeくらいしろよ。大体printfも書けないなら勉強し直せ

417:デフォルトの名無しさん
08/01/21 23:53:38
includeはしてます・・

418:デフォルトの名無しさん
08/01/21 23:55:07
printfは書けるんですが19700917と打ち込んだのを
1970年09月17日と分けるにはどうすればいいかわからないです

419:デフォルトの名無しさん
08/01/21 23:56:25
char buf[100];
fgets(buf, sizeof(buf), stdin);
printf("%.4s年%.2s月%.2s日\n", buf, buf + 4, buf + 4 + 2);

420:デフォルトの名無しさん
08/01/22 00:11:02
powが定義されてないって出るなら,includeしてないだろ…常考

421:デフォルトの名無しさん
08/01/22 00:22:22
というかどこにも定義してなくないですか?一応powを別に定義したらうまくうごいたんですが
double pow(double a)
{
return a*a;
}
こんなかんじじゃだめですかね?

422:デフォルトの名無しさん
08/01/22 00:24:36
>power関数も利用し
なんだからダメだろ

423:デフォルトの名無しさん
08/01/22 00:27:54
そうですかすいません・・includeはしてあるんで何が原因かわからなくて・・

424:デフォルトの名無しさん
08/01/22 00:30:29
<math.h>をインクルードだろ・・・常識的に考えて・・・

425:デフォルトの名無しさん
08/01/22 00:30:32
#include <math.h>だ。
それとpowerは2乗じゃなく累乗の意。

426:デフォルトの名無しさん
08/01/22 00:30:45
いろいろ動かしたら定義しなくてもふつうに動くようになりましたありがとうございました
知識不足の自分に教えてくださってありがとうございます

427:デフォルトの名無しさん
08/01/22 00:38:02
e.gを使いこなす奴は、論文とかを読みなれてしまった汚い大人。

428:86
08/01/22 01:05:39
>>386
ありがとうございました!!
まさか丁度300レス後とはwwww

429:デフォルトの名無しさん
08/01/22 01:07:43
wwwwwwwwww

430:86
08/01/22 01:07:57
>>386
な、内容みたら文字化けがwwwwwwwwwwwwwwwwwww

orz

431:デフォルトの名無しさん
08/01/22 01:09:17
>>430
エンコードをEUCにしなさい。

432:デフォルトの名無しさん
08/01/22 01:09:43
for(int i=0; i<50; i++)
  cout << "w";

433:デフォルトの名無しさん
08/01/22 01:09:49
JISコードでおk

434:デフォルトの名無しさん
08/01/22 02:06:13
【質問テンプレ】
[1] 授業単元:情報処理概論
[2] 問題文(含コード&リンク):()
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 22日10時まで

問題文

(ファイルからのデータ入力、ファイルへの出力)
"in_file"という名前のファイルの中に多数の整数データが空白や改行コードで区切られて並んでいると仮定した上で
この入力ファイルのなかのデータを1行に5個ずつ綺麗に並べて"out_file"という名前のファイルに出力するCプログラムを作成せよ。

入力ファイル”in_file"の内容が

_-1111111111______2222222__33333 4444 55 6 7 8 9 0 1 2 3 4
5 6 7890123
のときには次のような内容を出力ファイル”out_file"に書き出す

_-11111111_____22222______333333________4444__________55
_____________6___________7______________8____________9____________0
_____________1___________2______________3____________4____________5
_____________6__7890123



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

435:434
08/01/22 02:08:11
書き込んだらずれてしまいました・・・

「 _ 」はスペースで右揃えに並ぶ感じです。

よろしくお願いします

436:デフォルトの名無しさん
08/01/22 02:10:43
>>394
ありがとうございます。プログラムで見てみるとどういうことだったのかよく分かりました。
もっと勉強していこうと思います!!

437:デフォルトの名無しさん
08/01/22 03:34:15
>>390
URLリンク(kansai2channeler.hp.infoseek.co.jp)

C++の単元で"ソートにstrcmp()とstrcpy()を使え"ってホント?
あまりに稚拙なコードで組んでて泣けてきた。

438:デフォルトの名無しさん
08/01/22 04:40:37
>>434
URLリンク(kansai2channeler.hp.infoseek.co.jp)

strtokをあえて使わない 俺ってそんな男

439:デフォルトの名無しさん
08/01/22 05:41:11
strpbrkって知らなかった。
でも符号の分いれて、%11dの予感。

440:デフォルトの名無しさん
08/01/22 07:12:54
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: windowsXP
 [3.2] コンパイラ名とバージョン:gcc3.4
 [3.3] 言語:C言語
[4] 期限:2008年1月23日10時まで
[5] その他の制限:特にないです


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

441:デフォルトの名無しさん
08/01/22 07:49:05
>>440
うぷろだの5854.txt
規制で携帯からなんでアドレス貼れなくてスマソ

442:デフォルトの名無しさん
08/01/22 07:51:01
ぼるじょあがC/C++の宿題を片づけますYO! 68代目
このスレと違いはあるのですか?


443:デフォルトの名無しさん
08/01/22 07:57:27
答える人が違う

444:デフォルトの名無しさん
08/01/22 10:36:40
>>395
URLリンク(kansai2channeler.hp.infoseek.co.jp)

たぶん大丈夫と思う。テストデータの答えがわからないからなんとも言えないけど

445:デフォルトの名無しさん
08/01/22 10:51:32
[1] 授業単元:プログラミングⅡ
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
 [3.3] 言語: C
[4] 期限: 2008/1/24
[5] その他の制限:

446:デフォルトの名無しさん
08/01/22 15:14:04
fp=fopen(argv[1],"w");
buffer=(char *)malloc(buffer_size);
while(fgets(buffer,sizeof(buffer),stdin)){
fputs(buffer,fp);
if(sizeof(buffer)==buffer_size){
buffer=(char *)malloc(sizeof(buffer)*2);
buffer_size=buffer_size*2;
fputs(buffer,fp);
free(buffer);

ファイル入出力プログラムの一部ですが、
sizeof(buffer)では4バイトしか確保できないということに気がつきました。
できるだけプログラムをいじらず入力したサイズを取得する方法はありますか?
ヒントをください。buffer_sizeの初期設定は1000byteです。
strlenでもできませんでした。

447:デフォルトの名無しさん
08/01/22 15:29:44
>>446
スレ違い。
初心者スレにでもどうぞ。
その際は何故バッファが必要なのか、その理由を書くことをお推めします。

448:デフォルトの名無しさん
08/01/22 16:30:04
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語:C
[4] 期限:2008年1月23日
[5] その他の制限:特になし

よろしくお願いします。

449:デフォルトの名無しさん
08/01/22 16:30:31
>>441さん
ありがとうございました



450:デフォルトの名無しさん
08/01/22 16:33:23
>>445
URLリンク(kansai2channeler.hp.infoseek.co.jp)

451:デフォルトの名無しさん
08/01/22 18:07:10
>>294
有難う御座いますm(_ _)m

452:デフォルトの名無しさん
08/01/22 18:40:18
>>448
URLリンク(kansai2channeler.hp.infoseek.co.jp)

453:デフォルトの名無しさん
08/01/22 19:40:07
[1] 授業単元:プログラミングⅡ
[2] 問題文:任意の数(最大10個)の整数を入力した後、
それらの最小公倍数と最大公約数を関数内で求め、mainの中で表示プログラムを作成すること。
[
3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio
 [3.3] 言語: C
[4] 期限: 2008/1/25
[5] その他の制限:


454:デフォルトの名無しさん
08/01/22 20:40:54
>>452
ありがとうございました。
助かります!

455:デフォルトの名無しさん
08/01/22 21:03:49
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):霰の計算
問題文 URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: (2008年1月23日12:00まで
[5] その他の制限: 入出力と計算部分は関数化します。

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

456:455
08/01/22 21:08:18
すみません問題文が一部文字化けしていました。

誤 1?n?10000の範囲
       ↓
正 1≦n≦10000の範囲

です。宜しくお願いいたします。

457:デフォルトの名無しさん
08/01/22 21:29:23
250を見ながら入力していったら
c:\documents and settings\sano takumi\my documents\visual studio 2005\projects\san\san.cpp(26) : fatal error C1010: プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか?
と出たのですがこれはどういうことでしょうか?

458:デフォルトの名無しさん
08/01/22 21:30:05
>'#include "stdafx.h"' をソースに追加しましたか?
してないならしろ。

459:デフォルトの名無しさん
08/01/22 21:30:53
佐野拓海か?せめてあげる内容は少し確認してからにしろ。どんまい。

460:デフォルトの名無しさん
08/01/22 22:04:23
特定しました

461:デフォルトの名無しさん
08/01/22 22:14:05
>>455
>ちなみに1<=n<=10000の範囲で一番大きなf(n)の値を返すnは871であり、
>f(871)=178である。

n = 6171, f(6171) = 261 じゃないの?

462:デフォルトの名無しさん
08/01/22 22:24:47
1:情報処理
[2]穴埋めです
[3]わかんないです。
 [3.1] (Windows)
 [3.2] lc-86? C-pad?:
 [3.3] C言語:
[4] 期限: 2008/1/24



463:デフォルトの名無しさん
08/01/22 22:25:56
問2
4個の変数
  a 整数
  b 実数
  c 精度の高い実数
  d 文字
を宣言し、それぞれに
適当なデータを代入する。
そして次のように画面表示
するプログラム

 a の値は ... です
 b の値は ... です
 c の値は ... です
 d の値は ... です
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



getch();
}


464:デフォルトの名無しさん
08/01/22 22:27:09
37から229までの整数を加算し
その結果を表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){


for( )
{


}

printf( );

getch();
}


465:デフォルトの名無しさん
08/01/22 22:30:03
山下さんおつかれさまです

466:デフォルトの名無しさん
08/01/22 22:33:08
x = 0 から出発し、x の値を
0.001 づつ増加させることを
繰り返し、x^2 + 7x - 1 の値
が初めて正となった時点で
繰り返しを終了し、そのときの
x の値を表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



while( )
{

}

printf( );

getch();
}


467:デフォルトの名無しさん
08/01/22 22:33:51
キーボードから整数を入力させ
その数を x に代入する。
x が 100 より大きいとき、

「入力した数は 100 より大きい」

と表示し、x が 100 以下のとき、

「入力した数は 100 以下です」

と表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



getch();
}


468:デフォルトの名無しさん
08/01/22 22:38:11
キーボードからアルファベットを1文字入力させ、それが「a」のとき、「a です」「b」のとき、「b です」
「c」のとき、「c です」「d」のとき、「d です」「e」のとき、「e です」
と表示し、それ以外のとき「a,b,c,d,e 以外の文字」と表示するプログラム
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){



switch( )
{


}

getch();
}




469:デフォルトの名無しさん
08/01/22 22:40:01
死ねカス

470:デフォルトの名無しさん
08/01/22 22:40:12
問10
縦 100m、横 120mのグランド
がある。
縦横それぞれ同じ長さ x だけ
長くして面積が 13000㎡ と
なるようにしたい。
x を少数点以下1桁までの精度
で求めるプログラム。
@$---------------------
[解答]
#include <stdio.h>
#include <conio.h>

void main(){

float x=0;

while( )
{
x = x + 0.01;
}

printf("縦横 %5.1f ㍍広げればよい\n",x);

getch();
}

471:デフォルトの名無しさん
08/01/22 22:42:01
>>462-470

問7
キーボードから実数を一つ入力させ、それを x に代入する。
x ≦ 100 のとき「A」、
100 < x ≦ 350 のとき「B」、
350 < x ≦ 600 のとき「C」、
600 < x     のとき「D」と表示するプログラム

問8
1 + 4 + 9 + 16 + ・・・と加えて行き、
和が初めて 10000を超えたとき、
その和の値、および最後に加えた数を求めて表示するプログラム

問9
次に書かれた数の総和を求め、結果を表示するプログラム:
1
1+2
1+2+3
1+2+3+4
 ・
 ・
 ・
1+2+3+4+5+・・・+ 10



472:デフォルトの名無しさん
08/01/22 22:48:04
>>463,464,466,477
URLリンク(kansai2channeler.hp.infoseek.co.jp)

丸投げスレだから問題丸投げはいい。でも>>1に長いならうpろだ使えってかいてあるよね?

473:455
08/01/22 22:52:54
>>461さん
問題文をそのまま記述したのですが、そうなりますかね?
でも私には判断できないです....。


474:デフォルトの名無しさん
08/01/22 22:54:16
>>473
おそらく1~1000の書き間違いだろ
気にするな

475:デフォルトの名無しさん
08/01/22 22:56:31
>>473
1から1000までの範囲にしといた


#include <stdio.h>
#define N 300

int f(int);
int k=0,array[N]={0};

int main(void) {
int n,a,b=0,c;
for(n=1;n<=1000;n++) {
a=f(n);k=0;
if(a>b) {
b=a;
c=n;
}
}
printf("%d %d\n\n",c,f(c));
for(n=0;n<=b;n++) printf("%d ",array[n]);
return 0;
}

int f(int n) {
array[k++]=n;
if(n==1) return k-1;
if(n%2==0) f(n/2);
else f(3*n+1);
}

476:472
08/01/22 23:01:36
>>472の安価>>477>>467の間違い

>>468,470,471
>>471の問9に関して題意が不明確なのでこっちで勝手に解釈した。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

>>472含めすべてのプログラムの動作未確認、コンパイルもしていない。
間違ってたらごめんちゃい。

477:デフォルトの名無しさん
08/01/22 23:06:23
兄です。KRDで弟がお世話になっています。特定しましたんでヨロシク!


478:461
08/01/22 23:08:43
>>473
>>474が言ってるように、1~1000なら正しい。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

479:デフォルトの名無しさん
08/01/22 23:11:57
Lets to the best today! マジで?

480:デフォルトの名無しさん
08/01/22 23:17:31
>>470

#include <stdio.h>
#include <conio.h>

#include <math.h>

void main(){

float x=0;

while(0)
{
x = x + 0.01;
}
x=floor((-110+10*sqrt(131.0))*10+0.5)/10;
printf("縦横 %5.1f ㍍広げればよい\n",x);

getch();
}

481:デフォルトの名無しさん
08/01/22 23:20:33
明日もビジネスマナー研修頑張ってください by兄

482:455
08/01/22 23:28:36
すみませんでした!私の書き間違いでした。
1≦n≦10000の範囲で大きな関数を求めることは正しいのですが、
ちなみに~の下りの問題文の方では皆さんのおっしゃる通り
「1≦n≦1000の範囲」においてはnは871でした。

>>474さん
よく確認してから記述するよう以後気を付けます。すみませんでした。

>>475さん>>478さん
ありがとうございます!今自分でもプログラムを組んでいたのですが、
教えて頂いたプログラムを参考にして正しく実行できました。
本当に助かりました。




483:デフォルトの名無しさん
08/01/22 23:45:52
>>480
x = -110 + sqrt(13100);

484:デフォルトの名無しさん
08/01/22 23:55:24
>>483
>>480さんの、顔に、泥を、塗るな!!!!。

485:デフォルトの名無しさん
08/01/22 23:56:56
>>484
なんで、そんな、しゃべり方、なの?

486:デフォルトの名無しさん
08/01/23 00:22:45
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/25
[5] その他の制限:なし

よろしくお願いします

487:デフォルトの名無しさん
08/01/23 00:28:45
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語:C
[4] 期限:1月25日
[5] その他の制限:

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

488:デフォルトの名無しさん
08/01/23 00:36:44
[1] 授業単元: プログラミング入門
[2] 問題文(含コード&リンク):
コマンドラインから入力された文字列に小文字のアルファベット
が含まれていた場合は全て大文字に変換し、文字列を昇順にソー
トして表示するプログラムを作成して下さい
パラメータ文字列が2つ以上入力されなかった場合には、エラー
メッセージうぃ表示して終了させて下さい
sample One
usage : sample STRING1 STRING2 [STRING3 ... ]
sample matsui ichiro
** String data **
matsui
ichiro
** Changed string **
ICHIRO
MATSUI
sample sample1 sample2 sample3
** String data **
sample3
sample2
sample1
** Changed string **
SAMPLE1
SAMPLE2
SAMPLE3
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++ 2005
 [3.3] 言語: C
[4] 期限:1月24日
お願いしますm(_ _)m

489:デフォルトの名無しさん
08/01/23 00:53:53
>>487
#include<stdio.h>
#define MAX 5
int main(){
int a[MAX]={1},i,j;
for(i=1;i<=30;i++){
for(j=0;j<MAX;j++)
a[j]*=i;
for(j=0;j<MAX-1;j++)
a[j+1]+=a[j]/10000000,
a[j]%=10000000;
}
for(i=0;i<MAX;i++)
printf("%08d",a[MAX-i-1]);
printf("\n");
return 0;
}

490:デフォルトの名無しさん
08/01/23 01:10:09
【時間切れ】 (1/22)
>335

【未解決問題】
>>488 1/24
>>404 1/25
>>453 1/25
>>486 1/25
>>395 1/27 23:59
スレリンク(tech板:229番) 1/31
>79 無期限
>144 無期限 問題文>148

491:デフォルトの名無しさん
08/01/23 01:11:10
>>490
まとめおつん

492:デフォルトの名無しさん
08/01/23 01:16:21
>>487
URLリンク(kansai2channeler.hp.infoseek.co.jp)

493:デフォルトの名無しさん
08/01/23 04:03:32
>>488
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <string.h>
int cmp( const void * l, const void * r ) { return strcmp( *((char **)l), *(( char **)r) ); }
int main( int argc, char **args )
{
int i;
if ( argc < 3 ) {
fprintf( stderr, "usage: sample STRING1 STRING2 [STRING3 ... ]\n" );
exit( 1 ) ;
}
argc --; args ++;
puts( "** String data **" );
for ( i = 0; i < argc; ++i )
puts( args[ i ] );
puts( "** Changed string **" );
qsort( args, argc, sizeof( char * ), cmp );
for ( i = 0; i < argc; ++i ) {
char *p;
for ( p = args[ i ]; *p != '\0'; ++p )
putchar( toupper( *p ) );
puts("");
}
return 0;
}

494:デフォルトの名無しさん
08/01/23 04:48:22
>>453
#include <stdio.h>
#define N 10
int get_gcd( int m, int n ) { return ( m < n ) ? get_gcd( n, m ) : ( n == 0 ) ? m : ( m % n == 0 ) ? n : get_gcd( n, m % n ); }
int get_lcm( int m, int n ) { return ( m == 0 || n == 0) ? 0 : m * n / get_gcd( m, n ); }
int main( int argc, char ** args ) {
int nums[ N ] = {0}, i, l, gcd, lcm;
puts( "input numbers. " );
for ( i = 0; i < N; ++i ) {
scanf( "%d", &nums[ i ] );
if ( nums[ i ] < 1 ) { break ; }
}
l = i;
gcd = lcm = nums[ 0 ];
for ( i = 1; i < l; ++i ) {
gcd = get_gcd( gcd, nums[ i ] );
lcm = get_lcm( lcm, nums[ i ] );
}
for ( i = 0; i < l; ++i ) {
printf( "%d ", nums[ i ] );
}
printf( "\nLCM:%d, GCD:%d\n", lcm, gcd );
return 0;
}
10個入れるか,0以下の数を入れるかで入力をやめるようにしてみた


495:デフォルトの名無しさん
08/01/23 07:36:23
>>486
URLリンク(kansai2channeler.hp.infoseek.co.jp)

496:デフォルトの名無しさん
08/01/23 10:23:18
[1] 授業単元:プログラミング
[2] URLリンク(kansai2channeler.hp.infoseek.co.jp)
 このプログラムを実行すると1つのxにつき100個の誤差付きのyが出てくるので
 それぞれのxにおけるyの平均値(=(∑y)/100)を求めたい
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語: C
[4] 期限: 2008/1/24
[5] その他の制限:

よろしくお願いします

497:デフォルトの名無しさん
08/01/23 11:29:13
#include <stdio.h>
#include <stdlib.h>

void fileread(int,char *);
void filewrite(int,char *);

int main(int argc ,char *argv)
{
if(argc!=3){
printf("次回から引数を入力してください\n");
return 0;
}
fileread(argc,argv);
filewrite(argc,argv);
return 0;
}

void fileread(int argc,char *argv){
FILE *fp;
char *buffer;
fpos_t start_fpos;
int filesize;
if(!strcmp(argv[2],"r")){
fp=fopen(argv[1],"r");
fgetpos(fp,&start_fpos);

498:デフォルトの名無しさん
08/01/23 11:29:44
fseek(fp,0,SEEK_END);
filesize=ftell(fp);
fsetpos(fp,&start_fpos);
buffer=(char *)malloc(sizeof(char)*filesize);
while(fgets(buffer,filesize,fp))printf("%s",buffer);
free(buffer);
}
}


void filewrite(int argc,char *argv){
FILE *fp;
char *buffer,*stock;
int buffer_size=1000,count=0;
if(!strcmp(argv[2],"w")){
fp=fopen(argv[1],"w");
buffer=(char *)malloc(sizeof(char)*buffer_size);
while(fgets(buffer,buffer_size,stdin)){
count++;
stock=realloc(buffer,sizeof(char)*count);
sscanf(buffer,&stock[count-1]);
}
fputs(stock,fp);
free(buffer);
}
fclose(fp);
}

499:497
08/01/23 11:33:24
>497-498
コンパイルエラーが出ます。
passing argument 1 of ‘fopen’ makes pointer from integer without a cast
fopenの箇所が整数値を吐き出してるのだとは分かるのですが、
どう修正していいのか理解できません。ご教授ください。

500:390
08/01/23 11:53:55
>>437

大変参考になりました、ありがとう御座います。
strcmp()とstrcpy()については授業でそれを教えたから
とにかくそれを使わせて習得させるという方針っぽいです。

構造体structも次回の講義で始めて習うという初歩っぷりですので
基礎的な部分から稚拙さが漂ってくるのかもしれませんが…
structの勉強もできて非常にためになりました、多謝です

501:デフォルトの名無しさん
08/01/23 12:04:02
>>497
スレ違い.

main( int argc, char * argv ) ;じゃなくて
main( int argc, char * argv[] ) ;

void fileread(int argc,char *argv) じゃなくて
void fileread(int argc,char *argv[]) にしないと


502:デフォルトの名無しさん
08/01/23 12:38:41
>>496
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, j;
double x, y, sum;
char buf[100];
FILE *fp;
if (argc != 2)
return 1;
fp = fopen(argv[1], "r");
if (fp == NULL)
return 1;
for (i = 0, sum = 0.0; i <= 10; i++) {
for (j = 0; j < 100; j++) {
fgets(buf, sizeof(buf), fp);
sscanf(buf, "%lf %lf\n", &x, &y);
sum += y;
}
printf("%lf\t%lf\n", x, sum/100);
}
return 0;
}

503:デフォルトの名無しさん
08/01/23 12:55:40
>>501
馬鹿発見。スレ違いと言う点には同意するので、どこら辺が馬鹿なのかは割愛。

504:デフォルトの名無しさん
08/01/23 13:13:10
>>503
501じゃないけど解説求む

505:デフォルトの名無しさん
08/01/23 13:15:49
そこだけ変えても意味がないってことだろ。根本的に作りがおかしいんだから。

506:デフォルトの名無しさん
08/01/23 13:40:59
>>494
ありがとうございます。
因みにLCMが最大公約数でGCMが最小公倍数なんですかね?

507:デフォルトの名無しさん
08/01/23 13:42:12
>>506
いいえ。

508:デフォルトの名無しさん
08/01/23 13:42:41
>>506
lcm と gcd でググれば何の略か分かる

509:デフォルトの名無しさん
08/01/23 16:17:14
>>503
fopenの引数が間違ってる、という説明に留めろという理解でよろしい?
確かに、
>main( int argc, char * argv ) ;じゃなくて
>main( int argc, char * argv[] ) ;
というのは先走り感が否めないが。

510:395
08/01/23 16:29:49
>>444
argument error
と出てしまいます

511:デフォルトの名無しさん
08/01/23 16:33:20
プログラム実行時に data.txt を後に加えて実行すればおk

512:デフォルトの名無しさん
08/01/23 17:55:25
[1] 授業単元:プログラム入門
[2] 問題文:2つあるので下に書いていきます
[3] 環境
 [3.1] OS:Windows
 [3.2] gcc 3.4
 [3.3] 言語:C
[4] 期限: 明後日

1.0から1000までの数を1行に10個ずつカンマ区切りで表示する。
  末尾にはカンマを加えない。

実行例
  0,1,2,3,4,5,6,7,8,9
10,11~~~~
  ~~~~~~998,999
1000

2.文字列を入力して、その文字列の中にアルファベットと数字をそれぞれカウントして結果を表示する。
実行例
  入力して:nurupo ga!!!!1111
  アルファベットは8文字
  数字は4文字
  それ以外は4文字

2つも出してしまい、申し訳ないですがかなり切羽詰ってます。
プログラムに関しては先月始めたばかりで初心者中の初心者です、なのでそこまで難しいことは習ってないと思います。
ですが分からないのでお力を貸してください。

513:デフォルトの名無しさん
08/01/23 18:01:12
>>512
スペースは普通その他だろ

514:デフォルトの名無しさん
08/01/23 18:04:17
>>513
すいません、見落としてました。スペースもそれ以外に追加します。

515:デフォルトの名無しさん
08/01/23 18:34:24
>>512
#include<stdio.h>
int main(void){
int i;
for(i=0;i<=1000;i++){
if(i%10==0) printf("%d", i);
else printf(",%d", i);
if((i+1)%10==0) printf("\n");
}
return 0;
}

#include<stdio.h>
#include<ctype.h>
int main(void){
char buf[256];
int i, alphanum=0, digitnum=0, othernum=0;
printf("入力して:");
fgets(buf, sizeof(buf), stdin);
for(i=0;buf[i]!='\0';i++){
if(isalpha(buf[i])) alphanum++;
else if(isdigit(buf[i])) digitnum++;
else othernum++;
}
printf("アルファベットは%d文字\n", alphanum);
printf("数字は%d文字\n", digitnum);
printf("それ以外は%d文字\n", othernum);
return 0;
}

516:デフォルトの名無しさん
08/01/23 18:41:40
>>515
>for(i=0;buf[i]!='\n';i++){

の方がいいかもNE!

517:デフォルトの名無しさん
08/01/23 18:48:57
>>515、516
ありがとうございます。
今、外なんで家に帰ってから実行してみようと思います。

518:デフォルトの名無しさん
08/01/23 19:01:42
[1] 授業単元: C言語
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 今日中です。。。
[5] その他:長くてめんどくさいかもしれませんが、どうかよろしくお願い致します。

519:デフォルトの名無しさん
08/01/23 19:22:42
1] C言語
[2] 台形公式を用いて∫0^2 √4-x^2 の近似値を求めるプログラミングを作成しなさい
[3] 環境
 [3.1] OS: Linux
 [3.3] 言語: (C言語
[4] 期限:明日
[5] その他の制限: お願いします

520:デフォルトの名無しさん
08/01/23 19:32:49
>>519

#include <iostream.h>

void main(){cout << "どう見ても0です << endl;}

521:デフォルトの名無しさん
08/01/23 20:47:29
>>519
#include <stdio.h>
#include <math.h>
#define E 0.00001

double TrapMethod(double (*f)(double), double a, double b, double e)
{
    if (fabs(b - a) < e) return 0.5 * (f(a) + f(b)) * fabs(b - a); 
    else {
        double t = 0.5 * fabs(b - a);
        return TrapMethod(f, a, a + t, e) + TrapMethod(f, a + t, b, e);
    }
}

double func(double x) { return sqrt(4 - x * x); }

int main(void)
{
    printf("%.10f\n", TrapMethod(func, 0.0, 2.0, E));
    return 0;
}

522:デフォルトの名無しさん
08/01/23 20:54:30
>>487
つ265252859812191058636308480000000

523:デフォルトの名無しさん
08/01/23 23:41:10
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/26
[5] その他の制限:特になし

よろしくおねがいします

524:デフォルトの名無しさん
08/01/23 23:44:04
[1] 授業単元:C言語
[2] 問題文:ファイル中の文字数,単語数,行数をカウントするプログラムを作成せよ。
単語の切れ目はアルファベット以外の文字、行の終わりは改行文字またはファイルの終端とします。
この課題のソースファイルで動作確認しなさい。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:1/25
[5] その他の制限:特になし

お願いします

525:デフォルトの名無しさん
08/01/23 23:53:51
>>523
#include <stdio.h>

int main(void)
{
int i, j, n, num[] = {1000, 500, 100, 50, 10, 5, 1};
char roman[] = "MDCLXVI";

while(1) {
printf("Input integer (0 quit) ====>");
scanf("%d", &n);
if(n==0) break;
printf("%d ====> ", n);
for(i=0; n; i++) {
int c = n / num[i];
for(j=0; j<c; j++) putchar(roman[i]);
n %= num[i];
}
putchar('\n');
}
return 0;
}


526:デフォルトの名無しさん
08/01/24 00:10:52
>>523
繰り返しでやってみた
URLリンク(kansai2channeler.hp.infoseek.co.jp)

527:デフォルトの名無しさん
08/01/24 00:12:42
去年と同じ問題だw

528:デフォルトの名無しさん
08/01/24 00:18:31
>>524
適当 URLリンク(kansai2channeler.hp.infoseek.co.jp)

529:デフォルトの名無しさん
08/01/24 00:27:37
>>524
ミスあった >>528 修正 URLリンク(kansai2channeler.hp.infoseek.co.jp)

530:デフォルトの名無しさん
08/01/24 00:31:13
>>526
勘違いしてたから修正
URLリンク(kansai2channeler.hp.infoseek.co.jp)

531:デフォルトの名無しさん
08/01/24 00:45:02
[1] 授業単元:cprograming2
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VC 6.0
 [3.3] 言語:C
[4] 期限:2008/1/25 am 0:00
[5] その他の制限: 特に無し
よろしくお願いします

532:デフォルトの名無しさん
08/01/24 01:31:43
【時間切れ】 (1/23)
>518

【未解決問題】
>>531 1/25 0:00
>>404 1/25
スレリンク(tech板:229番) 1/31
>79 無期限
>144 無期限 問題文>148

533:デフォルトの名無しさん
08/01/24 01:38:17
>>529
なんで、そんなに括弧で囲む必要があるんだい?

534:デフォルトの名無しさん
08/01/24 01:39:28
>>518
URLリンク(kansai2channeler.hp.infoseek.co.jp)

すでに時間切れ 且つ なぜかリスト構造を使ってしまったけど、一応動いたのでうp

535:デフォルトの名無しさん
08/01/24 01:39:57
[1] 授業単元:アルゴリズム2
[2] 問題文
 最小全域木問題

で以下のコメント文の
 e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない
をどうやって書くのか分かりません。トレースの問題で躓いてしまいます。
プログラムが分かればトレース出来そうなのでよろしくお願いします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}
[4] 期限:1/24 9am test..!

536:デフォルトの名無しさん
08/01/24 01:46:51
一応情報はランダムにこんな感じで与えられます。
これをどう利用して記述して求めているのかが分かりません。

辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 4 3 1 2 4 6 1 8 5 6 7 5
端点2 6 7 5 3 5 1 2 4 4 2 8 2
重み 9 16 13 8 7 12 10 5 11 15 4 2


537:デフォルトの名無しさん
08/01/24 01:56:17
>>533
 データ(変数)を尊重し、できるだけそのデータが使われるときに、宣言し使う。
こうすることで、必要のないデータを他のブロックで誤って書き換えられることを防いでいる。
 いわゆる、データ指向プログラミング。

 >>529 fclose忘れてるな。別にいいけど。

538:デフォルトの名無しさん
08/01/24 02:05:12
>>534
ありがとうございます!!!

539:デフォルトの名無しさん
08/01/24 02:42:42
>>529 >>537
{NULL};が気になる。普通{0}じゃね?残りは0で埋められるわけだし。
NULLだとアドレスかと思ってしまうな

まぁ実用上はまったく問題ないと思うけど

540:デフォルトの名無しさん
08/01/24 02:43:52
>>535
配列eのメンバがわからないことには何とも言えない。
つーか、ソースうp。

541:デフォルトの名無しさん
08/01/24 02:54:33
スイマセン
再うp。

まず、バックトラックによって、グラフGの最小全域木を求める
次のようなアルゴリズムを考えます。ここで、n はGの 頂点数、m は辺の数で、e[i] (i = 1, ..., m) はGのi番目の 辺を表し、w[i] はその重み(正整数)を表すものとします。
また、int 型の配列 t と best_tree は大域変数であるとします。

void mst(int i, int k, int weight) {
if (k == n - 1) {
if (weight < best_weight) {
best_weight = weight;
配列 best_tree に t をコピー;
}
}
else if (i <= m) {
if (e[i] を、e[t[0]], ..., e[t[k - 1]]に加えても閉路ができない){
t[k] = i;
mst(i + 1, k + 1, weight + w[i]);
}
mst(i + 1, k, weight);
}
}


関数mstへの呼び出しと戻りを「イベント」と呼ぶことにします。 n = 8, m = 12 であり、Gの頂点が 1, 2, ..., n であって、 Gの m 本の辺の各端点と重みが次のように与えられるとします。
辺の番号 1 2 3 4 5 6 7 8 9 10 11 12
端点1 6 7 5 4 3 1 6 7 8 4 5 2
端点2 7 5 4 3 1 2 4 3 6 8 3 8
重み 14 11 15 12 4 9 6 16 8 7 10 2


542:デフォルトの名無しさん
08/01/24 03:36:47
>>537
そこまでするならサブルーチン化した方がいいような気もするが。読みづらいしな。

543:デフォルトの名無しさん
08/01/24 04:12:22
>>531
URLリンク(kansai2channeler.hp.infoseek.co.jp)
ヘロンの公式は使ってないけど。眠い。

544:デフォルトの名無しさん
08/01/24 04:17:09
>>531
純粋な興味として聞きたいんだが、どうして座標が整数値で与えられているのにヘロンの公式を使うんだろう。

545:デフォルトの名無しさん
08/01/24 04:36:59
 >>543
 ちょ、間違ってる。

546:デフォルトの名無しさん
08/01/24 08:21:22
[1] 授業単元:C入門
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:study C
 [3.3] 言語:C
[4] 期限:今日の15時
[5] その他の制限:入門科目なので簡単なコードでお願いします。

547:デフォルトの名無しさん
08/01/24 10:54:30
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):0<N <100,000,000の整数を入力したとき、Nの素因数分解結果を出力するプログラムを作成せよ。

 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C++
[4] 期限:1/25 15時
[5] その他の制限:
2から √Nまでの素数について、小さい順にNを割ってみて割り切れたらその素数aはNの素因数である。
割り算の結果N1についてa から √N1 までの素数について小さい順にN1を割り切れたらその素数b も
Nの素数である。以上を割り算の結果Nxが素数になるまで繰り返す。Nx もNの素因数である。
ということを使ってやれと言われました。

簡単なコードでお願いします。

548:デフォルトの名無しさん
08/01/24 10:56:22
>>546
URLリンク(kansai2channeler.hp.infoseek.co.jp)
入力チェックはしてない。

549:デフォルトの名無しさん
08/01/24 11:24:20


550:546
08/01/24 12:25:04
>>548
助かりした
無事単位を取得できそうです
ありがとうございました!

551:デフォルトの名無しさん
08/01/24 12:35:11
単位wwwどんだけしょぼい大学だよ

552:デフォルトの名無しさん
08/01/24 13:04:35
大学行ってないから基準が分からないんだね。

553:デフォルトの名無しさん
08/01/24 13:06:27
本来なら大学は自分で勉強するべきとか考えないとすれば
90分×14回 = 21時間 だから、無理もない
たったの二日で何が習得出来るって話だ

554:548
08/01/24 13:14:10
>>550
これで単位か・・・羨ましいような羨ましくないような。

>>547
URLリンク(kansai2channeler.hp.infoseek.co.jp)

555:デフォルトの名無しさん
08/01/24 14:09:37
>>502
ちょっと解説してもらえませんか?

556:デフォルトの名無しさん
08/01/24 14:43:55
>>555
回答した本人じゃないが、
for (i = 0, sum = 0.0; i <= 10; i++) {
for (i = 0, sum = 0.0; i <= 10; i++, sum=0.0) {
にすれば問題ないのでは?

557:デフォルトの名無しさん
08/01/24 15:30:11
>>550
ちょっWwおまWw
どこの大学だよ
それで単位認定って
笑った

558:デフォルトの名無しさん
08/01/24 15:33:44
文系が理系をちょっとかじるようなゼミだとそんなもんじゃね?

559:デフォルトの名無しさん
08/01/24 15:40:41
【質問テンプレ】
[1] 授業単元:CG
[2] 問題文(含コード&リンク):対戦型シューティングゲームを作ったんですけど、
もう1つのポットから、玉が出ないんです。どうしたら、出るようになるんでしょうか?
教えてください。あと、当たり判定も作ったんですが、これよりもっといいプログラムは
ありますか?
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: Cで書いてあります
[4] 期限: 今日の18時まで
[5] その他の制限:なし

560:デフォルトの名無しさん
08/01/24 15:42:32
>>559
よくあるのはベクトルのノルムで判定する方法

561:デフォルトの名無しさん
08/01/24 15:43:21
[1] 授業単元: プログラミング
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:BCC
 [3.3] 言語:C
[4] 期限: 今日中
[5] その他の制限:特にないです。。。

お願いします。

562:デフォルトの名無しさん
08/01/24 16:51:24
>>561
ファイルに書き出すときのテキストのフォーマットは?

563:デフォルトの名無しさん
08/01/24 18:13:49
>>562
txt形式でお願いします。

564:デフォルトの名無しさん
08/01/24 18:46:30
>>563
CSVとかそういうのを聞きたいんだと思うよ。

>>561
CSVにした。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

565:548
08/01/24 18:47:07
>>561
URLリンク(kansai2channeler.hp.infoseek.co.jp)


566:548
08/01/24 18:51:31
>>565をちょっと修正。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

567:デフォルトの名無しさん
08/01/24 19:03:53
>>564
>>565

ありがとうございます!

568:デフォルトの名無しさん
08/01/24 19:12:25
>>561
出遅れたけど載せておく
URLリンク(kansai2channeler.hp.infoseek.co.jp)

569:デフォルトの名無しさん
08/01/24 19:23:16
>>568
ありがとうございます!本当に助かります。

570:548
08/01/24 19:40:44
>>566にもミスがあったorz

ex11_2.c内の24行目
誤)p = &pmemb[count];
正)p = &pmemb[count++];

度々申し訳ない。

571:デフォルトの名無しさん
08/01/25 00:22:36
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年1月28日まで
[5] その他の制限:配列まで習いました。

よろしくお願いします。

572:デフォルトの名無しさん
08/01/25 00:27:56
[1] 授業単元:データ構造
[2] 問題文(含コード&リンク):
ソートに関する問題です。詳細は↓
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 6
 [3.3] 言語:C
[4] 期限:1/31まで
[5] その他の制限:なし
よろしくお願いします。


573:デフォルトの名無しさん
08/01/25 02:08:46
>>571
入力されうる最大の値はないのかい?
> (* ここに解答を書き加える *)
って、他の場所に全く手を加えてはいけないのか分からないよ。
sqrt()のためにmath.hを入れたが、それ以外他の場所には記述を加えずに書いてみた。

割り切れるかのループを回すところで素数以外でも計算してるのが無駄だが、1000000以下の素数を列挙するのに10秒程度。
URLリンク(kansai2channeler.hp.infoseek.co.jp)



574:573
08/01/25 02:18:08
無駄な部分があった。
URLリンク(kansai2channeler.hp.infoseek.co.jp)

575:デフォルトの名無しさん
08/01/25 02:35:02
【時間切れ】 (1/24)
>404 >535 >559

【未解決問題】
スレリンク(tech板:229番) 1/31
>>572 1/31
>79 無期限
>144 無期限 問題文>148

576:デフォルトの名無しさん
08/01/25 04:29:08
>>572
URLリンク(kansai2channeler.hp.infoseek.co.jp)

577:ラッセン沖縄
08/01/25 05:16:32
[1]授業単元 プログラミングB
[2]問題文 次の仕様を満たし、入力例の通りにして実行でき、更に、出力例の通りに出力されるようなCプログラムを作成せよ。(出力の空白や桁数にも留意せよ。)


 仕様 三角形の底辺と高さ入力し、その面積を求める。

 入力例    Z:\>(kadai)
 (カッコ内を 底辺=(3.0)
   入力する)高さ=(4.5)


出力例* ----+----|----+----|----+----|----+----|----+----|
底辺=3.000, 高さ=4.500
面積=6.7500

(*目盛りは桁を示すためのもの。プログラムで出力するのではない。)

[3]期限1/25 14時まで
             急いでいます!
                    よろしくお願いします。


578:デフォルトの名無しさん
08/01/25 07:18:51
[1] 授業単元: C言語
[2] 問題文:
今年のカレンダーを表示させる
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2005
 [3.3] 言語: C言語
[4] 期限: 明日まで
[5] 意味のある定数はマクロ define文
 途中でreturn exit 外部変数は使わない。
ヨロシクお願いします


579:デフォルトの名無しさん
08/01/25 11:55:44
[1] 問題文: ボンバーマンが格子状(1ブロック1辺20m、マップは縦横それぞれ100ブロック)のマップを爆弾を避けてゴールまでたどり着き、その時間を計算し表示するプログラムを作りなさい。
爆弾の位置座標は既知であり、ボンバーマンの速度は4m/sとする。
[2] 環境
[2.1] OS: Windows
[2.2] コンパイラ名とバージョン: Visual Studio
[2.3] 言語: C++
[3] 期限: 2008年1月28日まで
[4] その他の制限:無し


自分では全く手が出ませんでした…orz
先輩方のお力添えを頂ければ幸いです!
宜しくお願い致します( ´・ω・`)

580:デフォルトの名無しさん
08/01/25 12:03:46
再度申し訳ありません。
スタート時にルートを決定するのではなく、ブロック毎に曲がれるか判断するみたいです。あとなるべく早くゴールにたどり着かないとダメみたいです(>_<)

581:デフォルトの名無しさん
08/01/25 12:16:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):短いのでここに書きます。
(1) wavファイルを解析し、音声データを読むためのプログラムを作成せよ。
(2) 音声データを半分に縮め、変換させるプログラムを書け。
(3) 音声データを反転させるプログラムをかけ。
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2008年1月28日午前9時まで
[5] その他の制限: 特にありません。
C初心者なので、どう手をつけたらいいのか全くイメージできません。
皆様方のご協力をお願いいたしますm(_ _)m
なにとぞよろしくお願いいたします。


582:デフォルトの名無しさん
08/01/25 12:22:47
>>404
期限が切れてしまってますが、どなたかよろしくお願いします。

583:デフォルトの名無しさん
08/01/25 13:21:55
>>>>578
#include<stdio.h>
int main(void){
    int year, month, day, week, tmpm, tmpy, i;
    int daymax[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    year = tmpy = 2008;
    month = tmpm = 1;
    day = 1;
    if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0)) daymax[1] = 29;
    if (tmpm < 3) {
        tmpy--;
        tmpm += 12;
    }
    week = (tmpy + tmpy/4 - tmpy/100 + tmpy/400 + (13*tmpm+8)/5 + day) % 7;
    for(; month <= 12; day++, week++){
        if(week == 7) week = 0;
        if(day == 1){
            printf("\n***** %04d / %2d *****\n", year, month);
            for(i=0; i < week; i++) printf(" ");
        }
        printf(" %2d", day);
        if(day == daymax[month-1]){
            putchar('\n');
            day = 0;
            month += 1;
            continue;
        }
        if(week == 6) putchar('\n');
    }
    return 0;
}

584:デフォルトの名無しさん
08/01/25 14:56:31
>>582
その書き込みの50分後、
mixiの宿題スレに全く同じ問題を貼った奴が居る。

開発環境と期限は違うが、もしかしてお前さんか?

585:デフォルトの名無しさん
08/01/25 15:26:40
>>579
C++っての見逃して、思いっきりCで書いてしまった
ほかにもっとうまいやり方あったと思うけど、一応できたので参考程度に見てください
URLリンク(kansai2channeler.hp.infoseek.co.jp)

586:デフォルトの名無しさん
08/01/25 15:32:33
>>585
printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]+1) * 5)

printf("\ntime = %d\n", (weight_map[BLOCKNUM-1][BLOCKNUM-1]) * 5)
に修正してください

587:デフォルトの名無しさん
08/01/25 16:06:30
[1] 授業単元:C++プログラミング
[2] 問題文:
(処理の中身ではなく、ファイルの読み込みに関してなのですが)
1. フォルダ内に複数存在する "***.dat"(***は数字ではない)を読み込んでそれぞれについて同じ処理を行なう。
2. 処理の中でそれぞれのファイル名(***)とその処理結果(これは2つの数値です)をまとめて別の1つのファイルに出力する。
3. フォルダ内の全ての "***.dat" について処理し終わったらプログラムを終了する。
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:1/28 AM10:00

上のようなことがしたいのですが、いい方法が思いつきません…
どなたかよろしくお願いします。

588:デフォルトの名無しさん
08/01/25 16:22:49
コマンドラインからhoge *.datとでも入力して、
好きなように繰り返しをすればいい
ここは丸投げスレなんだからもっと具体的に書け

589:デフォルトの名無しさん
08/01/25 17:38:07
>>588
ファイルは"(生徒の名前).dat"となっていて各教科のテストの点が書かれているのでそれを合計し
1つのファイルに全員の分を"生徒の名前:合計点 \n"みたいな感じで出力したいのですが、
おっしゃっている「コマンドラインから~」というやり方がわからないんです。
すいません

590:デフォルトの名無しさん
08/01/25 18:29:04
>>589
#include <iostream>
#include <fstream>
void main(int argc, char *argv[])
{
std::ofstream output( "output.dat" );
for(int i=1; i<argc; i++){
//argv[i]を読み込んで名前と合計点をoutputに書き出す。格納形式が分からんから書けん
}
cout << "オワタ" << endl;
}

実行ファイルをhoge.exeとするとコマンドラインから
hoge.exe *.dat
と入力すればよい


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch