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


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

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



1 名前:デフォルトの名無しさん [2009/01/15(木) 23:21: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++の宿題を片付けます 121代目
pc11.2ch.net/test/read.cgi/tech/1230678123/

101 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:04:09 ]
>>100
まあ、この式をどう読むのかも知らん

102 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:05:40 ]
>>98
J++でできるからといってJAVAでできると言ってしまうのはひどい
逆にJAVAで可能なのかどうかを調べる為にJ++を使用するのもひどい

103 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 01:06:35 ]
>>91
おつり計算のところ、括弧忘れてるね

104 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 02:33:56 ]
>>100
ルンゲクッタ使うならこんな感じでいい希ガス
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8797.txt

105 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 12:03:43 ]
[1] 授業単元: C言語入門
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8798.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC2005EE
 [3.3] 言語:C++
[4] 期限:09/02/03迄
[5] その他の制限:問4以外は#include <stdio.h> void main(){  ではじまること。
問1はttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8799.txt
の続きでお願いします。最小値がどうも0になってしまいます。


それではよろしくお願いします。

106 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 13:10:04 ]
>>105
問1はmin=1000ぐらいにしとけ

それより問5が正常に動作していない件について

107 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 14:49:43 ]
>>100
微分方程式の数値解としか言われてないならオイラー法で良かろう。一応1次のルンゲクッタだ。

>>105
問2
/* ヘッダとかdefineとか自分で考えてくれ。 */
int main(void){
char user_name[256];
int i,len;
puts("Input User Name");
scanf("%s",user_name);
len = strlen(user_name) - 1;
if( len > 8 || len <= 0 ) { printf("ユーザー名入力エラーです :: len=%d\n",len); exit(1); }
if( !isupper(user_name[0]) && !islower(user_name[0] ) { printf("ユーザー名の先頭文字が異常です :: %c\n", user_name[0]); exit(1);}
for(i=0;i<8;i++) if( !isalnum(user_name[i])) { printf("ユーザー名の一部が異常です :: %s\n", user_name); exit(1);}
sprintf(user_name,"メールアドレス : %s@%s",user_name,"helloworld.com");
puts(user_name);
reutrn 0;
}

108 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:10:38 ]
if( !isupper(user_name[0]) && !islower(user_name[0] ) {
if( !isalpha(user_name[0]) ) {

for (i=0;i<8;i++)
for (i=1;i<len;i++)

sprintf(user_name,
printf(

puts(user_name);

109 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 17:19:22 ]
>>105
問1に関して
maxとminを0で初期化するのは適切ではない
2個目のfor文の前で
max=a[0];
min=a[0];
のようにすべき



110 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 18:30:45 ]
>>105
問4
#include <stdio.h>
#include <math.h>
void main(){
int a,b,c;
double x1,x2;
int D;
printf("a = ");scanf("%d",&a);
printf("b = ");scanf("%d",&b);
printf("c = ");scanf("%d",&c);
D = b*b - 4*a*c;
if(D > 0){
x1 = (-b - sqrt(D))/ 2*a;
x2 = (-b + sqrt(D))/ 2*a;
printf("二次方程式 %d x^2 + %d x+ %d = 0 は相異なる2つの実数解を持ち、解の値は%.2fと%.2fです。\n",a,b,c,x1,x2);
}
else if(D == 0){
x1 = -b / 2*a;
printf("二次方程式 %d x^2 + %d x+ %d = 0 は重解を持ち、解の値は%.2fです。\n",a,b,c,x1);
}
else{
printf("二次方程式 %d x^2 + %d x+ %d = 0 は実数解を持ちません。\n",a,b,c);
}
}

111 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 19:04:47 ]
>>105 問5
#include <stdio.h>
void main(){
int i;
char str1[256];
char str2[256];
int count1 = 0;
int count2 = 0;
printf("文字列1:");fgets(str1,256,stdin);
printf("文字列2:");fgets(str2,256,stdin);
for(i = 0; str1[i] != '\0'; i++){if(str1[i] == ' ') count1++;}
for(i = 0; str2[i] != '\0'; i++){if(str2[i] == ' ') count2++;}
printf("文字列1中の英単語の数= %d\n",count1+1);
printf("文字列2中の英単語の数= %d\n",count2+1);
printf("英単語の数が多い方の文字列は 文字列%d です。\n",(count1 > count2) ? 1 : 2);
}

112 名前:デフォルトの名無しさん [2009/02/01(日) 20:27:47 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8800.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4] 期限: ([2009年02月2日 20:00まで]
[5] その他の制限:


よろしくお願いします。


113 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 21:47:23 ]
>>112
式の長さの上限は?

114 名前:デフォルトの名無しさん [2009/02/01(日) 22:14:05 ]
>>113
特にありません

115 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:40:06 ]
>>112 括弧を対応させる方法が思い出せない
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
char b[256], *p = b;
double t(void){
  double t = 0;
  while(1){
    if(isspace(*p)) p++;
    else if(*p == '*'){ p++; t *= strtol(p, &p, 10);}
    else if(*p == '/'){ p++; t /= strtol(p, &p, 10);}
    else if(isdigit(*p)) t = strtol(p, &p, 10);
    else return t;
  }
}
double e(double r){
  while(1){
    if(isspace(*p)) p++;
    else if(*p == '\0') return r;
    else if(*p == '+'){ p++; r += t();}
    else if(*p == '-'){ p++; r -= t();}
    else r = t();
  }
}
int main(int c, char *v[]){
  FILE *in, *out;
  if(c < 3 || (in = fopen(v[1], "r")) == NULL ||
    (out = fopen(v[2], "w")) == NULL) return 1;
  fscanf(in, "%255[^\n]", b);
  fprintf(out, "%g\n", e(t()));
  return fclose(in), fclose(out), 0;
}

116 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:42:36 ]
【質問テンプレ】
[1] 授業単元: C言語プログラミング
[2] 問題文(含コード&リンク): keisan.casio.jp/has10/SpecExec.cgi?path=07000000%2e%93%9d%8cv%8a%d6%90%94%2f01001000%2e%90%b3%8bK%95%aa%95z%2f11003100%2e%90%b3%8bK%95%aa%95z%2fdefault%2exml
上記のリンクの様に、
変数x、平均μ、標準偏差σを与えて
正規分布の確率密度 f(x)、下側累積確率 P(x)、上側累積確率 Q(x)を求める関数を実装したいです。
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (gcc 3.4.4)
 [3.3] 言語: (C/C++/どちらでも可)
