5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2010/06/18(金) 06:27:59
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

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

前スレ
C/C++の宿題片付けます 136代目
http://pc12.2ch.net/test/read.cgi/tech/1274827528/

921 :デフォルトの名無しさん:2010/07/16(金) 02:34:09
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
ATM(Automated Teller Machine; 現金自動預け払い機)システムを実現するプログラムを考える。

氏名,口座番号,暗証番号,預金残高を要素とする構造体を宣言し, 512人分の口座が作成可能なようにせよ.また,初期値として次のように構造体の内容を設定せよ.


立命太郎の口座番号は1234で,預金残高を1,234,560円に設定する.
野路花子の口座番号は5678で,預金残高を987,600円に設定する.
衣笠一郎の口座番号は9012で,預金残高を538,600円に設定する.
暗証番号は口座番号に1111を足して10000で割った余りに設定する.
ここで暗証番号は、口座番号を引数としてとり、それに1111を足して10000で割った余りを計算する関数を作成して設定すること.
上記の方法で初期値を設定し、設定された3人の預金残高を画面へ出力するプログラムを作成せよ.ただし、ひとり分の預金残高を表示する関数を作成して、これを繰り返し使って3人の預金残高を出力すること.


% ./initAccount
預金残高は次のとおりです.
立命太郎 (1234) 1234560 円
野路花子 (5678) 987600 円
衣笠一郎 (9012) 538600 円
%


