[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/22 09:08 / Filesize : 317 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/06/08(日) 12:30:56 ]
あなたが解けない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++の宿題を片付けます 108代目
pc11.2ch.net/test/read.cgi/tech/1211980711/


862 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:26:06 ]
>>850
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}

863 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:26:58 ]
>>857
まあ落ち着け。
>>590の回答に対して構造体とか#ifとか使うなって条件つけたんだよ。
条件の後出しがひどく迷惑であることを痛感する展開ではあるんだが。

864 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:46:31 ]
>>862
ありがとうございます!!

ちなみに、これを関数で表せという問題も一緒に出されているのですが全く分かりません。。。

865 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:58:15 ]
void disp(){
//>>862
}
int main(){
disp();
return 0;
}

866 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:01:50 ]
>>865
ほんとGJ!!!

助かりました@@;

867 名前:デフォルトの名無しさん [2008/06/17(火) 23:19:30 ]
>>766,860
素人の俺ので良ければどうぞ
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6945.c

868 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:25:29 ]
宝探しのやつ、takaraとかの盤面が周り1マス分大目に取ってあるとよかったのになあ。。。
とぼやきつつ、ぼちぼち。

869 名前:デフォルトの名無しさん [2008/06/17(火) 23:34:10 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):()
文字列aから文字bを取り除く。下までできたのですが。。。


#include<stdio.h>
char a,b;
void main()
{
scanf("%d\n",a);
scanf("%d\n",b);
printf("%d",a,b);
return 0;
}

/* squeeze sからcをすべて取り除く */
void squeeze(char s[], int c)
{
int i,j;
for(i=j=0; s[i] !='\0'; i++)
if(s[i] !=c)
s[j++]=s[i];
s[j]='\n';
}

[3] 環境
 [3.1] OS:XP
 [3.2] よくわかりません。ボーランド?
 [3.3] 言語: C言語
[4] 期限:明日中に。


870 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 23:34:14 ]
>>867
おお、ありがとうございmす。
これを元に勉強させてもらいます。



871 名前:760 [2008/06/17(火) 23:53:34 ]
お願いできないでしょうか?問題変更で20から30回で
構造体使ってもいいのでおねがいします!

872 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 00:05:34 ]
>>760
>>871
ちょっと待ってろw
しかし、人間がやっても20回くらいかかるぞ?
問題のレベルの割に、お前さんのレベルが低すぎる気が…

873 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:27:57 ]
[1] 授業単元: C++
[2] 問題文(含コード&リンク):
#include <stdio.h>

main()
{
int ch;

while(( ch=getchar()) != EOF) {
printf("%02x", ch);
}
}

このプログラムだけでは非常に長くなるので、'\n'を検出したら,出力にも改行文字を埋めたい。
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++

874 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:32:38 ]
>>872
お願いします

875 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 01:54:20 ]
#include <stdio.h>  printf("%02x", ch);
なのに C++ とは、どんな授業をしてるでおじゃるか?

876 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 02:01:16 ]
>>873
if(ch='\n'){
    cout << endl;
}

877 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 03:09:31 ]
>>657さんの問題を
main関数のみで作っていただけないでしょうか?

878 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 03:25:04 ]
[1] 授業[1] 授業単元:オペレーティングシステム
[2] 問題文:mallocを用い、下記のプログラムを完成させて、次の仕様を満たすプログラムを作成せよ。
 ・キーボードから可変数の英数字の行を読み込む
 ・最初に行数を入力させる
 ・1行の長さは最大256文字
 ・全入力が終了したところで、全入力行をまとめて出力する
#include <stdio.h>
#define MAX_LINE 256
main(){
char *p;
int n, i;
scanf(“%d”, &n);
p = --------------------;
for (i = 0; i < n; i++) {
scanf(“%s”, p + MAX_LINE * i);}
------------------------;}
[3] 環境
 [3.1] OS:Linux
 [3.2] gcc
 [3.3] 言語:C
[4] 期限:明日まで
点線の部分の変更のみです。
よろしくお願いします。

