C/C++の宿題を片付ケます 60代目

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2006/02/16(木) 01:24:14
最強はやはりBASIC
話題のガベコレももれなくついてくる
953 ◆KxeUK/HCiI :2006/02/16(木) 02:38:22
[1] コンピュータープログラミング
[2] パズルを考える。このパズルでは,9×9 のマスに,次の条件に従って 1〜9 の数字を入れていく。
  同じ列・同じ行に同じ数字を入れてはならない。
  9×9 のマスは,大きな 3×3 のブロック 9 つに仕切られており,この中でも同じ数字は複数入れてはならない。
  という問題です。
  ttp://www.iba.k.u-tokyo.ac.jp/~iba/C/report3/report3.htm
[3] 環境
 [3.1] Linux
 [3.2] gcc 3.4 VC 6.0
 [3.3] どちらでも可
[4] 2006年3月10日
[5] 特に制限はありません

よろしくお願いいたします
954デフォルトの名無しさん:2006/02/16(木) 03:13:44
>>953
明日はお偉いさんから呼び出しだな
覚悟きめておいたほうがいい
955デフォルトの名無しさん:2006/02/16(木) 03:17:25
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): コードの入力ミスをチェックするためにチェックディジットを付けたコードを利用することがある。
チェックディジットの算出方法について考える。,
コードの形式は基本コードの後に、チェックディジットを一桁つける。
コード XXX・・・Xx(X コード、x チェックディジット)
例えば、基本コードが"3869214"のとき
基本コードの各桁にウェイト付けを行う。ウェイトは桁の先頭から
7,6,5,4,3,2,7,6,5・・・,2の順で繰り返す基本コードを数値に変換し、ウェイトは桁の先頭から。
各桁の総和を求める。このとき各桁の値が2桁の場合は、10位と1の位を、それぞれ1桁の数値として加算する。
基本コード '3' '8' '6' 9' '2' '1' '4'
数値変換 3 8 6 9 2 1 4
        x x x x x x x
ウェイト   7 6 5 4 3 2 7
       21 48 30 36 6 2 28