[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><


922 :デフォルトの名無しさん:2010/07/16(金) 02:36:55
[1] C言語プログラミング演習
[2] 問題文(含コード&リンク
<<920の課題を基に「引出し」の機能を追加せよ.具体的には,口座番号の入力,暗証番号の入力と確認,支払額の入力,預金残高の更新をするプログラムを追加すればよい.機能の選択は,起動時できるようにすること.


% ./withdraw
[0]終了 [1]残高表示 [2]引出し: 2
口座番号を入力してください: 5000 ← 存在しない
暗証番号を入力してください: 0123
口座番号または暗証番号が間違っています.
口座番号を入力してください: 9012
暗証番号を入力してください: 5555 ← 間違っている
口座番号または暗証番号が間違っています.
口座番号を入力してください: 9012
暗証番号を入力してください: 0123
引出し額を入力してください: 1000000 ← 預金額より多い
預金額が不足しています.
口座番号を入力してください: 9012
暗証番号を入力してください: 0123
引出し額を入力してください: 20000
ありがとうございました.残高は 518600 円です.
[0]終了 [1]残高表示 [2]引出し: 2 ← 始めに戻る



[3] 環境
 [3.1] OS linux
 [3.3] 言語: C
[4] 期限: 2010年7月14日まで
[5] その他の制限 できるだけ簡単なソースでお願いします><


923 :デフォルトの名無しさん:2010/07/16(金) 04:59:50
>>918
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10840.c
>>919
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10841.c

924 :デフォルトの名無しさん:2010/07/16(金) 05:13:05
>>920
http://codepad.org/OdsISH0l

925 :924:2010/07/16(金) 05:19:35
勢いで書いたらケーシングとかバラバラで、なんかごめん。
簡単なコードにはなってると思う。

926 :デフォルトの名無しさん:2010/07/16(金) 08:29:05
>>890
ありがとうございました、助かりました。

927 :デフォルトの名無しさん:2010/07/16(金) 09:15:21
>>923
"Was it a cat I saw?"が回文と判定されないぞ

928 :デフォルトの名無しさん:2010/07/16(金) 09:28:56
tolowerつかえば?

929 :デフォルトの名無しさん:2010/07/16(金) 09:38:29
それだけじゃだめだ
' 'や'?'も無視しなければ

930 :デフォルトの名無しさん:2010/07/16(金) 09:57:35
>>919
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10842.txt

931 :デフォルトの名無しさん:2010/07/16(金) 10:09:05
マンドクセッ isalnum isalpha でも使えば?

932 :デフォルトの名無しさん:2010/07/16(金) 10:32:57
>>919
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10843.txt

933 :デフォルトの名無しさん:2010/07/16(金) 11:28:37
#include <stdio.h>
int anagram(char *cs) {
  int len = strlen(cs), i = 0, j = len - 1;
  for (;i < j; i++, j--) {
    for (;i < j && !isalpha(cs[i]); i++) {} // アルファベットが出るまでズラす
    for (;i < j && !isalpha(cs[j]); j--) {} // アルファベットが出るまでズラす
    if (tolower(cs[i]) != tolower(cs[j])) return 0; // 一致しないのが出たら回文じゃない
  }
  return 1; // 一致しないのが無いので、回文
}
int main() {
  char *css[] = {"spainyuusyou", "abcba", "abccba", "test", "", "a", "Was it a cat I saw?", "...", ".", ",a,"};
  int i;
  for (i = 0; i < sizeof css / sizeof *css; i++) {
    printf("文字列 \"%s\" は回文で%s\n", css[i], anagram(css[i]) ? "す" : "はありません");
  }
  return 0;
}


934 :デフォルトの名無しさん:2010/07/16(金) 12:08:14
>>927,929
大文字のことを忘れていた サーセン
あと文でチェックしないとだめだったね
単語で調べることしか頭になかったから記号なんてどう使うのかと
すでに答えも上げられてるけど手直ししたんで一応
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10844.c

935 :デフォルトの名無しさん:2010/07/16(金) 12:18:15
> int chk(char c)
フイタ

936 :デフォルトの名無しさん:2010/07/16(金) 13:33:53
お手上げです。頑張ったのですが、できませんでした。
申し訳ないですけどお願いします。

問題

複数の文字列を読み込み,さらに,それらの文字列を繋ぎ合わせる順番を入力し結果を出力するプログラムを作成せよ.

【実行例】

何個の文字列を入力しますか?:4
入力文字列[1]:Computer
入力文字列[2]:Science
入力文字列[3]:Tarou
入力文字列[4]:Tanaka

繋ぎ合わせる順番:
2
4
3
1

結果:ScienceTanakaTarouComputer



937 :デフォルトの名無しさん:2010/07/16(金) 13:47:02
この問題ができません。誰かお願いします。

入力したDNA塩基配列中にある塩基 t, c, a, gそれぞれの個数をカウントするプログラムを作成せよ.
【実行例】

% ./a.out
tataatccg ← 入力し,リターンを押して ^D
Thymine (t) : 3
Cytosine (c) : 2
Adenine (a) : 3
Guanine (g) : 1
%



938 :デフォルトの名無しさん:2010/07/16(金) 13:47:18
>878
ありがとうございました。
すごく助かりました。

939 :デフォルトの名無しさん:2010/07/16(金) 13:55:24
>>936
>>316,322

940 :デフォルトの名無しさん:2010/07/16(金) 13:57:12
>>937
>>196,197

941 :デフォルトの名無しさん:2010/07/16(金) 14:22:36
>>937
#include <stdio.h>
#define LEN 128

int main(void)
{
char buf[LEN], *p;
int t, c, a, g;

t = c = a = g = 0;
gets(buf);

p = buf;
while (*p) {
switch (*p) {
case 't': t++; break;
case 'c': c++; break;
case 'a': a++; break;
case 'g': g++; break;
}
p++;
}

printf("Thymine (t) : %d\nCytosine (c) : %d\nAdenine (a) : %d\nGuanine (g) : %d\n", t, c, a, g);

return 0;
}

942 :デフォルトの名無しさん:2010/07/16(金) 14:26:14
リターン押して^Dというのがよくわからん
^Dを押すまで入力した文字をすべて対象にするのか?

943 :デフォルトの名無しさん:2010/07/16(金) 14:41:56
入力したDNA塩基配列中に,atgという並びがいくつあるか調べるプログラムを作成せよ.但し,入力には t, c, a, g以外の文字も入っている.塩基以外の文字は無視すること.
【実行例】

% ./a.out
1gattatgtga
11tgccgatatc
21gatatgattc
(ここで ^D を押す)
#ATG is 3
%

よろしくお願いします。

944 :デフォルトの名無しさん:2010/07/16(金) 14:48:06
>>943
自分でできるようになろうよ・・・

945 :デフォルトの名無しさん:2010/07/16(金) 14:51:18
CTRL + Z か?

946 :デフォルトの名無しさん:2010/07/16(金) 14:56:06
>>945
実行ファイル名が ./a.out の場合は unix系OSのことが多い
つーことはターミナルの Ctrl-D は EOF を意味するだろう

947 :デフォルトの名無しさん:2010/07/16(金) 15:08:52
>>943
その入力文字中の先頭に表示されている1とか11とか21がわからん
それから入力された文字を全部連結しないとATG == 3にならないよね

948 :デフォルトの名無しさん:2010/07/16(金) 15:10:03
>>946
gets()で受けるとNULLを返すよな
だから二次元配列に入力したんだが指定文字列ではATG == 2にしかならない
先頭の1と11と21を無視して文字列を連結するんか?

949 :デフォルトの名無しさん:2010/07/16(金) 15:14:31
ttp://ameblo.jp/seiji1217/image-10573343125-10609037648.html
ゲッツ!

950 :デフォルトの名無しさん:2010/07/16(金) 15:58:57
>>915
実行結果を教えてくれませんか
メモ帳から自分が作ったプログラムがあるところに保存すればいいんですよね?
それはしてるんですが、できないんです…

951 :デフォルトの名無しさん:2010/07/16(金) 16:36:27
今日学校で試さなかったの?

952 :デフォルトの名無しさん:2010/07/16(金) 16:37:22
>>951
今日はこの授業はないので…すみません…

953 :デフォルトの名無しさん:2010/07/16(金) 17:50:54
[1] 授業単元:解析入門

[2] 問題文(含コード&リンク):

オイラー法、2次のルンゲ・クッタ法をそれぞれ用いて
以下の1階常微分方程式の初期値問題を解くC言語プログラムを作成し、
その結果と解析解と同じグラフに描画せよ。(横軸:x, 縦軸:y)。

dy(x)/dx = y  (但し、0 <= x <= 3)

(1) Delta x = 0.1
(2) Delta x = 0.3

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2010年07月19日0:00まで
[5] その他の制限:

954 :デフォルトの名無しさん:2010/07/16(金) 18:19:08
>>943
#include <stdio.h>
#include <string.h>
#define N 100

int main(void)
{
    int cnt = 0;
    char s[] = "atg", s2[] = "tcag", buf[N], *p1, *p2;

    p1 = buf;
    while (scanf("%99s", p1) != EOF)
while (*p1)
    p1++;
    p1 = p2 = buf;
    while (*p1) {
while (strchr(s2, *p1) == 0)
    p1++;
*p2++ = *p1++;
    }
    *p2 = *p1;
    p1 = buf;
    while (strstr(p1, s)) {
cnt++;
p1 = (strstr(p1, s));
p1++;
    }
    printf("#ATG is %d\n", cnt);
    return 0;
}

955 :デフォルトの名無しさん:2010/07/16(金) 18:30:31
>>906
pdf が読めない。

956 : ◆Fk1tuJpya. :2010/07/16(金) 18:55:46
[1] 授業単元:C言語演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10845.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: bcpad, Borland C++Compiler 5.5
 [3.3] 言語: C言語
[4] 期限: 2010年07月23日まで

957 : ◆Fk1tuJpya. :2010/07/16(金) 18:57:44
>>956です。
どなたか助けてください。お願いします。

958 :デフォルトの名無しさん:2010/07/16(金) 19:02:54
>>916
実行例に疑問があります。
B を入力していますが、B なら「国」ですから、75 は「国」。
したがって出力は、

県 14.4 = 国 75

になると思うのですが。

959 :デフォルトの名無しさん:2010/07/16(金) 19:14:34
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク): 文字列*bufからIPアドレスを抽出し、int ip[4]にそれぞれ入れよ。(最初に抽出できたものだけで良い)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: VC 6.0
 [3.3] 言語: C++
[4] 期限: 2010/7/17
[5] その他の制限: STLのstringや、boostを使うことも可。

960 :デフォルトの名無しさん:2010/07/16(金) 19:43:46
>>956
問1
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10846.txt

961 :デフォルトの名無しさん:2010/07/16(金) 19:54:52
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10847.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2010年7月17日まで
[5] その他の制限:int main(void){でスタート

962 :デフォルトの名無しさん:2010/07/16(金) 20:07:07
>>956
問2 整数を何個入力するのか分からないので、2種類書いてみました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10848.txt

963 :デフォルトの名無しさん:2010/07/16(金) 20:13:05
>>961
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt

964 :デフォルトの名無しさん:2010/07/16(金) 20:32:57
>>962
実行例を見て、最大10個で-1が入力されたら終了って読み取れないのはダメだろ

965 :デフォルトの名無しさん:2010/07/16(金) 20:34:31
>>731の実行結果を誰か教えてください

966 :デフォルトの名無しさん:2010/07/16(金) 20:45:00
>>964
すいません。そこまで分かりませんでした。

967 :デフォルトの名無しさん:2010/07/16(金) 20:51:20
>>960
>>962
解答ありがとうございました。本当に詰んでいたのでありがたいです。

968 :デフォルトの名無しさん:2010/07/16(金) 21:07:03
>>961です。
>>963さん、ありがとうございました。
大変申し訳ないのですが、これに基にした問題が後2問あります。すみませんが、
よろしくお願いいたします。
http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt
[1]にヒットポイントを比較する関数を追加し、2体のモンスターのヒットポイントを比較し、
ヒットポイントの高いモンスターの名前を表示するプログラムを作成しなさい。
[2]ヒットポイント、アタックポイント、ガードポイントに0〜9の乱数を加えるプログラムを作成しなさい。
という問題です。
乱数の使用方法
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10856.txt
よろしくお願いします。

969 :デフォルトの名無しさん:2010/07/16(金) 21:09:00
>>956
>>967
問2 修正版です
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10853.txt

970 :デフォルトの名無しさん:2010/07/16(金) 21:09:55
>>968訂正です。
[1]
http://ime.nu/kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10849.txt
にヒットポイントを比較する関数を追加し、2体のモンスターのヒットポイントを比較し、
ヒットポイントの高いモンスターの名前を表示するプログラムを作成しなさい。

971 :デフォルトの名無しさん:2010/07/16(金) 21:38:58
>>969
修正版ありがとうございます。今更問2の入力条件ですが、他のコメントの指摘通り10回入力または0以下入力で終了という問題でした。説明不足ですみませんでした。

972 :デフォルトの名無しさん:2010/07/16(金) 21:55:50
>>953をお願いします。問題の意味も分かりません。助けてください。

973 :デフォルトの名無しさん:2010/07/16(金) 22:01:30
>>968
>>970
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/1008.txt
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/1007.txt

974 :デフォルトの名無しさん:2010/07/16(金) 22:02:46
>>731で作ってもらったプログラムをコンパイルして、メモ帳にinput.dataとして保存しても、上手くいきません。
本当に誰か助けてください

975 :デフォルトの名無しさん:2010/07/16(金) 22:06:26
うちの環境だとBCCでもVC++でもBorland C++でもIntel C++上手くいくのはなんでだろ

976 :デフォルトの名無しさん:2010/07/16(金) 22:08:56
なんで釣りしてんのか謎だわ。
うちはうまくいきましたよ。

977 :デフォルトの名無しさん:2010/07/16(金) 22:10:06
>>974
input.data.txt になってるかもw

vmwarePlayer と ubuntu の vmdk イメージで linux 環境作っちゃえ
最初から vmwaretools もどきが入ってるから楽だよ

978 :デフォルトの名無しさん:2010/07/16(金) 22:14:31
>>978
txtじゃダメなんですか?
ファイルの種類ってところを、すべてのファイルにすればいいんですか

979 :デフォルトの名無しさん:2010/07/16(金) 22:22:20
次スレ立てます

980 :デフォルトの名無しさん:2010/07/16(金) 22:23:16 ?S★(526363)
次スレ立てました
C/C++の宿題片付けます 138代目
http://pc12.2ch.net/test/read.cgi/tech/1279286575/

981 :デフォルトの名無しさん:2010/07/16(金) 22:24:59
>>980


982 :デフォルトの名無しさん:2010/07/16(金) 22:55:11
>>978
エクスプローラでファイル名を後から"input.data" に変えればいいと思います。

983 :デフォルトの名無しさん:2010/07/16(金) 23:09:39
>>982
ごめんなさい。エクスプローラってインターネットエクスプローラの事ですか

984 :デフォルトの名無しさん:2010/07/16(金) 23:17:33
>>983
検索の開始ってところから、エクスプローラというのを見つけたんですが、そこから次はどこを押せばいいんでしょうか?

985 :デフォルトの名無しさん:2010/07/16(金) 23:25:44
なにこいつ

986 :デフォルトの名無しさん:2010/07/16(金) 23:27:07
拡張子も理解出来てないのか
まずPCの基本的な使い方から勉強したほうが

987 :デフォルトの名無しさん:2010/07/17(土) 00:02:23
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):県から国、及び国から県に換算する関数を作成し、
main関数でキーボードから数値とその値が国であるか県であるかを入力し、県ならば国に、
国ならば県に換算した値を小数点以下1桁までで出力するプログラムを作成しなさい。
値を引数とする関数で計算させ(関数名は nation とする)、出力は main関数で行うこと。

関係は以下の通り
県(A):(B+2)*5 国(B):A/3+25
<例>
数値を入力してください: 75
75 が「県」なら "A" を「国」なら "B" を入力してください: B

県 75.0 = 国 50.0

なお、if文かfor文を用いること。

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio2008

#include <stdio.h> int main(void) {

 [3.3] 言語: C++

988 :デフォルトの名無しさん:2010/07/17(土) 00:10:12
>>987
>>916,958

989 :デフォルトの名無しさん:2010/07/17(土) 02:00:36
ワロス

990 :デフォルトの名無しさん:2010/07/17(土) 12:07:15
こんなに問題の重複がいままであったことがあるだろうか?
最近これどうなってんの?

991 :デフォルトの名無しさん:2010/07/17(土) 12:20:28
いまさら過ぎて話しにならない。あんた新参か?このスレはもうかなり前からあるが
似た課題、同じ学校の別人が同じ課題を書き込むなんて、よくあったぞ?

992 :デフォルトの名無しさん:2010/07/17(土) 12:45:03
そして、同じレポートを提出する。w

993 :デフォルトの名無しさん:2010/07/17(土) 12:48:16
そして全員不可ww

994 :デフォルトの名無しさん:2010/07/17(土) 12:53:28
>>991
マジで?

俺が来たのは
C/C++の宿題を片付けます 95代目
1 名前: デフォルトの名無しさん [sage] 投稿日: 2007/08/24(金) 17:28:30

このへんから。重複は2〜3スレに一つくらいのイメージだったが、
勘違いだったのかな。

995 :デフォルトの名無しさん:2010/07/17(土) 12:54:47
2chを定期的に監視して、まだ存在しないパターンの課題を出力するプログラムを作れ。

996 :デフォルトの名無しさん:2010/07/17(土) 13:14:35
課題:このスレを監視して担当教官に密告メールを送るプログラムを作れ

997 :デフォルトの名無しさん:2010/07/17(土) 18:09:22
埋め

998 :デフォルトの名無しさん:2010/07/17(土) 18:26:41
>>1000なら引退。

999 :デフォルトの名無しさん:2010/07/17(土) 19:57:21
 V V
(´・ω・`) うさちゃんピース


1000 :デフォルトの名無しさん:2010/07/17(土) 19:58:22
 V V
(´・ω・`) うさちゃんピース


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

335 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)