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


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

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



1 名前:デフォルトの名無しさん [2010/05/26(水) 07:45:28 BE:94671825-S★(522522)]
あなたが解けない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++の宿題片付けます 135代目
pc12.2ch.net/test/read.cgi/tech/1269438098/

458 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:02:48 ]
(2) 【平均点と偏差値を計算する関数の作成】
(1)のプログラムにおいて、平均点と学力偏差値を計算する部分を関数 seiseki に改
めたプログラムを作成せよ
◆ 条件
 データの入力と結果の出力はmain関数で行う。
 人数 N に負の値や101以上の値が入力されたときには、再入力するものと
する。
 点数 x[i] に負の値や100点を超える値が入力されたときには、再入力す
るものとする。
 main関数から関数seisekiに
データの数 N
N人分の点数 x[]
を渡し、関数seisekiからmain関数に
平均点 μ
偏差値 T[]
を受け渡す。
ただし、平均点は戻り値を用いて返す。



459 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:06:09 ]
3)【ポインタを用いた平均点と偏差値の計算】
(2)で作成したプログラムの関数 seiseki の中
次のプログラム例を参考にして、
の配列要素をポインタを用いて表すプログラムを作成せよ。
#include <stdio.h>
float average( int N, float *h);
int main(void){
float ave, height[101];
int i,N;
printf("Input N:");
scanf("%d",&N);
for(i=1; i<=N; i++){
printf("身長 ");
scanf("%f",&height[i]);
}
ave = average(N,height);
printf("平均 %6.1f \n",ave);
return 0;
}
float average( int N, float *h){
int i;
float av, total=0.0;
for(i=1; i<=N; i++){
total = total + *(h+i);
}
av = total/N;
return av;
}



460 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:35:27 ]
>>456
wakaran

461 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:42:29 ]
>>459
問題文が日本語になっていない
コードも直接貼ってるから読みにくい

462 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 14:51:41 ]
>>448
ありがとうございます。
セグメンテーション違反になりましたが、ここからは自分で頑張ってみます。

463 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 15:31:47 ]
>>456-458
codepad.org/JjTL3Zwl

(1)は input と main_q1関数だけ。
実行するときは、main_q1はmainに関数名を直すのが必要です。

(2)は コピペでも動く。main_q1関数は不要なので、消しても良い。

・偏差値はわからないから、wikipediaのを参考に。
・stdevの求め方は、2乗の平均 - 平均の2乗にした。
・データ入力の際に、avgも求められるが、題意から分けた。

464 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 15:38:36 ]
配列サイズが101だから、iは1からなんじゃね?

465 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 15:50:30 ]
>>463
Fortranな先生かな。
ttp://codepad.org/wUR2oqj6

466 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 16:10:08 ]
勝手に例の表記や条件を変えるヤツってなんなの?



467 名前:デフォルトの名無しさん [2010/06/08(火) 17:23:12 ]
>>354
すげぇ、てか制御式の中にscanf入れることできるのかー。
>>348
の人は何故だめなのかな。

468 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 17:30:20 ]
>>348
scanf("%c",&c);
で改行をよみこんでしまうから
後の条件式を総スルーしちゃう。
よってbは0で初期化されたまま

あと実際に動かすと
1
+
1
=
1
となってしまう。
これは
1
+
は計算するように書かれているけど
1
=
は計算するように書かれてないから。

469 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 17:44:47 ]
>>348を書き直すと
#include<stdio.h>
int main(void){
int a=0,b = 0;
char c=' ';
char prevc=' ';
while(c != '='){
scanf("%d%*c",&a);
scanf("%c",&c);
if (c == '+'){b += a; prevc='+';}
else if(c == '-'){b -= a; prevc='-';}
else if (c == '=')
{
if(prevc == '+' || prevc == ' ') b+=a;
else if(prevc == '-' || prevc == ' ') b-=a;
}

}
printf("%d\n", b);
}