分割 2+1 + 4+8 + 3+0 + 3+6 + 0+6 + 0+2 + 2+8 =45
加算した結果45を11で割った余りをを求める。さらに、求めた余りを11から引いた値がチェックディジットになる。
なお値が2桁のときは、1の位の数字がチェックディジットとなる。
45 % 11 = 4 余り 1 
11 - 1 = 10 (0 チェックディジット)
よってチェックディジットは0となり、これを文字に変換して、文字列の末尾に付加する。
付加した結果、コードは、"38692140"となる。
[3] 環境  [3.1] OS: Windows [3.2] コンパイラ名とバージョン VC 6.0 [3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: 穴埋めです@〜Dまでに入る文を教えてください
956デフォルトの名無しさん:2006/02/16(木) 03:18:52
/* チェックディジット */
#include <stdio.h>
int chkdigit(char *code)
{
int wait[] = {7,6,5,4,3,2};
int i =0, kei = 0, work;
int chk_d;
while(*code != '\0'){
if(@) return -1;
A;
kei += (work / 10) * (work % 10);
B;
code++;
}
C;
if(chk_d >=10) chk_d = chk_d % 10;
*code = chk_d + '0';
D;
return 0;
}
void main(void)
{
char code[100];

gets(code);
if(chkdigit(code)) printf("エラー\n");
else printf("%s\n",code);
}
957955 956:2006/02/16(木) 03:19:55
よろしくお願いします連投すいません
958デフォルトの名無しさん:2006/02/16(木) 04:28:01
>>955
例題の通りだとすると、一部問題に間違いがあると思う。修正して出した。
/* チェックディジット */
#include <stdio.h>
int chkdigit(char *code)
{
int wait[] = {7,6,5,4,3,2};
int i =0, kei = 0, work;
int chk_d;
while(*code != '\0')
{
if( (*code - '0' < 0 ) || (9 < *code - '0') ) return -1;
work = (*code - '0') * wait[i % 6];
kei += (work / 10) + (work % 10);//ここは間違い?題意では*ではなく+では?
i++;
code++;
}
chk_d = 11 - (kei % 11);
if(chk_d >=10) chk_d = chk_d % 10;
*code = chk_d + '0';
*(code+1) = '\0';
return 0;
}
959デフォルトの名無しさん:2006/02/16(木) 05:37:56
[1] 授業単元:プログラミング演習
[2] 問題文:
 1〜3999 のいずれかを入力して、ローマ数字による表記で出力するプログラムを作りなさい。
 ただし、 I(1) V(5) X(10) L(50) C (100) D(500) M(1000) を使って表すものとし、とする。
( 例 )
45...XLV
3999...MMMCMXCIX
[3] 環境
 [3.1] OS: Linux
 [3.2] gcc
 [3.3] 言語: C
[4] 期限: 2006年2月17日まで
960959:2006/02/16(木) 05:39:39
できれば switch文を用いる感じで・・・
961デフォルトの名無しさん:2006/02/16(木) 06:22:46
次スレはいらないね
962デフォルトの名無しさん:2006/02/16(木) 06:31:21
C/C++の宿題を片付けます 61代目
http://pc8.2ch.net/test/read.cgi/tech/1140039002/
963デフォルトの名無しさん:2006/02/16(木) 06:45:42
>959
int a;
/* 入力は略 */
switch (a) {
case 1: printf("I\n"); break;
case 2: printf("II\n"); break;
/* 略 */
}

964デフォルトの名無しさん:2006/02/16(木) 06:51:57
>>963
あとはそのcase文を自動生成するプログラムを書けばいいね!
965デフォルトの名無しさん:2006/02/16(木) 07:21:31
>>959
前スレあたりで出てた気がする
966デフォルトの名無しさん:2006/02/16(木) 07:35:50
>>953
level1 の方針
(1)1〜9の数字がそれぞれ置ける状態どうかを記録する領域をマスの数だけ準備
(2)数字が入っているマスがあった場合、そのマスの縦、横、3*3のマスにはその数字が置けないとして記録
(3)1〜9の数字のうち、1種類の数字しか置きようがないマスが出てくるのでそこに数字いれる
(4)数字をマスに入れたら、そのマスの縦、横、3*3のマスにはその数字が置けないとして記録
(5)進展がなくなるまで(3)〜(4)の繰り返し
(6)全部マスが埋まってたら答え、埋まってないマスがあればlevel1じゃとけねーよっと
(*)どの数字も入れようがないマスが発生したら解けない問題です

日本語分かりにくくてすまないな・・('A`)
昔作ったソースがあったがひどいもんだったのでupとかは多分しない
がんばれよ東大生
967デフォルトの名無しさん:2006/02/16(木) 07:40:40
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):半角カタカナから全角カタカナに変換する関数
[3] 環境
 [3.1] OS:Windows XP Pro
 [3.2] コンパイラ名とバージョン:VC++ 6.0
 [3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:なし

よろしく、お願いします。
968デフォルトの名無しさん:2006/02/16(木) 07:45:09
>>967
関数の仕様が曖昧なので解答しかねる
969デフォルトの名無しさん:2006/02/16(木) 07:46:32
期限が無期限の宿題ってなんぞやもし?
970デフォルトの名無しさん:2006/02/16(木) 07:47:48
>>969
人生の宿題
971デフォルトの名無しさん:2006/02/16(木) 07:58:08
センセー! ひょっとして、>>967は業務プログラムですか?
972111:2006/02/16(木) 08:01:15
前のスレに同じ質問があったのですが、
[1] 授業単元:生産工学
[2] 問題文(含コード&リンク):
次の4点
(0,0),(1,0),(1,1),(0,1)
を順に通る3次のSPLINE曲線とそのグラフを描くプログラムを作成せよ。
始点と終点の接線の方向はそれぞれ(1,1)と(-1,0)とする。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラは何でもいいっていわれました
 [3.3] 言語: C
[4] 期限: できるだけ早くお願いします。
[5] その他の制限: プログラムリストとそれによってできたグラフを印刷して提出といわれますた。
            グラフのソフト等も特に制限はないそうです。

をもう一度お願いします。卒業かかっているので、宜しくお願いします。
973デフォルトの名無しさん:2006/02/16(木) 08:04:05
半角から全角は濁点とかが付いたりするから面倒くさいんだよな
VCだと_mbbtombcがあるからすこしはマシになるけど
974デフォルトの名無しさん:2006/02/16(木) 08:50:21
>>972
グラフィック関係のやる人いないと思うぞ…
975デフォルトの名無しさん:2006/02/16(木) 11:17:24
>>972
55代スレで答えたのが消えずに残ってたので,そのまんまアップしとく.
標準出力に補間した点たちを吐くので,適当なグラフソフトで描いとくれ.
一緒に入ってるのは gnuplot で描いたやつね.

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1646.zip
976デフォルトの名無しさん:2006/02/16(木) 12:42:30
>>953
何も考えずに書いたら level2 になった.方針はほとんど >>966 と同じ.
入力データは標準入力から取る.

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1647.c
977デフォルトの名無しさん:2006/02/16(木) 12:43:51
数学 魔方陣
でググればおいしいことが見つかるかも
978976:2006/02/16(木) 12:44:40
>>976
39行目 answer_check って行はデバッグ用だったので,消してください.
979デフォルトの名無しさん:2006/02/16(木) 12:46:40
>>977 むしろ 数独 で
980デフォルトの名無しさん:2006/02/16(木) 12:49:17
981デフォルトの名無しさん:2006/02/16(木) 13:10:37
>>914=967で、業務用プログラムだな。
大方名簿か在庫管理のコードで、最初書き出しに困って、
次に半角の名前に困ったってことだろ
982デフォルトの名無しさん:2006/02/16(木) 13:28:42
>>980
濁音半濁音の処理はしてくれないのかな?

>>967
iconvでiso2022に変換してから元の漢字コードに戻すといいよ。
#nkfでもいいけどw
983デフォルトの名無しさん:2006/02/16(木) 13:51:39
>>982
してるけと゛?
984デフォルトの名無しさん:2006/02/16(木) 13:59:17
>>982
空気嫁
985デフォルトの名無しさん:2006/02/16(木) 14:06:08
>>980
「ガ」は「ガ」にしてください。
詳細設計で書いてあるので絶対そうしてください。
986デフォルトの名無しさん:2006/02/16(木) 14:09:17
詳細設計ってなんだろ・・・
987デフォルトの名無しさん:2006/02/16(木) 14:10:43
そんな突っ込みはいいから早く
急いでます
今日、合コンだから残業できないんだよ!
988デフォルトの名無しさん:2006/02/16(木) 14:11:58
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。

>絶対そうしてください。
市ね
989デフォルトの名無しさん:2006/02/16(木) 14:13:26
あ〜、もうムカツク。
お前が氏ね>>988
お前ら役に立たないので向こうで質問してきます。
990デフォルトの名無しさん:2006/02/16(木) 14:14:40
釣り放題でつね ニヨニヨ( ・∀・ )ニヨニヨ
991967:2006/02/16(木) 14:19:43
>>980
ありがとうございます
992デフォルトの名無しさん:2006/02/16(木) 14:21:50
というか、なぜトリップをつけないのかと・・・
993967 ◆uADMVDHRrc :2006/02/16(木) 14:22:38
つけました
994デフォルトの名無しさん:2006/02/16(木) 14:25:23
次スレまだー?
995デフォルトの名無しさん:2006/02/16(木) 14:28:33
嫌気がするような連続書き込みをしてライバルを減らし
楽してズルして1000は頂く
996デフォルトの名無しさん:2006/02/16(木) 14:30:28
997デフォルトの名無しさん:2006/02/16(木) 14:31:25
ほげ
998デフォルトの名無しさん:2006/02/16(木) 14:32:09
hage
999デフォルトの名無しさん:2006/02/16(木) 14:41:24
すいませんちょっと質問していいですか?
長くなるので次スレに書きます・・・
1000デフォルトの名無しさん:2006/02/16(木) 14:42:37
教えてクン(`皿´)ウゼー
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。