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

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2007/07/14(土) 14:13:32
>>951
リンクが間違ってる
953デフォルトの名無しさん:2007/07/14(土) 14:15:53
951です。
リンク先間違ったので作り直させて頂きます。
[1] 授業単元:プログラミング
[2] 問題文: よく切られたトランプから、5枚のカードを選び出すプログラムを作成せよ。
      ただし、トランプにはジョーカーは含まないものとする。
※虫食い問題です。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4616.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Microsoft Visual C++ 2005
 [3.3] 言語: C/C++/どちらでも可
[4] 期限: 2007年7月17日
[5] その他の制限:特になし

よろしくおねがいします。
954デフォルトの名無しさん:2007/07/14(土) 14:27:35
>>953
問1〜8の問題文は?
955デフォルトの名無しさん:2007/07/14(土) 14:31:44
>>953
1) 52
2) a[i] < 13
3) a[i] + 1
4) a[i] < 26
5) a[i] - 12
6) a[i] < 39
7) a[i] - 25
8) a[i] - 38
956デフォルトの名無しさん:2007/07/14(土) 14:43:34
>>953
問題文に誤りがある。それにこれだと毎回同じ結果になるぞ。
//#include<stdkib.h>
#include<stdlib.h>
//#define uniformrand() ((double)rand()/((double)RAND_MAX + 1.0)
#define uniformrand() ((double)rand()/((double)RAND_MAX + 1.0))
コロンの右が解答(トランプ種類は適当に決めた。正解は色々あるだろな)
問1:4*13
問2:a[i]<=12
問3:a[i]+1
問4:13<=a[i]&&a[i]<=12+13
問5:a[i]+1-13
問6:13*2<= a[i]&&a[i]<=12+13*2
問7:a[i]+1-13*2
問8:a[i]+1-13*3
957デフォルトの名無しさん:2007/07/14(土) 15:20:43
953です。
956>>問題文のご指摘ありがとうございます。
また、他の皆さんも自分のためにご協力ありがとうございます。

958881:2007/07/14(土) 15:35:04
>>890
ありがとうございます。
でも少し言葉足らずだったみたいで申し訳ないです。
main()の()の中も何も使っちゃいけないんです。

お時間があればまたよろしくお願いします。
959デフォルトの名無しさん:2007/07/14(土) 16:56:10
>>958
890ではないが、これではどうして欲しいのかよく分からない。
960819:2007/07/14(土) 17:18:39
>>945さん
本当にありがとうございます。
助かりました。
961デフォルトの名無しさん:2007/07/14(土) 17:29:06
>>958
まさかとは思うけど、voidってのがダメってこと?
プログラムの意味わかってる?
962デフォルトの名無しさん:2007/07/14(土) 18:26:05
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): テキストファイルに書かれた数列の総和をとり、
計算結果を元のテキストファイル名の末尾に「b」を付け足したファイル名で出力するプログラム

例)
元のファイル名:****.txt   内容: 1 1 2 2 2
出力するファイル名:****b.txt   内容: 8

[3] 環境
 [3.1] OS: Windows
 [3.2] gcc 3.4
 [3.3] 言語: C
[4] 期限: 月曜日
[5] その他の制限: とくになし
963962:2007/07/14(土) 18:26:51
期限は火曜日の間違いでした
964デフォルトの名無しさん:2007/07/14(土) 18:55:33
>>962
読込むファイル名は拡張子無しでプログラムに渡すの?
それとも自力で拡張子を分離して出力ファイル名を生成?
965962:2007/07/14(土) 19:18:36
う、わかりません…
その辺りに関しては特に指定がなかったので、簡単なほうでいいと思います
966デフォルトの名無しさん:2007/07/14(土) 19:19:25
>>964
テキストファイルだから.txt決めうちでいいんじゃね
967デフォルトの名無しさん:2007/07/14(土) 20:07:02
[1] 授業単元:オペレーティングシステム
[2] 問題文(含コード&リンク):
セマフォを使った同期 −共有バッファを用いたプロセス間
メッセージ通信
  親/子プロセスでメッセージを書き込み、子/親プロセスで読
  み出す
以下の未完成プログラムを完成させよ
http://uproda11.2ch-library.com/src/1114963.c

[3] 環境
 [3.1] OS: (Windows/Linux/等々):Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限:07/14
[5] その他の制限:自分で考えてみましたがよくわかりませんでした・・・
           よろしくお願いします
968デフォルトの名無しさん:2007/07/14(土) 20:47:01
969デフォルトの名無しさん:2007/07/14(土) 20:57:33
お願いがあるんだ・・・
>>932のおかしな所を正してくれないか?
970デフォルトの名無しさん:2007/07/14(土) 21:59:19
>>968
ありがとうございます!
971デフォルトの名無しさん:2007/07/14(土) 22:51:25
>>969
かなり直さないといけないな。
「商をmに格納する」でいいの?
972何をしたいんだ?:2007/07/14(土) 22:56:29
>>969
スレ違い
973デフォルトの名無しさん:2007/07/14(土) 23:04:47
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):

 キーボートからs1文字列を入力して、s1文字列を文字列s2にコピーしてから
 表示するプログラムを作成よ。(条件はstrcpy関数を使わないで自作関数でコピーすること)

[3] 環境
 [3.1] OS:XP
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 7月18日まで
お願いします
974デフォルトの名無しさん:2007/07/14(土) 23:14:55
>>973
#include <stdio.h>

void my_strcpy(char *s2, char *s1){ // どちらでもお好きなほうをどうぞ
while((*s2++=*s1++)!='\0')
;
}