879 名前:760 mailto:sage [2008/06/18(水) 03:25:40 ]
20回から30回のプログラムを
今日朝9時までにお願いできないでしょうか
できそうにないんで…

880 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 03:35:52 ]
>>878
p = malloc(MAX_LINE * n);

for(i = 0; i < n; i++) { printf("%s\n", p + MAX_LINE * i); }



881 名前:414 mailto:sage [2008/06/18(水) 06:02:08 ]
>>451
亀ですいません。
作成いただきありがとうございました。

882 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:04:25 ]
>>760
>>879

お前、ふざけてるのか?偽者の釣りか?
8/100の宝探し全てを20回から30回でって…人間がやってもなかなか出来ないぞ…

kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6946.txt

883 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:09:05 ]
問題のレベルと依頼者のレベルが余りにもかけ離れてる場合
よく他人に頼んで、提出できるよなっていつも思う
あんまり無いのかも知れんが、内容に関して質問が来たらどうするつもりだろ?

884 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:12:30 ]
まぁ〜〜〜た今さらなことを、独り言のようにてめぇが勝手に思っている疑問を
わざわざ書き込むか、一言居士め。どうでも良いだろ、そんなの。
このスレの趣旨がわかってない新入りだろ、しねだのほざくガキって?
もしそれで高卒以上の年齢だとしたら、かなり精神レベルが低いぞ、こいつ。

885 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 06:15:13 ]
>>883
んなこと俺らが心配することでも何でもない。>>1読め。

886 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 08:56:25 ]
>>879
何で今朝なんだ?期限とちがうじゃん。

887 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:03:42 ]
>>885
つまりレベルがかけ離れていて気に入らない質問はスルーしとけばいいのか

888 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:13:30 ]
>>866>>865なんかで本当に大丈夫なのだろうか

889 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:47:38 ]
レベルなんぞ気にしているくらいなら、とことん初心者レベルに戻るべし。
本当にコードから○ンコのに臭いがぷんぷんと漂ってきそうな
麻呂のクソースを目指すでおじゃる!

890 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 09:58:47 ]
初心者レベルの宿題しか解けないだけだろw



891 名前:デフォルトの名無しさん [2008/06/18(水) 10:25:09 ]
[1] 授業単元: 情報実験
[2] 問題文(含コード&リンク):
クイックソートでは、値が等しい要素の位置を入力された順に保つことができない。
この問題を解決するプログラムを作成せよ。
ただし、以下の解決方法を用いよ。
•配列をリストに変換
•三つのリストを作る
ー枢軸より大きい要素のリスト
ー枢軸より小さい要素のリスト
ー枢軸より等しい要素のリスト
•三つのリストを統合する

[3] 環境
 [3.1] OS: Mac OS X
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:できれば今日まで
よろしくお願いします

892 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 10:48:59 ]
難し過ぎ

893 名前:877 mailto:sage [2008/06/18(水) 11:19:28 ]
>>877出来る方いませんか?

894 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 11:51:35 ]
在庫管理のプログラムを作りなさいっていう宿題なのですけれども
よろしくお願いします。

1.クラス設計
データ定義:100件分(とりあえずの値としておく)
商品コード int(0〜999)
在庫数   int
登録商品数 int(新規商品を入庫するたびに+1される)

商品マスター:予め数件分を定数として定義しておく(-1がストッパー)
(例) int master[ ]={1,3,5,10,11,12,100,200,900,-1};

メンバー関数:
・コンストラクタ:保持している商品数をクリアする。
・データ設定関数:int  add(int 商品コード、 int 入庫数)
  商品マスターチェックNGなら戻り値にエラーを設定する。
  チェックOKならデータ部に登録し、在庫数を加算、登録商品数を+1する

・在庫数取得関数:int get(int 商品コード)
  商品コードが登録されていれば現在の在庫数を戻り値に返す。
  登録されていない(入庫されていない)場合は-1を返す。

c++でお願いします。


895 名前:デフォルトの名無しさん [2008/06/18(水) 13:11:58 ]
>>894
本当にこれが全文ですか?