[4] 期限: 2009年02月02日12:00まで
[5] その他の制限:

過去ログ等を漁りましたがありませんでした。
よろしくお願いします。



117 名前:116 mailto:sage [2009/02/01(日) 23:00:56 ]
なお、以下のような、平均0、標準偏差1の場合に
下側累積確率、上側累積確率を求める関数を見つけたのですが、
どのように変更を加えて良いのかわかりませんでした。

ご教授お願いします。


#include <math.h>

#define PI 3.14159265358979323846264

double p_nor(double z) /* 正規分布の下側累積確率 */
{
int i;
double z2, prev, p, t;

z2 = z * z;
t = p = z * exp(-0.5 * z2) / sqrt(2 * PI);
for (i = 3; i < 200; i += 2) {
prev = p; t *= z2 / i; p += t;
if (p == prev) return 0.5 + p;
}
return (z > 0);
}

double q_nor(double z) /* 正規分布の上側累積確率 */
{
return 1 - p_nor(z);
}

118 名前:デフォルトの名無しさん [2009/02/01(日) 23:48:49 ]
>>107-111
ありがとうございます。
問5はできたのですがそれ以外ができません。
問1は>>109の通りにやったら最小値でました!ありがとうございます。
平均値はどのようにして出せばいいのでしょうか?
それではよろしくお願いします。

119 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:53:00 ]
>>118
> 平均値はどのようにして出せばいいのでしょうか?
値を全部足して、それを値の個数で割る



120 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 23:53:40 ]
>>118
>問5はできたのですがそれ以外ができません。
難しくて全く理解できないのか、自分で作ってバグがでるのか、何を求めているのか。
言われなきゃ分からんとはな。

121 名前:デフォルトの名無しさん [2009/02/02(月) 00:12:12 ]
>>119>>120
ごめんなさい。質問する以前の問題でしたね・・・。

問1:全ての値の合計の仕方がわかりません。
問2:>>107を見てやってみたのですがバグが出てしまって、自分で直そうとしたんですが難しくて手のつけようが・・・。
問3:問2を少し弄れば出来そうな気はします
問4:バグがでます

122 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:12:29 ]
あぁ、またsage忘れたorz

