1 名前:デフォルトの名無しさん mailto:sage [2009/06/08(月) 17:31:27 ] あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに) kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】 www.linux.or.jp/JM/index.html 【過去ログ検索】 chomework.sakura.ne.jp/ 【wiki】 www23.atwiki.jp/homework/ 前スレ C/C++の宿題片付けます 126代目 pc12.2ch.net/test/read.cgi/tech/1242655611/
49 名前:39 mailto:sage [2009/06/09(火) 01:15:05 ] >>40 execvpとしてみたのですが、 >gcc -o exp1 exp1.cでとても長いエラーが出力されます。 テストですので、hello worldで普通に実行できましたのでソースが悪い訳じゃないと思います。
50 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:28:31 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 姓,名,年齢,郵便番号,電話番号の各データをメンバとする構造体配列を下記のように宣言し その構造体配列にキーボードからデータを逐次入力して,最大100名のデータを格納できるようにしなさい。 但し,入力の終了は,姓入力の際にnullと入力することによって判定しなさい。 また,入力が終了した時点で,格納された複数名のデータをすべて出力するようにしなさい。 #define MAXREC 100 struct namelist { char last_name[21], first_name[21]; int age; char zip[9], tel[13]; } meibo[MAXREC]; また、入力が終了した時点で,格納された複数名のデータを郵便番号順に出力するようにプログラムを変更しなさい。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月9日23:59 [5] その他の制限:特になし
51 名前:デフォルトの名無しさん [2009/06/09(火) 01:32:42 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 共用体を用いて、2バイト整数の上下バイトを入れ換えて暗号化する関数 short encode(short)を作り キーボードから入力した整数を暗号化/復号化するプログラムを作りなさい [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:6月10日 [5] その他の制限: main関数の部分は次のコードを用いなさい。 short encode(short); main() { int n, m, k; while (1) { printf("整数を入力して下さい(終了は0) = "); scanf("%d", &n); if (n == 0) break; m = encode(n); /* 暗号化 */ printf("\n\t%d を暗号化すると %d になります。\n", n, m); k = encode(m); /* 復号化 */ printf("\n\t%d を復号化すると %d になります。\n\n", m, k); } }
52 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:50:27 ] [1] 授業単元:C言語 [2] 問題文(含コード&リンク): 整数係数の多項式について,その次数と係数をキーボードから入力して連結リストに格納し 次に格納された多項式を画面に出力する。 そして、xの実数値をキーボードから入力して多項式の値を求めるプログラムを作れ。 出力例 整数次数の多項式を入力します! 最大次数を入力してください:5↵ 小さい次数から整数係数を順に入力してください X^0の整数係数:-1↵ X^1の整数係数:2↵ X^2の整数係数:3↵ X^3の整数係数:0↵ X^4の整数係数:0↵ X^5の整数係数:-1↵ 多項式は次の通り -X^5+3X^2+2X-1 Xの値を入力してください:0.8↵ 多項式の値は 2.192320 です [3] 環境 [3.1] OS: linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C言語 [4] 期限:6月10日 [5] その他の制限: なし
53 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 01:50:44 ] >>28 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9387.c
54 名前: ◆N8hH7z85ug [2009/06/09(火) 04:25:21 ] [1] 授業単元: 文字列とポインタ [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9388.txt [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: ([09年6月10日10:00まで] [5] その他の制限: 検索していてよく見かけた#include <string.h>というのは習っていません。 #include<stdio.h>しか使ったことはありません。 よろしくお願いします。
55 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 06:15:46 ] >>52 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9389.txt
56 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 09:35:13 ] >>49 何故かgcc固有のインクルードパスを無効と判定するみたい。 -vで出力みると違いがでるね。 原因とか回避方法はわからない。宿題テーマとは離れてしまうかも?
57 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:14:25 ] >>54 #include <stdio.h> int is_non_wordc(int c) { if (0x30 <= c && c <= 0x39) /* 数字 */ return 0; if (0x40 <= c && c <= 0x5a) /* 大文字英字 */ return 0; if (0x61 <= c && c <= 0x7a) /* 小文字英字 */ return 0; return 1; } int main(void) { char word[100]; int i = 0, c; while ((c = getchar()) != EOF) { if (!is_non_wordc(c)) { word[i++] = c; } else { word[i] = '\0'; if (i != 0) printf("%s\n", word); i = 0; } } return 0; }
58 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:29:51 ] fscanfの引数の場合分けがうまくいかないんだけどどうして? 引数がfloatとcharで20こあって"%d%f・・・・・",hairetu,&suuji・・・・とあるんだけど返り値=1にした時しかうまくいかない switchにしてcase20はおkだけどcase 2とかdefaultにはcaseが正しくありませんってなる
59 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:38:17 ] >>58 >>1
60 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 11:41:22 ] >>59 すまん
61 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 14:07:57 ] >>050 姓,名,年齢,郵便番号*,電話番号の各データをメンバとする構造体配列 >>028 の選択ソート使ってます。 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9390.txt
62 名前:デフォルトの名無しさん [2009/06/09(火) 15:03:43 ] [1] 授業単元: プログラミング [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9391.txt [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: g++ [3.3] 言語: C++ [4] 期限: 6月11日9:00 [5] その他の制限: 特になし よろしくお願いします
63 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:34:52 ] >>62 kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9393.txt
64 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:39:08 ] [1] 授業単元:プログラミング [2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9394.txt [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 6月12日24:00まで] [5] その他の制限:特になし よろしくお願いします
65 名前:デフォルトの名無しさん [2009/06/09(火) 15:50:26 ] >>63 ありがとうございました。助かりました
66 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 15:51:25 ] >>62 #include <iostream> using namespace std; template<class T, int N> class Counting { T* array_; public: Counting(T* Array) { array_ = Array; } T sum() { T result = 0; for (int i = 0; i < N; ++i) result += array_[i]; return result; } T ave() { return sum() / N; } void modify(int index, T value) { array_[index] = value; } }; int main() { const int s1 = 5, s2 = 3; int a[s1] = { 1, 2, 3, 4, 5 }; Counting<int, s1> ca(a); cout << ca.sum() << " " << ca.ave() << "\n"; ca.modify(2, 10); cout << ca.sum() << " " << ca.ave() << "\n"; double b[s2] = { 1.2, 2.5, 3.5 }; Counting<double, s2> cb(b); cout << cb.sum() << " " << cb.ave() << "\n"; cb.modify(1, 4.8); cout << cb.sum() << " " << cb.ave() << endl; return 0; }
67 名前:66 mailto:sage [2009/06/09(火) 15:52:06 ] 解決済みでしたね。ごめんなさい。
68 名前:デフォルトの名無しさん mailto:sage [2009/06/09(火) 16:25:57 ] >>051 unionを使った暗号化と複合化。 #include <stdio.h> short encode(short); main() { int n, m, k; while (1) { printf("整数を入力して下さい(終了は0) = "); if(scanf("%d", &n) != 1) { scanf("%*s"); continue; } if (n == 0) break; m = encode(n); /* 暗号化 */ printf("\n\t%d を暗号化すると %d になります。\n", n, m); printf("\n\t0x%04hx を暗号化すると 0x%04hx になります。\n", n, m); k = encode(m); /* 復号化 */ printf("\n\t0x%04hx を復号化すると 0x%04hx になります。\n", m, k); printf("\n\t%d を復号化すると %d になります。\n\n", m, k); } } short encode(short data) { union { short sdata; struct { char cdata1, cdata2; } c; } u; char tmp; u.sdata = data; tmp = u.c.cdata1, u.c.cdata1 = u.c.cdata2, u.c.cdata2 = tmp; return u.sdata; }
69 名前:デフォルトの名無しさん [2009/06/09(火) 16:59:14 ] [1] 授業単元: 情報処理 >[2] 問題文(含コード&リンク): >kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9396.txt >[3] 環境 > [3.1] OS: Windows > [3.2] コンパイラ名とバージョン: gcc > [3.3] 言語: C/C++ >[4] 期限: 2009年6月11日23:30まで >[5] その他の制限: 問題文にもありますが、3問目以外規制があります。 > >全三問です。 よろしくお願いいたします。
70 名前:デフォルトの名無しさん [2009/06/09(火) 18:18:19 ] 1] 授業単元: c++ [2] 1次元配列a[1]〜a[10]の各要素に任意の数値を格納した後すべて加算した合計値を表示せよ。 [3] 環境 [3.1] OS: XP [3.2] turbo c [3.3] c++ [4] 今週金曜日まで。 [5] まだ習いはじめて一年なのでそんなには進んでません。
71 名前:66 mailto:sage [2009/06/09(火) 18:25:46 ] >>70 #include <iostream> using namespace std; int main() { double a[11]; a[0] = 0; for (int i = 1; i <= 10; ++i) { cout << "input a[" << i << "] > "; cin >> a[i]; a[0] += a[i]; } cout << "total: " << a[0] << endl; return 0; }
72 名前:デフォルトの名無しさん [2009/06/09(火) 18:27:21 ] [1] 授業単元: プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9398.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: visual C++ [3.3] 言語: C++ [4] 期限: 今日中 [5] その他の制限: 特になし よろしくお願いします
73 名前:デフォルトの名無しさん [2009/06/09(火) 18:29:51 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9399.txt [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: visual C++ [3.3] 言語: C++ [4] 期限: 今日中 [5] その他の制限:特になし 72共々よろしくお願いします
74 名前:デフォルトの名無しさん [2009/06/09(火) 19:43:45 ] [1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):最大256文字の文字列を入力し、単語数を出力しなさい。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:6月11日 8:00 [5] その他の制限:最大256文字の文字列を引数とし、最初の単語の文字数を返す関数を作成し、それを用いる。