896 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:50:01 ]
そうなんじゃない?
在庫管理プログラムとして十分ではないけれど、題意を満たすソースは書けるでしょ。
作成されるものはチープかもしれないけど、それが課題というものかと。

897 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 14:57:05 ]
ここのおじゃぱ様なら楽勝だよw
pc11.2ch.net/test/read.cgi/prog/1210981817/

898 名前: ◆DuoCt8/SKk mailto:sage [2008/06/18(水) 15:31:31 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6947.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++ 6.0
 [3.3] 言語:C言語
[4] 期限:2008年6月20日
[5] その他の制限:構造体,ポインタまで
どなたかよろしくお願いします.

899 名前:デフォルトの名無しさん [2008/06/18(水) 15:31:59 ]
商品コード int(0〜999)とか商品マスターとかはいいとして
データ定義とか商品マスターチェックNGとか微妙に粒度と日本語がゴチャゴチャな気がする

>  商品コードが登録されていれば現在の在庫数を戻り値に返す。 
>  登録されていない(入庫されていない)場合は-1を返す。
商品コードの登録って実際はどういう動作なのかわからん.
どうも在庫数を増やすだけじゃなさそうだが.









まぁ作ったけど.

900 名前:894 mailto:sage [2008/06/18(水) 15:43:53 ]
たしかにゴチャゴチャですよね;
知識ないのに余計よくわからなくて此処で聞いてみました。

>>899さん上げてもらえますか?






901 名前:デフォルトの名無しさん [2008/06/18(水) 15:56:29 ]
const int CODE_NOT_FOUND = -1;
const int MASTER_ERROR = -1;
const int MASTER_SUCCESS = 0;
static int master[] = {1, 2, 3, 4, 5, CODE_NOT_FOUND};
static int checkCode(int code){
  for(int i = 0; master[i] != CODE_NOT_FOUND; i++) if(code == master[i]) return code;
  return CODE_NOT_FOUND;
}
class Manager{
  private:
  int *merchandise;
  public:
  Manager(){
    merchandise = new int[100];
    for(int i=0; i<100; merchandise[i++] = 0);
  }
  virtual ~Manager(){
    delete[] merchandise;
  } 
  int add(int code, int n){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    else {merchandise[code] += n; return MASTER_SUCCESS; }
  }
  int get(int code){
    if(checkCode(code) == CODE_NOT_FOUND) return MASTER_ERROR;
    if(merchandise[code] == 0) return -1;
    else return merchandise[code];
  }
};
こんな感じ

902 名前:894 mailto:sage [2008/06/18(水) 16:10:57 ]
すいません、、、
もっと分かりやすい簡単な漢字で書いてもらえないでしょうか、、?

903 名前:894 mailto:sage [2008/06/18(水) 16:12:33 ]
すいません、、、
もっと分かりやすい簡単な感じで書いてもらえないでしょうか、、?

904 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:14:55 ]
分かりやすさは他人に求めるものじゃなくて自分で感じるものじゃね?

905 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:34:43 ]
こういう分野はC/C++向きじゃないな。完全にデータベース向けと考えられてるね一般的には。
やはりこういう問題出した教師は現場を知らん◎フォだとしておこう。

906 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:42:38 ]
マスタのコードが0-999でmerchandiseのインデックスにコード使っちゃうとだめなんじゃない?

907 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:45:19 ]
原理を勉強するのに、一から書いてみるというのは悪い方法じゃないだろう

908 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:46:34 ]
>>906
なんか面倒になったから適当にしてみた

909 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:48:15 ]
>>901
なんかそれだとcodeがmerchandiseのインデックスになるから
例題の
int master[ ]={1,3,5,10,11,12,100,200,900,-1};
のときmerchandise[200]とかになっておかしくないか?

910 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 16:55:32 ]
[1] 情報プログラミング:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: linux
 [3.2] Vine Linux 3.2
 [3.3] 言語: C
[4] 期限:2008 6/24
[5] その他の制限:線形リストを使い、つくれとのことです。
どなたかよろしくお願いいたします