123 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:21:37 ]
これはひどい

124 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:39:39 ]
>>121
合計の出し方
sumを0に初期化
2個目のfor文の中でsum+=a[i];

エラーメッセージを貼るなりしてくれないと
どんなバグが出てるのかわからない

125 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 00:48:26 ]
>>124
問2>>107を実行すると
1>.\11.cpp(8) : error C3861: 'strlen': 識別子が見つかりませんでした
1>.\11.cpp(9) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'isupper': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'islower': 識別子が見つかりませんでした
1>.\11.cpp(10) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(11) : error C3861: 'isalnum': 識別子が見つかりませんでした
1>.\11.cpp(11) : error C3861: 'exit': 識別子が見つかりませんでした
1>.\11.cpp(14) : error C2065: 'reutrn' : 定義されていない識別子です。
1>.\11.cpp(14) : error C2143: 構文エラー : ';' が '定数' の前にありません。

講義で習ってないものばかりで・・・。
>>108は一体?

問4>>110を実行すると
1>.\11.cpp(12) : error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
1> D:\c++\VC\include\math.h(581): 'long double sqrt(long double)' の可能性があります。
1> D:\c++\VC\include\math.h(533): または 'float sqrt(float)'
1> D:\c++\VC\include\math.h(128): または 'double sqrt(double)'
1> 引数リスト '(int)' を一致させようとしているとき
1>.\11.cpp(13) : error C2668: 'sqrt' : オーバーロード関数の呼び出しを解決することができません。
1> D:\c++\VC\include\math.h(581): 'long double sqrt(long double)' の可能性があります。
1> D:\c++\VC\include\math.h(533): または 'float sqrt(float)'
1> D:\c++\VC\include\math.h(128): または 'double sqrt(double)'
1> 引数リスト '(int)' を一致させようとしているとき

126 名前:107 mailto:sage [2009/02/02(月) 01:10:16 ]
ヘッダ自分で調べるくらいできるだろう。
strlen , exit , isupper , islower , isalnum ググれ。
returnのタイプミスはすまないが、気付かない方も考えてない証拠かと。
return 0; を 「reutrn 0;」と書けば、reutrnを変数などの識別詞とみなすから
「INTMAX 0;」とか「1 0;」と同等に扱われる。
returnに直せば問題解消。無意味だが「reutrn; 0;」とすれば、警告は片方減る。

127 名前:110 mailto:sage [2009/02/02(月) 01:15:20 ]
>>125
VCでビルドしなかったのは俺のミスだ
sqrt(D)をsqrt((double)D)に直してくれ

128 名前:デフォルトの名無しさん [2009/02/02(月) 01:19:33 ]
>>126
仰るとおりです。申し訳ありません。
>>127
ありがとうございます
できました!

129 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 01:24:31 ]
>>125
>>108>>107の修正分を書いてる。
if( !isupper(user_name[0]) && !islower(user_name[0] ) {

if( !isalpha(user_name[0]) ) {
にする。
一行しかないものは削除



130 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 03:08:57 ]
>>117
関数の引数を↓のようにして(muは平均sigmaは標準偏差)
double p_nor(double z, double mu, double sigma)

変数を宣言しているすぐ下に
z = (z-mu)/sigma;
を追加すればおk

131 名前:116 mailto:sage [2009/02/02(月) 03:27:12 ]
>>130
できました!
こんな夜中にありがとうございます!

t = p = z * exp(-0.5 * z2) / (sqrt(2 * PI) * sigma);
のように、ここにもsigmaをかけなければいけないと思ってて
3日間ほどずっと悩んでました。

ほんとありがとうございます!

132 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 06:14:06 ]
fprintfとfscanfを同時に使用する場合、fopenのモードは何にすれば良いのでしょうか?

当方初心者でかなり無知ですがよろしくおねがいします。

133 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 06:55:57 ]
自己解決したすまね。
fopenを別々ですね。

134 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 10:57:09 ]
[1] 授業単元:プログラミング基礎
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8801.txt
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C++
[4] 期限: 2009年02月4日 まで
[5] その他の制限:

C言語の宿題だったのでお願いしました。
他の方と系統は違いますが、よろしくおねがいします。

135 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 11:47:57 ]
フローチャートくらい・・・
って思ってしまう俺は疲れてるのかな。

136 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 11:49:01 ]
疲れているなら、風呂に入っちゃ〜