470 名前:デフォルトの名無しさん [2010/06/08(火) 18:00:42 ]
>>468
頭良すぎワロタww
何故そのような分析ができるんだ。
C言語難しすぎ、どんだけ繊細なんだよ。

471 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:18:23 ]
お前がバカすぎるだけだってまだわからないのかw

472 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:19:08 ]
それほどでもないけどね

473 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:25:51 ]
>>468はいろいろ間違ってるぞw

474 名前:デフォルトの名無しさん [2010/06/08(火) 18:28:05 ]
prevcってなんだ?見たことも聞いたこともない。
苦し紛れの技巧か?

あと='';

''の中は空白だな。

475 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:36:20 ]
>>454
C#宿題スレに書きこんでみるか?

476 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:39:34 ]
#include <stdio.h>

int main(void)
{
int sum = 0, temp;
char ch = '+';

do {
scanf("%d", &temp);
if(ch == '+') sum += temp;
else if(ch == '-') sum -= temp;
scanf(" %c", &ch);
}while(ch != '=');

printf("%d\n", sum);

return 0;
}



477 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 18:46:02 ]
あげて古いの蒸し返してるのは:4 ◆nNHcoCEvyoだろ
こいつに何かを理解させるのは無理だって

478 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:03:06 ]
>>474
一個前のを取っておきたかったんだと思うよ。技巧ってほどじゃない

479 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:03:07 ]
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):オイラーの定理の仮証明
[3] 環境
 [3.1] OS:Windows Vista
 [3.2] コンパイラ名とバージョン:visual c++
 [3.3] 言語:C
[4] 期限:無期限
[5] その他の制限:初心者なので。。。

互いに素なnとaについてオイラーの定理が成り立つか確かめる。
とりあえずnは1以上5以下の数とし、aは1以上n以下とする。
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10654.txt
これを実行すると何故か一部でエラーが出るんですが(プログラミング的な意味ではなく)
その理由と解決方法を教えてください

480 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:17:35 ]
>>479
count = 1;の位置がおかしい

481 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:19:22 ]
>>480
なにがココまではおkなんだか・・・
ありがとうございます

482 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:21:07 ]
関係ないけどそのままだと数が大きくなるとオーバーフローしてしまう。
oira *= a;
oira %= n;
ってすれば数が大きくなっても対応可能。

483 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:23:02 ]
>>482
まじでそこを聞こうと思ってたところです
ありがとうございます

484 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 19:46:03 ]
>>482
度々悪いんですけど
なぜそうすればいいのか教えてもらえませんか?
自分で考えてもわかりませんでした

わからないのは
なぜ数が大きくなっても対応出来るのかではなく
なぜこの計算方法でも正しい結果が得られるのかです

485 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:00:30 ]
めんどくさいからパス

486 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:08:13 ]
そか(’・ω・`)
oiraにnで割った余りを入れちゃったら
次a倍すると意図しない値になっちゃいそうなんだ
少なくとも俺のない頭はそう思っちゃうorz

一回一回a倍とnで割った余りをいれようとした根拠とか考え方とかをご教授願いたかった(’;ω;`)



487 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:19:18 ]
これって高校数学の範囲じゃねーの?

488 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:22:42 ]
もしかして俺の勘違いかもしれん

>>482って
if(i == a){
printf("n = %2d, a = %2d", n, a);
oira = 1;
for(j = 0 ; j < count ; j++){
oira *= a;
oira %= n;
}
if((oira - 1) % n == 0){
printf(": verified\n");
}
else{
printf(": error\n");
}
}
みたいに直せって事だよな?


