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

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

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

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

【前スレ】
C/C++の宿題を片付けます 57代目
http://pc8.2ch.net/test/read.cgi/tech/1136768567/l50#tag993
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0951デフォルトの名無しさん2006/01/27(金) 01:58:36
void Input(struct data *A,int n){
printf("各生徒の名前と成績を入力してください\n");
for(i=0;i<n;i++){
("%d人目",i+1);
printf("名前:"); scanf("%s",A[i].name);
printf("得点:"); scanf("%d",&A[i].score);
}
}

void ShellSort(struct data *A,int n){
int j, k;
int h=1;
struct data damy;

do{h=3*h+1;}while(h<=n);

do{
h=h/3;

for (j=h; j<n; j++){
for (k=j-h; k>=0; k-=h) {
if (A[k].score>A[k+h].score) break;
0952デフォルトの名無しさん2006/01/27(金) 01:59:41
else{
damy=A[k];
A[k]=A[k+h];
A[k+h]=damy;
}
}
}
}while(h>1);
}

void Output(struct data *A,int n){
for(i=0;i<n;i++) printf("%s君 %d点\n",A[i].name,A[i].score);
}
0953デフォルトの名無しさん2006/01/27(金) 02:30:33
n-1個目まで加えたときの結果を用いて、n個目加えたときの組み合わせを作る って言うのを繰り返す。
最適解の値を再帰的に定義して値の小さいところから 順に積み上げる。