とりあえずここまで作成してあります(まだまだ未完成ですが。。。)
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6948.c
よければ見て下さい



911 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:33:02 ]
>>898
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6949.c
Otheloは登録商標なので0theloにしておいた

912 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:34:53 ]
/* 0thello Game */


913 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 17:42:57 ]
ShowAllって次の手1個につき1画面なのかな
書き直してみる

914 名前:911 mailto:sage [2008/06/18(水) 17:56:34 ]
>>898
修正
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6950.c

915 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:12:53 ]
>>908
まあ宿題だからそれぐらいアバウトなほうがいいのかもしれないね

916 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:25:35 ]
>>850なんですがこの表示結果の合計を、前列の合計を次々に足していく風にしたいのですがどう書けますか?
よろしくお願いします。
合計
50 49 48 47 46 240
45 44 43 42 41 215
40 39 38 37 36 190
35 34 33 32 31 165
30 29 28 27 26 140
25 24 23 22 21 115
20 19 18 17 16 90
15 14 13 12 11 65
10 9 8 7 6 40
5 4 3 2 1 15
合計 275 265 255 245 235 1275


917 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:26:56 ]
↑ずれて分かりにくくなってしまってすみません;;

918 名前:878 mailto:sage [2008/06/18(水) 18:27:41 ]
>>880
エラーが出てきます。
コンパイラ通してみた結果です。
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/156'
10:error:文法エラーが'%'トークンの前にあります
10:error:プログラムとして逸脱した文字 '/226'
10:error:プログラムとして逸脱した文字 '/128'
10:error:プログラムとして逸脱した文字 '/157'
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/156'
15:error:文法エラーが'%'トークンの前にあります
15:error:プログラムとして逸脱した文字 '/226'
15:error:プログラムとして逸脱した文字 '/128'
15:error:プログラムとして逸脱した文字 '/157'

919 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:27:53 ]
>>836
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6951.txt

920 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:35:07 ]
>>862を参考に、一次元配列を使うようにしたよ。

#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
c=0;

}
printf("\t%d",d);
}



921 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:39:58 ]
>>920

ありがとうございます!
理解できました!

合計値についてなんですが前列の合計値も足してって次々に足して表示させたいんですがどうすればいいのですか?

922 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:43:09 ]
>>921
理解できたか。それはよかった。次々にっていうのはこういうこと?
#include <stdio.h>
int main(){
int a,b,z,i=0,d=0;
int c=50;
int r[10];
//1行目から10行目
printf("\t\t\t\t\t\t合計\n");
for(a=0; a<10; a++){
for(b=0; b<5; b++){
i += c;
printf("\t%d",c);
c--;
}
printf("\t%d",i);
printf("\n");
// i=0;
}
//11行目
printf("合計");
for(a=5; a>0; a--){
for(b=0; b<10; b++){
c += a+5*b;
}
printf("\t%d",c);
d += c;
// c=0;

}
printf("\t%d",d);
}

923 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:45:48 ]
>>922
そうです!
でも、どこをどういう風に考えたのか分かりません@@:

924 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:48:58 ]
一行書くたびに合計をクリアしていたので、一行ごとの合計が右端に出てた。
これをクリアしないようにすることで、1行目の合計に2行目の数字が足されるようになって
1行目と2行目の合計が2行目に出るようになった。
列もおなじ。

925 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:53:20 ]
>>924
初歩的な質問でごめんなさい。クリアを示す記号って何ですか?
どこも変わっていないような気がするのですが・・・

926 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 18:53:52 ]
>>918
226=0xE2
128=0x80
156=0x9C
156=0x9D

E2 80 9C はUTF-8 で全角の “
E2 80 9D はUTF-8 で全角の ”


927 名前:918 mailto:sage [2008/06/18(水) 19:04:43 ]
自己解決しました。
スレ汚し申し訳ありません。

928 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:05:19 ]
自己解決w

929 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:05:33 ]
[1] 授業単元:C++入門
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6952.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

よろしくお願いします