137 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 11:50:34 ]
一緒に入りませんか?

138 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:07:40 ]
おれバイト&社会人でプログラム8年くらいやってるんだけど
フローチャートって使ったことない。使うもんなの?

139 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:09:11 ]
>>133
ふつうは "r+" とか "w+" だな
同時と言っても順序・タイミング考えないとぐちゃぐちゃになってしまうが



140 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:09:31 ]
>>138
今はどうか知らんけど、パチンコやパチスロのソフトは認可通すのに必須だとか?

141 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:16:55 ]
>>138
使う場合もあるしない場合もあるけど
ISOなんちゃらの監査の時に資料がいるので一応作っている

142 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 12:39:06 ]
>>140-141
そういう使い方なのか・・・

フローチャート書けるってことは、論理がわかってるってことだから
結局同じ手間でソースかけるような気がするんだよね。
だからフローチャートの必要性がわからんかった。

143 名前:デフォルトの名無しさん [2009/02/02(月) 13:30:04 ]
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク): kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8800.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Visual Studio
 [3.3] 言語: C言語
[4] 期限: ([2009年02月3日 23:00まで]
[5] その他の制限:


144 名前:デフォルトの名無しさん [2009/02/02(月) 13:47:15 ]
[1] 授業単元:プログラミング応用
[2] 問題文(含コード&リンク):ttp://beatguiter.xxxxxxxx.jp/text.html
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: C
[4] 期限: ([2009年2月2日0:00まで]
[5] その他の制限: 特にないが構造体とファイル処理まで習いました。

145 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:10:00 ]
[1] 授業単元: 人工知能演習
[2] 問題文(含コード&リンク):
Hopfieldネットワークの連想う記憶に関する以下の2つの課題を行いなさい。
Hopfieldネットワークとしては、ニューロン数N=63のものを考える。また記憶さ
せるパターンは、numbers.txtにある、0〜9までの数字のイメージをもちいる。
課題→kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8802.txt
numbers.txt→kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8803.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 2月4日23:59まで
[5] その他の制限: 特になし

146 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:21:34 ]
>>145 追記です

よろしくお願いします。助けてください。

147 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 14:43:29 ]
>>144 問1(exam01)を気まぐれにソースかいてみた。パーツに分けて書いた。

int main(void){
int Ary[5],i;
int Sum,Max,Min;
for(i=0;i<5;i++){ // 入力部
printf("Input Data Ary[%d] ?? ",i);
scanf("%d",Ary+i);
}
for(i=Sum=0;i<5;i++){ // 最大値計算部
Sum += Ary[i];
}
Max = Min = Ary[0]; // 0個目までの最小値最大値
for(i=1;i<5;i++){ // 1〜4個目までの最小値最大値
if(Ary[i]>Max) Max = Ary[i];
if(Ary[i]<Min) Min = Ary[i];
}
// 結果出力
printf("\t合計値 = %5d (Sum)\n",Sum);
printf("\t最小値 = %5d (Min), 最大値 = %5d (Max)\n",Min,Max);
printf("逆順:");
for(i=4;i>=0;i--){ // 逆順(forのデクリメント使用)
printf("%+5d ",Ary[i]); // インクリメントが良ければ書き直してくれ
}
return 0;
}

148 名前:デフォルトの名無しさん [2009/02/02(月) 15:17:00 ]
>>147
課題1のすっごいわかりやすかったです!!!
ありがとうございます、助かりました!!!

@課題2・3誰か助けてください orz


149 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 15:47:11 ]
>>144,148
課題2
#include<stdio.h>
void put_n(char c,int n){
while(n--)printf("%c",c);
printf("\n");
}
int main(void){
int i,n;
scanf("%d",&n);
while(n<=0){
printf("正の整数を入力してください。\n");
scanf("%d",&n);
}
for(i=1;i<=n;i++)put_n('*',i);
printf("\n");
for(i=n;i;i--)put_n('*',i);
return 0;
}



150 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:24:03 ]
課題3.コメントアウトつけなかったけど、ま分かるだろう。
#include <stdio.h>
#include <string.h>

int count_char(const char* s, char c){
int i,length,count=0;
length = strlen(s)-1;
for(i=0;i<length;i++) if( s[i] == c) count++;
return count;
}