489 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:33:16 ]
もしかして俺のバカさ加減に呆れてますか?(;ω;`)

490 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:55:42 ]
少なくとも処理結果は正しいの?

491 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 20:58:49 ]
a = n * b + cの形に変形してかけて見ればわからない?

a * a = (n * b + c) * (n * b + c)
=(n*b)^2 + 2 * n * b + c^2

(n*b)^2と2*n*bは明らかにnで割り切れるから、
a*aをnで割った余りはc^2をnで割った余りになる

492 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:07:13 ]
それがoira-1をnで割ったあまりにどう応用できるのか、俺もわからないので>>489は一人で泣かなくていい

493 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:09:19 ]
>>491
解説ありがとう
なんとなく考え方はわかったがまだしっくりこないのでもうちょい粘ってみる

>>492
気が楽になった

494 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:09:30 ]
oira-1がnで割り切れる=oiraをnで割った余りが1

495 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:35:01 ]
#include <stdio.h>

#define NUMBER 5

int gcd(int a, int b) { return a % b ? gcd(b, a%b) : b; }

int main(void)
{
int i, j, c, n, a, oira;

for(n=1; n<=NUMBER; n++) {
for(a=1; a<n; a++) {
if(gcd(n, a)==1) {
printf("n=%2d,a=%2d:", n, a);
for(i=1,c=0; i<n; i++) if(gcd(n, i)==1) c++;
for(i=0,oira=1; i<c; i++) {
oira *= a;
oira %= n;
}
if(oira == 1) printf("verified\n");
else printf("error\n");
}}}

return 0;
}

496 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:37:49 ]
まだ関数と{? : }は習ってないから使っちゃいけないんだ
あくまで標準入出力とfor, while, if だけで



497 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:39:35 ]
使っちゃいけないという思い込み。
本当に使うなといわれた?

498 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:43:13 ]
思い込みだな
使っちゃいけないことは無いだろうが使わないでできるならそれに越したことはないかと

499 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:49:33 ]
そんなことしてる間に
>>491>>494のおかげで理解できました
理解できただけで次似たようなコード書くとき思いつくかどうかは別だけど

500 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:52:52 ]
countを求めるのはnとaが互いに素であることがわかってからの方がいい。

501 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 21:58:04 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
int plot(int x,int y,int c);は座標(x,y)に色cを設定する関数である。
これが与えられているものとして
コマンドラインから(x,y)の形で座標値が何個か与えられた時
(0<=x,y<=10000)これらに異なる色(選択は自由)を与える。
0<=x,y<=10000を満たす座標の各点についてその点から
最も近い点の色をその点に設定する(2つ以上の点から等距離
にある場合は、これらの点の中でコマンドラインで最初に指定
された点の色を設定)
この処理を行うプログラムを記述する

[3] 環境
 [3.1] OS:Windows XP(Service pack 3)
 [3.2] コンパイラ名とバージョン:visual c++.net 2005
 [3.3] 言語:C++
[4] 期限:6/11迄
[5] その他の制限:
 ヘッダファイルは使わない。extern宣言でplot関数を宣言した
のちにpaint関数のコードを記述すること。
0<=x,y<=10000と仮定して良い。
plot関数を適当な名前の整数ファイルの1024*y+(x % 1024)番目
のレコードに値を設定する実装としたドライバコードを使って
テストするとよい。

502 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:00:43 ]
#include<stdio.h>
#define NUMBER 5
int main(void)
{
int n, a, oira, c, i, j, k;

for(n=1; n<=NUMBER; n++) {
for(a=1; a<n; a++) {
for(i=n, j=a; k=i%j; i=j, j=k);
if(j!=1) continue;
printf("n = %2d a = %2d :", n, a);
for(c=oira=1; c<n; c++) {
for(i=n, j=c; k=i%j; i=j, j=k);
if(j!=1) continue;
oira *= a;
oira %= n;
}
if(oira==1) printf("verified\n");
else printf("error\n");
}}

return 0;
}

503 名前:501 mailto:sage [2010/06/08(火) 22:00:45 ]
問題文がちょっと抜けてました。訂正させてください。

○この処理を行うプログラムのメイン処理を行う関数
void paint( int argc,char **argv);
を記述する

×この処理を行うプログラムを記述する

504 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:01:35 ]
>>500
助言d
それはその方が無駄にφ(n)(=count)を求めなくて済むからか?
だとしたらその通りかもしれないから今後の参考にするわ

505 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:11:30 ]
あくまで好みだからそんなの自分の好きにしろとか言われるかもだが
プログラム書くときスペースとか改行ってどのタイミングで入れてる?

学校では a = a + 1 って書く奴がいれば a=a+1 って書く奴もいるし
for(i=0;i<5;i++)って書く奴がいれば
for(i = 0 ; i < 5 ; i++)って書く奴もいるし

こうしたほうが効率がいいとか後で見やすいってのがあるなら参考にしたい
今なら癖とかないから変えられるし

506 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:12:55 ]
>>504
そう。
できるだけ必要のない無駄な処理はしないってのが大事。



507 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:14:02 ]
>>505
どうぞ
google-styleguide.googlecode.com/svn/trunk/cppguide.xml


508 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:14:50 ]
何のIDE使ってるか知らないけど
vs2008使ってる俺は適当に書いてから「編集→詳細→選択範囲のフォーマット」で整形してる

509 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:20:58 ]
www.textdrop.net/google-styleguide-ja/cppguide.xml
あえてこっちを載せないことに悪意を感じる

510 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:25:31 ]
>>509
知らなかったんだごめんよ

511 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:39:58 ]
>>502が理解できない
てか発想が秀逸すぎて手に負えない

512 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:43:14 ]
最大公約数をループで求めてるだけ

513 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:50:13 ]
とりあえず褒めとけばいいと思ってない?

514 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 22:52:00 ]
>>501
0<=x,y<=10000を満たす座標の各点についてその点から
最も近い点の色をその点に設定する
ってあるけど

各々の座標の色はどう初期化するべきなの?
なにかしら初期化しておかないと最も近い点の色もなにもないと思うんだけど。

515 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:09:33 ]
引数で与えられた点の色はこっちで好きに決めていいんだろ

516 名前:430 mailto:sage [2010/06/08(火) 23:12:01 ]
>>505
K&R にしておけば後ろ指をさされることはないかと。
ただし私は

int main() {
...
}

とかえている。
emacs(xyzzy) ではこのほうが便利だから。



517 名前:デフォルトの名無しさん mailto:sage [2010/06/08(火) 23:54:47 ]
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
  kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10656.txt
  プログラムと問題文が書いてあります
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 2010年6月9日中に提出
[5] その他の制限: 特にありません

よろしくお願いします。


518 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:13:20 ]
[1] 授業単元:プログラミング演習
[2] 問題文:整数nを入力し、以下のようにサイズnの“N型の図形”を、奇数目入力では”*”、偶数目入力では”+”で表示で表示されるプログラムを作成しなさい。なお、処理の終了はnが0以下の時とする。複合条件やスイッチを用いて作製なさい。
実行例
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10658.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:
 [3.3] 言語: C
[4]期限:6/9日PM10:00
[5]その他制限: printf int while scanf float for のみの使用
なお、||、break、return,は使用禁止
プログラム形式はサンプル風にお願いします
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10660.txt

519 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:19:59 ]
上の実行例の訂正です
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10661.txt

520 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 03:41:51 ]
#include <stdio.h>

int main(void)
{
int i, j, n;

while(scanf("%d", &n)==1 && n > 0) {
printf("n=%d\n", n);
for(i=0; i<n; i++) for(j=0; j<=n; j++) printf("%c", j!=n ? j==0||j==n-1||j==i ? n & 1 ? '*' : '+' : ' ' : '\n');
}

return 0;
}

521 名前: [2010/06/09(水) 10:07:40 ]
>>432
すごいです!!…学校で習った感じに少し、
書き直させて頂きました(>_<)
こんなに早く出来ると思ってなかったので
びっくりしました。
本当に助かりました!有難う御座いました☆


522 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 10:43:14 ]
シルエット
カーディガン
レントゲン
サンドイッチ

523 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 11:01:34 ]
>>501
ideone.com/EtsT0
作ってみたけどなんか違うから、だれか直してくれ

524 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:11:42 ]
[1] 授業単元:データ構造
[2] 問題文(含コード&リンク):kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10662.txt
[3] 環境
 [3.1] OS:特に指定なし
 [3.2] gcc 3.2
 [3.3] 言語: (C)
[4] 期限: ([2010年6月10日15:00まで] )
[5] その他の制限: なし

よろしくお願いします。

525 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:45:36 ]
>>524

おまえ、5つの数字の列の取りうる範囲は0~99999の100,000個だぞ。
だから入れるバケツの大きさは100,000の配列にしてそこへ2000個のデータを
5桁の数字に対応するバケツに次々入れて、終わったら番号の小さいバケツから順番に
数字を取り出すようにしないとダメだぞ。


526 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 16:47:15 ]
void sort(char data[][LENGTH+1], int size)
{
int *p = calloc(100000, sizeof(int));
int i, j, k;
for(i=0; i<size; i++) p[atoi(data[i])]++;
for(i=j=0; i<100000; i++) for(k=0; k<p[i]; k++) sprintf(data[j++], "%05d", i);
free(p);
}



527 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 17:46:55 ]
void sort(char data[][SLENGTH+1], int size) {
  int i, j=0, k;
  char p5[6];
  int *p = calloc(100000, sizeof(int));

  for(i=0; i<size; i++)
    p[atoi(data[i])]++;
  for(i=0; i<100000; i++) {
    if(p[i]) {
      sprintf(p5, "%05d", i);
      for(k=0; k<p[i]; k++)
        strncpy(data[j++], p5, 5);
    }
  }
  free(p);
}

528 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 18:23:29 ]
>>522
申し訳ないですが、
||と条件文の中にさらに条件文は使用禁止なんです。
説明足りなくてスミマセン。
[printf("%c", j!=n ? j==0||j==n-1||j==i ? n & 1 ? '*' : '+' : ' ' : '\n'); ココと]
[while(scanf("%d", &n)==1 && n > 0)ココの部分です]

529 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:11:45 ]
>>528
これなら大丈夫だろw
ideone.com/lGet1

530 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:27:49 ]

5つの数字が全部0って可能性はないのかな?
もし0が入る可能性があるのならallocateされた領域の初期値が0じゃまずいかも。

531 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:28:55 ]
data[000000]++;

532 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 19:39:49 ]
>>530
お前は何をいってるんだ

533 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:07:46 ]
>>529
何度もすみません
さっきの説明が分かりにくかったですね;
forの中にscanfとかを入れるのがダメなんです。
1行に付きscanf、forなどは1つです。
printf
int
while
scanf
float
for
のみの使用です。

それ以外は使用禁止です。
return
||
else
if
は使用禁止です。




534 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:09:59 ]
>>528
誰が禁止って言ったの?

535 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:21:51 ]
>>531-532

わはははは、javaやりながらここ見てたから勘違いだ。笑えwwwww


536 名前:デフォルトの名無しさん [2010/06/09(水) 20:33:58 ]
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
次の仕様を満たすプログラムを作成せよ
「xy 平面内に任意の電荷量の点電荷を複数個配置する.xy 平面内の原点Oを中心とする4 m 四方(±2 m)の領域内において,位置r(x, y)に形成される電界Erや電位Φrを計
算する.」複数個の点電荷で形成される電界Erや電位Φrを,任意の位置r で計算する際は,重ね合わせの原理を用います
電界ベクトルの計算は, x 成分とy 成分に分けて行います
[3] 環境
 [3.1] OS: unix
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:6月11日
[5] その他の制限: 特になし



537 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 20:54:43 ]
学校でやってないところは使うなと
先生に言われました;;

538 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:01:58 ]
エスパー無理

539 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:03:14 ]
>>537
学校と先生を教えてくれるかな?w

540 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:04:30 ]
>>537
誰だお前は

541 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:11:04 ]
学校でやってないこと 使うなと
講師の先生(せんせ)に 言われたよ
――痴楽 綴り方教室

542 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:13:19 ]
≫538
例ですと
前回の課題の
問題文:整数nを入力し、以下のようになサイズnの”Z型の図形”を”*”で表示するプログラムを作成しなさい。
ただし、図形を表示するためのnの値は3以上とし、2以下の値が入力された場合は処理を終了する様にしなさい。
[実行例]
3      <-n入力
n=3
***
 *
***
4 <-n入力
n=4
****
   *
  *
****  
8 <-n入力
n=8
********
         *
        *
       *
     *
   *
  *
********
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10660.txt
はこうなりました。

543 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:21:14 ]
エスパーできないって言ってるんだが

544 名前:537 542 mailto:sage [2010/06/09(水) 21:27:23 ]
≫534
すみません!!
番号うつの忘れてました。
ホントすみません;;

545 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 21:35:42 ]
>>536
kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10664.txt
詰めは自分でやってくれ

546 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:00:30 ]
<iostream>とか<studio.h>って何が違うんですか?



547 名前:デフォルトの名無しさん mailto:sage [2010/06/09(水) 22:03:59 ]
>>546
STanDard InputOutput Headerな
定義されてる関数群がちがう。

548 名前:デフォルトの名無しさん [2010/06/10(木) 00:33:37 ]
もう本当に挫折しそうです。
関数を二つ pen()とqen()として作って
int main()の中に呼びたいんですが
この時pen()の実引数をqen()にしたいんですが
これがうまくいきません、どうしたらいいですか?
レス代行なので長いプログラムは書けません・すいません。
int main(void)
a=pen();
qen(a);
としてもpen()とqen()が別個に呼び出されるだけで一つの作業と
なりません。

549 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 02:48:35 ]
>>548
penの引数をqenの引数にしようとしているようには見えないので、いろいろおっちょこちょいな人なのかな。
関数ポインタをキーワードにいろいろ調べてみてください。

550 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 06:07:31 ]
pen()の実引数をqen()にするなら
pen(qen);
だろ。

551 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 06:46:15 ]
pen(void (*p)(void)); かなシグネチャは

pen()の中で (*p)(); もしくは p(); として呼び出す

552 名前:デフォルトの名無しさん [2010/06/10(木) 07:52:36 ]
>>550
double a;
qen(a);
pen(qen);
ですか?普通に無理でしたが・・
pen(qen);だけでもまぁ無理でした。
>>551
pen((*p)(qen(a));ってことですか?これも無理でした。

553 名前:デフォルトの名無しさん [2010/06/10(木) 07:55:25 ]
関数ポインタってのあるんですが、馬鹿でした。で
int mainの中で
p= pen;
qen((*p)pen());とかごちゃごちゃ色々なとこ変えて、
付け足して
90回くらい思考錯誤したけど全部だめした......
ちなみにpen()、qen()自体はそれぞれsin関数とcos関数
です。ポインタ関数理解したいのでこのままの構造でい
きたいと思ってます。

554 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 07:59:47 ]
何がしたいのかさっぱり伝わってこない

555 名前:430 mailto:sage [2010/06/10(木) 08:09:29 ]
>>553
#include <stdio.h>
#include <math.h>
double p(double (*f)(double), double a)
{
return sin((*f)(a));
}

double q(double a)
{
return cos(a);
}

int main()
{
double a, b;
a = 3.1415926;
b = p(q, a);
printf("%f\n", b);
return 0;
}
/* end */

556 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:12:37 ]
cos()の返り値をsin()の引数にするってw



557 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:21:43 ]
関数を関数の引数にするってことを理解できてないようにみえる

558 名前:デフォルトの名無しさん mailto:sage [2010/06/10(木) 08:23:28 ]
>>554
関数を2つ呼び出して、一つの関数をもうひとつの関数の
引数にしたいんです。ただそれだけです。






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

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

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