930 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:05:50 ]
>>925
0を代入することでクリアしていた部分をコメントアウトすることでクリアしないようにした。
行、列の2箇所。



931 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:11:10 ]
>>930
なるほど、そういう事だったんですね。ありがとうございました。

932 名前:919 mailto:sage [2008/06/18(水) 19:12:07 ]
>>836
うpしてから思ったがABC#DEF#HIJをABC#FED#HIJではなくABC#FED#JIHにするっぽいな
後者ならフラグ要らんからrev_flagを含む行(5行)は削っとくれ

933 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:14:12 ]
>>898
バッファオーバーフローのバグがあった
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6953.txt


934 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:16:49 ]
暇つぶしに 910 をといてみたぜ。
910の役にはたたないだろうがな。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6954.txt

935 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:17:15 ]
>>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c];
}
for(c=0,tr=0; c<COL; c++) {
tr+=row[c];
printf("\t%d",row[c]);
}
printf("\t%d\n",tr);
}
// 各列の合計
printf("合計");
for(c=0; c<COL; c++) printf("\t%d",tc[c]);
puts("");
return 0;
}


936 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:23:30 ]
#include <stdio.h>
int count_bits(unsigned)
{
int count = 0;
while (x){
if (x & 1U) count++;
x>>1;
}
return (count);
}
int int_bits(void)
{
return (count_bits(~0U));
}
void print_bits(unsigned x)
{
int i;
for (i= int_bits() - 1; i >= 0; i++)
putchar(((x>>1) & 1U) ? '1' : '0');
}
int main(void)
{
unsigned nx;
printf("非負の整数を入力してください :");
scanf("%u", &nx);
putchar('\n');
return 0;
}

というプログラムにおいて、int count_bits(unsigned)を int count_bits(signed x)とするとどのような現象が置きますか?
理由も書けという問題なのですが。

937 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:24:07 ]
>>898
orz
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6956.txt


938 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:27:36 ]
>>935

ありがとうございます!
合計値は、前列(行)の合計値を次々に足していく風にしなければならないのですが。。。
一次元配列に於いては次の列(行)にいく際どこでクリアされているのでしょうか。

939 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 19:36:33 ]
>>938 >>850
#include <stdio.h>
#define ROW 10
#define COL 5
int main(void){
int row[COL]={0},tr,tc[COL]={0},tmp,r,c;
for(c=0; c<=COL; c++) printf("\t");
printf("合計\n");
// 各行
for(r=ROW,tr=0; r>0; r--) {
for(c=COL-1; c>=0; c--) {
row[c]=r*COL-c;
tc[c]+=row[c]; }
for(c=0; c<COL; c++) {
tr+=row[c];
printf("\t%-d",row[c]); }
printf("\t%-d\n",tr);}
// 各列の合計
printf("合計");
for(c=0,tmp=0,tr=0; c<COL; c++) {
tmp+=tc[c]; tr+=tmp;
printf("\t%-d",tmp);} printf("\t%d\n",tr);
return 0;
}


940 名前: ◆DuoCt8/SKk mailto:sage [2008/06/18(水) 19:56:34 ]
>>911-914
>>933
>>937
こんなにたくさん頑張って頂き本当にありがとうございます.
これが第一段階らしく,第二・三段階もあるみたいなので,もし良かったら
その時にも是非よろしくお願いします.



941 名前:デフォルトの名無しさん [2008/06/18(水) 20:01:32 ]
[1] 授業単元:コンピュータプログラミング
[2] 問題文(含コード&リンク):
標準入力(キーボード)から一つずつ数値(浮動小数点)を
読み込んで、データの数、平均値、標準偏差を出力するプロ
グラムを作成せよ。ただし、データ入力は、空行の入力で終
了するものとする。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6957.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月18日まで
[5] その他の制限:入力終了の判別方法は、このプログラムを参考にするとよいが、
今回の問題では、入力データを配列等に保存する必要がない
ことに注意。配列に保存することにすると、配列の大きさで
入力できるデータ数が制限されてるので、好ましくない。

よろしくお願いします。m(_ _)m