int main(void){
int Size,i,tmpCount;
char strBuff[5][256];

for(i=0;i<5;i++){
printf("Input String (%d) ?? ",i);
scanf("%s",strBuff[i]);
}

for(i=0;i<5;i++){
tmpCount = count_char(strBuff[i],'a');
if(tmpCount == 0) continue;
printf("文字列[%s]に含まれる'a'の個数は%2dです\n",strBuff[i],tmpCount);
}
return 0;
}

151 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:25:28 ]
>>149
課題提出に問題ないと思うけど
問題文の解釈は自分ではこうなるけど、、、
while(n<=0){
printf("Input n ?? ");
scanf("%d",&n);
if(n>0) break;
printf("正の整数を入力してください。\n"); //問題文から警告と読み取るとこの位置
}
for文と条件演算子使うと1行で(簡単なんだか難解なんだか)
// for(Size=0;Size<1;Size<1?puts("正の値を入力してください"):0 ) scanf("%d",&Size);



152 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:37:51 ]
>>151
scanf("%d",&n);
while(n<=0){
printf("正の整数を入力してください。\n");
scanf("%d",&n);
}

入力部はこれでひと塊なんだ

153 名前:デフォルトの名無しさん [2009/02/02(月) 16:48:57 ]
>>144 です

>>150 を試してみましたが
色々入力してみて結果をみると
a が含まれてるのに表示されないのがあります
どう改善すればいいでしょうか;;;

154 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 16:51:16 ]
>>153
fgets を使う

155 名前:デフォルトの名無しさん [2009/02/02(月) 17:03:33 ]
>>154
fgets って言うのは習ってないので
どこに組み込めばいいか分からないです…。

156 名前:150-151 mailto:sage [2009/02/02(月) 17:11:59 ]
>>152
自分でコンパイルしてなかった。すまん。

>>153>>155
strlenが改行コード含むと思ってプログラムしてたから、自作関数の-1を消してもらえば大丈夫だと思う。

157 名前:デフォルトの名無しさん [2009/02/02(月) 17:14:29 ]
>>156
-1を消したらうまくできました!ありがとうございます^^

>>147,149,150,151,152,154,156
いい人が沢山居て本当に助かりました☆
皆さんありがとうございました!!!

158 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 18:50:58 ]
>>143
読んでないけど、>>115で不満なのか?


159 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 20:53:12 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8804.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: Borland C++Compiler 5.5
 [3.3] 言語: (C/C++/どちらでも可 のいずれか) C言語
[4] 期限: 2月5日まで
[5] その他の制限:C言語は一通り習ってます。

(1)がさっぱりわかりません・・・・。よろしくお願いします。



160 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:01:55 ]
(x^n) mod m

161 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:04:48 ]
>>160
はええな
マジで?
おれより速い奴がいるなんて興奮して勃起しちゃった

162 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:10:20 ]
>>160
すごいですね!ありがとうございます。

163 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:20:28 ]
>>160
質問者じゃないんだけど
y=1;z=x;
for(i=n;i>0;i>>=1){  ←i>>=1これどういう意味ですか?
if(i%2) y=(y*z)%m;  ←これなんでiが偶数のときは処理しないんですか?
z=(z*z)%m;
}
return y;

164 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:31:18 ]
>>163
www2.cc.niigata-u.ac.jp/~takeuchi/tbasic/BackGround/power.html

165 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:36:58 ]
>>163
>for(i=n;i>0;i>>=1){  ←i>>=1これどういう意味ですか?
iを右に一つシフトした結果をiに代入する。
結果、iが二分の一になる。


166 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 21:38:49 ]
>>165
>結果、iが二分の一になる。
端数切捨てね。
5(101)→2(10)

167 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:01:27 ]
[1] 授業単元:DirectX研究2
[2] 問題文(含コード&リンク):
サイコロを転がして目を決める。
 ・テーブルとサイコロを作成する。
 ・キー操作でサイコロを投げ下ろすように振る。
 ・落下してきて,1つの目を上にして止まる。
 ・何度でも遊べる

 ◎テーブルにサイコロの影がある
 ◎回転しながら落下してくる
 ◎自由な方向から見ることができる
 ◎テーブルの上でサイコロは跳ね,転がる。
 ◎サイコロとして正しい
pub.idisk-just.com/fview/_tILCoWWjdmUjpPFJTUxmAq6FeoO_tXOymM-2i9jWWI5H3mCxm9x4ARZUBR0TsUi
を参考にしてよい。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC8 or VC9
 [3.3] 言語:C/C++どちらでも可