・・・うーん。>>914のどこがお気に召さないのだろうか?
穴埋めじゃないから?
0954デフォルトの名無しさん2006/01/27(金) 02:43:34
>>953
あんなヒントなんて、飾りです。偉い人には、それがわからんのです。
0955デフォルトの名無しさん2006/01/27(金) 02:56:37
>>953
>>914は答えが少ないような気が…。
n個のときの最適解が表示されてないんですかね?
0956デフォルトの名無しさん2006/01/27(金) 03:22:15
ネットで書き込むのは初めてなので無作法でしたらすいません。
C言語はまったくの初心者です。
無謀ながら3次元入力装置のデータグローブを作ってみようと、
いろいろなサイトの資料を参考に作ってきたのですが、
グローブからコンピュータにデータを送るC言語のプログラムを見つけまして、
C言語の本を読んでなんとか理解しようとしているのですが、
#include "g_lib.c" というのがどうしてもわからなくて悩んでいます。
どうか、この文がなんなのか詳しく教えて頂けないでしょうか。
0957デフォルトの名無しさん2006/01/27(金) 05:57:57
C言語なら俺に聞け! Part 120
http://pc8.2ch.net/test/read.cgi/tech/1136726279/
0958デフォルトの名無しさん2006/01/27(金) 07:44:17
>>955
してないだけだろ
0959デフォルトの名無しさん2006/01/27(金) 08:20:09
>>948
#include<stdio.h>
#define N 5
#define WMAX 10
int main() {
  int i, j, k, l;
  int w[N] = {2,3,4,5,6}, v[N] = {4,5,8,9,11};
  int D[N+1][WMAX+1], P[N+1][WMAX+1];
  for (k = 0; k <= WMAX; ++k) D[0][k] = 0;
  for (i = 0; i < N; ++i) {
    for (k = 0; k <= WMAX; ++k) D[i+1][k] = D[i][k], P[i+1][k] = 0;
    for (k = 0; k + w[i] <= WMAX; ++k) 
      if (D[i][k+w[i]] >= D[i][k]+v[i]) D[i+1][k+w[i]] = D[i][k+w[i]];
      else D[i+1][k+w[i]] = D[i][k]+v[i], P[i+1][k+w[i]] = 1;
  }
  for (k = 0; k <= WMAX; ++k) { 
    if (!D[N][k]) continue;
    for (i = N, l = k; i-1 >= 0; --i) 
      if (P[i][l]) printf("(%d,%d) ", w[i-1], v[i-1]), l -= w[i-1];
    printf("%d %d\n", k, D[N][k]);
  }
}
0960デフォルトの名無しさん2006/01/27(金) 08:58:23
標準ライブラリを使用せずに,
strcmp()と同等の処理を行える関数shukudai()をつくってください。
お願いします。
0961デフォルトの名無しさん2006/01/27(金) 09:03:19
�@テンプレに従いなさい
�Aあなたはどこまで考えたの?
0962デフォルトの名無しさん2006/01/27(金) 09:10:05
C/C++の宿題を片付けます 59代目
http://pc8.2ch.net/test/read.cgi/tech/1138320520/
0963デフォルトの名無しさん2006/01/27(金) 09:11:05
てかstrcmpって一致かどうかの判定にしか使ったことないから
正確な機能シラネ
0964デフォルトの名無しさん2006/01/27(金) 09:24:17
>>960
ぐぐった
http://www.bohyoh.com/CandCPP/C/Library/strcmp.html
うまく動くかなんてしらね
0965デフォルトの名無しさん2006/01/27(金) 09:25:21
>963
man 3 strcmp
0966デフォルトの名無しさん2006/01/27(金) 10:03:09
>>890
スルーされてる・・・
ほんとわからなくて困っています。
誰か助けてください。
0967デフォルトの名無しさん2006/01/27(金) 10:15:53
>>960int shukudai(const char *a,const char *b){
while(*a++ == *b++){if(*a=='\0')return 0;}return (*a - *b);}
0968デフォルトの名無しさん2006/01/27(金) 10:17:06
>>966
入出力例が示されてないとめんどくさい
ファイルを読み出すファイルってのがよく分かんない
0969デフォルトの名無しさん2006/01/27(金) 10:17:30
>>966
追記はfopen("filename","a")だよ
0970デフォルトの名無しさん2006/01/27(金) 10:18:35
>>964('A`) <僕を殺して・・・・ |彡サッ
0971デフォルトの名無しさん2006/01/27(金) 10:33:23
>>955
最大の重さ 3 で、重さと価値の組み合わせが(1, 2) (2, 3) (3, 4)のとき
どう動いて欲しいか書いてみてくれ。
1)途中経過でどう出力してほしいのか? プログラムが動いたときの出力と同じに書いてくれ。
2)で、n個のときn-1個の場合の情報を使うっていうのは、1)の場合だとどこをどう使うか書いてみてくれ。
0972デフォルトの名無しさん2006/01/27(金) 11:02:10
>>968
自分もよくわからないんですが、
ファイルをdatで作っておいて、それをfopenとかで読み出すってカンジじゃないんでしょうか・・・
入出力は名前1年齢1電話番号1とかでかまいません。
人数も多かったら3人でかまいません。
申し訳ないんですが、どなたか教えてください。