void my_strcpy(char s2[], char s1[]){ // どちらでもお好きなほうをどうぞ
int i;

for(i=0;;i++){
s2[i]=s1[i];
if(s1[i]=='\0') break;
}
}

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

fgets(s1, sizeof(s1), stdin);
my_strcpy(s2, s1);
printf("%s", s2);

return 0;
}
975デフォルトの名無しさん:2007/07/14(土) 23:32:42
>>974
ありがとうございます、早いです、好きです付き合ってください。
976デフォルトの名無しさん:2007/07/14(土) 23:34:53
>>971
そう

>>972
自分の宿題にも使える気がしたんだ、でもスレ違いなら仕方がない
977デフォルトの名無しさん:2007/07/14(土) 23:42:11
>>976
851への回答と言う事で考えてみる
978デフォルトの名無しさん:2007/07/15(日) 00:21:22
なんで自分でしないの?○○までやったけれど、
〜のエラーがでてわからないとかいわないの?
本みればすぐのっている問題が多すぎる。
979967:2007/07/15(日) 00:28:37
どなたか>>967お願いします・・・
980デフォルトの名無しさん:2007/07/15(日) 00:30:59
>>976
#include <stdio.h>
int main(){
int i,m=0;
int a[4]={1,1,0,0};
int b[4]={0,1,0,0};
do{
for(i=0;i<4;i++){a[i]-=b[i];}
for(i=0;i<4;i++){
if(a[i]==-1){int w=1;a[i]=1;
while(i-w>=0){
if(a[i-w]==0){a[i-w]=1;w++;continue;
}else{a[i-w]=0;break;}}}}
for(i=0;i<4;i++){putchar(a[i]+'0');}
putchar('\n');
m++;
}while(a[0]||a[1]||a[2]||a[3]);
printf("%d\n", m);
return 0;
}
981デフォルトの名無しさん:2007/07/15(日) 04:49:38
>>979
問題文これだけ?
環境は?

こんなん何もなしでやるのなんか無理だろ
982デフォルトの名無しさん:2007/07/15(日) 07:31:40
>>980
851の分まで有難うといっておく

そのソースと睨めっこしながら宿題を頑張ることにするよ
983デフォルトの名無しさん:2007/07/15(日) 08:49:04
>>979
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4623.txt
環境がないのでコンパイルしていない。
また共有メモリ、セマフォの削除もしていない。
984デフォルトの名無しさん:2007/07/15(日) 09:55:51
[1] 授業単元: C言語 基礎&応用
[2] 問題文(含コード&リンク): 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4624.txt
ソース:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/4625.txt

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


よろしくお願いいたします。
985デフォルトの名無しさん:2007/07/15(日) 10:04:42
>>984
問題をそのまま載せただけじゃなんだかよくわからないよ
予備知識が無いんだから
gets_s()は何をする関数?
986デフォルトの名無しさん:2007/07/15(日) 10:15:08
gets_s()はマイクロソフトがVisual Studioにくっつけた
”getsを安全に使うようにする”ための関数だろw

char *gets_s(char *buffer, size_t sizeInCharacters);


hoge_sとか、_sがついてるやつは、だいたいVSの独自もの
>>984もあまり使わないほうがいいよ
987デフォルトの名無しさん:2007/07/15(日) 10:15:43
>>931をお願いします!!
988デフォルトの名無しさん:2007/07/15(日) 10:21:16
>>984>>266の続きか
989デフォルトの名無しさん:2007/07/15(日) 10:25:56
>>984
まず行末コメントをタブで揃えるのやめろ。環境によって幅が変わる。
タブは行頭の、意味的なインデント(や段落)を示すときだけ使え
990デフォルトの名無しさん:2007/07/15(日) 10:37:53
>>986
ありがと、実行はできた

あとさ、判定は積だけでいい気がするけど
991984:2007/07/15(日) 11:34:34
「_s」については>>986さんの言うとおりです。
これから気をつけていこうと思います。

>>988
続きで、その前にあった「リプレイできるようにしろ」って言うのはどうにかできたんですが
その次に今回の問題で、碁盤スパイラルです。

>>989
了解しました。ご指摘ありがとうございます。
992デフォルトの名無しさん:2007/07/15(日) 15:22:38
[1] 授業単元:
[2] 問題文:
二つの文字列のポインタ pa, pb を引数に取り
pa の指す文字列に対する回文(逆さ文字列)を
pbの指す先に格納する関数 mkrevstr()を書け.
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: cygwin gcc
 [3.3] 言語: C
[4] 期限: [07月16日まで]

お願いします。

993デフォルトの名無しさん:2007/07/15(日) 15:43:30
void mkrevstr(char *pa, char *pb)
{
char *p = pa;
while(*p) p++;
while(p!=pa) *pb++ = *(--p);
*pb = '\0';
}

994デフォルトの名無しさん:2007/07/15(日) 15:44:36
void mkrevstr(char *pa, char *pb)
{
char *ch = pa;
while(*pb++ = *pa++);
pb--;
pa-=2;
for(;ch != pa--;) *pb++ = *pa;
*pb = '\0';
return;
}
995デフォルトの名無しさん:2007/07/15(日) 15:48:14
なんで一度コピーしてんの?
996デフォルトの名無しさん:2007/07/15(日) 15:51:16
>>993 ,994
ありがとうございました。
997デフォルトの名無しさん:2007/07/15(日) 15:56:11
回文と逆さ文字列って別物だよな?
>993が逆さ文字列で>994が回文だけど、どっちが正しいんだろ。
998デフォルトの名無しさん:2007/07/15(日) 16:35:45
.
999デフォルトの名無しさん:2007/07/15(日) 16:37:48
1000デフォルトの名無しさん:2007/07/15(日) 16:38:23
せーん
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。