[4] 期限: 2月10日まで
[5] その他の制限:DirectXの課題ですがよろしくお願いいたします。

168 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:37:41 ]
ここって宿題じゃなくて単発の質問はいいのかな?

169 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:41:33 ]
スレを勃てるまでもないC/C++の質問はここで 7
pc11.2ch.net/test/read.cgi/tech/1232983248/



170 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:41:35 ]
>>168
答えはNO
スレ違い

171 名前:デフォルトの名無しさん [2009/02/02(月) 22:43:50 ]
>>169-170
こっちか。ありがとう

172 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:48:04 ]
内容:[1] 授業単元: プログラミング
[2] 問題文:Visual c++を使って大富豪を作りなさい。
      ルールは、8切りのみです。ペア、階段等は無しにします。 CPUは1名とします。
カード枚数は10枚ずつで、ジョーカーは無しです。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語:Visual c++
[4] 期限: できれば早めに・・・・
[5] その他の制限: まだ基礎段階なので、なるべく簡単なプログラムがいいです。         画像の取り込みとかはせずに、文章で表示すればいいらしいです。 Visual c++がよくわからないので、よろしくお願いします

173 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 22:49:49 ]
>>166
スレ違いなのに質問に答えてくれてありがとうございます

174 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:14:27 ]
>>172
CPUとの1対1でいいのか?
ペアなしっていうのは、常に1枚ずつしかカード出せないってことでいい?

ていうかCPUの思考ルーチン作るのって基礎段階を大幅に超える気がするんだが


175 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:21:42 ]
どなたか>>134をお願いいたします。

176 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:29:56 ]
>>175
お願いされるWORDが無い

177 名前:105 mailto:sage [2009/02/02(月) 23:33:50 ]
問2をここまでやったのですが、どうも何かが違うようで7桁の数字を入力しても学番は7桁〜のほうがでてしまうんです。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

void main(){

char x[100];
int y,z;

printf("学番を入力:");
gets(x);

y=strlen(x);
     z=atoi(x);

if(y==7 && z==7){
printf("g%s@yahho\n",x);
}
else{
printf("学番は7桁の数字で入力して下さい\n");
}


}


どこがいけないのでしょうか?
何度も住みませんが、よろしくお願いします。

178 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:37:27 ]
>>175
バブルソート フローチャート
でググれ

179 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:40:46 ]
>>177
Z==7がまずい
というかそれ、問3じゃないのか?



180 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:44:31 ]
>>179
あ、ごめんなさい。問3でした

z==7がいけない、ということは
y==7 か z==7  どちらかしか使用してはいけないということなのでしょうか
文字数が7、尚且つ数字であるとき、という風にしたいのですが・・・

181 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:57:45 ]
>>172
仕様を、常に自分からで敵は出せる最小を必ず出す、とすれば楽になる。
が、10行20行で分かりやすく纏めるのやファイルうpはめんどい。

流れの案だけ、書いとく。

全体 [シャッフル]->[配布]->[スタート(自分の番)]->[ループ&終了判定]->[終了時コメント]->end
ループ部分
自分の番:自分のカードを printf("%d:%d ",i%10,ME[i]);とかで表示
scanfでキーボードの1,2,3,...,9,0を選択。フラグ処理などしないと、同じカード捨てる事になる。
相手の番:場に出ている番号(初めは0)より大きい最小のカードのインデックスを計算
あればそのインデックス。無ければ自分の番に。
細かいシステム管理(枚数チェックとか、場のカードの数・切るとか)も必要だし、
[シャッフル]7行 [配布]2〜5行 [ループ&終了判定]30行位[終了時コメント]3行
整理して、こんなもんかな?

182 名前:デフォルトの名無しさん mailto:sage [2009/02/02(月) 23:57:45 ]
>>180
言ってることとやってることがめちゃくちゃだぞ

数字かどうか判断するにはxに格納された文字が
'0'と'9'の間にあるかどうかを判断すべき

それと宿題程度ならいいと思うが
getsはなるべく使わない方がいい

183 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:00:57 ]
>>182
よく使ってるscanfも曲者と聞きますし、fgets&sscanfが良いと聞きますが
宿題レベルでもでしょうか?実感ないのですが。

184 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:01:39 ]
z = atoi(x) だから
z==7だと zが7かどうかを判定してることになってしまう。
ほしいのは7桁かどうかだから、これはまずい。

