あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。
気に入らない質問やその他の発言はスルーの方向で。
「著作」「違法」「Qz」はNGワード推奨。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
>>2 以降にあります。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を
入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
これまでのまとめ ・宿題の丸投げは問題文の著作権(著作権法 二十三条 公衆送信権)を侵害する。 ・問題文には第三者の著作物が含まれている場合ある。 著作権法第三十五条の規定により第三者の著作物が利用されている場合もある。 問題丸投げは同条の規定外なので第三者の権利侵害にあたる ・丸投げを煽るテンプレは著作権侵害の教唆にあたる ・宿題丸投げはカンニングと同等の行為として学則による処罰の対象になる。 ・悪質なカンニング行為は偽計業務妨害(刑法 二百三十三条)として捜査の対象になる。 ・カンニング行為を煽っているテンプレはその教唆犯(刑法 六十一条) 以上、宿題丸投げスレは違法行為を煽り、テンプレ自体も犯罪行為であることが明確に なったので、これ以上の継続は無用
本科目の受講生より、こちらにて出題の課題を インターネットに投稿している者がいるとの連絡を受けました。 今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、 問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。 初回の講義でお話しましたように、ソースコードの書き方には個人差があり、 過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。 他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。 提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。 締切りはまだ時間もいくらか残されていますので、 この問題を投稿した、または参考に読んでいる学生には自分の力で 今回の課題に取り組んで頂けることを期待しています。
3 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん 4 名前:あぼ〜ん[あぼ〜ん] 投稿日:あぼ〜ん
6 :
デフォルトの名無しさん :2013/10/16(水) 17:10:02.09
次回から、推奨NGワードに「違法行為」いれた方がいい?
そうだぬ
前スレ
>>984 984 :デフォルトの名無しさん:2013/10/16(水) 13:06:20.87
1 授業単元 プログラミング
2 問題 高さh、質量m、初速度vを入力して、物体の軌跡を計算し、グラフを描画(SVGファイルを出力)する。
http://ideone.com/sKEPtl 変更は受け付けない
11 :
デフォルトの名無しさん :2013/10/17(木) 14:27:01.45
>>10 スタート地点のボールが四半円になってませんか?
>>11 だから?
仕様も環境もまともに書かない奴にはこれで十分だ
cout に << flush したい衝動に駆られている
そんなに言うなら自分で書けばいいじゃん なんなの?
仕様や環境の提示がまともかどうかと、 回答に問題がまともかどうかは、別の話
回答がまともかどうかは、別の話
linux使いとしてはグラフ云々はさっぱりw 放物線は二次関数で一発でしょ。 y''=-g を時間で二回積分すればいい。 x'=0だから簡単。
と言うかSVGを比較的扱いやすいInkscapeはLinuxが主戦場だったり。
>>16 だからそこまで言うなら自分が書けばいいだろと。
vcかどうかも、グラフに何が必要かも書いてない。
他人に頼むときにも適当な野郎には、適当な回答で十分だよ。
あれ、鉛直下向きに投げ下ろしたら放物線じゃないよな しかも軌跡なんだから縦に直線引けば常に正しいはず
重力と空気抵抗の条件が書いてない時点でどうしようもないだろ
23 :
デフォルトの名無しさん :2013/10/18(金) 08:50:30.84
>>21 >>10 >初速度v
だから、普通の頭で考えれば、3次元。
演習で簡易な設定なら2次元。
ひねくれ王でも決めてるのか?
27 :
デフォルトの名無しさん :2013/10/18(金) 10:35:02.56
いやw 問題には「鉛直下向き」と表現されているのだから ベクトルでも水平成分は0とみなすので縦に直線で良いんよ
水平成分がなかろうと、時間について表示すれば二次元になるだろ。
(二次元の)グラフには縦軸と横軸とそれぞれの単位を書きなさいって 小学校の先生が言ってた
そういう機能はいらないです
32 :
710 :2013/10/18(金) 12:08:41.49
>>22 その理屈だと、鳥が邪魔する可能性についても記述が無いなw
>>33 鳥がコリージョンを起こしたり、鳥のワーム自動除去機能や、繁殖期における干渉についても記述のほしいところだ
飛んでいるジェット機が衝突する可能性とか、落ちてきた隕石と衝突する可能性とか
ヒッグス場を考慮する必要がある
空気抵抗は微分方程式を解けばいい。 結局 終端速度で落っこちてくる。
>>24 普通の頭ってなんだよw
用語としてなら
>>26 の言うとおりベクトルであって次元は関係ない
むしろ普通に考えたら水平投射の速さの事だろ
なのに鉛直下向き指定があるから矛盾しないように解釈すると
>>21 になる
空気抵抗とか鳥は指定ないから考慮したい人だけすればいい
40 :
デフォルトの名無しさん :2013/10/20(日) 09:16:45.57
1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 金額を入力してお札のカウントをする。1万はman,5千はgo,千はsenとする。89000円と入力したらman=8 go=1,sen=4になるようにカウントする。 [3] 環境 [3.1] OS: windos8 [3.3] 言語: C [4] 期限: ([2013 10 20 18時まで 全然分からなかったので、やさしい方教えてください。
>>40 #include <stdio.h>
int main(void)
{
int kingaku, man, go, sen;/* 変数を定義 */
printf("金額=");/* 入力を促すための表示 */
scanf("%d", &kingaku);/* 金額を入力 */
man = kingaku / 10000;/* 1万円札の枚数。manはint(整数)のため、小数点以下は切捨てられる。 */
kingaku = kingaku % 10000;/* 10000で割った余り */
go = kingaku / 5000;/* 5000円札の枚数 */
kingaku = kingaku % 5000;/* 5000で割った余り */
sen = kingaku / 1000;/* 1000円札の枚数 */
printf("man=%d go=%d,sen=%d¥n", man, go, sen);
return 0;
}
解答1. x=89000; man=x/10000; go=(x%10000)/5000; sen=(x%10000)%5000; 解答2. x=89000; sen=x/1000; go=sen/5; sen-=go*5; man=go/2; go-=man*2;
43 :
デフォルトの名無しさん :2013/10/20(日) 10:31:56.63
>>40 ,41
ありがとうございます。
#include <stdio.h>
int main(void) {
int kingaku, man, go, sen;
printf("Input Okane->");
scanf("%d", &kingaku);
man=kingaku/10000;
go=(kingaku%10000)/5000;
sen=(kingaku%10000)%5000;
printf("10000[en]=%d\n",man);
printf("5000[en]=%d\n",go);
printf("1000[en]=%d\n",sen);
return 0;
}
このようにやったらsenのあたいが4000になります(-_-;)
どこが違いますか?
丸投げする奴って一片たりとも自分で考える気無いんだな
45 :
デフォルトの名無しさん :2013/10/20(日) 10:39:00.96
オリンピック記念10万円硬貨とか 二千円札とかを忘れないで
>>39 時間と位置のグラフなら放物線になるんじゃないの?
うむ、日本の将来を担う優秀なバイトテロ戦士もこういったスレで育つのだから 嫌なら見るな
>>46 グラフには縦軸や横軸や単位を書けと小学校の時に習うぞ
vはvelocityのv
でもベクトルって指定してないんだから位置なら間違って無くね? なんで間違いって事になってんの?
速度はベクトルだぞ?
//片付けお願いします。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define N 300 int i; void BubbleSort(int *p,int *q,int *pp,int *qq); int main (void) { int aa=0,bb=0,cc=0,idt[N]; srand((unsigned)time(NULL)); printf("ソート前\n"); for(i=0;i<N;i++) { idt[i]=rand()%N; printf("%4d",idt[i]); } printf("\n\nソート後\n"); BubbleSort(&aa,&bb,&cc,idt);
for(i=0;i<N;i++) { printf("%4d",idt[i]); } printf("\nwhile %6d\n",aa); printf("for %6d\n",bb); printf("if %6d\n",cc); return 0; }
void BubbleSort(int *p,int *q,int *pp,int *qq) { int loop=1,tmp; while(loop) { loop=0; for(i=0;i<N-1-*p;i++) { if(qq[i]>qq[i+1]) { tmp=qq[i]; qq[i]=qq[i+1]; qq[i+1]=tmp; *pp++; loop=1; } *q++; } *p++; } return; }
>>52 表示するのは速度ともスカラーともベクトルとも言って無くね
ベクトルの意味がわかってなさそうな奴がいるな
59 :
デフォルトの名無しさん :2013/10/20(日) 17:46:53.48
授業単元:プログラミング [2] 問題文(含コード&リンク): 10000秒を入力して、2時間46分40秒と表示させるにはどうすればよいですか?[3] 環境 [3.1] OS: windos8
62 :
デフォルトの名無しさん :2013/10/20(日) 18:10:50.18
不法行為を煽るな犯罪者め
>>59 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <limits.h>
int input_str(char *buf, size_t size) {
if (!buf || !size || !fgets(buf, size, stdin)) return 0;
if ((buf = strchr(buf, '\n'))) *buf = '\0';
else while (getchar() != '\n');
return 1;
}
int input_num(int *num) {
unsigned long val;
char buf[16], *end;
if (!num || !input_str(buf, sizeof buf)) return 0;
val = strtoul(buf, &end, 10);
if (errno == ERANGE || !*buf || *end || val > INT_MAX) return 0;
*num = (int)val;
return 1;
}
int main(void) {
int h, m, s;
printf("何秒?");
if (input_num(&s)) {
h = s / 3600; s %= 3600;
m = s / 60; s %= 60;
printf("%d時間%d分%d秒\n", h, m, s);
}
return 0;
}
#include <stdio.h> int main( int argc, char** argv ){ int sec = 0; if( scanf("%d",&sec) == 1 ){ printf("%d時間%d分%d秒\n", sec / (60*60), ( sec / 60 ) % 60, sec % 60 ); } return 0; }
初速度vがベクトルw 高校出てなさそうw
70 :
デフォルトの名無しさん :2013/10/21(月) 13:40:57.69
高校生だろ
力作やな
昔 sci.lang だったか comp.lang だったかで骨とかいろいろ漢字のAA書いてた人いたねCJK統合の前の話ね
ツール使ったにしろ変換したにしろ、 普通にコード書くより手間かかった力作なのは事実だろう。
>>77 それを見つけてきて出力を整形する手間は59を解く手間と比較して小さいのか?って事だろ。
人によるけど、%dじゃ駄目で全角で吐けってなったあたりでもギリギリ釣り合わない程度じゃない?
>>78 これを使ったと言っているんじゃなく、こういうものがあるということ。
もっと丁寧に探せば、簡単に使えるものが見つかるんじゃないかな?
確か16ドットの漢字フォントイメージはフリーであったんじゃなかった?
>もっと丁寧に探せば その労力、プライスレス
82 :
デフォルトの名無しさん :2013/10/22(火) 04:42:51.56
プログラムが偉大なのではなく フォント作者が偉大なのだ
84 :
デフォルトの名無しさん :2013/10/22(火) 10:19:03.68
フォント作者ってちまちまこういうのずっと考えてんのか?w
フォントフォント
フォントの流れにデファブを感じる
あるあるFとJの入力ミス
[1] 授業単元: 現象数理 [2] 問題文(含コード&リンク): f(x) = cosx - x^2 = 0 の近似解を求めるプログラムを作り、以下の問題を解け。 なお、二分法を用いること。
a = 0, b = 1 からa, b, c の値を求める。
|b - a| < 10^(−6) の条件を満たすまで実行し、 もしくはこの条件を満たさない場合は30 回実行し、各回のa, b, cの値をまとめる。 [3] 環境 [3.1] OS:Linux [3.3] 言語:C [4] 期限:2013年10月26日24:00まで [5] その他の制限:特にありません。 お願いします。
[1] 授業単元:アルゴリズム [2] 問題文(含コード&リンク): [3] 環境 下のような指定ノードの次にノードを挿入する関数をカーソル版とポインタ版で作成しなさい。 カーソル版 void InsertAfter(List *list, Index idx, const Member *x); ポインタ版 void InsertAfter(List *list, Node *p, const Member *x); [3.1] OS: Windows [3.3] 言語: C [4] 期限:10/27
92 :
デフォルトの名無しさん :2013/10/26(土) 14:12:49.25
>>91 (List・Index・Member・Node)の定義を教えてちょうだい
リスト構造Memberにリスト構造Listを挿入 挿入時にidx番目に挿入 挿入時にNodeの次or前に挿入 じゃないのか
94 :
デフォルトの名無しさん :2013/10/26(土) 14:57:18.90
>>93 想像で物を言うな。いいかげんなやつだな。
想像でって超解釈でもしなきゃ
>>93 だろ。
フィールド名がわからないから、定義ないと書けないだけで。
96 :
デフォルトの名無しさん :2013/10/26(土) 15:16:06.00
>>92 すみません。
List 線形リストを管理するための構造体。複数のメンバで構成されている。
Index カーソルの型。カーソルは単なる整数値なのでint型の同義語として定義。
Node 線形リストのノードを表すのが高Node。
>>96 推測通りだったわけだが、今どんな気持ち?
>>92 誤字
線形リストのノードを表すのが高Node。→線形リストのノードを表すのが構造体Node。
>>100 メンバがたくさんって、メンバは勝手に定義していいのかよ
違うならきちんと定義の中身も書け
とりあえずIndexとNextとPreviousでいいんでね
103 :
デフォルトの名無しさん :2013/10/26(土) 17:13:18.92
104 :
デフォルトの名無しさん :2013/10/26(土) 17:22:09.72
>>98 Memberはなにを表すの?
List・Index・Member・Nodeのプログラムの定義があるならそれ教えて
>>104 > List 線形リストを管理するための構造体。複数のメンバで構成されている。
「複数のメンバで構成されている。」
暇潰しか
108 :
デフォルトの名無しさん :2013/10/26(土) 17:47:32.35
>>106 なるほど。
List・Index・Nodeはある?
110 :
デフォルトの名無しさん :2013/10/26(土) 18:09:20.27
>>109 うん、おk。
探せば答えも出てくるんじゃないかと思えてきた。
あとは
>>93 とこのスレのみんなが頑張ってくれるよ。
コードも書かない奴がなんで仕切ってるの
112 :
デフォルトの名無しさん :2013/10/26(土) 19:12:59.10
コードを書くやつより、書かせる奴のほうが偉いからじゃないの?
ここは俺が書いてみたからこのコード見ながら学習してみれ、ってとこだと思ってたが違うのか、 一時的な師弟関係・講師生徒関係の場で教わる側が偉いときってどういう時よ
>>110 ここまで答えさせといて丸投げとか
やっぱり暇つぶしじゃないか
116 :
デフォルトの名無しさん :2013/10/26(土) 20:49:23.32
社長←書かない 下っ端←書く
118 :
デフォルトの名無しさん :2013/10/26(土) 21:08:23.62
今のところみんな社長!
osのカーネルソースにずばりそのものがあるんじゃないの?
120 :
デフォルトの名無しさん :2013/10/27(日) 03:50:48.37
初めまして。
ピタゴラスの定理(C*2=A*2+B*2)を題材にした課題を解いて頂けませんか。
入力した斜辺Cの数値から辺Aと辺Bの長さを回答するプログラムを製作しろとのことです。
http://www.dotup.org/uploda/www.dotup.org4614357.png 一応ここまでやりまましたが、斜辺として適当な数字を入力した場合は正しい答えが表示されるのに対して、
本来ならエラーが表示されるべき数字を入力した場合は上の画像のように変な数字が表示されます。
数式の定義が良くないのかと思い、他に「a*a+b*b<c*c」なども試してみましたが、エラーが表示されるようになった代わりに正しい答えが表示されなくなりました。
私ではもう手に負えないので助けてください。
授業単元:プログラミング
問題文:上の説明を参照してください
環境:Mac OSX 10.9 Xcode 5.0.1
言語:C言語
期限:3日以内
制限:特に無し
なんだこの短いのに汚いソースコードは…
インデント狂ってるとイライラする
>>120 uint32_t
65536*65536=0
つ条件 a < c, b< c
>>124 すいません、どのように記述すべきか詳しく教えてください。
126 :
デフォルトの名無しさん :2013/10/27(日) 10:05:44.82
解決しました。ありがとうございました。
改めて書き直します。よろしくお願いします。
[2] 問題文(含コード&リンク):
下のような指定ノードの次にノードを挿入する関数をカーソル版とポインタ版で作成しなさい。
カーソル版
void InsertAfter(List *list, Index idx, const Member *x);
ポインタ版
void InsertAfter(List *list, Node *p, const Member *x);
その章の全例題(演習問題込み)のソースです。
https://www.dropbox.com/sh/tmlnk4mnmduveh8/TW7DEZOIiW [3.1] OS: Windows 7
[3.3] 言語: C
[4] 期限:10/27〜28
>>127 void InsertAfter(List *list, Index idx, const Member *x)
{
Index i = GetIndex(list);
Index j = Retrieve(list, idx);
SetNode(&list->n[i], x, list->n[j].next);
list->n[j].next = i;
list->crnt = i;
}
void InsertAfter(List *list, Node *p, const Member *x)
{
Node *n = AllocNode();
SetNode(n, x, p->next);
p->next = n;
list->crnt = n;
}
130 :
デフォルトの名無しさん :2013/10/27(日) 18:27:31.04
#include <stdio.h> main() { char t2[16]; char t1[16]; char s[] = "test-data0123456789"; t2[0] = 'S'; t2[1] = '\0'; int i = 0; do { t1[i] = s[i]; } while (s[i++] != '\0'); puts(t1); puts(t2); int* ptr = (int*)t1; printf("%d\n", *ptr); } cの課題です これの出力が test-data0123456789 789 1953719668 となりますが、なぜputs(t2);がこのような出力になるのでしょうか? t2は関係ないと思うのですが、、 それと最後の行は全くわかりません どなたかよろしくお願いします。
>>130 sは'\0'も含めて20文字。
t1のサイズは16文字。
書き込み先が溢れてt2のところにまで書き込まれるんでしょね。
1953719668は16進にすると74736574。
文字にするとtset。リトル何とかで逆になってるんでしょね。
>>130 > } while (s[i++] != '\0');
のループをぬけた時の i の値は?
133 :
デフォルトの名無しさん :2013/10/27(日) 21:28:13.08
解の公式使って実数解、重解、虚数解のときのxの解を求めるんだけど 動くことは動くんだけど計算式に#とか紛れ込んでておかしく表示される ちょっとだれか教えてください。 #include<stdio.h> #include<math.h> int main(void){ double a,b,c,D,sd,x1,x2,x3; printf("Input a, b and c ->"); scanf("%lf%lf%lf",&a,&b,&c); a!=0; D=(b*b)-(4*a*c); sd=sqrt(D); x1=(-1*b+sd)/(2*a); x2=(-1*b-sd)/(2*a); x3=(-b)/(2*a); a!=0; if(D>0){ printf("Imaginary Root\n"); printf("x=%.3f\n",x1); printf("x=%.3f\n",x2); }else if(D==0){ printf("Imaginary Root\n"); printf("x=%.3f\n",x3); }else{ printf("Imahinary Root\n"); printf("x=%.3f + %.3f\n",(-1*b)/(2*a),sd/(2*a)); printf("x=%.3f - %.3f\n",(-1*b)/(2*a),sd/(2*a)); } return 0; }
sd=sqrt(abs(D)); doubleは実数で、複素数ではないよ
>a!=0; >D=(b*b)-(4*a*c);
136 :
デフォルトの名無しさん :2013/10/28(月) 00:57:03.19
パケットを16進数で受信して,パケット毎に宛先IPアドレスと宛先ポート番号の組み合わせの通りを出力するプログラムをC++のmapを利用して出力するプログラムを教えてください。
137 :
136 :2013/10/28(月) 01:16:02.68
>>136 パケットを16進数で受信するプログラムは作成したのですが、
mapのプログラムがわかりません。
keyをstringで宛先IPアドレスと宛先ポート番号の組み合わせ
値をobject(他のクラスで継承)
のプログラムですお願いします。
mapは 「宛先IPアドレスと宛先ポート番号の組み合わせ」をキー 「宛先IPアドレスと宛先ポート番号の組み合わせの現れた回数」を値 とする集合のことじゃないか?
140 :
デフォルトの名無しさん :2013/10/28(月) 08:16:02.56
本科目の受講生より、こちらにて出題の課題を インターネットに投稿している者がいるとの連絡を受けました。 今回の課題は学生の理解を深める為に個別レポートとして出題されたものであり、 問題の解答そのものを丸投げすることは課題の趣旨に反する行為となります。 初回の講義でお話しましたように、ソースコードの書き方には個人差があり、 過去に提出したレポートなどから本人が書いたものかどうか判別することは十分可能です。 他人が書いたソースコードをレポートとして提出することは重大な不正行為に当たります。 提出されたレポートにおいて不正が確認された場合、本学の懲罰規程に従い厳しく処罰されます。 締切りはまだ時間もいくらか残されていますので、 この問題を投稿した、または参考に読んでいる学生には自分の力で 今回の課題に取り組んで頂けることを期待しています。
pcap のソースが参考になる
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): テキストファイルを作りそのなかに整数5個数字を入れるそのテキストファイルの中身を出力せよ input関数とshow関数を作ること コマンド引数にテキストファイルの名前を入れること [3] 環境 [3.1] OS: (Windows/Linux/等々) windows [3.3] 言語: (C/C++/どちらでも可 のいずれか) Cのみ [5] その他の制限: ぽいんたーまで習っています ファイルのポインターのところがわからず詰んでいます お願いします
>>142 テキスト作成、整数書き込みもプログラムがやるの?
>>143 言葉足らずでしたがテキストは作成済みで読み込んで表示だけです
>>144 ありがとうございます。
理解できるようにがんばります。
>>141 パケットキャプチャじゃなくて、ソケットプログラム書いてるんだと予想。
>>146 pcapがソケットプログラムじゃないと?
148 :
136-137 :2013/10/28(月) 13:27:55.11
>>138 失礼しました。今後気をつけます。
>>139 ありがとうございます。こちらの検討違いでした。
[1] 授業単元: 通信
[2] 問題文:
@トラフィックを受信(16進数)->ここは出来た。
Amapで、
key:宛先IPアドレスと宛先ポート番号の組み合わせ
値:宛先IPアドレスと宛先ポート番号の組み合わせの回数
key毎に値を出力するプログラム
[3] 環境
[3.1] OS:Linux
[3.3] 言語:C++
Aを今月中に仕上げたいが、全くわかりません。
どなたかお願いします。救済を求めます。
>>148 言ってる意味がよくわからないが・・・こういうことか?
// 初期化時
std::map<std::string,int> received;
// 受信の度に
if( received.count(key) == 0 ){
received[key] = 1;
} else {
received.count[key] += 1;
}
// 全受信完了後
for( std::map<std::string,int>::iterator it = received.begin();
it != received.end();
it++
){
std::cout << it->first << " = " << it->second << std::endl;
}
[1]データ構造入門 [2]AVL木の挿入プログラムを考える。 ・AVL木の実装は以下のようにせよ。 struct node{ int key; int info; /* データを格納する */ struct node *left; struct node *right; int balance; /* 1であれば左の部分木が -1であれば右の部分木が高い 0であれば等しい */ }; typedef struct node NODE; ・挿入の実装は以下のようにせよ。 int insert(int target,Datatype info,NODE **p,int *grown){ *grown=0; 新規にノードを追加したならば、grownを1にしてreturn grownが1なら木の高さが増えたことを意味する。つまり再構成が必要になる場合がある } [3]OS: Windows [3.2]言語:C言語 [4]期限:(2013年10月28日23時59分まで) [5]その他の制限:特になし よろしくお願いします。
152 :
136-137 :2013/10/28(月) 14:22:46.90
>>150 回答ありがとうございます。
この回答に近いものを感じます。
私の問題に対する理解が乏しいゆえ
招いた疑問ですので、私は理解を深めてから
また投稿したいと思います!失礼しました!
>>151 >int info; /* データを格納する */
>int insert(int target,Datatype info,NODE **p,int *grown){
どっち?
>>151 ここだけじゃないや、他にもいろいろとおかしい。
問題や、付属のソースはきちんと写してください。
155 :
デフォルトの名無しさん :2013/10/28(月) 16:10:12.86
>>154 問題文を違法アップロードさせる犯罪教唆は今すぐやめろ
>>153 int insert(int target,int info,NODE **p,int *grown){
こっちです
>>154 問題、ソースもこれで全部です
なのでまったくわからず悩んでいます
158 :
151 :2013/10/28(月) 18:01:52.03
自分で途中まで書いたものを載せておきます おそらくこんな感じになると思うのですが・・・ int insert(int target,int info,NODE **p,int *grown){ *grown=0; if(*p==NULL){ *p=malloc(sizeof(NODE)); (*p)->key=target; (*p)->info=info; (*p)->left=NULL; (*p)->right=NULL; *grown=1; }else if(target<(*p)->key){ }else if(target>(*p)->key){ }else{ puts("ERROR!"); } }
159 :
桃白白 ◆9Jro6YFwm650 :2013/10/28(月) 19:52:29.85
>>158 おk、よくわかった。
桃白白いま修行中だからリンクが貼れないんだけどこれで。
ideone.com/JdCRlP
>>159 ありがとうございます。
助かりました。
[1] 授業単元:数理 [2] 問題文(含コード&amp;リンク): f(x)=cosx-x^2=0の近似解をニュートン法を用いて求めるプログラムを作成し、 以下を実行せよ。 x0 = 1(n = 0) から始めたときの xn+1 の値を求めよ。 |xn+1 − xn| / (|xn |)<10^(-6)を満たすまで実行し (この条件を満たさない場合は30回実行し)、 各回のxn+1 の値を表にまとめろ。 [3] 環境 [3.1] OS:Linux [3.3] 言語: どちらでも可 [4] 期限:2013年10月30日am9:00まで [5] その他の制限: 特にありません。 セントOSを習い始めたばかりで手も足も出ずに困っています。 どなたかよろしくお願いします。
>>163 ありがとうございます。
表にまとめるのは、
出た値をテキスト化してもよいようなので、
表にまとめず、値だけを出すパターンも教えていただけますか?
何回もすみません、お願いします。
#include <math.h> static double func(double x) { // ここにニュートン法の式を書く return x; } int main (void) { int n; double x, tmp, d; x = 0.0; for (n=0; n<30; n++) { tmp = x; x = func(x); printf("%d\t%f\n", n+1, x); d = (x - tmp) / tmp; if (d < 0) d = -d; if (d < 1e-6) break; } return 0; }
171 :
デフォルトの名無しさん :2013/11/05(火) 21:05:55.22
[2] 問題文: 実行結果の出力をqueueを使用し st1 st2 st3 st4 st5 としなさい。 下のプログラムを改良してください。 [3.3] 言語: C++ #include <iostream> #include <queue> using namespace std; int main(){ queue<string> dataQueue; string st1,st2,st3,st4,st5; dataQueue.push(st1); dataQueue.push(st2); dataQueue.push(st3); dataQueue.push(st4); dataQueue.push(st5); while( !dataQueue.empty() ) { cout << "" << dataQueue.front() << endl; dataQueue.pop(); } return 0; } コンパイルは通るのですが出力されません。 よろしくお願いします。
174 :
171 :2013/11/05(火) 21:17:16.30
>>173 ありがとうございます。
それだけのことでずっと悩んでました。
175 :
デフォルトの名無しさん :2013/11/05(火) 21:26:59.12
[1] 授業単元:通信 [3] 環境 [3.1] OS:Linux ソケットプログラムで各パケットのプロトコルを取得して queueに入れるサンプルプログラムを作ってください。
>>175 プロトコルってどの層のプロトコルよ
それによって書く内容全然違うんだが
うるせーバカ わかんないなら引っ込んでろ
178 :
175 :2013/11/05(火) 21:42:35.32
すみません説明不足です。 TCP/IPです。 通信終了後ででも構いませんがよろしくお願いします。
179 :
175 :2013/11/05(火) 21:47:26.06
>>176 トランスポート層?
インターネット層?
とにかく欲しいプロトコルはTCPとUDPです。
IPv6の場合も含めてお願いします。
申し訳ございません親切に。
180 :
175 :2013/11/05(火) 21:48:26.76
あと
>>177 はなりすましです。気になさらないで。
>>179 え?TCP/IPってポート番号での判断じゃないの?
TCPかUDPのどちらかが知りたいということか?
それとももっと高度にパケットのデータ部での判別?
とりあえずソケットから取得するのは書いたけど
処理の流れが全然わからないのでこれ以上は無理
http://ideone.com/U0O6qi
182 :
175 :2013/11/05(火) 23:29:41.30
>>181 ありがとうございます。
はい。16進数でパケットを収集する際に
p[]がパケットの中身の配列で
p[0]からp[13]までがヘッダ部で
p[14]からp[33]までがデータ部として
p[12]とp[13]でIPv4なのかIPv6なのか判別して
p[23]?でプロトコルの判断をすると思います
そのプロトコルをキューに入れて出力させるプログラムが欲しいのです。
なかなか私の理解力のなさのため何言ってるか理解しがたいと思いますが
どうぞよろしくお願いします。
>>182 理解力のなさっていうか、説明力のなさ。
パケットキャプチャプログラムは普通なら、
ソケットプログラムなんて大雑把な呼び方しないよ。
出題条件によってはパケットの生バイナリファイルだったり、
tcpdumpファイルに対してソレをやれって問題の可能性もある。
出題文を正しくて転写していないのなら正しく転写すべし。
>>179 パケットの流れの観察から使われているプロトコルを調べるというのは
相当に高度な話しで、参考書かサイトで学習するべきだと思うが。
「話し」って?
>>185 そりゃお前の事だろ。
プログラミングどころか、煽りも荒らしも適当で、
一体お前に何ができるんだ。
>>188 お前よりは何でもできる
バカの日本語修正してやる事とか
やっぱり日本語知らない三国人か 地獄に落ちろ
日下部さんって今なにしてるんだろう
沖縄で基地反対運動
194 :
デフォルトの名無しさん :2013/11/09(土) 15:27:12.02
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): @1〜100の整数のうち「6の倍数」の個数を表示するプログラムを作成しなさい、ただし、for文とif文を用いて作成すること A1次元配列を用いて5人分の数学の得点を100点満点で入力し、「数学の得点の最小値と最大値」を画面表示、およびファイルに書き出すプログラムを作成しなさい。ただし、書き出し用ファイル名は「sugaku.txt」にしなさい。 [3] 環境 [3.1] OS: (Windows/Linux/等々)windows home vista [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)borland [3.3] 言語: (C/C++/どちらでも可 のいずれか)C言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)2013年11月12日02:00まで [5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々) 2か月前からC言語を習い始めました。いまはまだポインタまでの範囲をかじった程度であまり理解もできていません。 とくに制限はありません。 どうかよろしくお願いいたします。
void main() { int i,cnt; for(i=0,cnt=0;i<=100;i++){ if(i % 6 == 0) cnt++; } printf("%d個", cnt); }
>>195 ×void main()
○int main()
>>197 そうだねえ,C99/5.1.2.2.1 では "or in some other implementation-defined manner." という一節が残されているから
△void main()
○int main()
くらいにしとく,スタートアップの実装しだいだし
>>200 int f(int d,int i,int n){
return ((i<n)?f(d,i+1,n):0)+((i%d)?0:1);
}
int main(){
if(1)for(;;){printf("%d\n",f(6,1,100));return 0;}
}
>>194 A 行数オーバーするから改行は自分の納得いくようにしてくれ
int main(void)
{
int point[5], min, max, num, input;
FILE *fw;
for(num=0;num<5;num++) {
printf("%d人目の得点 > ", num + 1); scanf("%d", &input);
if(0 <= input && input <= 100) {
point[num] = input;
if(num == 0) {
min = point[num]; max = point[num];
}
else {
if(point[num] < min) {
min = point[num];
}
else if(max < point[num]) {
max = point[num];
}
}
}
else {
num--;
}
}
printf_s("最少値 = %d\n最大値 = %d\n", min, max);
fopen_s(&fw, "sugaku.txt", "w");
fprintf_s(fw, "最少値 = %d\n最大値 = %d\n", min, max);
fclose(fw);
return 0;
}
>>194 忘れてた
最後のprintf_sとfprintf_sはprintfとfprintfにしてね
205 :
デフォルトの名無しさん :2013/11/11(月) 22:32:17.38
[1] 授業単元: 空間図形 [2] 問題文(含コード&リンク):切頂六面体、切頂八面体をプログラムを用いて描け [3] 環境 [3.1] OS: [3.2] [3.3] 言語:指定はありません [4] 期限: 2013年11月12日 15:00迄 [5] その他の制限: 制限は特にありません、 プロセスごと知ることが出来れば有り難いのですが、 結果のみ(=多面体の図示)でも構いません。 よろしくお願いします。
208 :
デフォルトの名無しさん :2013/11/12(火) 14:27:10.45
>>207 ありがとうございます!
プログラム自体はないでしょうか…?
厚かましくてすみません。
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): オンライン海戦ゲーム 10×10マス(A-Jと1-10で指定)のマップ上に戦艦を配置する。 戦艦はゲーム開始時にランダムで配置されるようにする。 配置される戦艦は ・全長4 - 1隻 ・全長3 - 2隻 ・全長2 - 3隻 とし、縦、横いずれかの向きで配置されるものとする。(マスで重複しないこと) プレイヤーはサーバに接続し、どちらが先にすべての戦艦を沈没させられるかを競う。 プレーヤー数は2人で、攻撃はターン制で行い、持ち時間は15秒。 戦艦にあたった場合は「*」で表示、外れた時には「-」で表示する。 先にすべての戦艦に攻撃を当てたプレイヤーを勝ちとする。 ==イメージ== [1][2][3][4][5][6][7][8][9][10] [A] - * * * * - - [B] - - - - * - [C] - * [D] - - …行数の関係で省略します [3] 環境 [3.1] OS: windows [3.2] コンパイラ名とバージョン: borland c++ 5.5.1 , Visual C++ 2013 [3.3] 言語: C [4] 期限: 2013/11/14/10:45 [5] その他の制限: 一般的な参考書でいうと構造体のあたりまで理解してますが、サーバとの通信の知識が全くありません
>>213 移動できるのかとかどう攻撃するのかとか全く書かれてなくて組みようがないんだけど
>>182 下記URLのコードでetherパケットがダンプできるので、それを利用するといけそう。
イーサパケット以降の判定はtcpdumpが分かりやすい。
http://www.fenix.ne.jp/~thomas/memo/linux_raw_packet/netdump.c --- netdump.c.org 2001-11-29 18:42:22.000000000 +0900
+++ netdump.c 2013-11-14 03:06:48.669756002 +0900
@@ -207,6 +207,7 @@ print_ethaddr(p)
{
int i;
struct ethhdr *eh;
+ u_short h_proto;
eh = (struct ethhdr *)p;
@@ -218,6 +219,16 @@ print_ethaddr(p)
printf("%02x:", (int)eh->h_dest[i]);
printf("%02x", (int)eh->h_dest[i]);
printf("\n");
+
+ // from ether_print and ether_encap_print in tcpdump
+ h_proto = ntohs(eh->h_proto);
+ switch (h_proto) {
+ case 0x86dd: printf("IPv6\n"); /** do something tcp / udp */ break;
+ case 0x0800: printf("IPv4\n"); /** do something tcp / udp */ break;
+ case 0x0806: printf("ARP\n"); break;
+ case 0x8035: printf("RARP\n"); break;
+ default: printf("%04x\n", h_proto); break;
+ }
}
海戦ゲームって書いてあるのにw
>>214 すみません。
移動がどういうものかよくわかりませんが、的である戦艦は移動しません。
サーバが配置した戦艦に対し、2人のプレイヤーが交互に攻撃します。
tp://www.sousakuba.com/flash-games/battleship-game.html
↑このサイトの、戦艦マップが1つだけという感じです。
攻撃は、座標指定で行います。
例えば(A,10)や(C,6)と言った感じです。
課題を板書したので書き損じてるところがあると思いますが、よろしくお願いします。
> 配置される戦艦は > ・全長4 - 1隻 > ・全長3 - 2隻 > ・全長2 - 3隻 > とし、縦、横いずれかの向きで配置されるものとする。(マスで重複しないこと) これ実装するだけでもめんどくせえ。放置がデフォ。
>>217 ごめん海戦ゲーム自体初めて知ったわw
面白そうだから作ってみるよ
>>217 戦艦が動かない訳がないだろ
こんな海戦ゲームがあるから
日本は戦争に負けたんだよ
日本オリジナルのゲームじゃないんだけどw
>>217 そのサイトのURLリロードするたびに戦艦の配置変わるな
なかなか手が込んでる
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):クリップボードの履歴の最新50個を表示するプログラムの作成 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:visualstudio2010 [3.3] 言語:どちらでも可 [4] 期限:2013年/11/15 10:00 [5] その他の制限: 特になし よろしくお願い致します。
>>226 テキストのみです。
画像等は含みません。申し訳ありませんでした。
履歴を取得するAPIわ? そんだけの事のような気がするが、まちがってたらご麺。
はいはい
Vista以降だけど AddClipboardFormatListener でウィンドウを登録すると クリップボードの内容が変更されたときに WM_CLIPBOARDUPDATE が飛んでくるので GetClipboardData する
>>231 ありがとうございます。
少し自分なりに頑張ってみます。
楽しそうないい問題ですなぁ。
WindowsMe時代に作ったことあるなー Ctrl+Vをグローバルフックでキャッチして連番で貼り付けられるようにしたりした 貼り付けるたびに数値が増えるようにしたりとか また似たようなことができればいいんだけど
235 :
◆QZaw55cn4c :2013/11/15(金) 21:47:08.28
239 :
デフォルトの名無しさん :2013/11/17(日) 10:04:18.52
240 :
デフォルトの名無しさん :2013/11/17(日) 11:10:38.85
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://ideone.com/2viXY6 forかwhileをつかって
[3] 環境
[3.1] OS: (Windows8
[3.2] visual studiopro 2012
[3.3] 言語: (C
[4] 期限: (11月17日18時まで]
だれか教えてくださいよろしくお願いします。
>>239 お、キモくていい感じ。
どんどんやりなさいっ!
242 :
デフォルトの名無しさん :2013/11/17(日) 11:34:33.39
243 :
デフォルトの名無しさん :2013/11/17(日) 11:46:31.01
探偵ファイルにはもう送らないんですか?
246 :
デフォルトの名無しさん :2013/11/17(日) 14:34:03.47
探偵ファイルは誰かが不幸になるのが好きで、こういう美談は扱わないだろ
相手にされなかっただけでしょ
248 :
デフォルトの名無しさん :2013/11/17(日) 15:02:02.49
高専の4年ってもう就職決まってるんでしょ 表彰されれば入社後の待遇よくなるよ 就活これからなら有利になること間違いなし!!
249 :
デフォルトの名無しさん :2013/11/17(日) 15:10:14.83
250 :
デフォルトの名無しさん :2013/11/17(日) 17:51:32.61
>>245 ありがとうございます。
これをfor文のみでやるとどうなりますか?
1から10までの整数のうち、偶数の合計を求めなさい。 1から100までの整数で、奇数だけの合計、偶数だけの合計、総合計をもとめよ; y=5x+8の値をxが0〜10まで、1ずつ増やした時のyの値 10^3+30^3+50^3+70^3+90^3の計算 #include <stdio.h> typedef enum { EVEN = 0, ODD, ALL } sum_types; int get_sum(int min, int max, sum_types type){ int i, sum = 0; for(i=min; i<max+1; i++){ if(type == EVEN || type==ODD) sum += i%2==type ? i : 0; else sum += i; } return sum; } int pow_int(int x, int y){ int i, mult = 1; for(i=0; i<y; i++) mult *= x; return mult; } int main(void){ int i, j, pow_sum = 0; fprintf(stdout, "1) %d\n", get_sum(1, 10, EVEN)); fprintf(stdout, "2) Odd: %d, Even: %d, All: %d\n", get_sum(1, 100, ODD), get_sum(1, 100, EVEN), get_sum(1, 100, ALL)); fprintf(stdout, "3) y = 5x + 8;\n"); for(i=0; i<=10; i++) fprintf(stdout, "y=%d [x=%d]\n", 5*i+8, i); for(j=10; j<=90; j+=20) pow_sum += pow_int(j, 3); fprintf(stdout, "4) 10^3+30^3+50^3+70^3+90^3 = %d\n", pow_sum); return 0; }
関数使うなって事だろうけど、ifも排除したりすると楽しそうだ。
fprintf / printf も排除ですねわかります
255 :
デフォルトの名無しさん :2013/11/17(日) 18:34:44.37
>>252 そうです。 ifとかelseをつかわないでやることはできますか?
if文はなくても 判定はするんでしょ。 当たり前か
>>240 >>255 http://ideone.com/9kMPLJ //使用
//・int変数
//・for文、return文、ブロック文
//・演算子&&、<=、==、%、+、*、=
//・printf関数
//制限
//・三項演算子
//・関数
//・if文
for(j=0;j==0 && 条件;j=j+1)がif(条件)の代わり。
>>255 #include <stdio.h>
int main(void){
?? ?? int i,a,b,x;
?? ?? for(a=0,i=0;i<=10;i+=2)
?? ?? ?? ?? a+=i;
?? ?? printf("1から10までの整数のうち、偶数の合計=%d\n",a);
?? ?? for(a=0,i=1;i<=100;i+=2)
?? ?? ?? ?? a+=i;
?? ?? printf("1から100までの整数で、奇数だけの合計=%d\n",a);
?? ?? for(b=0,i=0;i<=100;i+=2)
?? ?? ?? ?? b+=i;
?? ?? printf("1から100までの整数で、偶数だけの合計=%d\n",b);
?? ?? printf("総合計=%d\n",a+b);
?? ?? for(x=0;x<=10;x++)
?? ?? ?? ?? printf("x=%d ??y=%d\n",x,5*x+8);
?? ?? printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
?? ?? return 0;
}
261 :
デフォルトの名無しさん :2013/11/17(日) 21:05:50.74
printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90); ・ ・ return 0; ここのところをfor文にするとどうなりますか? }
for(i=0;i<1;i++) printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90);
a=0; for(i=10;i<=90;i+=20) a+=(i*i*i); printf("%d",a);
x = 0; for (i = 10; i <= 90; i += 20) { for (a = b = 1; a <= 3; a++) b *= i; x += b; } printf("10^3+30^3+50^3+70^3+90^3=%d\n", x);
>>262 こちらが一番簡単そうなのでこちらにします
ありがとうございました
それはよかつたね
何気にいいスレね
printfも関数だから禁止な
270 :
デフォルトの名無しさん :2013/11/18(月) 09:10:10.75
みなさんありがとうございます。 ほんとに感謝です。
271 :
デフォルトの名無しさん :2013/11/18(月) 12:04:04.26
自分の言ってる違反の事実ができたわけだがいいのか
273 :
デフォルトの名無しさん :2013/11/18(月) 20:05:30.20
eの近似値を求める問題でこのようにやりました。 #include <stdio.h> int main(void){ int i; double t, e = 0; for (t = i =1; t<1e6;i++) { e += 1/ t; t *= i; printf("n=%d-> e=%.6f\n", i, e); } return 0; } n=1-> e=1.000000 n=2-> e=2.000000 n=3-> e=2.500000 n=4-> e=2.666667 n=5-> e=2.708333 n=6-> e=2.716667 n=7-> e=2.718056 n=8-> e=2.718254 n=9-> e=2.718279 n=10-> e=2.718282 実行例をn=1->e=2.00000にするにはどこをかえればいいですか?
double t, e = 1;
275 :
デフォルトの名無しさん :2013/11/18(月) 20:28:45.10
違反? 誰が何に?
276 :
デフォルトの名無しさん :2013/11/18(月) 20:35:51.80
>>274 ありがとうございます。
t,i=1;
e += 1/ t;
t*= i;
while(t<1e6){
printf("n=%d-> e=%.6f", i, e);
i++;
}
今度はwhile文でやりたいのですが、上のようにやったら、エラーになります。
どうすればよいと思います?
forのときと同じようにやればいいと思います
tが初期化されていない >t,i=1;
\33]2J
282 :
デフォルトの名無しさん :2013/11/19(火) 18:47:19.64
#include <stdio.h> int main(void){ ・ ・ int i,a,b,x; ・ ・ for(a=0,i=0;i<=10;i+=2) ・ ・ ・ ・ a+=i; ・ ・ printf("1から10までの整数のうち、偶数の合計=%d\n",a); ・ ・ for(a=0,i=1;i<=100;i+=2) ・ ・ ・ ・ a+=i; ・ ・ printf("1から100までの整数で、奇数だけの合計=%d\n",a); ・ ・ for(b=0,i=0;i<=100;i+=2) ・ ・ ・ ・ b+=i; ・ ・ printf("1から100までの整数で、偶数だけの合計=%d\n",b); ・ ・ printf("総合計=%d\n",a+b); ・ ・ for(x=0;x<=10;x++) ・ ・ ・ ・ printf("x=%d ・y=%d\n",x,5*x+8); ・ ・ printf("10^3+30^3+50^3+70^3+90^3=%d",10*10*10+30*30*30+50*50*50+70*70*70+90*90*90); ・ ・ return 0; } これ全部whileでやってみたのですが、できませんどうすればよいですか?
退学して、どうぞ
284 :
デフォルトの名無しさん :2013/11/19(火) 19:04:07.58
出来ました。すいません。
退学を取り消します
denied
if と goto だけを使えばいい
288 :
デフォルトの名無しさん :2013/11/20(水) 20:28:31.97
巡回セールスマン問題のオープンソースってどこかにありますか?
gnu tsp でググるよろし
290 :
デフォルトの名無しさん :2013/11/22(金) 20:26:16.10
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): 100000 110000 111000 111100 111110 111111 とこのように表示させるプログラム。 [3] 環境 [3.2] visual studiopro 2012 [3.3] 言語: (C ) [4] 期限: (11月23日18時まで] だれか教えてくださいよろしくお願いします。 出来ればifは使わず、forとwhile文両方お願いします。
>>290 #include <stdio.h>
int main(void)
{
int i;
for(i=0;i<6;i++)
{
printf("%.6s\n", "11111100000"+(5-i));
}
return 0;
}
293 :
デフォルトの名無しさん :2013/11/22(金) 20:51:33.77
>>291 ありがとうございます。
elseとか使わずにfor文はfor文、while文はwhile文と分けてやるとどうなりますか?
295 :
デフォルトの名無しさん :2013/11/22(金) 23:28:44.09
すみません 簡単なものでいいので、C言語で配列を使ったプログラムお願いします
>>290 #include <stdio.h>
int main()
{
int i, a, b = 100000;
for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10));
return 0;
}
10000 11000 11100 11110 11111 11111
>>290 むかしからあるチャチャだけど、
#include <stdio.h>
int main(void){
printf("100000\n");
printf("110000\n");
printf("111000\n");
printf("111100\n");
printf("111110\n");
printf("111111\n");
return 0;
}
じゃだめなのかい?
だめなんだろうなぁw
forもwhileも使ってないだろw
>>296 #include <stdio.h>
int main(void)
{
int a[] = { 0, 1 }, i;
for (i=0; i<sizeof(a)/sizeof(int); i++)
printf("a[i]: %d\n", a[i]);
}
>>300 #include <stdio.h>
int main()
{
char *p;
for (p = "100000\n110000\n111000\n111100\n111110\n111111\n"; *p;) putchar(*p++);
return 0;
}
>>290 #include <stdio.h>
int main()
{
int n=~0777777;
for (; n /= 8;)
printf("%o\n", n & 0111111);
return 0;
}
char ss[] = "0000000"; int i; for (i = 0; i < 7; i++) { ss[i] = '1'; puts(ss); }
305 :
デフォルトの名無しさん :2013/11/23(土) 18:46:14.92
トリッキー合戦も良いと思うけど ダレイクトに分かりやすいコードのほうが開発効率は良い気がしますがね
こんなスレで開発効率とかバカか
課題を甘く見て、後輩に追い抜かれていくパターンだな。
あいつこんな課題もまだ終わってないのかよって言っておきながら 中身の品質は負けてるんだろうな
C500問って本にあった * ** *** **** ***** ****** ******* ******** ********* ********** ってのもいい問題かと
ほとんど変更いらないな char ss[11] = {0}; int i; for (i = 0; i < 10; i++) { ss[i] = '*'; puts(ss); }
#include <stdio.h> int main(void) { int i; for (i=0; i<10; i++) printf("%s\n", "**********" + 10-1 - i); return 0; }
312 :
309 :2013/11/24(日) 01:52:44.27
一応 if を使わず #include <stdio.h> int main(int ac, char **av) { char num[][8] = { { 0x00, 0x1c, 0x26, 0x2a, 0x2a, 0x32, 0x1c, 0x00 }, { 0x00, 0x08, 0x18, 0x08, 0x08, 0x08, 0x3e, 0x00 }}; int i, j, k, m; for(i = 0; i < 6; ++i) for(j = 0; j < sizeof(num[0]) / sizeof(num[0][0]); ++j){ for(k = 0; k < 6; ++k) for(m = 0x80; m > 0; m >>= 1) putchar(num[i - k >= 0 ? 1 : 0][j] & m ? '*' : ' '); putchar('\n'); } return 0; }
>>313 3項演算子は消せる
#include <stdio.h>
int main(int ac, char **av)
{
char num[][8] = {
{ 0x00, 0x1c, 0x26, 0x2a, 0x2a, 0x32, 0x1c, 0x00 },
{ 0x00, 0x08, 0x18, 0x08, 0x08, 0x08, 0x3e, 0x00 }};
int s[] = { 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1 };
int i, j, k, l, m;
for(i = 0; i < 6; ++i)
for(j = 0; j < sizeof(num[0]) / sizeof(num[0][0]); ++j){
for(k = 0; k < 6; ++k)
for(l = 0, m = num[s[i - k + 6]][j]; l < 8; ++l, m = (m << 1) & 0x0ff)
putchar(" *"[(m & 0x80) >> 7]);
putchar('\n');
}
return 0;
}
あのートリッキ自慢ではないと思うのでぇ
えっ? どこかにトリッキーな部分があるの?
IOCCC日本支部ですから
同じ効果を得るのに行数は短い方がいいが。 追加の効果(保守性等)を得るために行数は増やしても問題ない。 重要なのはコードの行数ではない。メンテナンス性だ。 って先生が言ってた
原理原則論は現実の前では役に立たない
#include <iostream> #include <string> int main() { std::string s("**********"); for (auto itr = s.begin(); itr < s.end(); itr++) { for (auto itr2 = s.begin(); itr2 <= itr; itr2++) std::cout << *itr2; std::cout << std::endl; } }
321 :
デフォルトの名無しさん :2013/11/24(日) 13:21:18.02
#include <stdio.h> int main() { int i, a, b = 100000; for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10)); return 0; } この式をwhileに変換するとどうなりますか?
322 :
デフォルトの名無しさん :2013/11/24(日) 13:39:06.85
#include <stdio.h> int main() { int i, a, b = 100000; while(1){ for (a = i = 0; i < 6; i++) printf("%d\n", a += (b /= 10)); break; } return 0; }
ねんまつ
>>321 #include <stdio.h>
int main()
{
int i=0, a=0, b = 100000;
while (i++ < 6) printf("%d\n", a += (b /= 10));
return 0;
}
325 :
デフォルトの名無しさん :2013/11/24(日) 13:49:09.55
ダメな猫、普通の猫
猫飼いた〜い
328 :
デフォルトの名無しさん :2013/11/25(月) 08:01:05.04
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): a) 4桁の西暦を入力として受け取り b) その年のすべての日について次の演算を行い c) 小計 = 年の上位2桁 + 年の下位2桁 + 月 + 日 (例) 20 + 13 + 11 + 25 = 69 d) 各日の小計を大きいものから順に 20131231 = 76 ... 20131125 = 69 ... 20130101 = 35 のように表示させるプログラムを作りなさい [3] 環境 言語:C ライブラリ:Cの標準関数のみを用いること [4] 期限: (11月25日18時まで] よろしくお願いします
小計の値が同じ日は 20131001 = 44 20130110 = 44 のように年月日を8桁の数字にしたときの大きいものから順に表示してください
PROBABILITY LEVEL (PPROB) 0.4102 ファイルにこう書いてあって(0.4102は31桁目から) ifstream fin ; double v ; char buf[31] ; fin.getline (buf, 31) ; fin >> v ; 数字が読めないんですがどうすればいいですか?
スレ違い
334 :
デフォルトの名無しさん :2013/11/25(月) 11:29:37.83
>330-331 ありがとうございました
意外と偏らないもんなんだね
getlineじゃなくてgetにすれば読めるんじゃね
istream::getline だとデリミタに達しない場合failbitがセットされる。 fin >> v; の前に fin.clear(); でクリアすれば読める。 istream::get にはそういう動作は無いってこと。
>>336 >>337 ありがとうございます。なぜ読めないか理由を含めて理解出来ました。
実際のところ欲しいのは数字だけなので、ignore()なんてのも使えるみたいです。
このスレ 宿題片付けます とか言いながら 結構実力練成と復習の意味があるのね。 他の人はどうするかとか。
単純な規則で並べられるものを一々ソートするアホのコードを見ても実力練成とやらにはならないと思うけど
>>340 西暦を9999年まで想定するなど、出題の範囲外の思考(雑念)が
必要になったりしないか。
「単純な」と言われている方のコードはアルゴリズムが判りやすい上に 西暦0000年でも9999年でも動作するメリットがある しかし順番に出力する際にかなりの部分のCPUリソースが無駄な比較で消費されている たとえば2013年12月の配列にはpivot==45以上の値しか現れないんだから そういうのは除外する工夫をすればもっと速くなるだろうね とか言っておけば良いのか
>西暦0000年 不正入力で除外すべきでは? >順番に出力する際にかなりの部分のCPUリソースが無駄な比較で消費されている time_t <-> struct tm の相互変換は無駄じゃないのか? >2013年12月の配列にはpivot==45以上の値しか現れない 46 以上 じゃね?
>>342 一度出力された月日は二度と出力されることは無い訳で、
削除マークを付けて次の比較のときはスキップすればもっと速くなる罠。
345 :
デフォルトの名無しさん :2013/11/26(火) 08:39:04.04
>>335 漏れにはおもいっきり片寄ってるように見える
#include <stdio.h> int main(void) { int year, n, i, j, a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; scanf("%d", &year); n = year / 100 + year % 100; if(year % 4 || ((year % 100 == 0) && year % 400)) a[2] = 29; for(i = 12 + 31; i >= 1 + 1; i--) for(j = 12; j >= 1; j--) if(a[j] && i == j + a[j]) printf("%d%02d%02d = %d\n", year, j, a[j]--, i + n); return 0; }
すげー
#include <stdio.h> int main(void) { int c = 0, year, n, i, j, a[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; scanf("%d", &year); n = year / 100 + year % 100; if(year % 4 || ((year % 100 == 0) && year % 400)) a[2] = 29; for(i = 12 + 31; i >= 1 + 1; i--) for(j = 12; j >= 1; j--, c++) if(a[j] && i == j + a[j]) printf("%d%02d%02d = %d\n", year, j, a[j]--, i + n); printf("%d\n", c); return 0; } 2013 で c == 504 だけど c == 365 まで減らせない?
504以下にはできるけど、2月があるからそのやり方だと365にするのはちょっと無理じゃないかな
2/28と1/31で2日差があるから
>>348 の修正で
for(j = 12; j >= 1 && i <= j + a[j] + 2; j--, c++)
にしたら453までは減ったけど
365まで減らすのはもっと工夫が必要だと思うが
そこまですると逆に計算量増える気もする
だれだよ2月の日数削った馬鹿は
1月と2月を前年の最終月に回すという考え方もあるね
>>351 ローマ皇帝だってことを知ってて突っ込み待ちのレス乞食乙w
>>353 税金ごまかすためだったか
月末の支払日伸ばすためだったか
ローマも大変だったのね
>>346 >>348 どちらも
2013 のときに 366 行
2012 のときに 365 行
出力されていますね
うるう年の判定が逆だな
順番に挿入するだけのも作ってみた #include <stdio.h> int main(void) { int a[366][2] = {0}, b[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, i, j, k, c, m, n, year; scanf("%d", &year); if(year % 400 == 0 || (year % 4 == 0 && year % 100)) b[2] = 29; n = year / 100 + year % 100; for(i = 31, c = 0; i >= 1; i--, c++) a[i][0] = 1200 + i, a[i][1] = 12 + i; for(i = 11; i >= 1; i--) { for(j = b[i]; j >= 1; j--, c++) { m = i + j; for(k = c; m > a[k - 1][1]; k--) a[k][0] = a[k - 1][0], a[k][1] = a[k - 1][1]; a[k][0] = i * 100 + j, a[k][1] = m; } } for(i = 0; i < c; i++) printf("%d%04d = %d\n", year, a[i][0], n + a[i][1]); return 0; }
hash値が2〜43のhashソートが速そう 衝突回避用には要素12の配列とかで
かなりすっきりした #include <stdio.h> int main(void) { int h[44][13] = {0}; int year, n, i, j, m[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; scanf("%d", &year); n = year / 100 + year % 100; if(year % 4 || (!(year % 100) && year % 400)) m[2]--; for(j = 12; j >= 1; --j) for(i = m[j]; i >= 1; --i) h[j + i][j] = j * 100 + i; for(i = 12 + 31; i >= 1 + 1; --i) for(j = 12; j >= 1; --j) if(h[i][j]) printf("%04d%04d = %d\n", year, h[i][j], i + n); return 0; }
42 x 12 = 504
#include <stdio.h> int main(void) { int h[44][14] = {0}; int m[13] = {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; int c = 0, d = 0, year, n, i, j, k; scanf("%d", &year); n = year / 100 + year % 100; if(year % 4 || (!(year % 100) && year % 400)) m[2]--; for(j = 12; j >= 1; --j) for(i = m[j]; i >= 1; --i){ k = j + i; h[k][j] = j * 100 + i; if(!h[k][0] || h[k][0] > j) h[k][0] = j; if(h[k][13] < j) h[k][13] = j; } for(i = 12 + 31; i >= 1 + 1; --i) for(j = h[i][13]; j >= h[i][0]; --j, ++c) if(h[i][j]) printf("%04d%04d = %d, %d\n", year, h[i][j], i + n, ++d); printf("%d\n", c); return 0; }
>>364 if(!h[k][0] || h[k][0] > j) h[k][0] = j;
毎回成立する(真)ので比較自体無駄
代入だけでいいよ
>364 もはや printf の前の if(h[i][j]) は不要かと思ったが 取ると可笑しくなるな
367回になりました ほんとうにありがとうございました あと2つは何なんでしょう?
367回にするための前準備のコストを無視して回数減ったって喜ぶのはどうなんだろ
テストはしてない for (i = 12 + 31; i >= 1 + 1; i--) for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= 31; m--, c++) if (d <= a[m]) printf("%d%02d%02d = %d\n", year, m, d, i + n);
372回 あともう少し!
ソーラー発電で電気代ウマーだろ
>>369 (d = i - m) <= a[m]
だと何でだめなんだっけ
374 :
デフォルトの名無しさん :2013/11/27(水) 11:45:18.87
>>373 2月が28日までのとき
i=31の時の12/19,11/20,...,3/28,2/29,1/30
の2/29でループを抜けるので1/30が表示されない
>>370 (2/29,)2/30,2/31,4/31,6/31,9/31,11/31
をifで除外してるから、それを効率的なコードでforの条件に加えることができれば...
どうでもいいんだけど もし別の惑星で 太陽系みたいな周期のところに 同じような周期を持つ月を持つ惑星があって 同じような文明の偽人類がいたとして やっぱり2月が28日29日だったりするのかな
シーサー
feb[2] = leap ? 1 : 2; for (i = 12 + 31; i >= 1 + 1; i--) for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= a[m] + feb[m]; m--, c++) if (d <= a[m]) printf("%d%02d%02d = %d\n", year, m, d, i + n); コスト減ったかどうかは謎
最初から int a[13] = {0, 31, 30, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; に設定しといて for(i = 12; i >= 0; --i) feb[i] = a[i]; feb[2] = 29; if(year % 4 || (!(year % 100) && year % 400)) feb[2]--; の準備してから for(m = (i >= 12+1) ? 12 : i - 1; m >= 1 && (d = i - m) <= a[m]; m--, c++) if(d <= feb[m]) printf("%d%02d%02d = %d\n", year, m, d, i + n); だとどうかな 準備してるから失格かな
準備云々じゃなくてforの中のifが無くなってないから失格
いや トータルで比較に回数は確実に減ってるっしょ
基本的なアルゴリズムと可読性で
>>346 でおしまい
中の if が無くなるのが理想
>>368 トータルで考えなよ。
1回しか使わないなら、前準備しないのも有り。
for(i = 12 + 31, m = 12; i >= 1 + 1; i--) { for(j = m; j >= 1; j--) { if(i == j + a[j]) { printf("%d%02d%02d = %d\n", year, j, a[j], i + n); if(--a[j] == 0) m--; } } }
(year % 4 || (!(year % 100) && year % 400) + 28ってことじゃなくて?
ああループの中か
ifを使わないでくださいの人か
for (i = 12 + 31; i >= 1 + 1; i--) for (m = (i >= 12+1) ? 12 : i - 1; m >= 1 && ((d = i - m) <= a[m] || m == 2 && i <= 2+30 && (m--, d++)); m--, c++) printf("%d%02d%02d = %d\n", year, m, d, i + n);
393 :
◆QZaw55cn4c :2013/12/02(月) 04:31:19.50
>>391 ガウス君の説き方
int sum_gauss(int n){
if(n%2)
return (n+1)/2*n;
else
return (n/2)*(n+1);
}
>>394 if文はいらんぞ
int sum_gauss(int n){ return (n*(n+1))/2; }
ああ、そういうことか int sum_gauss(int n){ return (n/2 + n%2)*(n+1); }
数独を総当りで解く関数を2つ作成 1, forを使用したもの 2, 再起を使用したもの ・1〜9の数字を使用 ・盤面は9*9マス(3*3のブロックが9つ) ・縦 + 横 + ブロック(3*3)において数字が重複しないようにする ・問題が不正な(問題の時点で重複があった)場合問題が不正と出力 ・問題に空行が見つかった場合はその行の値を全て無しとみなす ・読み込みが9行未満で終了した場合はそれ以降の行も値を無しとみなす ・解が100個以上見つかった場合は100個目を出力 ・解が見つからなかった場合は解無しと出力 問題の受け取りはテキストから一行ずつ 各行につき9文字+改行 値を指定しない場合はドット'.'を指定する テキスト内容の例 1........ 2........ ...3....4 .......1. ....9.... .....7... .8....... ......... .........
[1] 授業単元:アルゴリズム概論
[2] 問題文(含コード&リンク):
http://ideone.com/arXA0w [3] 環境
[3.2] gcc3.4
[3.3] 言語: C
[4] 期限:12/3 14時
どなたかお願いします.
問題文の頭で間違えてるのが気になる
問題文の頭というと、どこでしょうか? 間違いがあるなら修正します。
有効グラフって何やw
403 :
デフォルトの名無しさん :2013/12/04(水) 20:23:58.21
[1] プログラミング [2] 問題文(含コード&リンク): 文字列s、pを与えられ文字列sの中の先頭から順に調べpに一致する部分文字列が 見つかったらその部分文字列の先頭を指すポインタを、見つからない場合NULLを返す SEARCH関数を作る [3] 環境 [3.1] OS: Linux [3.2] gcc [3.3] 言語: C [4] 2013/12/06までに [5] その他の制限: 再帰関数で作る。繰り返し文使わない。ライブラリ関数使わない 新たな関数や大域変数を宣言してはいけない。pが空文字列のときはsを返す。
char* SEARCH(char* s,char* p){
char* q;
if(*p=='\0')return s;
if(*s=='\0')return NULL;
if(*s==*p){
q=SEARCH(s+1,p+1);
if(q==s+1)return s;}
else return search(s+1,p);
}
>>403 です。自分なりに書きましたが例えばsにabcdefg、pもagとすると
bcdefgとなってしまいうまくいきませんでした
この場合NULLのはずですが・・・
405 :
◆QZschizo.ptH :2013/12/04(水) 21:07:38.21
406 :
◆QZschizo.ptH :2013/12/04(水) 21:18:28.24
しかないのでは?ちょっといい手が思いつかない
>>405 >サブ関数を作って
>新たな関数や大域変数を宣言してはいけない。
はいアウトー。
>>403 >>405 likeに。10分で書いたからバグってるかも。
#include <stdio.h>
int Match(char* s, char *p){
if (s == NULL) return -1;
if (p == NULL) return -1;
if (*p == '\0') return 1;
if (*s == '\0') return -1;
if (*s != *p) return -1;
return Match(s + 1, p + 1);
}
char* Search(char *s ,char *p){
if (s == NULL) return NULL;
if (p == NULL) return NULL;
if (*s == '\0') return NULL;
if (*s == *p){ if (Match(s, p) == 1) return s; }
return Search(s + 1, p);
}
int main(){
char *bun = "magical girl madoka magika!";
char *s = "madoka";
char *s2 = "sayaka";
char *r = Search(bun, s);
char *r2 = Search(bun, s2);
return 0;
}
409 :
408 :2013/12/04(水) 21:37:01.85
あぁ、ダメか。
>>404 char* SEARCH(char* s, char* p){
char* q;
if (*p == '\0')return s;
if (*s == '\0')return NULL;
if (*s == *p){
q = SEARCH(s + 1, p + 1);
if (q == s + 1)return s;
}
return SEARCH(s + 1, p);
}
最後のelse取っただけ
411 :
◆QZschizo.ptH :2013/12/04(水) 21:43:47.24
#define ___ const char* SEARCH(const char *s,const char* p){ ___ if(!s||!p||!*s)return 0; ___ if(!*p)return s; ___ if(*s==*p){ ___ ___ const char *r; ___ ___ r=SEARCH(s+1,p+1); ___ ___ if(r==s+1)return r-1; ___ } ___ return SEARCH(s+1,p); } #include <stdio.h> int main(){ printf("agc->%s\n",SEARCH("abcdefg","agc")); printf("abc->%s\n",SEARCH("abcdefg","abc")); printf("def->%s\n",SEARCH("abcdefg","def")); return 0; }
>>403 もう終わっちゃったか。
ちょっと汚い方法だが、2つくっつけたぜ。
これで文句ないだろう。ただ、デバッグほとんどしてない。
#include <stdio.h>
char* Search(char *s ,char *p ,int Mode){
if (s == NULL) return NULL;
if (p == NULL) return NULL;
if (Mode == 0){
if (*s == '\0') return NULL;
if (*s == *p){ if (Search(s, p,1) != NULL ) return s; }
return Search(s + 1, p,0);
}
else{
if (*p == '\0') return (char*)0xDeadBeef;
if (*s == '\0') return NULL;
if (*s != *p) return NULL;
return Search(s + 1, p + 1,1);
}
return NULL;
}
int main(){
char *bun = "magical girl madoka magika!";
char *s = "madoka";
char *s2 = "sayaka";
char *r = Search(bun, s,0);
char *r2 = Search(bun, s2,0);
return 0;
}
>>413 引数増やすのはありなのかなぁ…
っていうかPuella Magiってタイトルロゴにかいてあるだろー!
lyrical nanoha
>>414 仕様が不明確なのでそこを突きました。汗
まどかはまだにわかファンなのでそこまで書いてあるとは思わなかった。
謝罪してお詫びする。
>>416 自分もニワカだし謝罪されてしまうと身の置き場ががが。
あとついでにmagicaらしい。kaだと思ってたorz
char *SEARCH(char *s, char *p) { static char *ss = s, *pp = p; return (!*p) ? ss : (!*s) ? NULL : (*s != *p) ? SEARCH(++ss, pp) : SEARCH(++s, ++p); }
char *search(char *s,char *p){ return s&&p?*p?*s?((*p==*s)&&(s+1==search(s+1,p+1)))?s:search(s+1,p):NULL:s:NULL; }
>>403 http://ideone.com/t49wAw char *search(char *s,char *p){
return s&&p?*p?*s?((*p==*s)&&(s+1==search(s+1,p+1)))?s:search(s+1,p):NULL:s:NULL;
}
>>418 error: initializer element is not constant
static char *ss = s, *pp = p;
^
422 :
デフォルトの名無しさん :2013/12/05(木) 03:29:09.19
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
問題@(戻り値が無い場合の引数あり)
円錐の半径rと高さhを入力し、円錐の体積を求めるプログラムを作りなさい。
ただし、main関数で円錐の半径rと高さhの入力を行い、円錐の体積の計算と表示はtaisekiという
関数で行うこと。
また、円周率は3.14を使用すること。
>>422 に続きます
423 :
デフォルトの名無しさん :2013/12/05(木) 03:29:56.89
すみません423に続きますでした。
問題A(戻り値がある場合の引数あり)
円錐の半径rと高さhを入力し、円錐の体積を求めるプログラムを作りなさい。
ただし、main関数で円錐の半径rと高さhの入力と計算された円錐の体積の表示を行い、
円錐の体積の計算はtaisekiという関数で行うこと。
>>424 に続きます
>>422-423 void taiseki1(int r, int h)
{ // 問題@
printf("体積は%fです", r * r * h * 3.14 / 3);
}
double taiseki2(int r, int h)
{ // 問題A
return r * r * h * 3.14 / 3;
}
int main(void)
{
int r, h;
printf("半径を入力して下さい>"); scanf("%d", &r);
printf("高さを入力して下さい>"); scanf("%d", &h);
taiseki1(r, h); // 問題@
printf("体積は%fです", taiseki2(r, h)); // 問題A
}
ちゃんちゃん
426 :
デフォルトの名無しさん :2013/12/05(木) 18:31:37.90
tes
>>422-423 スレを汚してしまいすみませんでした。連投制限に引っかかってしまったので投稿し直します
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
http://ideone.com/zF5weB [3] 環境
[3.1] OS: (Windows/Linux/等々) Windows Vista Home
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) borland
[3.3] 言語: (C/C++/どちらでも可 のいずれか)C
[4] 期限:2013年12月12日02:00まで
[5] その他の制限:
今回の宿題は「配列」「関数」「ポインタ」 辺りの知識を使うそうです。
問題@とAはそれぞれ別です。
とくに制限はありませんが引数のありなし等をよくご確認して頂ければ幸いです。
>>424 の方はせっかくやっていだたいたのに申し訳ありません
よろしくお願い致します。
問題解く以前にコミュ力に疑問があるぞ。
>>424 はどうだったのか、何か問題があるのか
きちんと対応するのがスジでしょ。
1と2くらい自分で分けて提出できないのかね ひどすぎるわ
431 :
デフォルトの名無しさん :2013/12/05(木) 20:15:10.16
問題を出して下さった方に失礼では?
問題を解いた跡があるのでそれの結果を聞かないと対応が難しい。
出題者に感謝しない解答者が多いよね 礼儀を覚えたほうがいい
はっはー。で、結果は?
出題者と転載者は違う 転載しかできない奴には何を聞いても欲しい答えに届かない
もう少し簡単な問題にしてほしいってことですか?
>>437 違う。問題はすぐ解けるが、以前解いた人に対するレスポンスはどうなのよ。
うまく行ったの?いかなかったらなんでいかなかったの?
アアハイハイ、知っているがお前の態度が気に食わないってやつですね? 要約すると、わかりませんってことですね?
>>440 現状説明してもわからないのにどうやって解答説明しようかなぁ。
重大問題だなぁ。
分けりゃいいんだろ #if MONDAI == 1 void taiseki(int r, int h) { // 問題@ printf("体積は%fです", r * r * h * 3.14 / 3); } #elif MONDAI == 2 double taiseki(int r, int h) { // 問題A return r * r * h * 3.14 / 3; } #else # error "MONDAI は 1 か 2 にしてくれ." #endif int main(void) { int r, h; printf("半径を入力して下さい>"); scanf("%d", &r); printf("高さを入力して下さい>"); scanf("%d", &h); #if MONDAI == 1 taiseki(r, h); // 問題@ #elif MONDAI == 2 printf("体積は%fです", taiseki(r, h)); // 問題A #else # error "同上." #endif }
たぶん問題の意味も回答の意味もわからず、 メイク、テストの仕方のわからんのでは?w そのまんま、提出するんですね。まぁいい・・・のか。
万事OK。次こーい。
446 :
デフォルトの名無しさん :2013/12/05(木) 22:48:17.64
出題者に礼を述べるべきでは?
出題者って先生だろ
449 :
デフォルトの名無しさん :2013/12/06(金) 12:06:23.58
カンニングと言う不法行為を公開の場で要請するゴミクズ相手になに言ってるんだ 死ねよクズ共
450 :
◆QZaw55cn4c :2013/12/06(金) 12:35:30.26
>>449 心配しなくても、書くことが好きな人間なら近づかないと思うよこんな糞スレに
え,逆?逆?
出題側が明確に禁止しない限り授業や講義の時間内にやらんことをカンニングも糞もないわ
453 :
デフォルトの名無しさん :2013/12/06(金) 17:59:40.72
[2] 問題文 標準入力から1行の文字列を受け取って文字の単方向リストをつくれ abbdeと入力すると→e→d→c→b→a [3] 環境 [3.1] OS Mac [3.2] コンパイラ名 gcc -o [3.3] 言語: C よろしくお願いします。
454 :
230 :2013/12/06(金) 18:37:51.43
>>453 こんな感じでいいのか?デバッグほとんどしてないから提出前に確認してネ!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct List{
struct List* Next;
int value;}List;
int main(){
static const int Len = 1024;
char str[1024] = {0, };
int Num = 0;
List *L = NULL, *N = NULL;
int i = 0;
fgets(str, Len, stdin);
Num = strlen(str);
if (str[Num - 1] == '\n'){
str[Num - 1] = '\0';
Num--;}
L = calloc(Num+1, sizeof(List));
for (i = 0; i < Num; i++){
L[i].value = str[i];
L[i + 1].Next = &L[i];
}
L[0].Next = NULL;
N = &L[i-1];
while (N != NULL){
printf("%c", N->value); if (N->Next != NULL)printf(" -> ");
N = N->Next;
}
free(L);
return 0;}
あれ?230って名前に入ってるけど、どこで入れたっけな。
とりあえず、
>>230 氏とは関係ないのでアシカラズ。
456 :
デフォルトの名無しさん :2013/12/06(金) 18:45:21.68
自演乙
>>456 このスレだけ見てるわけじゃないんだよ。
こんなことでイチイチ絡んでたら身がもたないぞ。
458 :
デフォルトの名無しさん :2013/12/06(金) 18:57:27.07
言い訳乙
ネガティブ。
460 :
デフォルトの名無しさん :2013/12/06(金) 19:24:20.93
^230<> で検索してみたが 自分が購読してるスレでは ここしか出て来なかった 4/17 とか 7/5 とかに大量に 230 が居たwww
461 :
デフォルトの名無しさん :2013/12/06(金) 19:26:50.47
粘着きも
462 :
230 :2013/12/06(金) 19:31:03.52
私は無実という事でよろしいでしょうか
その方さがってよいぞ
464 :
220 :2013/12/06(金) 21:04:58.56
やった 釈放だ
誰だよお前。
俺だよ俺
ワリオさーん。
468 :
デフォルトの名無しさん :2013/12/06(金) 22:42:27.88
470 :
デフォルトの名無しさん :2013/12/07(土) 20:13:32.05
[1] 授業単元: プログラミング1 [2] 問題文(含コード&リンク): 1から3まで0.2ずつ増やしてその平方根の値を示す 0.0 0.2 0.4 0.6 0 1 2 3 4 こんな感じで表示させるプログラムができないです。皆さんの力を貸してください。 [3] 環境 [3.1] OS: (Windows [3.2] コンパイラ名とバージョン: (visual studio 2012 [3.3] 言語: C [4] 期限: ([2013年12月8日12:00まで] または [5] その他の制限: (for文 math関数まで習いました。)
471 :
470 :2013/12/07(土) 20:22:57.86
お前ら、これくらいしか取り柄ないんだから とっとと解答つくれキモオタども
>>470 0.0 0.2 0.4 0.6 0.8
1.0 1.2 1.4 1.6 1.8
2.0 2.2 2.4 2.6 2.8
3.0
この合計の平方根でいいの?
>>473 なのか
各値(0<=3;+=0.2)の平方根を表示するのか
例題の4は何なのか
謎だらけで解きようが無い
問題文はそのまま貼れや自分勝手に解釈して書くな
476 :
デフォルトの名無しさん :2013/12/07(土) 20:44:18.22
説明不足ですいません。 こんな感じです。 0.0 0.2 0.4 0.6 0.8 0 ? ? ? ? ? 1 1.000 2 3 4
だからそのまま貼れっつってんだよ分かんねーよ
>>476 解いてもらえなくてもいいならいいが
「こんな感じ」じゃなくて「これ」で頼む
>>476 yx 0.0 0.2 0.4 0.6 0.8
1
2
3
4
sqrt(x + y)って事でいいのか?
480 :
470 :2013/12/07(土) 21:05:12.58
わかんねーなら、無理して解答しなくていいよ どーせ使えねえ糞解答なんでしょ
481 :
デフォルトの名無しさん :2013/12/07(土) 21:09:28.33
ほんとすみません 1から3まで0.2ずつ増やしてその平方根の値を示すだけです。
テンプレ読まない奴は自分でやれよ 自分で選んだ道だろ できないならやめろよ今すぐ
484 :
デフォルトの名無しさん :2013/12/07(土) 21:46:39.60
>>481 #include <stdio.h>
#include <math.h>
int main()
{
int i,j;
printf(" 0.0 0.2 0.4 0.6 0.8 1.0\n");
for (i = 1; i < 3; i++) {
printf("%d ", i);
for (j=0; j <= 10; j+=2) {
printf("%.2f ", sqrt(i+(double)j/10));
}
printf( "\n");
}
return 0;
}
こんな感じか?
問題文だけなら 1.00 , 1.000000 1.20 , 1.095445 1.40 , 1.183216 1.60 , 1.264911 1.80 , 1.341641 2.00 , 1.414214 … って感じかと思ったが表みたいなやつの意味がわからん
1.0から3.0まで0.2刻みの数値の平方根を表示せよ。 でいいはず って言ってる間に解けるな #include <iostream> #include <cmath> using namespace std; double div=1.0; while(div<=3.0){ cout<<div<<"\t"<<sqrt(div)<<endl; div+=02; } こんな感じでw
表がわかんないとか、バカかw
488 :
470 :2013/12/07(土) 22:30:02.87
バカは無理して作らなくていいよ つーか、邪魔しないでよ
この問題自力で解けないなら、エクセルで答えを出せるようになっておいた方がよっぽどいい、とおもた
エクセルで平方根どうするんですかと来るんじゃね
sqrtを使っていいなら誰でも書けるわw 鬼の首でもとったようなドヤ顔・・・
アルゴリズム事典を買う金もないのか
いい加減な事をすると後輩に迷惑かかるのに
おやおや、対立煽って得する人がいるみたいですね。
二次元の表にしろって指定の時点で駄目さ漂ってるが、 それに加えて471みたいなのまで涌いてるとか始末が悪い。 とりま、出題者がクソで問題文自体がクソだったとしても、 依頼者が勝手に補完するともっとクソになる実例ですね。
498 :
デフォルトの名無しさん :2013/12/08(日) 02:37:51.58
こんな感じの依頼と回答でほのぼのした感じ
テンプレの >・なりすましを防ぐため、トリップを使ってください。 を無視している以上沸いてくるのはしょうがない
500 :
デフォルトの名無しさん :2013/12/09(月) 15:06:48.13
社会の規則を守らないゴミがスレッドの規則を守れとはつまらないジョークだな
と、ゴミが自己紹介しております
こういう流れを見るにつけ ID必須だと思う
OSやウィンドウマネージャー書くぐらいの才能がないと、 c/c++なんて学ぶだけ時間の無駄
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): キーボードから正負の整数をデタラメに入力し、整数のみを配列に格納し、その個数が5個になったら入力を受け付けず、その5つの正の整数を和と平均を求めるプログラムを作れ、平均は小数点以下一位まで求めろ [3] 環境 [3.1] OS:Windows7 [ 3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 12月20日 [5] for文にif文で負の数を受け付けないようにすればいいんでしょうか? よくわかりません
forかwhileの中で正の数だけ足していって正の数が5つになったらforを抜けて計算して出力って感じかな
こんな感じ? #include <stdio.h> int main(void){ int sum=0, count=0, i=0; while(count<5){ printf("input number>"); scanf("%d",&i); if(0<i){ sum+=i; count++; } } printf("sum=%d ,ave=%.1f\n",sum,(double)sum/5.); return 0; }
>>506 ・整数のみを配列に格納
・その個数が5個になったら
・その5つの正の整数
負の数が一つでも入力されたら正の整数の数が足りなくて続行不能。
問題が↓だったら配列に格納する前の段階で負数を除外すればいいだけだけどなぁ…
キーボードから正負の整数を入力し、入力された値のうち正の整数のみを配列に格納し、
その個数が5個になったら入力を終了し、その5個の正の整数の和と平均を求めるプログラムを作れ。
平均は小数点以下一位まで求めろ。
皆さんのを参考にしたらうまく出来ました 本当にありがとうございました。
%.1f という識別子使った事ありませんでしたw どもです。 最近はprecisionしか使ってない。
以前
>>240 にて質問させていただいた者です。
自分なりにプログラムしてみたのですが、上手くいかなかった為、もう一度質問させていただきます。
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):クリップボードの履歴の最新50個を表示するプログラムの作成(テキストのみ)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:visualstudio2010
[3.3] 言語:どちらでも可(できればC++)
[4] 期限:2013年/12/12 23:59
[5] その他の制限: 特になし
後々exeにして自分で使えるようにしたいので、出来ればC++でお願いしたいです。
よろしくお願い致します。
なんでCだと後々exeにして自分で使えるように出来ないと思ったのか。 そもそもOS自体クリップボードの履歴なんて取ってないから常駐必須だってのもわかってなさそう。 色々と絶望的にプログラミングに向いてないんじゃないか、君。
普段C++でやってるからに決まってるだろ
コミュ障か?
>>513 クリップボードはWin32APIスレ向け
>>515 C++でCの資産使えないとかスキル足りないにも程があるぞお前。
これまたレベルの低いレスだこと (w
CopyRect
どうみても宿題じゃないな ここは「オレの欲しいプログラムをねだるスレ」じゃねーぞ 乞食
FAQ C++でゲームを作るにはどうすればいいですか。
>>521 ここは、宿題スレだ。
ついでに言えば、質問内容も大ざっぱすぎる
C++に限らず ゲームの作り方を知ることだ
このスレは役立たずのニートがオナネタを収拾するためのスレです 間違えないように
馬鹿には無理
>>521 データとアルゴリズムを知ってどうやってゲームシステムに結びつけるかの手法を考える。
C言語で1人でゲーム制作をできるようになるにはどのくらい時間がかかりますか?
早くて1年位見込んどくといいよ。
人それぞれ 基礎で 300時間 必要最低限のプラットフォーム関連で 500時間 設計、アルゴリズムで 1000時間 実際のゲーム制作規模により?時間 10時間/日 勉強し続けて半年後にようやく制作に手をつけられるレベル いい師がいるなら 3倍速くらいですすむから 金があって時間が惜しいなら高い講習をうけるという手もある
勉強の効率は人によって違いすぎる……
CUIで3ヶ月ってとこだな。 GUIだと、プラットフォームのカオスに触れて挫折しかねない。 しかも、他人に合わせることも揃えて覚えないといけないのでかなり大変。
作りたいゲームがあるならそれにあわせて必要なところを学ぶから上達も早いけど、 ただゲームが作れるようになりたいってだけじゃC入門で躓いて荒らしになるのがオチ
CUIのゲームなんて誰が遊んでくれるの?w
自己満足だし、それくらい作れないと話にならない。
>>533 roguelikeならむしろCUIのが風情があるのでとりあえず死ぬとこまではふつーにやりますよ
もちろん少数派なのは百も承知だけんど
ゲーム作るの大変なんだ プリンセスサクリファイスみたいなエロRPG作りたかったけど無理そうだな
エロ売りたいなら絵や3Dモデル次第でしょ 素材用意できるんなら、Cなんかに学習コスト使わず適当なゲームエンジンでも使えばいいんじゃね 3DならUnity、紙芝居ならonscripterあたり
>>536 そういうものが作りたかったらC言語なんて低級なもの選んでないで、もっと簡単に絵が出るような言語を選ぶべき。
音とパッドもな!
540 :
521 :2013/12/13(金) 01:41:56.17
ご ごめんなさい。 古くからあるネタなんで笑って貰えるかと... nifty フォーラム時代からあるC++FAQ ネタでした。
おもしろくないってことが学べてよかったね
イマイチ出力や入力、パイプについて深く理解できなかったので質問します よろしくお願いします。 [1] システムプログラム [2] 一般の実行プログラムである/usr/bin/lessを子プロセスとして起動して、pipeを通して子プロセスの標準入力にデータ(複数行のテキスト)を渡すプログラムを作りなさい。 [3] 環境 [3.1] Fedora19 [3.2] gcc 4.8.2 [3.3] c [4] 2013/12/18 [5] fork,pipe,dupについて習っているところです。
543 :
◆QZaw55cn4c :2013/12/16(月) 03:10:23.14
>>542 「ふつうのLinuxプログラミング」の12章の内容。
何故か259頁から263頁までが欠けてるので手伝えない。
シェルで作ってはだめすか
>>542 #include <stdio.h>
#include <unistd.h>
int main(void) {
int ret, pipefd[2];
pid_t cpid;
if (pipe(pipefd) < 0)
return 1;
cpid = fork();
if (cpid < 0)
return close(pipefd[0]), close(pipefd[1]), 1;
if (cpid == 0) {
close(pipefd[0]);
ret = write(pipefd[1], "Hello, World", 12);
close(pipefd[1]);
return ret < 0 ? 1 : 0;
} else {
close(pipefd[1]);
if (dup2(pipefd[0], STDIN_FILENO) < 0)
return 1;
execl("/usr/bin/less", "", NULL);
return close(pipefd[0]), 1;
}
}
>>547 perlみたいなことを・・・、でも好き!
fork() || execl("/usr/bin/less", "", 0)
っていうか、今時コンソールでのテキストの入出力プログラムなんて つくって誰が使ってくれるよw
コンソールの便利さを知らないだけだろ
GUIの便利さを知らないだけだろ
また日本語読めないのが来たか
GUI は不便
printf("aのアドレスは、%p\naの値は、%d\np_aのアドレスは、%p\np_aの値は、%p\nbのアドレスは、%p\nbの値は、%.2f\np_bのアドレスは、%p\np_bの値は、%p\n",&a,a,&p_a,p_a,&b,b,&p_b,p_b);
中学校のプログラミングの授業かな?
return 0;
561 :
デフォルトの名無しさん :2013/12/19(木) 22:22:45.90
n個の実数x(i)をキーボードから読み込み、それらの平均と標準偏差を出力するプログラムを作りなさい。ただし、n個の実数の平均を求める関数mean(size,x[ ])と標準偏差を求める関数stdev(size,x[ ])を定義し、これを用いること。 がわかりませぬ。どなたか教えてください。
ほんとこの手の算術問題は即回答がつくなw ちょっと難しくなると、「宿題は己でやらないと意味が無い」なんてイミフ なあおりの癖にw
そんなもんでしょ 何もおかしくない
同意 さくっと分かる問題なら、暇つぶし用途の即レスがつきやすいってだけよね なんも不自然に感じないす
566 :
◆QZaw55cn4c :2013/12/20(金) 06:26:34.79
>>563 それは俺のせりふだお前がいうな馬鹿野郎
567 :
デフォルトの名無しさん :2013/12/20(金) 09:10:03.08
>>562 ありがとう。でもifの中身がよくわからない、、、簡単に書き換えられたりしませんかね?
-1 入れたら終了とかでいいなら簡単だけど
569 :
デフォルトの名無しさん :2013/12/20(金) 13:23:28.05
570 :
デフォルトの名無しさん :2013/12/20(金) 13:30:58.43
>>569 負なら終了で
for (n = 0; n < MM; n++) {
scanf("%lf", &data[n]);
if (data[n] < 0) break;
}
int main(){ char c='\0'; char p1='\0'; printf("文字を入力:"); while(1){ scanf("%c",&p1); if(p1=='\0'){break;} printf("test%c",p1); } 以下略 } で例えばaとか打つとtestatestと出てループ抜けれません 空文字読み込んだらループ抜けるはずなんですが ご教授おねがいします
>>572 普通「空文字」なんて言わないし、空文字列とNUL文字(\0)がごっちゃになってるんだろ。
普通の文字列はNUL文字で終端されていて、1文字目(序数0)にNUL文字が来る様な本文0文字の文字列が「空文字列」。
scanfの%cはstdinから文字を読むけど、stdinは文字列では無くコンソールなどのストリームやファイルが実体。
ストリームやファイルはNUL文字終端の文字列ではないので意図的にNUL文字を入力しない限りNUL文字は出てこない。
改行は改行文字として、空白は空白文字として、ファイルの終了(場合によってはCtrl+Z)はEOFとして入力される。
stdinから何らかの条件で複数文字を取り込んで文字列として加工した時に始めてNUL文字で終端された文字列が出てくる。
例えばgetsとかscanfの%sとかfgetsとかそのへん使うとコンソール入力をNUL文字で終端された文字列として読むことが出来る。
文字列を入力するループにして空文字列で終了するように修正するか、
文字を入力するループのまま改行文字などで終了するように修正するか、
文字を入力するループのままNUL文字をなんとか入力して終了させるか、
文字を入力するループをEOFで終了するように修正してEOFを入力して終了させるか、好きな修正法を選ぶといい。
p1=='\0'をp1=='\n'で解決しました ありがとうございました
>>574 1回目の入力aは正常になるが
2回目以降の入力待ちが発生しないからループが無駄になるぞ
西暦何年かを入力するとその年に月曜日が何回あるか数え 52回なら1を、53回なら0を出力するプログラムお願いします… 1回1回判定するのではなく、一気に何回か入力し、一気に判定を出力するものでお願いします (0を入力したら終わりです) 入力できるのは1989〜5000です
空文字って普通に言うし、使う。職場によって違うのかな。
>>577 その職場ではどういう意味になるの?
'\0'のこと?""のこと?
580 :
579 :2013/12/27(金) 19:23:06.83
これはやはり空文字列ですね。空文字と呼んでいますが、間違っています。
>>580 文脈があれば大抵は空の文字列だって判るから実用上は問題ないのかも。
問題が起きるのはその辺の概念を整理できてない初心者がそれ聞いたとき。
プログラミングなんかできてもIT奴隷にしかなれないから安心しろ
583 :
デフォルトの名無しさん :2014/01/02(木) 17:09:55.23
>>583 未来のITドカた乙
向いてないから来るな
ドカた
右から!右から何かが来てる!
表示画面の作成はできますってなんだ よくわからんが計算できて表示できるならやればいいだろ 何をやって欲しいのかわからん
平均や偏差を求める問題とか 文字列を並べ替える問題とかなら レスつくがこの手の問題は放置される可能性は極めて高い
>>583 「問題文(含コード&リンク):」に書かれている内容を満たすコードなんて無数に考えられるんだけど、
既に存在しているコードを想定した問題出されてもエスパー以外は答えようが無いって理解できない?
>>588 それ以前で依頼に不備があるから回答不能だろが。
問題自体はその手の問題よりも温いくらいだと思うが。
590 :
デフォルトの名無しさん :2014/01/03(金) 09:38:39.48
2枚目こうですか?(´・ω・`) void swapnum(int *num2, int *num1) { printf("入れ替え後\n"); printf("num1 = %d\n", *num1); printf("num2 = %d\n", *num2); }
>>590 1枚目
addValue(num1, num2, &result);
addValue(int num1, int num2, int *result){
*result = num1 + num2;
}
指摘は自分でどうぞ
void swapnum(int *num1, int *num2) { int temp=*num1; *num1=*num2; *num2=temp; }
>>589 じゃあ、その不備とやらをしてきして、その解決策まで示してあげれば。
不備はそのレスで指摘済みじゃね?
なんで宿題をこんなところで晒してるの
>>596 このスレは昔からそういう連中がたくさんいた
そりゃ宿題スレだもん 高度な人が出入りするわけない
>>583 こういう問題はむしろ二個の玉の座標を単位時間毎に計算してそのプログラムをまず貼り、
描画の方は別の人が担当すればいいような気がする
玉の描画は問題の本質じゃないもん
>但し,円の直径を質量として描画する 原文ママ?この辺なんとなく出題者も頭悪そうに見える
適当に重さを決めて重かったら大きく描けという事か
603 :
18 :2014/01/04(土) 08:25:20.59
>>601 単なる誤記でしょ。
| 但し,円の質量を直径として描画する
どっちにしろおかしいけどな
605 :
デフォルトの名無しさん :2014/01/04(土) 09:15:30.86
馬鹿には無理
606 :
18 :2014/01/04(土) 09:16:23.69
あ〜だこ〜だ、因縁つけて 結局はできねーんだろhw
とっとと作れよオタク共 お前らこれしか能が無いんだから
609 :
デフォルトの名無しさん :2014/01/04(土) 11:45:59.41
これ大学名ばれたらやばくね 大学の名誉にかかわるよね
この時期にこんな課題やってるのはF欄専門か工業高校だろ 高専レベルですらない
>>611 教官がここで答えて、それと同じコードを提出してきた奴を落第にするというトラップはありですか?
>>609 2つ目のやつはバツがついているやつができてるのか?
後期で文系の一般教養ならこの時期この程度のレベルでも問題ない
【問題】 Nクイーン問題を解くプログラムを作成せよ. 但し,Nクイーン問題とは,N行N列のマスの中に,N個のクイーンを,どのクイーンも互いに効きが当たらないように並べる問題である.但し,チェス盤の中で,クイーンは縦,横,斜めに関してどこまでも進むことができると仮定する.
2014の2014乗の下4桁を標準出力に表示せよ 制限 ・インクルードはstdio.hのみ ・main実行開始から、出力間までの時間が1秒未満 ・実行ファイルサイズ 50KB未満
う 工学部卒だがわからん
>>604 質量の単位系との換算が出来ない件なら
最初から質量の単位をpxにすればいい。
NQUEENを二次元でやる奴は底抜けの間抜け
>>619 for(count=1,x=2014;count<=2014;count++,x=x%10000){
x = 2014 * x;
}
625 :
618 :2014/01/04(土) 16:57:48.76
>>623 当たり判定/利き判定こそ2次元だが、局面の記憶は1次元でやっている
当たり/利き判定も1次元か…ちょっと考えてみよう
↑ スレタイをよく読めよ 何言語だよ、それ?
>>626 624ならC/C++のように見えるしコンパイルしてみても問題ないが。
「,」の使い方を知らなかったの?
countとxが何者かわからない
まさかとは思うが、主要部分だけを抜き出したものだって理解できないんだろうか それより累乗がよくわかってないのが問題
回答する側はいい加減でもいいんですねw 質問側はちょっとでもミスがあると、難癖つけるくせにわ
当たり前、ここはオナニーのネタを仕入れるためのスレですから
>>632 ・全て自力でやるか
・ヒント貰ってそっから考えるか
前者でいいならここくるなよ
>>619 #include <stdio.h>
int main(void)
{
int i, x;
x = 1;
for(i=0;i<2014;i++) {
x *= 2014;
x %= 10000;
}
fprintf(stdout, "2014 ** 2014 = %d (mod 10000)\n", x);
return 0;
}
ほらみろQZが発狂した
#include <stdio.h> int main(void) { int i, x, m[10000] = {0}; for (i = x = 1; i <= 2014; i++) { x = (x * 2014) % 10000; if (m[x]) i = 2014 - ((2014 - i) % (i - m[x])); m[x] = i; } printf("%d\n", x); return 0; }
>>636 C++スレでぼこぼこにされたからってここで晴らさなくても
またオナニーコード晒してるよ なんでこんなことするんかね
なかなか興味深いコードだ
図星で発狂わかりやすいねー しかも自演してるしw
(同意見だなあ)
誰も褒めてくれないから、自分で自分を褒めるしかないわけだな アワレww
他には誰も解答できていない件
回答してないを回答出来ないと変換するQZ脳 普通の人間は公開オナニーを「しない」
回答以外はスルーでw
スルーできていない奴が何を言う
ム板の質問スレをぶち壊す会 1 :デフォルトの名無しさん:2014/01/04(土) 02:38:02.18 この板はプログラムを作る人のための板です。 あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。 その他、お勉強ページへのリンクスレ、 推薦図書・必読書スレ もあります。 質問スレが充実してしまったおかげでム板全体が低能のたまり場になってしまった。 原点に立ち返りプログラム板をプログラムを作る人のための板に戻そう。 26 :停止しました。。。:停止真・スレッドストッパー。。。( ̄ー ̄)ニヤリッ
>>653 >>1 の
>あらゆる質問はまずすれ立てるまでもない質問はここでスレにしてください。
自体が日本語になっていないし‥
馬鹿がたてたスレは当然スレストがかかって当然
>>654 2ch全体については知らないが、
ム板は質問者のエネルギーで辛うじて生き永らえているということでしょう。
荒らしてるつもりはないのかも知れないけど、下品だったりして、 読んでて面白くないからね。ツイッターに流れていくよ。 今や、ム板で活発なスレは10もないんしゃないか。どれもC/C++関係のスレね。
ローカルルール↓ この板はプログラムを作る人のための板です。 あらゆる質問はまず”すれ立てるまでもない質問はここで”スレにしてください。 その他、お勉強ページへのリンクスレ、 推薦図書・必読書スレ もあります。 プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。 ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。 Javascript は Web 制作板、CGI は Web プログラミング板へ。 業界談義、愚痴はプログラマ板へどうぞ。 ゲーム関係の話題はゲーム製作板へどうぞ。 ネタ、板とは関係の無い話題はご遠慮ください。
658 :
デフォルトの名無しさん :2014/01/05(日) 22:24:27.79
[1] 授業単元:シミュレーション
[2] 問題文(含コード&リンク):
>>583 [3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語:C++
[4] 期限: 2014/01/10 24:00まで
[5] その他の制限: 特に指定なし
再び同じ問題について質問です。
自分でも考えてみましたがどのように説明したらいいのかわかりません。
問題文については出題されたままですが
プログラムを作成していただける方で意味のわからないことがあれば教えてください。
>>603 はご指摘のとおりだと思います。
http://viploader.net/ippan/src/vlippan327341.png
これは大学卒業できない
そんな難しいのはここの人たちではできないよ
>>658 あのなあ・・・球の描画は後回しにして、0.01秒毎くらいに二つの球の座標をまず計算してみ?
それが出来れば後は簡単だから
662 :
デフォルトの名無しさん :2014/01/05(日) 23:14:35.21
>>660 難しいというのは計算でしょうか?
衝突の計算とXY座標の表示の方法はわかっています。
今、悩んでいるのは
@円の大きさを質量を入力したボックスから取得した値で決定したものをどう表現するか?
pDC-<Eillpse(x0,y0,x1,y1);
x0,y0,x1,y1の座標を固定でなく表現すればいいとは思うのですが。
A@での円が描画できたとして、その位置が時間や速度に関係して場所が変化し
衝突後に反対向きに動いていく座標の変化を表すプログラムの表記方法。
>>658 の参考画像にあげた考え方をどうプログラムにするか。
です。
説明能力不足で申し訳ないです。
http://viploader.net/ippan/src/vlippan327344.png
663 :
片山博文MZコスモ ◆T6xkBnTXz7B0 :2014/01/05(日) 23:32:46.15
中心点と半径を引数とする関数を作る。
面積と質量が比例するとして K*pi*r^2=M Kはマクロでとりあえず1.0にして後で調整 半径rを求める式 double r=sqrt(M/K/pi); 中心座標(物理)は変数 double x,y; 物理座標→ピクセル値変換 int pxl(double x) { return (int)(1.0*x+0.5); } 1.0は係数、後で調整 直径のピクセル値 int D = pxl(2.0*r); 左上の座標 int x0=pxl(x-r), y0=pxl(y-r); 右下の座標 int x1=x0+D, y1=y0+D; 円の描画 pDC->ellipse(x0,y0,x1,y1);
なんか必死すぎる人がたくさんいて怖い
あっそう
おめーのことだよ
>>583 >>658 「表示画面の作成はできます。」
って部分が出題時点で与えられた環境に含まれてるようにしか見えないし、
> 問題文については出題されたまま
って大嘘だろ。
まさかの自作自演オナニー回答だったか
pDC-<Eillpse(x0,y0,x1,y1); これが一番面白かった
671 :
デフォルトの名無しさん :2014/01/07(火) 00:01:56.60
>>664 ありがとうございます。
>>670 なにが面白いのですか?
講義で習った通りの書き方ですが、大文字のEが面白いということでしょうか?
小文字が一般的なのですか?
こちら講義の内容だけが知識の全てなのでわかりにくい書き方でしたら申し訳ありません。
-<
673 :
デフォルトの名無しさん :2014/01/07(火) 01:03:27.05
>>672 なるほど、そこですか。
テキストからコピペだったのでただの打ちミスかと思います。
ご指摘ありがとうございました!
教授「こいつには単位あげない」
もっと複雑なロボティクスとNNの計算を解いたが、今ではただPHPが愛おしい
ほとんど大体がPHPで書くことができ、残りのPHPで書けないものは書く必要がない。
#include <stdio.h> int main(void) { double a, b, c; char d; printf("数字 演算子 数字 を入力してください。\n"); printf("例 12.4 * 4.0\n"); scanf("%lf %c %lf", &a,&d,&b); //dの値により、加算、減算、乗算、除算を分岐して計算 printf("答えは %f です。\n"); return 0; } という課題が出たのですが どのように分岐するのでしょうか?
if (d == '+') ans = a + b; else if ...以下略
double add(double a, double b){ return a + b;} double min(double a, double b){ return a - b;} double mal(double a, double b){ return a * b;} double div(double a, double b){ return a / b;} double (*func_tbl)(double a, double b)[] = {add, min, mal, div}; func_tbl[d];
>>678 >>679 回答ありがとうございます
参考にしながらやってみたのですが
これであっているでしょうか?
#include <stdio.h>
int main(void)
{
double a, b, c; char d; float ans;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0\n");
scanf("%lf %c %lf", &a,&d,&b);
//dの値により、加算、減算、乗算、除算を分岐して計算;
if( d == '+') { ans = (a + b);
printf("答えは %f です。\n",ans);
} else if ( d == '-') { ans = ( a - b );
printf("答えは %f です。\n",ans );
} else if ( d == '*') { ans = ( a * b );
printf("答えは %f です。\n",ans );
} else if ( d == '/') { ans = ( a / b );
printf("答えは %f です。\n",ans );
}
return 0;
}
#include <stdio.h> int main(void) { double a, b, c; char d; printf("数字 演算子 数字 を入力してください。\n"); printf("例 12.4 * 4.0 \n"); scanf("%lf %c %lf", &a, &d, &b); //dの値により、加算、減算、乗算、除算を分岐して計算 if( d == '+') { c = ( a + b ); printf("答えは %f です。\n",c); } else if( d == '-') { c = ( a - b ); printf("答えは %f です。\n",c); } else if( d == '*') { c = ( a * b ); printf("答えは %f です。\n",c); } else if( d == '/') { c = ( a / b ); printf("答えは %f です。\n",c); } return 0; } なんどもすいません 直してみました
#include<stdio.h> #include<limits.h> double add(double a, double b){ return a + b; } double mal(double a, double b){ return a * b; } double minus(double a, double b){ return a - b; } double div(double a, double b){ return a / b; } int main() { char d = '*'; double val; double (*func_tbl[CHAR_MAX])(double,double);//={add,mal,minus,div}; func_tbl['+']=add; func_tbl['*']=mal; func_tbl['-']=minus; func_tbl['/']=div; val = func_tbl['*'](6,9); printf("6 %c 9 = %lf\n", d, val); return 0; }
683 :
デフォルトの名無しさん :2014/01/07(火) 15:43:43.36
>>681 switch使ってみた
#include <stdio.h>
int main(void)
{
double a, b, c; char d;
printf("数字 演算子 数字 を入力してください。\n");
printf("例 12.4 * 4.0 \n");
scanf("%lf %c %lf", &a, &d, &b);
//dの値により、加算、減算、乗算、除算を分岐して計算
switch (d) {
case '+': c = ( a + b ); break;
case '-': c = ( a - b ); break;
case '*': c = ( a * b ); break;
case '/': c = ( a / b ); break;
default : printf("演算子が不正\n"); return 0;
}
printf("答えは %f です。\n",c);
return 0;
}
bが0の場合も入れてね
cでプログラミングの入門をするが実際はPHPで十分である むしろ、PHPこそ今日における至高であり、それ以外は大学の怠慢なのだ
PHPが可愛くて仕方がない。
PHPマンセー
malじゃなくてmulではないか
PHPerだもの みつを
PHPerたちの多くは、かつてはスーパーハカーと呼ばれている(皮肉を込めて)
>>686 crypt動かんバージョンリリースしたりする言語だけどな。
>>692 そういう時、自分でゴリゴリ書いているの?
cryptなんてソース転がってるだろ 別言語のだったとしても書き換えればいいだけ
PHPインタプリタは何で書かれてるの?
696 :
696-1 ◆v.TAYcWkbs :2014/01/07(火) 22:07:18.39
[1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): データファイル(rep_data.txt)には「学籍番号、科目A、科目B、科目Cの各点数」が 順に学籍番号順に並んでいる。そのデータファイルをもとにキーボードから入力された学籍番号の 学生の成績(含:3科目の合計点の順位)を表示するプログラムを作れ。 探索は二分探索法を使いソートにはクイックソートを使うこと。 表示は以下のようにすること。 Input A Student Number: 14【Enter】 Ranking : #269 /*最高得点は1位とせよ.*/ Subject A : 86 Subject B : 59.1 Subject C : 220.42 Total : 365.52
697 :
696-2 ◆v.TAYcWkbs :2014/01/07(火) 22:10:32.60
【備考】 科目 A の得点は int 型,科目 B,C の得点は double 型で扱うこと. 合計点が同じになる学生はいないということは既知とせよ. データの人数は 1000 人であることもわかっているとせよ. 学籍番号には抜けがある.学籍番号が存在しない場合は,”No data”と表示するようにせよ. 雛型 (121.c) を用いよ.main 関数は完成しているので,main 関数内で呼び出している関数を作成せよ. [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限: 2014年01月09日21:00まで
表示ってどこに表示すればいいのかしらん?
699 :
692-3 ◆v.TAYcWkbs :2014/01/07(火) 22:21:32.68
データファイル、雛形ファイルはurl書き込めないので
>>2 の一番上のアップローダ(C/C++の宿題片付けます アップローダ)に乗っけときました。(No.1319,No.1321)
長くなり連投してしまいましたがどちらさまかどうかお願いします...
701 :
◆v.TAYcWkbs :2014/01/07(火) 22:31:20.85
>>698 コンパイルしたときの表示結果がこうなるようにということです。
>>696 で言えば
Input A Student Numberを14と入力した際は以下のような値になるということです
705 :
◆v.TAYcWkbs :2014/01/07(火) 22:47:00.27
答えてくれるのはありがたいんですがこれは関係あるんですかね...?
>>699 のっけときましたじゃなくてurlくらい貼れば?
こんなバグはPHPだから発見された
ideoneって表示するたびに実行してるの? それとも初回の実行結果を2度目以降は表示してるだけ?
>>710 投稿があった時に一度だけ実行して、
実行結果と出力をdbに保存してるよ
後は保存結果を表示するだけ
手も足も出ずに困ってます。 よろしくお願いします。 [1] 授業単元:数理学 [2] 問題文(含コード&リンク): ナビエ-ストークス方程式から導かれるカオス的振舞を示す非線形方程式としてローレン ツ方程式 dx/dt = -px + py dy/dt = -xz + rx - y dz/dt = xy - bz がある(p; r; b は定数)。 p = 10; r = 28; b = 8=3 としローレンツ方程式のx; y; z を オイラー法を用いて求めよ。 初期値をx(0) = 1:0; y(0) = 1:0; z(0) = 1:0、時間刻みをdt = 0:02 と して、t = 0 からt = 40 まで解き(x; y; z) を図示しなさい。 余力のある人は、2 次のルンゲ・クッタ法や4 次の ルンゲ・クッタ法を用いて同じ計算をし、プログラムとグラフを レポートに含めて提出してください。なお、オイラー法を用いた計算と ルンゲ・クッタ法を用いた計算の考察があると良い。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) [3.3] 言語:どちらでも可 [4] 期限: 2014年1月14日18:00 [5] その他の制限: とくにありません
自分で調べることも出来ないのか
ルンゲクッタとオイラー法は、たしか精度が違う 手も足もでないって脳に腫瘍でもできてるのか?
FILE *fp = fopen("foo.txt","w"); dxdt = -px + py; dydt = -xz + rx - y; dzdt = xy - bz; dt=0.02; for(t=0; t<=40; t++){ // eurler method fprintf(fp, "%lf %lf %lf %lf\n", t, x, y, z); } fclose(fp);
double t=0,dt=0.02; while(t<=40){ t += dt; }
手も足も出ない奴がこれ見てもわからないと思うけど
719 :
◆QZschizo.ptH :2014/01/08(水) 15:38:05.75
パソコンが苦手なもので。 どなたか教えて下さい。
>>719 ありがとうございます。
どうかよろしくお願いします。
>>719 知っているがバカの宿題を解いてやるために、
微積をわざわざ思い出すような時間を割きたくない
>>719 716,717のベースがあって課題が解けないって
まともに演習を受けてたと思えないんだけど
doulbe x, dx, ddx = 0.01, dt = 0.02; while(t < t_max){ dx += ddx; x += dx; t += dt; } こんな感じ。QZがtemplateに再起を使って解いたら見直す。
だって、この課題はループ中にオイラー法やルンゲクッタ法の数式を書き込むだけで済む
こういう宿題を丸投げするバカに大卒の資格なんてやる必要がない
激しく同意
けどほら、フェラが上手けりゃ脳味噌なくても良いところへ就職できるよ 銀行とか、お絵かき教室とかね。 ノータリンでも脳味噌つかわないとろには就職してたし、 面接官ともフィーリングが合ってたよ。
qzが作ったうんこ解答提出すれば単位取れないから心配すんな
>>731 『具体的に解答のどこがうんこか指摘できないようでは』 云々
>>707 crypt実装は何の関数も使わずにできるだろ
for (t=0.0; t<=40.0; t+=dt) { dx = (-p*x + p*y)*dt; dy = (-x*z + r*x - y)*dt; dz = (x*y - b*z)*dt; x+=dx; y+=dy; z+=dz; printf("%f\t%f\t%f\t%f\n", t,x,y,z); }
737 :
デフォルトの名無しさん :2014/01/09(木) 19:49:24.56
ハッシュについて リストの後方から前方向へレコードをたどるのを 容易にするのはどんなレコードにすればいいでしょうか?
>>737 ハッシュと切り離して考えるとして、リストを前からたぐったり後ろからなぞったりするんなら、両方向にポインタを張る「双方向リスト」がよさそうだ
QZって、クズ野郎 の略だよな
ハッシュって何と言われると答えられるが、 その用法については人によってバラバラって感じがするなぁ。 わしだけ?
リストとハッシュって相性わるくね? ハッシュも一意なやつと衝突可能なやつがあるから使い分けだと思うよ。 個人的には配列とハッシュは相性いいと思う。 ハッシュをインデックスにして初期の検索をしてそこから綿密に検索すれば多少オーダー下げれる。
>>737 は、いわゆるハッシュテーブルをチェイン法で実現しようとしているのでは?
ただし単純なチェイン法ではなく、ひとつのチェインの中で入れ替えとかいろいろ細工がしたいのかと
私も小細工に手を染めたことがあるが、いまいちぱっとしなかった、というか「ハッシュ関数による計算量のΟ(1)化」という大義を見失ってしまった
Qz86
744 :
デフォルトの名無しさん :2014/01/10(金) 22:20:56.30
test
745 :
忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/12(日) 17:02:39.47
[2] キーボードから読み込む、実数の3乗を求めて表示するプログラム(floatを用いて) [3] 環境 [3.1] OS: Windows 7 Pro 64bit [3.2] Visual C++ 2010 [3.3] 言語:C++ [4] 期限: できれば本日中に [コメント] まだ勉強を始めたばかりなのですが、実数で躓いています。 よろしくお願いします。
キーボードから読み込むってよく見るけど何かおかしくない?
int main(){ double a; scanf("%lf", &a); printf("%lf\n", a*a*a); return 0; }
どこかから書式指定子の項目探せ
>>749 C99では後付でOKとなった<printf() の 書式指定子における "%lf"の存在
>(floatを用いて)
ほんとクズは問題よく読まねえな
#include <iostream> #include <iterator> int main(){std::cout<<[](float x){return x*x*x;}(*std::istream_iterator<float>(std::cin));return 0;}
[2] キーボードから読み込む、実数の3乗根を求めて表示するプログラム(floatを用いて) [3] 環境 [3.1] OS: Windows 7 Pro 64bit [3.2] Visual C++ 2010 [3.3] 言語:C++ [4] 期限: できれば本日中に [コメント] まだ勉強を始めたばかりなのですが、実数で躓いています。 よろしくお願いします。
>>756 面白いし便利だけど、なんか古いC/C++とは違う思想があるんだなって感じるわ
JavaScriptとかでこんな書き方するけど、ラムダ式は言語をこう変えたりするのか・・・
758 :
忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 00:24:49.66
>>754 ありがとうございます。
確かに動くんですけど、想像していたのとちょっと違いました。
多分色々とおかしいと思うんですけど、どこを直したらいいか教えてください。
#include <stdio.h>
int main()
{
float x = 0;
printf("%f=");
scanf_s("%f", &x);
printf("xの3乗 = %f*%f*%f\n");
return 0;
}
>>758 //printf("%f=");
printf("x=");
scanf_s("%f", &x);
//printf("xの3乗 = %f*%f*%f\n");
printf("xの3乗 = %f\n",x*x*x);
760 :
忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 00:49:17.88
>>759 助かりました。
%の意味を勘違いしていたことに気が付きました。
ありがとうございます。
よかったな
CならCって言えば?
>>755 3乗根なら powf(x, 1.0f/3)
764 :
忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 07:04:02.08
質問です。 このfor文をwhile文にする場合はどうしたらいいんでしょうか? #include <stdio.h> int main( void ) { int i,j; printf("叫びたい数を入力:"); scanf_s("%d", &j); for (i = 0; i < j; i++) { printf("どんと来い"); } printf("\n"); return 0; }
while (j-- > 0)
766 :
忍法帖【Lv=2,xxxP】(1+0:5) :2014/01/13(月) 08:08:26.95
768 :
デフォルトの名無しさん :2014/01/13(月) 10:40:06.11
>>767 ふむり、QZ!!!!!出番ですよおおおおおおお!!!!
>>767 こういう演習って偏差値いくらぐらいの大学なんだろう
頼む、冬休みを目いっぱいエンジョイした俺の尻拭いのためにおまいらの力を貸してくれ!!!
ひとつ良いことを教えてやるよ 大学のカリキュラムに合わせるようならIT業界へ進むな
>>770 もう一回冬休みが来るっていうのもいいぞ
プログラミングなんて勉強しなくても、フェラがうまけりゃ大丈夫だよ
こういう演習にemacsやviを使わせないのは鬼畜なんだろうか それとも、とりあえずコンパイルってのが悪癖なんだろうか
>769 応用で不毛な事やっててbcc使わせてるあたりろくな情報系ではないけど簡単すぎないのが不思議 F欄ではなさそうだけどB以上では考え辛いし専門ならレベル低くてもカリキュラムはもう少し実用的だろうし わからん
>>775 >専門ならレベル低くてもカリキュラムはもう少し実用的
それはどうか?
>>767 は基本的なソートを網羅しているから専門学科の初歩級だろうね、交換ソート、ていうのはバブルソートのことかな?
>>775 偏差値50未満のE欄理系でも似たような課題でたぞ
>>776 もしかすると770みたいなアホが大手に入って君に命令するんだよ?
Wikipedia enのバブルソートの表記がjaより何気に複雑
>>777 網羅てwww仕事でこんなの書いたら干されるぞw
あと専門って専門学校のつもりだった
>>778 だからFではなくB以上でもない中途半端な辺だろうねって
絞れないの理由は課題の難易度設定と杜撰な授業環境がミスマッチな感じがしただけ
でも実は授業の板書コピペ課題だったとかならありうるか
778のいうE欄理系はコンパイラ何使ってた?
>>780 >仕事でこんなの書いたら干されるぞ
いやいや、バブルソートは論外としても、選択ソートや挿入ソートはお仕事でも場面によってはありだと思うよ
たとえば、クイックソートでは要素数が十分に減ったら選択ソートや挿入ソートに切り替える、というのは必ずやる。
要素1とか2まで細かくに再帰するコストのほうが高いからね
公開オナニーのオカズ提供してやったんだからさっさと発射しろ
仕事でソート書くって、どんな場面なの? 脳味噌腐らせないために訓練だと思ってた
アルゴリズム体操をやらないと、配列と添字すらイメージできなくなるんだ
皆、プログラマに憧れてソートや二分木を毎日書いていたのに、 ある日、Javaやc++、Perlには、そういったライブラリは 既にあるって知って驚愕したよね? そして、B欄以上の大学生どころか高校生ですらトップコーダーに 参加しているって知って絶望したよね?
しない。 プログラマに憧れて「ソートや二分木を毎日書いていた」とか臭すぎる。 タイピング速度を競ったり、何分でテトリス書けただの、 自分ではプログラマの力量を示してるつもりで、 単に反復運動する習性を発表しただけのパターン。 いかにコードを書かないかのレベルに至ってない。
789 :
デフォルトの名無しさん :2014/01/13(月) 19:27:03.56
痛いやつがいるな
791 :
デフォルトの名無しさん :2014/01/13(月) 20:04:37.92
空手にしろ茶道にしろ反復横飛びにしろ反復して型を身に付けそこから自分自身の型を見つけだしやがて自分の道を歩んでいくんだ。 守・破・離だ。反復を否定したら破も離もないよ。
792 :
デフォルトの名無しさん :2014/01/13(月) 21:21:06.92
プログラマは「申し訳ございません」と「土下座」の練習が大事だよ。
>>788 手動かさないと書けるものも書けなくなるよ。
せんせぇー!DAOやビジネスロジック書く人たちって、おやつに含まれますか?
ねーよボケが ふわっと仕様変更来た時に「できません」って言ってろ そこで何故?って聞かれて説明できてかつ相手を納得させられるあなたは素晴らしい
せんせぇー!DAOやビジネスロジック書く人たちって、技術者に含まれますか?
よく聞く仕様変更って追加料金とれないの?
A = 0 B = 0 C[2][4] ={'A','B','C','D'} {'うんこ','ちんこ','カーチャン','たかし'} for (i=0;i<5;i++) { for (j=0;j<5;j++){ A += 1 } if ( A % 2 == 0) { B +=1 } } A = A % B printf("答え:%c",&C[A][B]) 友達から出題されました。 なんか、絶対コードが間違ってると思うのですが 正しいと言いはります。 訂正してもらえませんか。
>>774 どっからエディタ縛りの話が出てきたんだ・・・?
>>801 bccって、ボーランドとかFreeのIDEつかってそう
エディタのキーバインドすら身に付かない。糞の役にも立たない演習
つかってそう
Emacs も或る意味 Free の IDE でしょ
日本だとBCPadって可能性も・・・ ていうか只の憶測だったのかよ
>>805 俺もBCPadを使ってると予想したぞ
宿題コードの頭でbccなんて使ってるからな
Emacsやvi使うようなら、せめてcygwin入れるだろうし
>>782 どの業界に生きてるのか知らないけどそれが本当ならその会社では働きたくない
>>807 https://en.wikipedia.org/wiki/Quicksort Optimizations
Two other important optimizations, also suggested by Sedgewick and widely used in practice are:
(略)
Use insertion sort, which has a smaller constant factor and is thus faster on small arrays,
for invocations on small arrays (i.e. where the length is less than a threshold k determined experimentally).
そこ?
まちがいなくここだね、knuth の例の教科書にも Sedgewick のアイディアだ、と書いてあったね でも knuth はへんてこなアセンブラを強要するからなあ‥‥
今使ってるstd::sortのソース見ると要素数32以下で挿入ソートになってる
>>807 コテに影響されて正常な判断ができないようでは‥‥適性に乏しいと言わざるを得ない
第一そのコテは割れている
選択ソートは何に使うの?
814 :
デフォルトの名無しさん :2014/01/16(木) 21:23:03.21
[2]標準Cライブラリを使用せずにprintfを作成するという課題です。
%c,%s,%d,%x,%X,%oなどに対応したのですが、%12dや%+dなどの実装の方法が分からないのでどなたかご助力お願いします。ソースコード中のprint_string,print_char,print_intなどはアセンブリ言語を用いてシスコールで実装しているものです。
http://ideone.com/XafXzm [3] 環境
[3.1] OS:ubuntu
[3.2] mips-gcc
[3.3] 言語:c言語
[4] 期限:1月21日まで
switch内の'%'以下に条件分岐を増やすだけじゃなのか
apt-file search printf.c
817 :
デフォルトの名無しさん :2014/01/17(金) 00:51:17.96
>>815 そうなんですけどそのやり方が分からないのです
>>817 apt-file search printf.c
だから、まんま答えが乗ってるじゃないか
初期化指定子のパターン列挙してオートマトンでも書いたら?
状態対の等価性判定木の使い道をようやく理解した。
最近の学生やら新入社員は コンパイラ演習的なものはやらされないのかな?
母校のコンパイラ単位は座学だけ
823 :
デフォルトの名無しさん :2014/01/17(金) 01:16:32.26
良いことを教えてやる。 大学のカリキュラムに合わせてプログラミングを学ぶと、ろくな企業に就職できない
826 :
デフォルトの名無しさん :2014/01/17(金) 01:35:39.78
ありますね
>>825 統計はないが証人ならいるぞ
はやいこと、どの業界へ進むか決めたもん勝ち
>>827 従軍慰安婦じゃないんだからさぁw
客観的に評価できる形で頼みます
いや、カリキュラムの通りやればいいよ ぶっちゃけるとカリキュラムの範囲以外はほとんど実務だと役に立たない やっぱり情報業界はまだ未熟だから現場を直接参考にしてるんだよね だから基本的に教えられたことやるだけでいいぞ、応援してる
でかい釣り針
>>829 こういうホワイトカラーな職場って数が少なくって、
中の人たちも反骨精神がないから市場から淘汰されていく姿が目に浮かぶ
[2] 問題文(含コード&リンク): [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 1/21 課題の量が多いのやってくださった方に5000円報酬として差し上げようと思っています ネットワークについての課題です 興味ある方はメールください
最低でも50,000,000円だな
これは新手の業者スパム
837 :
デフォルトの名無しさん :2014/01/19(日) 10:58:03.43
[2] 配列の大きさ6で、それを超えると受け取れないようにする。また負の数を入力した場合、入力処理を中断する。 [3] 環境 [3.1] OS: Windows 7 Pro 64bit [3.2] Visual C++ 2013 [3.3] 言語:C [4] 期限: 明日 [コメント] ここに #include <stdio.h> int main() { int a, b[6]; for(a = 0 ; a < 6 ; a++) { printf("整数を入力:= "); scanf_s("%d", &b[ia); } /* 表示 */ for(a = 0; a < 6 ; i++) printf("%d\n", b[i]); }
838 :
837 :2014/01/19(日) 11:02:50.31
>>837 です
途中で送信してしまいました。
[2] 配列の大きさ6で、それを超えると受け取れないようにする。また負の数を入力した場合、入力処理を中断する。
[3] 環境
[3.1] OS: Windows 7 Pro 64bit
[3.2] Visual C++ 2013
[3.3] 言語:C
[4] 期限: 明日
[コメント]
ここまではできたんですが,負の数で中断させる方法がうまくいきません。
breakを使うんではないか、とは思いますがどこにどのように入れていいのかがよくわかりません。
よろしくお願いします。
#include <stdio.h>
int main()
{
int a, b[6];
for(a = 0 ; a < 6 ; a++)
{
printf("整数を入力:= ");
scanf_s("%d", &b[a]);
}
/* 表示 */
for(a = 0; a < 6 ; i++)
printf("%d\n", b[i]);
}
>>838 for (a = 0 ; a < 6 ; a++)
{
printf("整数を入力:= ");
scanf_s("%d", &b[a]);
if (b[a] < 0) return 0;
}
>>839 ありがとうございました。
ifを使えばいいんですね。
もう少し勉強してみます。
>>841 >シェル・クイック・マージ・ヒープのソートの実装をせよ。
なんかお題さえ並べればそれだけで課題になるとか、猿でもできる出題だ
そういう課題はバブルソート、選択ソート、挿入ソートで十分だし、実用に供される場合もあると先週書いたのだがねえ
ひとつだけやるなら、クイックソートで十分、次点はヒープ(こいつのデータ構造はほかにも使える)かマージ(外部ソート用途)か
シェルソートなんか知らなくていいくらいだ
いったいどこの学校?教員は誰?
843 :
デフォルトの名無しさん :2014/01/20(月) 06:34:54.03
>>842 黙れさっさと宿題やれ、それがお前の仕事だろうが。
関係ないことに口挟むな。粛々と宿題しろ。
844 :
デフォルトの名無しさん :2014/01/20(月) 06:51:35.58
ソート実装しろとか死ぬほど懐かしいw 俺は全部バブルソートのソースコードで提出したな 学校がインターネット回線なくて、 夏休みの宿題を家に持ってかえるのも嫌だったから、仕方が無かったんだ・・・
wikiにソート書いた気がしたけど、その中だとマージしか書いてなかった そのうちクイックくらいは追加しとかないとな、定番だし
[2] 配布されるdatの1000個の数字をクイックソートせよ 但しデータの入出力部分以外は、for文while文if文のみで書く [3] 環境 [3.1] OS: Windows 8 64bit [3.2] Visual Stdudio 2012 [3.3] 言語:C [4]明日迄には終わらせたい
関数呼び出しも不可か, それは難易度高いな
849 :
デフォルトの名無しさん :2014/01/20(月) 22:54:26.32
>>842 バカかお前。お前が先週なにを書いたのだろうと宿題出されることに変わりはないんだよ。
出題にケチつけても宿題がなくなるわけじゃないんだからさっさとやれよ。
何のためにコテハンつけてのさばってやがんだよ。やる気ないんだったらコテ外せ。
学校と教師の名前聞いても宿題を提出したことになるわけじゃないだろうが。
聞くだけ無駄だってわからないもんかねえ。アスペすぎだろお前。
846ですがさっぱりです…どうすればいいでしょうか?
851 :
デフォルトの名無しさん :2014/01/20(月) 23:02:41.60
>>846 typedef int value_type; /* ソートするキーの型 */
value_type med3(value_type x, value_type y, value_type z)
/* x, y, z の中間値を返す */
{
if (x < y)
if (y < z) return y; else if (z < x) return x; else return z; else
if (z < y) return y; else if (x < z) return x; else return z;
}
void quicksort(value_type a[], int left, int right)
/* クイックソート
* a : ソートする配列
* left : ソートするデータの開始位置
* right : ソートするデータの終了位置
*/
{
if (left < right) {
int i = left, j = right;
value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2ではオーバーフローしてしまう */
while (1) { /* a[] を pivot 以上と以下の集まりに分割する */
while (a[i] < pivot) i++; /* a[i] >= pivot となる位置を検索 */
while (pivot < a[j]) j--; /* a[j] <= pivot となる位置を検索 */
if (i >= j) break;
tmp = a[i]; a[i] = a[j]; a[j] = tmp; /* a[i],a[j] を交換 */
i++; j--;
}
quicksort(a, left, i - 1); /* 分割した左を再帰的にソート */
quicksort(a, j + 1, right); /* 分割した右を再帰的にソート */
}
}
おまえら大学生や高専生ならWikipedia本家の記事ぐらいスラスラと読め ソートなら擬似コードが載ってるだろ
853 :
デフォルトの名無しさん :2014/01/20(月) 23:35:21.01
>>852 黙れ高卒w 嫉妬してんじゃねえぞおらw
854 :
デフォルトの名無しさん :2014/01/20(月) 23:36:42.05
本物の大学生はこんなくだらねえ宿題なんてやってる暇ねえんだよw お前らがやれww
>>853 情報システム科の修士までとったぞ
おまえなんかIT業界へ行っても、3ヶ月以内に辞める腰抜け
Apache HttpdにしろRFCにしろ、ドキュメントは 原文のまま読む方がはやいって後になって理解するんだよ もっとも公務員志望のチキンだろうけど
沸騰水型原子炉の加圧水型原子炉に対する優位性はどこにあるのでしょうか? 沸騰水方原子炉における主蒸気隔離弁の重要性はどのように位置付けられるのでしょうか? 主蒸気隔離弁の破断をどのように評価すればいいのでしょうか? 以上、詳細をご存知の方は何卒ご教示いただきたく伏してお願いいたします
アーイキソ
原子力関連の学科って就職あるの?
ググるだけ、いくらでも資料でてくるのに、 他にレポートがあるってPRするあたり本当に地頭の悪いボンクラ学生なんだろうな
ポッチャマ…
ところで、
>>848 の感想はどこに反映されているのかな。
863 :
デフォルトの名無しさん :2014/01/21(火) 05:09:02.83
>>851 大変詳しくありがとございます
ただ、qsort使っちゃダメなんですよ…図書館で調べてもそんなソースコード見つからなくて…可能なんでしょうか
どこにqsort使ってるのかわからない
はい!新宿調教センターです!
>>863 しかし、課題がqsortで「for文while文if文のみで書く」ということだと、
再帰不可という意味に取るのが普通だろう。
868 :
デフォルトの名無しさん :2014/01/21(火) 13:50:46.69
[2] 入力した5文字までの文字列を5個まで格納して表示する。 5個未満で中断するときはEnterで入力し,5個入力後かEnter入力後に、入力したすべての文字列を表示。 [3] 環境 [3.1] OS: Windows 7 64bit [3.2] Visual C++ 2013 [3.3] 言語:C [4] 期限: できれば今日中 お力を貸してください。 表示例 1回目:5文字以内で入力 Apple ← キーボード入力したもの 2回目: 5文字以内で入力 Rice ← キーボードで入力したもの 1回目 APPLE ← 結果 2回目 Rice ← 結果
>>868 5.times.inject [] do | a |
(a<<gets.chomp[0..5]).last.empty? ? (break a[0..-2]) : a
end.display
>gets_test.rb
r
t
rer
["r", "t", "rer"]
>gets_test.rb
ferrfwefreurfthyuehft
ftwrfrfirefhrfr
erftwrefrwifnhiernfher
dfdfdddjnvjdknvjdvd
dfjdfjdfidjdfjdfdsineogmi
["ferrfw", "ftwrfr", "erftwr", "dfdfdd", "dfjdfj"]
>>869 やっていただいたのにすいません。
みたことがない関数ばかりです。
ちなみに今勉強している部分は配列とかポインタ、ソートの部分です。
>>870 特に指示はなかったのですが、「5文字以内で入力してください」と表示しようと思っています。
>>871 今までの課題で入力された値の受け取りは何でやってた?
scanf ?
gets ?
>>868 #include "stdafx.h"
#include <conio.h>
#include <string>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::string str;
for (int i=0; i<5; i++) {
char c = (char)getch();
if (c=='\r')
break;
str += c;
}
std::cout << str << std::endl;
return 0;
}
>>872 scanfです。
getsは使ったことありません。
>>875 あります。
strcpyとかも最近やりました。
>>876 途中までやったの載せたらそれを編集してみるよ
char buf[5+1]; fgets(buf, sizeof(buf), stdin); printf("%s\n", buf);
#include <string.h> #include <conio.h> #include <stdio.h> const int MAX_CHAR_NUM = 5; int main(void) { char s[MAX_CHAR_NUM+1], c; int i; memset(s, 0, sizeof(s)); for (i=0; i<MAX_CHAR_NUM; i++) { c = (char)getch(); if (c == '\r') break; s[i] = c; } fprintf(stdout, "%s\r\n", s); return 0; }
>>877 10%もできていませんけどこれでもよければ
#include <stdio.h>
#include <string.h>
int main(void)
{
int array[5][5],i;
/* 文字の入力 */
for(i = 0 ; i < 5 ; i++)
{
printf("%d回目:5文字以内で入力: = ",i+1);
scanf_s("%s", &array[i]);
}
881 :
デフォルトの名無しさん :2014/01/21(火) 21:29:09.02
>>864 qsort使っちゃダメってどういうこと?
再帰がダメってこと?
>>881 そうです。
関数呼び出しも再帰も無しでってことです。
ほんとに初心者で無知を晒してすいません…
>>857 >沸騰水型原子炉の加圧水型原子炉に対する優位性はどこにあるのでしょうか?
沸騰水型原子炉は、減速材として封入している原子炉格納容器内の軽水を直接加熱、それを蒸気として原子炉格納容器外に引き出しタービンをまわすものです。
放射能を十分に帯びた減速材が一次冷却材を兼ねており、減速材でタービンを回す点が利点にも欠点にもなります。
すなわち効率上昇、仕組みが単純なため建設費が安くすむ一方、設備への放射能汚染が高くなり日常の保守作業における被爆量が高くなる欠点があります。
>沸騰水方原子炉における主蒸気隔離弁の重要性はどのように位置付けられるのでしょうか?
原子炉格納容器からの蒸気流量を調整する役割を担っています。
原子炉緊急停止(原子炉スクラム)の際は、炉内に制御棒を挿入すると同時に主蒸気隔離弁が放射能の濃厚な蒸気を遮断する一連のシーケンスを構成しています。
>主蒸気隔離弁の破断をどのように評価すればいいのでしょうか?
主蒸気隔離弁は、原子炉緊急停止時の安全を保障する装置群の一環でありいかなる場合であっても破断は許されません。
今回破断した炉について安全強度が不足していることを示唆する事例といえます。
なお、日本全国の沸騰水型原子炉すべてについて原子炉緊急停止に必要な強度が不足している懸念を示す解釈も可能です。
884 :
デフォルトの名無しさん :2014/01/21(火) 23:31:09.60
夜分遅くに申し訳ございません… 本日9時提出の課題を今になって気づいたのですが、私の頭ではさっぱりわからないのでお助け下さい… [1]プログラミングC [2] 問題文(含コード&リンク): 問1:以下の実行結果に示すような、3つの実数を入力した後、最大値と最小値の差を求めるプログラムを作成せよ。 ※例 3つの整数を入力してください。 na=12 nb=65 nc=44 65と12の差は53です。 問2:以下の文字列(programming_jissyu)が配列に格納されているとする。 この文字列を任意の位置で2つ分割して表示するプログラムを作成せよ。 ※例 難文字目で分割しますか:11 文字列の前半 programming 文字列の後半 _jissyu [3] 環境 [3.1] OS:Windows [3.3] 言語: C [4] 期限:本日9時 引き続き自分でも挑んでみますが、お時間がある方がいらっしゃいましたらどうかお力添えお願いします。
886 :
デフォルトの名無しさん :2014/01/22(水) 04:30:11.61
すみません、age忘れました
>>885 問1 問題では実数となっているのに実例では整数となっています。
888 :
デフォルトの名無しさん :2014/01/22(水) 05:25:18.40
>>887 すみません、誤植のようなので整数で入力した場合のプログラムでお願いします!
#define ___ #include <stdio.h> int main(){ ___ int na,nb,nc,max,min; ___ printf("3つの整数を入力してください。\n"); ___ printf("na=");if(scanf("%d",&na)!=1){printf("入力が間違っています\n");return 0;} ___ printf("nb=");if(scanf("%d",&nb)!=1){printf("入力が間違っています\n");return 0;} ___ printf("nc=");if(scanf("%d",&nc)!=1){printf("入力が間違っています\n");return 0;} ___ max=na; ___ if(max<nb)max=nb; ___ if(max<nc)max=nc; ___ min=na; ___ if(min>nb)min=nb; ___ if(min>nc)min=nc; ___ printf("%dと%dの差は%dです。\n",max,min,max-min); ___ return 0; }
#define ___ #include <stdio.h> int main(){ ___ int pos,idx; ___ char str[]="programming_jissyu"; ___ printf("難文字目で分割しますか:"); ___ if(scanf("%d",&pos)!=1){printf("入力が間違っています\n");return 0;} ___ printf("文字列の前半\n"); ___ for(idx=0;idx<pos&&str[idx];idx++){ ___ ___ putchar(str[idx]); ___ } ___ printf("\n"); ___ printf("文字列の後半\n"); ___ for(idx=pos;str[idx];idx++){ ___ ___ putchar(str[idx]); ___ } ___ printf("\n"); ___ return 0; }
>>889 >>890 ありがとうございます!無事起動出来ました!!
深夜帯の投稿だったので半分諦めていましたが、こんな時間にも関わらず即作成して頂け本当に感謝しています。
次回また投稿させて頂くような事があった場合にはなるべく余裕を持って行います。本当にありがとうございました。
丸写しバレて落第とかアホなことにはなるなよー
>>880 自分でこれ組み合わせてやって
-----入力が6文字以上
if(5 < strlen(array[i])) {
}
-----Enter入力の判定
if(array[i][0] == '\0') {
}
-----表示
printf("%s\n", array[i]);
894 :
デフォルトの名無しさん :2014/01/22(水) 09:32:58.66
>>893 ありがとうございます。
[入力が6文字以上]のarray[i]の部分がエラーを吐きます。
原因は何でしょうか?
バレない改ざんの技術向上は今の日本において喫緊の課題
897 :
デフォルトの名無しさん :2014/01/22(水) 11:31:55.84
周辺に存在する bluetooth low energy の電波一覧を取得するサンプルがほしい
898 :
デフォルトの名無しさん :2014/01/22(水) 15:14:14.58
ゴミ
公務員試験対策しろ
[2] imgur.com/eUDas7F(問題文) ideone.com/bL70VV(深さ優先探索) ideone.com/qWnTEr(ライフゲーム) [3.1]Windows7 [3.3] Cのみ [4] 2014年1月31日23:59分まで できれば、解説をコメントアウトで打ち込んでいただけると助かります。どなたかよろしくお願いします。
901 :
デフォルトの名無しさん :2014/01/24(金) 11:18:31.29
[2] 要素の数が10の配列に2から始まる倍数を逆順に表示せよ [3] 環境 [3.1] OS:Windows 7 [3.3] 言語: C [4] 期限:できればはやめに 自分なりにやってみましたが,まちがっているところがわかりません。 よろしくお願いします。 int main(void) { int array[11]; int x = 2; int i; // 10乗までを順番に計算 for (i = 0; i <= 10; ++i) { array[ i ] = x; x *= 2; } // 逆順 for ( i = 10; i >=0; --i)[ printf("%d\n",array[ i ]); ] return 0; }
>>901 実際にどんな結果になってて
求める結果はどんな物なのか追記して
903 :
デフォルトの名無しさん :2014/01/24(金) 12:23:11.22
>>902 結果というより、下記のエラーで表示が出来ない状態です
(31)error C2337: 'printf' : 属性が見つかりません。
(31): error C2143: 構文エラー : ']' が ';' の前にありません。
(33): error C2143: 構文エラー : ';' が ']' の前にありません。
904 :
デフォルトの名無しさん :2014/01/24(金) 12:25:38.29
>>902 解決できました。
かっこの間違えでした。
お騒がせしました。
ヒント #include
907 :
デフォルトの名無しさん :2014/01/25(土) 18:34:51.56
908 :
デフォルトの名無しさん :2014/01/25(土) 19:44:20.55
>>901 # ruby2.1.0p0
p [2].cycle.take(20).map.with_index{|m,i|m**i}
p [2].cycle.take(20).map.with_index{|m,i|m**i}.reverse
# => [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288]
# => [524288, 262144, 131072, 65536, 32768, 16384, 8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1]
909 :
デフォルトの名無しさん :2014/01/25(土) 21:07:17.16
910 :
デフォルトの名無しさん :2014/01/25(土) 22:03:10.98
なんで未だに継承とか使うわけ? 継承はゴミ ミックスインとトレイトへ移行しろ
911 :
デフォルトの名無しさん :2014/01/26(日) 00:40:29.79
>>909 仮想メンバ関数(virtual)は、「その」クラス(A2)のポインタ型(A2*)に
派生クラス(B2)のポインタ(B2*)を入れて「A2*型」の仮想メンバ関数実行したとき、
A2の関数ではなく、代入したクラスのB2のメンバ関数が実行されるようにする機能です。
使い分けとしては、上記のような機能が必要なとき(派生クラスのポインタを入れるとき)に
限ってvirtualを使います。これをポリモーフィズムと言ったりします。
ポリモーフィズムでない場合とは、クラスA1に機能を追加して派生した
クラスB1のようなクラス構成の場合です。
この場合は、同じ名前のメソッドでも、それぞれクラスA1専用のもの、
クラスB1専用のものと分かれているため、別の処理をすることになります。
仮想関数は通常のメンバ関数の呼び出しとは異なり、コストが大きいので意味もなく
使わない方がいいです。
また、ポリモーフィズムでない機能の継承は使うべきである場面が限られていますので、
どうしても継承が必要な場合はA4レポート1枚くらいに理由をまとめた方がいいです。
降って湧いた風疹の流行も、倫理問題どこ吹く風の出生前検査解禁も、絶賛放出中というか止め方がいまだにわからない現実ならば非常に理解できる
913 :
デフォルトの名無しさん :2014/01/26(日) 15:49:03.98
>>910 >ミックスインとトレイト
調べてみます
>>911 わかりやすい説明ありがとうございました。
プログラミングする際、意識して気をつけたいと思います。
>>900 とりあえず探索の方作った解説は書いてないのでわからんことあったら聞いてくれ
ideone.com/5e1eRL
915 :
デフォルトの名無しさん :2014/01/26(日) 21:47:29.29
すみません、私頭悪いので教えてください。 テキストで独学でC言語を勉強している者ですが、Visual C++で組んだプログラムをコマンドプロンプトで動作させるにはどうしたら良いのですか?
>>915 コンソールアプリケーションでCtrl+F5で走らせてるけど
918 :
デフォルトの名無しさん :2014/01/26(日) 22:11:20.10
>>916 それか、Sample3 Sampleb.txt 【Enter】
としかかかれいません。
コマンドライン引数にオプションで入れておけばいい 使うテキストも全部プロジェクトの一部にしてしまえば楽
920 :
デフォルトの名無しさん :2014/01/26(日) 23:42:28.71
921 :
デフォルトの名無しさん :2014/01/26(日) 23:55:56.40
>>915 ビルドするとプロジェクト直下にDebugかReleaseというフォルダができるから、コマンドプロンプトでそこまで辿り着いて実行。
で、相対パス指定のリソースが見つからね っとなるんですよね
924 :
デフォルトの名無しさん :2014/01/27(月) 04:50:12.58
多分、プロジェクトフォルダ以外にソースコード置いちゃってるんだと思うけど まずコンソールプロジェクトを新規で作るだろ 左にSorceとかソースコードとかいう名前のフォルダアイコンみたいのあるだろ そこのSorceのところ右クリックして、新規ソースコード作成みたいな事やって そこに書いてコンパイル 煽り抜きで、 この程度が自己解決できないのは、先行きくらいからCとかC++やんないほうが良いよ
というか正直、コンソールアプリを今時デバッグ以外で実行する必要性はあるのか? 基本的に書き捨てるものなんだからさっさと動作確認して次に行くべきだと思うが…… そもそもコンソールアプリの延長線上にGUIアプリやゲームアプリは存在しないから、コンソールアプリ自体をさっさと見限ったほうがいいよ。
簡単な実用プログラムはコンソールで作ることも多いけどな・・・ レガシーなゲームはコンソールベースで作れるし、 コンソールアプリがコンソール+GUIって動作することも普通にできるし、 GUIプログラムでもコマンドライン引数使う事が普通にあるわけで。 コンソール関連を時代遅れって言いたそうに見えるけど、 それはコンソール関連を使わないから出る意見だと思う
927 :
デフォルトの名無しさん :2014/01/27(月) 07:21:19.40
半分正論 C++でコンソールアプリを作る機会は殆ど無いからな わざわざあんな重たい開発環境使うなら最初っからC#でGUIやってたほうが良いと思うよ
>>915 ,918,920
プロンプト開く
cd "exeファイルの保存されているフォルダpath"
ファイル名.exe 引数1 引数2 ...
こういう事聞いてんのか?
929 :
デフォルトの名無しさん :2014/01/27(月) 14:19:37.25
>>928 そうやってやるんてますか…
テキストでコマンドラインからの入力という項目でSampleか゛【コマンドライン引数をつかう】らしいです。
930 :
デフォルトの名無しさん :2014/01/27(月) 15:56:08.86
出来ました。皆さんご協力ありがとうございます。 結果を報告しますと、Debugのフォルダ内にあるexeファイルと同じフォルダ内(Debugフォルダ)にテキストファイル(Sample.txt)を移したら出来ました。
>>914 ありがとうございます。ライフゲームのほうはまだ期限があるのでがんばってみますが、間に合いそうになければお願いします・・。
>>930 引数でファイルを指定する時はフルパスかカレントディレクトリからの相対パスにした方がいい
Sample.exeとSample.txtが同じ場所にある場合は
Sample.exe ./Sample.txt
933 :
デフォルトの名無しさん :2014/01/27(月) 19:02:23.22
934 :
デフォルトの名無しさん :2014/01/27(月) 19:06:26.17
[1] 授業単元: C言語T [2] 問題文(含コード&リンク):レポート形式なのですが比較回数を数えるプログラムのソースコードを御教示ください。 問:以下の挿入ソートのプログラムを参考に(次番に記載)着目する各x[i]の大小比較の回数を求めよ。 参考として、各データの比較回数は最大(i-1)回、最小1回、平均(i/2)回となる。 また、それぞれのデータの並びを変えて比較回数とデータの並びの関係を考えよ。 [3] 環境 [3.2] コンパイラ:gcc [3.3] 言語: C言語 [4] 期限: できれば本日中
936 :
935 :2014/01/29(水) 07:27:08.20
参考のプログラムが以下です。 #nclude<stdio.h> int main(void) { int x[5] = {78, 56, 33, 45, 23}; int a; int i, j; for (i=1; i<=4; i++) { a = x[i]; j = i-1; while (x[j]>a && j>=0) { x[j+1] = x[j]; j--; } x[j+1] = a; } for (i=0; i<=4; i++) { printf("%d\n", x[i]); } return 0; }
>>936 それと同じようなのどっかで見たな
その書き方だと比較回数と交換回数が分かりにくいので、「挿入ソート 比較回数 交換回数」でぐぐって
崩したソースを参考にすると良い
>>936 int mainのまえに
int cnt=0;
int isBigger(int x_, int a_){
cnt++;
if(x_>a_) return 1;
return 0;
}
を書き足して、
x[j]>a
と書いてあったところを
isBigger(x[j], a)
と書き換えればいいよ
あとは最後のreturn 0の前に
printf("%d\n", cnt);
と書けばよし
939 :
935 :2014/01/30(木) 01:02:36.71
レスが遅くなりすみません
先ほどバイト先から帰宅したとこです
>>937 ありがとうございます
完成したプログラムを提出せよではなくレポート形式にしてるのもプログラム自体は完成できなくても考察を何かしらの形で書けば点をつけることができるからみたいです
プログラムだけの提出だとみんな完成できずに提出を諦めて点がつけられないそうです
>>938 プログラムを教えていただきありがとうございます
コンパイルして実行してみるとこの配列では13と出力されましたが
これが挿入ソートが完了するまでに比較された数の総数ということでしょうか?
[1] 授業単元:アルゴリズム概論
ヒープソートについての課題です
[2] 問題文
以下のプログラムは、整列する配列の添え字の下限が1であることを仮定している.
この過程を除いたプログラムを書け.
すなわち、整列する範囲の下限、上限ともに可変とした場合のヒープソートの手続きを書け。
ソースコード:
http://ideone.com/HOlaTT [3] 環境
[3.1] OS: Windows Vista
[3.2] コンパイラ名:gcc
[3.3] 言語: C
[4] 期限: 2014年1月31日14:00まで
期限は明日までですが、どなたかお願いします。
941 :
デフォルトの名無しさん :2014/01/30(木) 20:28:14.69
やさしいC アルゴリズム編 初心者には分かりやすいよ
ほんと学校って場所はキチガイだな 覚えてすぐ誰でもそれなりの事が出来るのがプログラミングって分野なのに何この課題 プログラミングの範囲まで非効率な授業やって愚民化教育してるからソフトウェア分野が進歩しないのな
覚えてスグに出来るようなことは、覚えてスグにできるようになるだろう APIとデータベースを叩いてるだけのヤツらはソートすら書けないと思うけど
できない人は黙っててください
まぁソート書けたところで何も得られるものはないけどな。 アルゴリズム系はそれこそAPIやデータベースに封じ込めておくのが一番生産的。
汎用的な道具が揃っててすぐ使えるってのと、細かい仕様要求に応えられるナマの引き出しがあるかどうかってまた別の話だと思うけどな といっても今時ならパズルゲームの制作にでも関わらんとあまり使われない引き出しなのかな オセロのAIみたいなものすらググればコピペできる時代だし
>>940 ttp://ideone.com/rXCceP 超汚いけど一応解けたハズ。現在コンパイル中で結果が見れない。
これホントにO(N*logN)で解けてるかよくわからんな。
試用したデータはフォーク前に使ってあったやつを拝借した。
間違ってたら思う存分罵ってくれ。ヒープソートの原理は知ってるが書いたこと無いんだ。
今回やってみてバブルソートより早いのは分かった。
949 :
デフォルトの名無しさん :2014/01/31(金) 06:39:50.94
952 :
デフォルトの名無しさん :2014/01/31(金) 06:44:41.80
すなわち、整列する範囲の下限、上限ともに可変とした場合のヒープソートの手続きを書け。 宿題の内容みてんのかね
下限はポインタの位置をずらしてください。 上限は個数を制限してください。 まだ、なんかある?
ちゃんとコード読めてるのかね。 めちゃくちゃ汚いけど、足したところは少ないよ。
>>948 、
>>950 さん
整列する範囲の下限、上限はどこで設定してるのでしょうか?
例えば、下限をleft、上限をrightとしてleft〜rightの範囲を整列するようなプログラムでは
ないような気がするのですが...
おそらく、私の考えですが要素a[ i ]の子ノードはa[ 2 * i - left +1 ]、a[ 2 * i - right + 2 ]
のようになると思うのですが
せっかく作っていただいたのに、申し訳ありませんが
問題文のプログラムも作っていただけないでしょうか?
注文が多くてすいません
>>956 ツリー内でソートしろとは書いてないぞ。
もともと雑な配列の一部をソートできればいいんじゃねーの?
0〜n-1 までの n個のデータのソートを行う関数 sort(data, n) left〜right までのソートは データの先頭が data + left で データ数が right - letf +1 個 sort2(data, left, right) { sort(data+left, right-left+1); } とでも書けばよかろう
>>960 さん
実は私もこの問題文よく理解できてないので
ひょっとしたら、
>>960 さんのが正しいのかもしれません
(もちろん、問題文はレポート用紙に記載されていたものをそのまま転載しましたが)
事前に私が担当の教員に問題文の意味を聞いておくべきでした
回答、アドバイスしてくれた方
ありがとうございました.感謝いたします.
すいません、どなたか
>>900 のライフゲームの課題をお願いします・・・。
>>963 ,964
ありがとうございました。感謝です。
>>963 申し訳ないのですが、初期状態のファイルはどうすればいいですか?
自己解決しました。
969 :
デフォルトの名無しさん :2014/02/02(日) 22:16:37.65
[2] 問題 ポインタを使ってABCDEを縦に1文字ずつ表示する [3] 環境 [3.1] OS: Windows 7 [3.2] コンパイラ名:Visual C++ 2013 [3.3] 言語: C [4] 期限: できれば今日中 途中まで自分なりにやってみたのですが,どう直していいのかがわかりません よろしくお願いします。 #include <stdio.h> int main(void) { char str[] = "abcde"; char* p_str = str; printf("%c\n",p_str); return 0; }
#include <stdio.h> int main(void) { char str[] = "abcde"; char* p_str = str; for(;*p_str;) printf("%c\n",*p_str++); return 0; }
972 :
デフォルトの名無しさん :2014/02/03(月) 19:23:05.40
[2] 問題 ポインタを使って標準入力から任意の文字列(全角 2バイト文字)を読み込み、入力された文字列を逆順に出力 [3] 環境 [3.1] OS: Windows 7 [3.2] コンパイラ名:Visual C++ 2010 [3.3] 言語: C 途中まではできたのですが、全角に出来なくて困っています。 #include <stdio.h> #include <string.h> int main(void) { char str1[100]; char str2[100]; char *p_str1; char *p_str2; fgets(str1,sizeof(str1),stdin); p_str1 = str1; p_str2 = str2;
973 :
デフォルトの名無しさん :2014/02/03(月) 19:23:45.51
>>972 の続き
while (*p_str1 != '\0') {
*p_str1++;
}
if(*(p_str1-1) == '\n'){
p_str1--;
*p_str1 = '\0';
}
while (p_str1 > str1) {
p_str1--;
*p_str2 = *p_str1;
p_str2++;
}
*p_str2 = '\0';
printf("入力:%s\n", str1);
printf("逆順:%s\n", str2);
return 0;
}
974 :
デフォルトの名無しさん :2014/02/03(月) 19:58:07.74
while (p_str1 > str1) { p_str1--=2; *p_str2 = *p_str1; *(p_str2+1) = *(p_str1+1); p_str2+=2; }
976 :
デフォルトの名無しさん :2014/02/03(月) 20:36:55.87
>>975 これでは文字化けしてしまうんですが、includeが足りないとかですか?
977 :
デフォルトの名無しさん :2014/02/03(月) 21:02:09.76
>>975 こういう結果になってしまいます
岡山県倉敷市
入力文字列:・
逆順文字列:s・~・q・ァ・R・ェ・
978 :
デフォルトの名無しさん :2014/02/03(月) 22:13:26.05
[1] 授業単元:プログラミング [2] 問題文:入力した自然数の逆数を小数で求める [3] 環境 [3.1] OS:7 [3.2] コンパイラ名とバージョン:Visual C++ 2010 [3.3] 言語: C言語 [4] 期限:1週間以内にお願いします [5] その他の制限:問題文の例として 割り切れる場合はいいのですが 割り切れず永遠に続く循環小数があるので 循環小数の場合 自然数が7の時逆数は0.142857142857・・・となるので 表示するときは 0.142857(この後も142857と永遠に続く)とゆうようにしたいです 説明がうまくないのですがよろしくお願いします
>>977 端末のロケールがおかしいんだろね
cp 932なコマンドプロンプト上で実行しましょう
981 :
デフォルトの名無しさん :2014/02/03(月) 22:59:45.28
UTF8にするとサロゲートペアとかあって面倒なんだよね。
983 :
デフォルトの名無しさん :2014/02/03(月) 23:09:57.59
>>982 それはUTF16の話でしょ
UTF8は可変長なんだから手間は同じだよ
>>983 > p_str1--=2;
p_str1-=2;
ソーリー
986 :
デフォルトの名無しさん :2014/02/04(火) 00:08:14.31
>>986 *p_str1-=2;
ではなく
p_str1-=2;
>>987 ありがとうございます。
ここではポインタ不要だったんですね
はわわわわ・・・。
【質問テンプレ】
[1] 授業単元:俺の限界
[2] 問題文(含コード&リンク):言語内Lispモドキを作っています。
今回は継承元で継承先の関数が呼べるかの実験をしています。
困ったことに、継承元には余計な情報を付加したくないので、継承元をテンプレートにすることができません。
この条件で、継承元のVoidTypeから、継承先の任意のstd::funtionが呼べるようにならないでしょうか??
サンプル:
http://ideone.com/sabUbx [3] 環境
[3.1] OS: Any
[3.2] コンパイラ名とバージョン:anyだけど、VC2013EEでも動くことが望ましい。
[3.3] 言語: C++11
[4] 期限: 2014/02/06位まで。
[5] その他の制限: C++11の範囲で。かつなるべくVC2013の範囲で。
なんというか感慨深いな
>>990 VoidTypeにprivateな仮想関数fooを定義して、operator()から呼ぶ
派生クラスでfooをオーバーライドじゃねーの?
NVIイディオムとか、c++のイディオムが載ったWiki漁れ
>>993-994 お返事ありがとう。
一応できるということのようなのでググってみます。
回答ありがとうございました。
>>990 はこれで閉めます。
これって、TMPの静的ポリモーフィズムとかだっけ?
>>996 実験要素が強いのでなんとも言えませんけど、
Boost::Anyが入れば大体解決する問題なのですよね。今のところ。
知識が足りない・・・。Orz
ちょっとググってみます。
>>996 いわゆるひとつのMixinですなー。
ちょっと検討してみます。
次スレ・・・。カモーン。
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。