942 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:30:45 ]
#include <stdio.h>
#include <math.h>

int main(void)
{
double s = 0, a = 0, temp, sigma2;
int cnt = 0;
char buff[256];

while(1) {
fgets(buff, sizeof buff, stdin);
if(buff[0]=='\n') break;
sscanf(buff, "%lf", &temp);
s += temp * temp;
a += temp;
cnt++;
}
a /= cnt;
s = sqrt(s / cnt - a * a);

printf("データ数:%d\n平均:%f\n標準偏差:%f", cnt, a, s);

return 0;
}

943 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:41:42 ]
[1] 授業単元:C++実習
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6958.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C++
[4] 期限:
[5] その他の制限:

お願いします。。


944 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:44:39 ]
::

945 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:48:00 ]
>>942
適当に改造してたら使ってない変数残った。
sigma2は消しといて

946 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:50:21 ]
サセクア

947 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:55:08 ]
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。

948 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 20:56:31 ]
[1] C演習
[2] 入力する3以上の整数nに対して、2以上n以下の整数の組の最大公約数を
「ユークリッドの互除法」を用いて計算するプログラムを作れ。
(例:n=6の場合、2と3、2と4、2と5、2と6、3と4、3と5、3と6
4と5、4と6、5と6の10通り)
(表示例:n=6の場合)
   3  4  5  6
2: 1  2  1  2
3:    1  1  3
4:       1  2
5:          1
[3]
 [3.1] LINUX
 [3.3] C
[4]6月23日
[5]関数は習ってないので、if,while,forなどを使ってお願いします。
よろしくお願いします。

949 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:02:52 ]
>>943
inventory(char *item, double cost, int on_hand)
{
strcpy_s(inventory::item, item);
inventory::cost = cost;
inventory::on_hand = on_hand;
}

inventoryだけを上記のように変更。
namespaceによるローカル変数とメンバ変数の明示を問う問題っぽいけど実務では使うなよ。

950 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:03:11 ]
>>945ありがとうございます。




951 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:09:16 ]
1] 情報プログラミング演習:
[2] 問題文(含コード&リンク):標準入力からのテキストデータ中に現れる単語の出現頻度数つき一覧を出力するプログラムを作成せよ。
[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください

952 名前:951 mailto:sage [2008/06/18(水) 21:11:21 ]
間違えました
1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。

10個以下の任意のn個(データ数は入力)のデータを入力し、逆順に出力する。
実行結果は奇数と偶数個の例を示すこと。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますのでどの問題でもかまいません
  教えてください


953 名前:951 mailto:sage [2008/06/18(水) 21:12:26 ]
間違えました

1] 情報プログラミング演習:
[2] 問題1
三角形の底辺の幅、あるいは段数(どちらか一つ)を入力すると、逆三角形を表示する。例えば、底辺5あるいは段数3を入力すると
*****
***
*
となる。


[3] 環境
 [3.1] OS: Windous
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限:2008 6月いっぱい
[5] ホントに困っていますので教えてください


954 名前:デフォルトの名無しさん [2008/06/18(水) 21:12:33 ]
[1] 授業単元:プログラミングT

[2] 問題: kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6959.txt
 [3.1] OS: WindowsXp
 [3.2] コンパイラ名とバージョン:visualstdio 2008
 [3.3] 言語:C
[4] 期限:6月21日
[5] その他の制限:なし。

   よろしくお願いします.

955 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:14:01 ]
>>948
#include <stdio.h>
int main(void)
{
int i, j, n;
scanf("%d", &n);
printf("   ");
for(i=3; i<=n; i++) printf("%2d", i);
putchar('\n');
for(i=2; i<n; i++) {
printf("%2d:", i);
for(j=3; j<=i; j++) printf("  ");
for( ; j<=n; j++) {
int a = i, b = j;
while((a=a%b)!=0) {
b += a;
a = b - a;
b -= a;
}
printf("%2d", b);
}
putchar('\n');
}
return 0;
}

956 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:14:10 ]
そういえば期末の時期だな。