あとはzが7桁の数字かどうか判定すればいいだけだよ。

それとgets()は使わない方がいい。
この辺参考に
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/getc.3.html



185 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:05:49 ]
>>183
オーバーフローするような値を
敢えて入力するやつはいないと思うから
宿題レベルでとやかく言われることはないんじゃね?
でもリスクは少なくしておくべき

186 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:05:57 ]
y=strlen(x);

bool b = true;
int i;
for( i = 0; i < 7; ++i ){
if( x[i] < '0' || x[i] > '9' ) b = false;
}
if(y==7 && b ){
printf("g%s@yahho\n",x);
}
else{
printf("学番は7桁の数字で入力して下さい\n");
}

187 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:06:50 ]
>>174
出せるカードの中で一番弱いカードを出す程度で十分。
商用ゲームですらこれのことあるし。

188 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:07:33 ]
>>174
常に1枚だすので大丈夫です。よろしくお願いします。

189 名前:デフォルトの名無しさん [2009/02/03(火) 00:17:01 ]
C言語、プログラミング基礎の問題です。

整数型変数xに値16を代入文で直接代入する代わりに、ポインタ変数を用いて
間接的に行う方法を与えよ。

とても簡単だと思うのですがわからなくて。。。
お願いします



190 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:21:08 ]
>>189
int x;
int *px;
px = &x;
*px = 16;

こういうことかな?

191 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:23:53 ]
もしくは px[0] = 16 も。ポインタ理解できると→*(&px[1]-1)=16 でもできる事がわかる。

192 名前:デフォルトの名無しさん [2009/02/03(火) 00:24:34 ]
>>182
>>184
ありがとうございます。おかげさまで無事できました!

授業ではgets()しか習っていませんでしたが使わないほうがいいのですね。勉強になります。

193 名前:181 mailto:sage [2009/02/03(火) 00:40:07 ]
シャッフルだけ。
大富豪以外にもカードゲームボードゲームでも同じ事するはずだから、良いソース持ってる人いるだろうケド
山のシャッフルは、短絡的に実装しました。
バグさえなければ、大雑把にCARD_NUMの2乗オーダーの計算だと思うので
10000枚とかでなければ気にする事無いと思います。

#define CARD_NUM (13*4)
int main(){
int cards[CARD_NUM];// カード番号とカードの数字を対応
int yama[CARD_NUM];// カードをシャッフルして代入
int i,j,ran;
srand((unsigned) time(NULL));

for(i=0;i<CARD_NUM;i++){ cards[i]=i; yama[i]=-1; }
for(i=0;i<CARD_NUM;i++){
ran = rand()%(CARD_NUM);
if(yama[ran]==-1) yama[ran]=i; //トランプの数字にするには yama[ran] = i/4;
else i--; //やり直し
}
/* シャッフル検査 */
for(i=0;i<4;i++){
for(j=0;j<13;j++) printf("%2d/",yama[i*13+j]);
puts("");
}
return 0;
}

194 名前:デフォルトの名無しさん [2009/02/03(火) 00:49:48 ]
>>190 >>191
ありがとうございます!!

あと、while(条件){作業}
を、if文とdo-while文を使って表現すると、どうなるのでしょうか・・・

195 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 00:57:24 ]
マルチポスト

224 名前:デフォルトの名無しさん[] 投稿日:2009/02/02(月) 22:46:51
while文をif文とdo-while文を使って表現せよ

という問題なんですが…ifも使わなきゃいけないというところがわかりません
どうすればよいのですか??


196 名前:デフォルトの名無しさん [2009/02/03(火) 01:00:04 ]
>>195
イタチといわれたので

197 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:02:24 ]
それでも前のスレで答えてくれている人がいるだろ。
チェックしてないのかよ。

198 名前:デフォルトの名無しさん [2009/02/03(火) 01:03:38 ]
見たけどあってるかわからなかったんで

199 名前:デフォルトの名無しさん mailto:sage [2009/02/03(火) 01:05:39 ]
じゃあこのスレで答えても同じことになるだろ。



200 名前:デフォルトの名無しさん [2009/02/03(火) 01:08:58 ]
答え2つあったんですけど、どっちがあってるかわかりますか
このスレは答え教えてくれるんで






[ 続きを読む ] / [ 携帯版 ]

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

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