>>969
ありがとうございます。参考にさせていただきます。
0973デフォルトの名無しさん2006/01/27(金) 11:13:44
>>972
てか微妙に問題の意味がわからない
読み込むならその読み込んだデータはどうするんだ?
0974デフォルトの名無しさん2006/01/27(金) 11:25:55
>>973
すいません。問題を写し間違えていたようです。
正しくは、「10人の名前、年齢、電話番号の入ったファイルを作り、それを読み出す「プログラム」を作れ」
でした。ご指摘の通りでした。申し訳ございません。
ほかのところは確認したところ、写し間違いはしていないようです。
よろしくお願い致します。
0975デフォルトの名無しさん2006/01/27(金) 11:28:45
>>974
いや・・・そこはまあ脳内補完できるんだけど
読み込んでどうするんだってこと・・・それを画面に表示するのか
もしくは追記モードを使わないでwで上書きしろってことなのか
0976デフォルトの名無しさん2006/01/27(金) 11:32:14
教官屑だな
0977デフォルトの名無しさん2006/01/27(金) 11:34:19
後なぁ・・・読み出すって1行文字列として読み込んでそれっきりOKなのか
名前、年齢、電話番号に分解するのか?とかわかんないんだよ
0978デフォルトの名無しさん2006/01/27(金) 11:35:01
ちょっとその教師呼んで来い俺が説教してやる
0979デフォルトの名無しさん2006/01/27(金) 11:53:45
#include<stdio.h>
int main(void){
puts("  _、_\n( ,_ノ` )y━・~~~先生あんた教師向いてないぜ");
return 0;
}
0980デフォルトの名無しさん2006/01/27(金) 12:24:33
コピーするだけでいいならEOFまでputcしちゃうんだが…w
0981デフォルトの名無しさん2006/01/27(金) 12:29:45
ファイルの一番最後にAAでも書いちゃえ(・∀・)
0982デフォルトの名無しさん2006/01/27(金) 12:36:58
プロポーショナルフォントじゃないとAAは正常に出力されない罠
0983デフォルトの名無しさん2006/01/27(金) 12:40:32
#include<stdio.h>
int main(void){
puts("先生あんた教師向いてないぜ :-P");
return 0;
}
0984デフォルトの名無しさん2006/01/27(金) 12:43:34
>>982
コンソールで使えるのそれ?
0985デフォルトの名無しさん2006/01/27(金) 12:57:56
#include <windows.h>
int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){
MessageBox(NULL,"  _、_\n( ,_ノ` )y━・~~~先生あんた教師向いてないぜ","",NULL);return 0;}


…必死すぎw
0986デフォルトの名無しさん2006/01/27(金) 13:03:24
なんでメッセージBOXやねんw
0987デフォルトの名無しさん2006/01/27(金) 13:07:49
楽だから。
0988デフォルトの名無しさん2006/01/27(金) 13:16:13
>>959
多謝。
>>971
すいません手間かけました。重量ごとの最適解の誤りでした。
0989デフォルトの名無しさん2006/01/27(金) 13:23:31
[1] 授業単元:構造体
[2] 問題文(含コード&リンク):構造体に初期値を入れた後、表示させ、
テストの点数が高い順に並び替えた後を、表示させるプログラムを作っています。
並び替えの部分が上手く作れなくて、困っています。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC++6.0
 [3.3] 言語: C++
[4] 期限: 今日中
[5] その他の制限: 表示させる所を関数化、並び替えの部分を関数化する


よろしくお願いします
0990デフォルトの名無しさん2006/01/27(金) 13:43:40
6、4、3、8、1という数字を昇順に並びかえよ。と言う問題が分かりません。
SWAPという並び替えの関数とバブルソートの関数をつかってプログラミングをつくる
のが条件です。あとwhile文は使わずにfor文だけをつかいたいです。
どなたかこの問題を解いて下さいませんか?宜しくお願いします。
0991デフォルトの名無しさん2006/01/27(金) 13:45:41
テンプレ嫁
0992デフォルトの名無しさん2006/01/27(金) 14:02:00
>>989
まず構造体の中身を教えろ
そして何を並び替えるんだ
0993デフォルトの名無しさん2006/01/27(金) 14:03:24
>>989
ソートの問題は既出なのでお断りしてるんです。
0994デフォルトの名無しさん2006/01/27(金) 14:05:00
>>989-990
ヒント:>>664
0995デフォルトの名無しさん2006/01/27(金) 14:14:34
>>990
次スレと両方に書かないでください><
0996デフォルトの名無しさん2006/01/27(金) 14:15:05
産め〜
0997デフォルトの名無しさん2006/01/27(金) 14:15:50
1000
0998デフォルトの名無しさん2006/01/27(金) 14:16:55
1000
0999デフォルトの名無しさん2006/01/27(金) 14:16:57
埋め〜♪
1000デフォルトの名無しさん2006/01/27(金) 14:17:27
1000
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。