957 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:18:54 ]
>>954
#include <stdio.h>
int main(void)
{
char string[100];
char *p;

gets(string);

p=string;
while(*p!=' ') {
if(*p=='\0') return 0;
p++;
}
p++;
while(*p!='\0'){
putchar(*p);
p++;
}
putchar('\n');
return 0;
}


958 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:19:48 ]
またwindousか

959 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:20:13 ]
>>951
#include<iostream>
#include<string>
#include<map>

int main()
{
std::string tango;
std::map<std::string,int> tango_count;

while(std::cin >> tango)
{
tango_count[tango]++;
}

for(std::map<std::string,int>::iterator n=tango_count.begin();n!=tango_count.end();++n)
{
std::cout << n->first << " : " << n->second << std::endl;
}

return 0;
}

960 名前:951 mailto:sage [2008/06/18(水) 21:24:50 ]
>>959さん
ありがとうございます。




961 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:26:20 ]
>>948
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/6960.c

962 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:27:18 ]
>>953
まちるだ

963 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:27:49 ]
[1] 授業単元:プログラム演習
[2]
引数を2つの実数値とし,その2つのうち大きいほうの値を返す関数max()および小さいほうの値を返す関数min()を作成せよ。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月20日まで
[5]

コンパイルできたのですが、正しい値が帰ってきません。
どこがおかしいのか教えてください。
よろしくお願いします。




964 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:28:15 ]


#include<stdio.h>

double max(double a,double b);
double min(double a,double b);

main(){

double x,y,MAX,MIN;
printf("実数を二つ入力してください\n");
scanf("%f",&x);
scanf("%f",&y);
MAX=max(x,y);
MIN=min(x,y);
printf("max=%f\n",MAX);
printf("min=%f\n",MIN);


}

double max(double a,double b){
double z;
if(a<b){z=b;}else{z=a;}
return(z);}

double min(double a,double b){
double z;
if(a<b){z=a;}else{z=b;}
return(z);}



965 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:28:17 ]
>>954
> ただし,文字列の入力には関数 gets を用いること.
ダウト!!!!講師にやめれと抗議すべき

966 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:28:53 ]
[1] 授業単元:暇潰し
[2] 問題文(含コード&リンク):
平面上にn個の点について、それぞれ他の全ての点に対し2点を結ぶ辺を作り、その重みをユークリッドノルムとして計算し、昇順にソートする。
nは10万以上のため、全ての重みをメモリ上で保持してソートするのは現実的でない。現実の計算機上で高速に計算しソートする方法を示せ

[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: g++
 [3.3] 言語: C++
[4] 期限: (無期限]
[5] その他の制限: なし


967 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:01 ]
>>966
(n-1)! 個の重みを昇順にソートするって事?

968 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:22 ]
#ifdef gets
#undef gets
#endif

#define gets fgets

...

969 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:33:56 ]
>>965
その後の講義でバッファオーバーフローの説明があるのかもしれない

970 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:34:30 ]
>>969
課題で使えと出している時点でダウト



971 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:37:38 ]
>>967
n(n-1)個の辺の重みです。重みは可換ですからn(n-1)/2個で済みますが

972 名前:954 [2008/06/18(水) 21:46:13 ]
>>957

ありがとうございました<m(__)m>。

973 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:48:40 ]
>>970
そんなもん後から知ればいいこと。
道具の良し悪しよりも道具の使い方を知るタイミングだ

974 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:49:05 ]
>>963
scanf("%f",...); →scanf("%lf",...);
scanf の変換指定%f はfloat型 %lfはdouble型

975 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:52:26 ]
>>973
いちいち客観的にタブーとされているものを擁護するレスがうぜーよ素人

976 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:56:41 ]
玄人ktkr

977 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:57:31 ]
オーバーランについて理解していて、使うことを容認するような意見するか・・・
明らかに考え方がおかしい。敢えて使わせることなんてせず、問題があるなら
それは授業で説明すれば良いこと。問題を起こさせる課題だとしても
万が一生徒のコンピュータにトラブルが起こったら、賠償モンだよw

978 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 21:59:07 ]
>>974
できました。
ありがとうございます。

979 名前:951 mailto:sage [2008/06/18(水) 22:02:16 ]
>>962さん
ありがとうございます

980 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:03:28 ]
getsなんて最初からなかったものとして教えなければいいのにな。
scanfのほうがいくらか安全だろう。



981 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:13:42 ]
宿題くらいにしか使えないんだからスルーしてやれ

982 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:15:27 ]
>>975
玄人か。すげえな。
一応俺もプログラムでご飯食べてるけど、まあどんな関数でも
いつobsoluteになるかわからんよね。

がんばってな。応援してるよ。

983 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:18:08 ]
obsolute の検索結果 約 33,900 件中 1 - 10 件目 (0.18 秒)
obsolete の検索結果 約 28,200,000 件中 1 - 10 件目 (0.18 秒)

984 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:18:37 ]
Oberfoot取りイクナイ

985 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:18:39 ]
[1] 授業単元:プログラム演習
[2] int型配列x,yを次のように宣言する。
int x[5]={3,-2,-4,2,3};
int y[7]={1,3,3,-2,3,0,5};
このとき,xおよびyの配列の各要素の合計を返す関数ArraySum()を作成せよ。
なお,xとyとで2つの異なる関数を作る必要はない。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:2008年06月20日まで
[5]

これも、コンパイルできたのですが、正しい値が帰ってきません。
どこがおかしいのか教えてください。
よろしくお願いします。



986 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:19:06 ]
#include<stdio.h>

int ArraySum(int data[]);

main(){
int x[5]={3,-2,-4,2,3};
int y[7]={1,3,3,-2,3,0,5};

int sumx=ArraySum(x);
int sumy=ArraySum(y);

printf("配列xの合計は%d",sumx);
printf("配列yの合計は%d",sumy);

}

int ArraySum(int data[]){

int i,sum=0;

for(i=0;i<sizeof(data)/sizeof(data[0]);i++){

sum=sum+data[i];
}
return(sum);
}

987 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:21:51 ]
>>986
printf("%d\n", sizeof(data));
を追加してみ

988 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:27:26 ]
>>984
Oberfootの検索結果 1 件中 1 - 1 件目 (0.02 秒)

989 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:29:44 ]
>>984
120でした。
ということは、i<30になってるんでしょうか


990 名前:989 mailto:sage [2008/06/18(水) 22:30:12 ]
>>987
でした
すいません



991 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:31:46 ]
>>986
int ArraySum(int data[], int size)
{
int i, sum = 0;
for(i=0; i<size; i++) sum += data[i];
return sum;
}

配列を関数に渡すときは、サイズも渡さないと。

992 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:32:59 ]
この予想外の展開に玄人はどう答えるのか楽しみである

993 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:34:07 ]
自分が指摘されると、相手にお前はどうすんだと意見を請うところも
性格が捻くれているのがバレバレ。いちいちそういうこと言うから嫌われるんだよw
おまけに、わけの分からない擁護。勝手な憶測でつじつま合わせにもならん
無駄な戯言を。

994 名前:989 mailto:sage [2008/06/18(水) 22:35:38 ]
配列を関数に渡してから、サイズを測ることはできますか?。

995 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:35:46 ]
ポインタ一個で120B…ねーよ

996 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:36:03 ]
>>993
謝るくらいなら最初からやんな

997 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:40:59 ]
>>994
できません

998 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:41:16 ]
次スレ
C/C++の宿題を片付けます 110代目
pc11.2ch.net/test/read.cgi/tech/1213796455/

999 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:42:29 ]
ttp://jp.youtube.com/watch?v=RIL28wqOQGA
getsの問題点知ってる?知らない?
知らないことあるかー、後で授業で説明するかもしれないだろっ!
お前これどうすんだっ?ん?

1000 名前:デフォルトの名無しさん mailto:sage [2008/06/18(水) 22:42:37 ]
>>993
俺はあんたみたいなわけ分からんヤツには何も請うてない。
玄人の意見が聞きたいだけだ。



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






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<317KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef