1 :
デフォルトの名無しさん :
2011/06/04(土) 14:52:36.60
◆QZaw55cn4cって糞だよなぁ
3 :
ご注意 :2011/06/04(土) 15:44:48.86
このスレは偽善(教育活動の妨害)かつ 偽悪(適切でない教育啓蒙活動の被害の抑止)です。 ご利用には十分にご注意ください。
◆QZaw55cn4cはNGワード推奨
5 :
デフォルトの名無しさん :2011/06/04(土) 15:53:02.76
確保したメモリを返さないのはメモリリークと呼ばれても し か た な い で す よ ね wwww
借りた覚えのないメモリを勝手にfreeで返すとエラーになるね
借りたメモリを返さないのは借金を返さない泥棒と同じだよね
mallocで借りたメモリがreadonlyだったら、誰も使わないってw
mallocで借りたメモリをmemsetでゼロクリアしてからfreeするってやっぱりマナーというか常識だよね。
10 :
デフォルトの名無しさん :2011/06/04(土) 16:50:39.80
まとめるとQZってクズだよね。
971 名前:デフォルトの名無しさん[sage] 投稿日:2011/06/04(土) 13:52:02.66 取りあえず◆QZaw55cn4cにはCPU-ZでCore2DuoとPhenomX6の CPU、Cashes、Mainboard、SPD、Graphicsのスクリーンショットを PNGでうpしてもらいましょうか 証拠としてはそれで十分だと思いますが 972 名前:デフォルトの名無しさん[sage] 投稿日:2011/06/04(土) 13:57:22.52 いや待てExif情報入りのJPEGの方がいいな PNGだとどこかからやら引っ張ってくるかもしれませんからね Exifが入ってると日時が入るので捏造しにくい
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < ◆QZaw55cn4cのJPEGうpまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
[1] 授業単元:繰り返し・条件分岐 [2] 問題文(含コード&リンク): 3以上40未満の整数Nを入力したとき、「*」の記号を使い、一辺の長さがNの中を塗り潰さない正方形を描画するプログラムを作成しなさい。 例: 3 *** * * *** [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>13 #include <stdio.h>
int main(int ac, char **av)
{
int n, i;
const char *ast = "****************************************";
const char *spc = " ";
printf("3以上40未満の整数Nを入力してください ");
if (scanf(" %d", &n) != 1 || n < 3 || n > 40) {
fprintf(stderr, "入力エラーです\n");
return 1;
}
printf("%.*s\n", n, ast);
for (i = 1; i < n - 1; i++)
printf("*%.*s*\n", n-2, spc);
printf("%.*s\n", n, ast);
return 0;
}
>>13 #include <stdio.h>
int main(int ac, char **av)
{
int n, i;
const char *ast = "****************************************";
const char *spc = " ";
printf("3以上40未満の整数Nを入力してください ");
if (scanf(" %d", &n) != 1 || n < 3 || n >= 40) {
fprintf(stderr, "入力エラーです\n");
return 1;
}
printf("%.*s\n", n, ast);
for (i = 1; i < n - 1; i++)
printf("*%.*s*\n", n-2, spc);
printf("%.*s\n", n, ast);
return 0;
}
/subsystem:windows でってことだよね
17 :
デフォルトの名無しさん :2011/06/04(土) 18:05:02.45
[1] 授業単元:配列 [2] 問題文(含コード&リンク): 10人の身長(cm単位の実数)を入力させ、配列に記憶する。 その後、平均身長を求めて表示した後、10人分の身長を表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>13 #include <stdio.h>
int main()
{
int n, i, j;
char x[40][40] = {0};
scanf(" %d", &n);
if (n < 3 || 40 <= n) {
printf("error\n");
return 1;
}
for (i = 0; i < n; i++) {
memset(x[i], '*', n);
}
for (i = 1; i < n - 1; i++) {
memset(&x[i][1], ' ', n - 2);
}
for (i = 0; i < n; i++) {
printf("%s\n",x[i]);
}
return 0;
}
jは使ってなかった><
[1] 授業単元:配列 [2] 問題文(含コード&リンク): それぞれ10個の要素を格納する整数型配列をAとBと用意する。 Aに10個の整数を入力させた後、平均値を求める。 Bのi番目の要素に、(Aのi番目の要素の値−平均値)の値を保存する。 AとBの対応する要素ごとに、10行並べて表示しなさい。
>>20 [3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:明日まで
QZが嘘を付いて大見得張っているかどうか
>>11 ですぐわかる
いつまでもうpしない時は嘘で決定な
>>20 Aには10個の値が入るが、Bにはi番目要素の
値以外は入るチャンスがない。さて・・・
>>20 暇だ
#include <stdio.h>
#define a printf
#define b scanf
#define c double
#define d int
#define e main
#define f void
#define g "%lf"
#define h ", "
#define i "\n"
#define j return
#define k if
#define l sizeof
#define m(a) l(a)/l(*a)
#define n for
#define o 10
#define p(i,a) n(i=0;i<m(a);i++)
d e(f){c A[o],B[o],C=0;d D;p(D,A)k(b(g,&A[D])!=1)j(-1);p(D,A)C+=A[D];C/=m(A);p(D,B)B[D]=A[D]-C;p(D,A)a(g h g i,A[D],B[D]);j(0);}
codepadはscanfの入力をどうあつかってるんだろ?
29 :
デフォルトの名無しさん :2011/06/04(土) 22:47:20.76
>>13 #include <stdio.h>
int
main()
{
int n, i, yoko, tate;
scanf("%d", &n);
for (i = 0; i < n * n; i++) {
yoko = i / n;
yoko = yoko * ((yoko + 1) % n);
tate = i % n;
if (!tate)
printf("¥n");
tate = tate * ((tate + 1) % n);
printf("%c", !(yoko * tate) ? '*' : ' ');
}
return 0;
}
#include<stdio.h> #define N 10 int main(void){double a[N],b[N],s=0;int i;for(i=0;i<N;i++)if(scanf("%lf",&a[i])!=1)return -1;for(i=0;i<N;i++)s+=a[i];s/=N;for(i=0;i<N;i++)b[i]=a[i]-s;for(i=0;i<N;i++)printf("%lf,%lf\n",a[i],b[i]);return 0;}
[1] 授業単元:繰り返し(for)・条件分岐 [2] 問題文(含コード&リンク): 2〜100までの数値について、素因数に分解して実行結果例のように表示するプログラムを作成しなさい。 例 2 = 素数です。 3 = 素数です。 4 = 2 × 2 ...(省略)... 99 = 3 × 3 × 11 100 = 2 × 2 × 5 × 5 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:月曜まで [5] その他の制限: 配列やポインタ等は習っていません
>>31 #include <stdio.h>
int soinsuubunkai(int value, int primes[]){
int i, index=0;
for(i=2;i*i<=value;i++){
while(value%i==0){
primes[index++]=i;
value/=i;
}
}
if(value>1) primes[index++]=value;
return index;
}
int main(void){
int i, j, primes[7], prime_num;
for(i=2;i<=100;i++){
prime_num=soinsuubunkai(i, primes);
if(prime_num==1){
printf("%d = 素数です\n", i);
}else{
printf("%d = %d", i, primes[0]);
for(j=1;j<prime_num;j++)
{
printf(" × %d", primes[j]);
}
printf("\n");
}
}
return 0;
}
>>31 #include <stdio.h>
int main(void) {
static unsigned char primes[101] = {0}; /** include 0 */
unsigned int i, j, k, primes_nr = sizeof(primes)/sizeof(*primes);;
primes[2] = primes[3] = 1;
for (i = 5; i < primes_nr; i += 2) {
for (j = 3; j * j < i; j += 2) {
if (!primes[j]) continue;
if (i % j == 0) break;
}
primes[i] = j * j < i ? 0 : 1;
}
for (i = 2; i < primes_nr; i++) {
if (primes[i]) {
printf("%u = 素敵です\n", i);
continue;
}
printf("%u = ", k = i);
for (j = 2; j < primes_nr; j++)
if (primes[j] && k % j == 0) {
k /= j; printf(" %u", j);
break;
}
for (j = 2; k != 0 && j < primes_nr; j++)
while (primes[j] && k % j == 0)
k /= j, printf(" × %u", j);
printf("\n");
}
return 0;
}
素数を素敵と書き換えてる間に先越されてショック。
配列やポインタを習って無いと書いてあるw
習ってないとは言っても、使っていけないとは書いていない
>>31 #include <stdio.h>
int main(void)
{
int i, j, x;
for(i=2;i<=100;i++)
{
x=i;
printf("%d = ", i);
for(j=2;j*j<=x;j++)
{
while(x%j==0)
{
printf("%s%d", (x!=i)?" × ":"", j);
x/=j;
}
}
if(x==i) printf("素数です");
else if(x>1) printf(" × %d", x);
printf("\n");
}
return 0;
}
100までならprime[]={2,3,5,7}を与えて分解した方がいいでしょ
>>31 #include <stdio.h>
int main(void)
{
int i, j, k;
for(i = 2; i <= 100; i++) {
printf("%d = ", i);
for(j = i, k = 2; k * k <= j; ) {
if(j % k == 0) {
printf("%d × ", k);
j /= k;
}
else k++;
}
if(j == i) printf("素数です\n");
else printf("%d\n", j);
}
return 0;
}
ありがたやありがたや
結局QZのCPU-Zのスクショのうpはなかったですね 彼は虚言癖を持っているという事も判明しました もちろん無職で今も850MHzのPen3ノートのみでしょう
>>41 処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だよぉ。
>>41 処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だよぉ。
QZさんのプロセッサは、まぁPIII850MHzかもしれないけど、それが何台あって どんだけシームレスに結合しているかわかりゃしないから怖い
>>44 ( ゚Д゚)ハァ?本当にCore2DuoとPhenomX6を持っているのならスクショをうp
出来るはずだろ
それがないという事は、嘘をついていたという事だ
つまり大言壮語だったという事です
ここはCPUごときで大言壮語と言う言葉を使えるんだw
それにしても見え透いた嘘を付く◆QZaw55cn4cって糞だよなあ
QZ とやらも糞なのかもしれないけど、それに粘着してるやつも似たようなもんだ。
QZは神
>>49 処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だお。
>>52 宿題をとかない人と一緒にされるのは、ちと抵抗があるのですけれども。
>>50 ここは屁ノムごときで大言壮語という言葉をつかえるんだw
もはや宿題を解く事だけがアイデンティティの◆QZaw55cn4c 無職だもんなあ
>>53 やれやれ、お決まりの自演認定か。
相当暇なんだな。(w
QZは、自分に絡むやつは宿題解けないor自分より低レベルって自動的に変換するからなw
>>56 スレ違いのレスを延々続けてる奴らははたから見たら一緒だよ。
もちろん俺も含めて。
>>61 それしか奴には他に誇る物がないからなw
しかも肝心の答えが糞コード
糞じゃなくてゲロい(というか糞に失礼)
>>58 今◆QZaw55cn4cが使ってるPenIII850MHzより格段に上でしょ
無職で金がないから買えないだろうけどw
Cで糞コードを書くのは非常に難しいだろ C++で糞まじりのゲロコードを書くほうがまだ簡単 Javaだともっと簡単か. ただ本当に糞コードを書きやすいのは...
QZの頭の中では欲しい物がいつの間にか「持っている物」に変わっているからなあ 恐ろしい恐ろしい
>>66 速いプロセッサは大きなプロジェクトの大きなコードを
書くのには圧倒的に有利だけど、小さいが速度を
要求されるコードでは、プロセッサの速さが意外に仇
になって、微妙に時間を食う場所とかが見つけにくくな
るのでコードのチューニングがしにくくなるので
一概に有利とは言えないんじゃね
高精度スローモーションが可能な録画機はめちゃくちゃ
高い
>>69 最大の皮肉だなw
QueryPerformanceCounterとかプロファイラとかいろいろあるのになw
>>68 ごめん。
何いってんのかほんとにわかんない。
頭平気か?
>>70 そういうのは遅いプロセッサで、ノンプリエンプティブなタスクスケジューリング
なOSの上で有効だった話
マルチタスク環境、特にマルチプロセッサとかハイロックプロセッサでは
バックグラウンド処理が多いので、タイマで処理時間計測しても精度が
もともと悪いだろ
74 :
デフォルトの名無しさん :2011/06/05(日) 13:19:17.69
>>56 メモリリーク満開の回答してるクズにメモリリークと指摘されるのはとても心外なんだが。
>>73 相手に分かるようにしないと駄目だろ。
>QZの頭の中では欲しい物がいつの間にか「持っている物」に変わっているからなあ
>恐ろしい恐ろしい
っていうのがどこのレスから判断したのかぐらいは示さないと。
>>72 QueryPerformanceCounter()使った事あるのか?ないだろ
SetPriorityClass()になぜHIGH_PRIORITY_CLASSや
REALTIME_PRIORITY_CLASSがあるか知ってる?
特にREALTIME_PRIORITY_CLASSはドライバも含めて
最優先順位で実行され、ほとんどノンプリエンプティブのOS上で
動かしているのと同等の実行環境になる
逆に言うとREALTIME_PRIORITY_CLASSを設定して永久
ループに故意に入れるとリセットするしか止める方法がなくなる
>>76 質問w
マルチコアでもリセットしないと駄目になる?
>>77 マルチコアとHTは例外です
でも使用に注意が必要な事には変わりない
俺が言いたかったのは >マルチタスク環境、特にマルチプロセッサとかハイロックプロセッサでは >バックグラウンド処理が多いので、タイマで処理時間計測しても精度が >もともと悪いだろ これはSetPriorityClass()でREALTIME_PRIORITY_CLASSを設定した 場合には当てはまらないという事 マルチコアでも一つのコアが完全に一つのプロセスに占有されるので、極めて 高精度な時間測定が可能
80 :
!=72 :2011/06/05(日) 13:31:01.97
>>76 QueryPerformanceCounterっていうのをつかったことないです。
簡単に調べた感じだと、QueryPerformanceCounterっていうのはハードウェアカウンタを
読み込むだけの処理っぽい気がするけど、プロファイラとどう関係あるの?
>>80 プロファイラには2種類あり、各関数を呼び出す回数を測定するものと、
各関数の消費CPU時間まで測定する物がある
しかし大まかに言って呼び出す回数の多い関数を優先的に高速化すれば
明らかにプログラム全体の実行速度が上がる
QueryPerformanceCounterとプロファイラは関係があるとは一言も言ってない
>>79 GetTickCount() や timeGetTime() に比べて、だいぶマシというだけで、
極めて高精度と言い切るのはどうかと思う。
>>83 x86だとRDTSC読んでるんだぞ
しかも使用するドライバまで全てロックするので、例えマルチコア環境でも
もしそのプロセスがディスクの入出力を行っていたらそのプロセスが終了するまで
他のプロセスはディスクの入出力に割り込めない
マウスもしかり
x86系はデフォで高精度カウンタがあるから、極めて高精度って言い切ってもいいかも
>>83 とにかく一回使ってみてから言ってくれよ、な
実行の度にどの位CPU時間が変化するのかやってみてから言ってくれ
>>84 RDTSCは命令だ。TSCが正しい。
TSCの使用権利がドライバやアプリなどの全プロセスで公平なだけであって、
アプリがRDTSCを実行している間はRDTSCを実行しようとしているドライバが
待たされる可能性があるってことでしょ?
プロセスが終了するまでってのは違うかな。
付け加えて言うと、SetThreadAffinityMask()を使ってコアを一つのスレッドに 固定するとマルチコア環境ではさらに精度があがる というかRDTSCを直接読む場合はSetThreadAffinityMaskを使わないと 意味のない数字が出る確率が高い
コテもつけずに一連の話をブツ切りで出しても分かってもらえないよ
>>87 違う違う
REALTIME_PRIORITY_CLASSの意味をよく考えてくれ
ドライバは大きく分けて二つの部分から出来ている
ストラテジルーチンとボトムハーフからなる
これはマルチプロセス/マルチスレットでは必須の構成である事は
知っているだろう
しかしREALTIME_PRIORITY_CLASSを設定してしまうとストラテジ
への登録すらロックされてしまい、他のプロセスは一切リソースを使う
事が出来なくなってしまう
>>84-87 あ〜、すまん。
PCのシステムクロックを「極めて高精度」と言うとは思わなかったものでな。
>>90 >しかしREALTIME_PRIORITY_CLASSを設定してしまうとストラテジ
>への登録すらロックされてしまい、他のプロセスは一切リソースを使う
>事が出来なくなってしまう
まじすか。。。
ここまでできると理想的な計測環境になるなぁ。
せいぜい、ネットワークからパケット受け取ったりしたときのボトムハーフが動くくらいか。
>>92 それも止まるぞ
俺の所でやってみたらバックグラウンドで高速度でファイル転送中に
REALTIME_PRIORITY_CLASSを設定した実験プログラムを動かしたら
その間ネットの転送が止まった
コマンド終了までの時間計測だけなら timeit コマンドが使える timeit でググって一番上から辿ればおk
だから実際に使用する場合はHIGH_PRIORITY_CLASSまでにしといた方がいい この先はさすがにスレ違いなのでWin32APIスレにでも行こうぜ
>>93 ネットワークドライバはボトムハーフでパケットをキューに積み上げて、
残りの作業をストラテジルーチンへ任せるはずなので(タイマで登録したりする)、
ボトムハーフ部分は動いてると思われ。
ネットワークドライバの送信パケット・受信パケットのカウンタは増えるんじゃないかな。
>>96 それは受信の時の話な
しかもイーサネットコントローラに大きく依存する
送信の時はやはりストラテジ→ボトムハーフの順に進む
というかストラテジに登録しないとボトムハーフが呼び出されないでしょ
>>74 それは信者の基準でメモリーリークしている、というだけで、信者でないあなたが、都合のいいときに信者の基準を持ち出すのは、
バルフォア宣言/フサイン-マクマホン協定/サイクス・ピコ協定並みの三枚舌外交ですね。
お、また頭がおかしいQ何とかが出て来たぞ
せめてKYのとかにしてやれ。
>>98 てめーらから仕掛けてきた宗教戦争でコテンパンにされて教義の修正したうんこは
毒を撒き散らすのはヤメろ。てめーの所為で単位落とすのが出てくるぞ。
Qが他人に二枚舌とか言ってるのを見ると笑うしかないなw
>>103 QZまで書け。でないとアボーン出来ない
おいQ、早く自慢のCore2DuoとPhenomX6のCPU-Zのスクリーンショット貼れや それとも持ってないの?w
>>24 ってキューだろ?
日本語読めなさすぎて吹いたw
>>106 違いますね。私は
>>27 。
それにしても、延々とかまってくれる人がいてうれしいですね。きたるべきモリタポスレでもよろしくお願いいたします。
あえて自分にレスしてごまかしたんだろw
Q一文字で特定される人って、VIP扱いじゃないかw
忙しくて手が付けられなかったけど、やっと双方向リスト(単方向リストでもよい)の アドレスを取得して表にしてそれをソートしてそれを元にリンクを張り直すソートプログラム が完成した 相当速いです 良ければうpします 次はこれとコムソートで直接リンクをいじるソートと速度を比較してみたい
113 :
デフォルトの名無しさん :2011/06/05(日) 19:37:56.15
[1] 授業単元:プログラム [2] 問題文:得点データをバブルソートを用いて国語の得点の大きい順に並び替えよ 番号 国語 数学 01 78 64 02 68 78 03 83 55 04 91 90 [3] 環境 [3.1] OS: Windows 7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語: C [4] 期限: 明日まで
[1] 授業単元:配列 [2] 問題文(含コード&リンク): 10人の身長(cm単位の実数)を入力させ、配列に記憶する。 その後、平均身長を求めて表示した後、10人分の身長を表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>114 #include <stdio.h>
const int PERSONS = 10;
int main()
{
float heights[PERSONS];
int i;
float sum;
for (i = 0; i < PERSONS; i++) {
printf("%d人目の身長: ", i + 1);
scanf("%f", &heights[i]);
}
sum = 0.0;
for (i = 0; i < PERSONS; i++) {
sum += heights[i];
}
printf("%d人の平均身長は%fcm\n", PERSONS, sum / PERSONS);
for (i = 0; i < PERSONS; i++) {
printf("%d人目は%fcm\n", i + 1, heights[i]);
}
return 0;
}
118 :
117 :2011/06/05(日) 21:11:35.67
×compare_language ○compare_japanese ね、スマソ
[1] 授業単元:配列の並び替え [2] 問題文(含コード&リンク): 次の処理を順に行うプログラムを作成しなさい。 要素数5の整数型配列に、すべて異なる整数を入力させる。 入力された順に、配列の中身を表示しなさい。 次に、配列の中身を入れ替え、昇順に並び替えなさい。 並び替えた配列の中身を表示しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
QZとはなにか?
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
>>117 おいおい構造体の交換にmemmoveなんか使うなよ
ANSI-C(C89)から構造体は=でコピー出来るようになってるだろ
こんなの出すつもりか?
それからこの程度の問題にわざわざ関数ポインタを使ってqsort()と同じ形に まとめる理由は?これ初学者が見たら絶対に意味分からないぞ
↓「汎用性」は禁止
>>117 ここまで来たら完全に悪意性があると認められるな
つまり「荒らし」だ
130 :
117 :2011/06/05(日) 22:19:10.20
>>129 ふんふん言われてみれば確かにそうだな
という事はQよりもまだひねくれた奴が潜んでるって事か
でも糞◆QZaw55cn4cみたいに糞トリ付けたり金儲けしようとしたりしてない分マシ
>>117 を提出して講師に「この関数の意味を説明してみたまえ」と言われた時の
>>113 の青ざめた顔が目に浮かぶようだ
ハル研究所がやってたプログラムコンテストみたいなスレってある?
◆QZ*氏はともかく、このスレに巣食っている精神異常者を 排除することが急務だな。
ID表示してみろょ
[1] 授業単元:配列の並び替え [2] 問題文(含コード&リンク): 次の処理を順に行うプログラムを作成しなさい。 要素数5の整数型配列に、すべて異なる整数を入力させる。 入力された順に、配列の中身を表示しなさい。 次に、配列の中身を入れ替え、昇順に並び替えなさい。 並び替えた配列の中身を表示しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
ID表示賛成、変な粘着を排除した方がいい
>>142 このスレのためだけにか?この板の住人全員の同意を得ろよ
勝手過ぎるぞ
粘着するの止めれば良いだけじゃないの?
粘着される方にも問題があると思いますけどね 粘着される奴が一人いるだけで粘着する奴が10人は現れる どう考えても粘着されるような書き込みをする方が悪い
このスレがム板の全てとか勘違いしてるんだろw
Qは勘違いしてそうだな
自治厨はスルーを覚えろよw
>>148 人のせいにばかりしないで少しは自分の悪い点も改善するよう努力しましょうね
◆QZaw55cn4c擁護は◆QZaw55cn4cの自演です
151 :
デフォルトの名無しさん :2011/06/06(月) 01:07:07.95
うんこを擁護してる奴はいない、うんこを叩いている奴を叩いている奴がいるだけだ。
粘着相手に粘着するなって言っても聞くわけない 言えば言うほど、無駄なレスが増えて本人が荒らしになるという矛盾
だからQが出て行くのが一番効率がいい Qが現れる以前は宿題スレは平和だったよな?
>>151 うんこを叩く奴を叩く奴はそいつもうんこっぽい所があるんだろう
それしか考えられない
自分が叩かれているように感じるんだろうな
だから◆QZaw55cn4cが消えるのが一番いいんだよね
>>155 結論はそういう事
しかしQZは究極のKYなんで皆に嫌われている事がちっとも分からないらしく
厚かましく居座るからなあ
「俺にここに来るなと言うのは2chのガイドラインのどこに書いてありますか?」とか
また聞いて来そうだし
屁理屈はもう聞き飽きたよQZ・・・・消えてくれ
アスペはどこに行っても嫌われ者なんだよ
お前が無職なのもそのせいだ
>>156 QZはい続けるよ。
QZがど嫌いなら、嫌いな奴(自分)がスレから消えたほうが
自分自身のためだよ。精神が変になる前に自己防衛したほうが良い
ど嫌いな奴が居るスレへ来るなんって><
↑◆QZaw55cn4c
オーダーどうこう言って反論するからうざいだけ
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
>>161 あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
164 :
141 :2011/06/06(月) 02:23:53.49
>>157 精神は変になりませんのでご安心を
それよりこれからもQZを執拗に叩き続けますよ
バカが最速とか口にすんなw
>>130 汎用的にしたかったとしても、memcpyで目的を果たすことはわからないかな。
オーダー一緒だからとかいって全く変えようとしなかったくせに、 なにいまさらiとかflagとか追加してんの? 昔のままのクソコード貫けよw
なんでバブルソートなの?糞じゃん
バブルソートだと前にこのスレでもあがってた void bsort(int *a, int n) { int i, j, k; for(i = n - 1; i > 0; i = k) { for(j = k = 0; j < i; j++) { if(a[j] > a[j + 1]) { int temp = a[j]; a[j] = a[j + 1]; a[j + 1] = temp; k = j; } } } } が最速だろ
バブルソートよりクイックソートがいいな
>>173 なるほど。
k より大きいところでは、入れ替え不要なんですね。
177 :
デフォルトの名無しさん :2011/06/06(月) 07:26:37.59
[1]C言語 [2]本文 文字列を置換するプログラム <条件> ・右記の配列を使用 char str1[] str2[] syougou[] chikan[] ・str1を先頭からコピーしてstr2を作る このときstr1にsyougouと一致する文字列があればその文字列を見つける毎に文字列chikanに置換 [3] 環境 [3.1]Windows7 [3.2]gcc [3.3]C言語 [4]明日まで [5]string.h標準関数は使っておk
178 :
デフォルトの名無しさん :2011/06/06(月) 07:47:06.34
>>177 です
追加補足です
実行例:
対象文字列を入力してください(str1):aabcabb
照合文字列を入力してください(syougou):ab
置換文字列を入力してください(chikan):ABC
結果文字列は aABCcABCb です
>>178 #include <string.h>
#include <stdio.h>
#define SIZE 1024
int main(){
char str1[SIZE], str2[SIZE], syougou[SIZE], chikan[SIZE];
char *it1 = str1, *it1_pre = str1, *it2 = str2;
printf("対象文字列を入力してください(str1):");
scanf("%s", str1);
printf("照合文字列を入力してください(syougou):");
scanf("%s", syougou);
printf("置換文字列を入力してください(chikan):");
scanf("%s", chikan);
while (it1 = strstr(it1_pre, syougou)) {
strncpy(it2, it1_pre, it1 - it1_pre);
it2 += it1 - it1_pre;
strcpy(it2, chikan);
it2 += strlen(chikan);
it1_pre = it1 + strlen(syougou);
}
strcpy(it2, it1_pre);
printf("結果文字列は%sです\n",str2);
return 0;
}
[1]C言語 [2]本文 ボウリングのスコアを計算するプログラム <条件> ・scanfで1投毎のピンを倒した数を入力する。ストライクを出したらそのフレームの二投目は入力しない。 総合スコアを表示する。10フレームとする。 [3] 環境 [3.1]WindowsXP [3.2]gcc [3.3]C言語 [4]13時まで [5]メイン関数一つの中で行いたい。
>>180 10フレーム目はどうしてほしい?
あとマルチ死ね
10フレーム目はストライクが出れば3回投げるようにしたいです。
本当にありがとうございます。
C/C++言語の問題作るスレはあるか? 唯一の正解はなく、スコアを競う問題を作成して、それを解き競うスレ。
187 :
デフォルトの名無しさん :2011/06/06(月) 18:20:40.72
WindowsVista マイクロソフトビジュアルスタジオ2008 C言語 うるう年を判定するプログラムを作成しなさい 明日まで お願い致します(T人T*)
[1] 授業単元:配列の並び替え [2] 問題文(含コード&リンク): 先手、後手の順番で、x=1,2,3 y=1,2,3の座標の整数値をx yの順番で与えると、その場所に先手ならO、後手なら@を表示して、3目並べを実現するプログラムを作成しなさい。 操作は、先手・後手が交互に座標の数値を1ずつ与えるものとし、入力ミスは考えない。 すでに指定済みの座標かどうかについては判定し、指定済みの座標を入力した場合は、「異常終了」と表示し、プログラムを終了することとする。 この段階では、勝ち負けの判定も行わない。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>187 #include <stdio.h>
int main()
{
int y;
scanf("%d", &y);
printf("閏年%s\n", y % 400 ? y % 100 ? y % 4 ? "じゃない" : "です" : "じゃない" :"です");
return 0;
}
>>189 #include <stdlib.h>
#include <stdio.h>
enum {SENTE = 'O', KOTE = '@', S = '-'};
int main()
{
char masu[3][3] = {{S, S, S}, {S, S, S}, {S, S, S}};
int i, j, k;
int x, y;
for (i = 0; i < 9; i++) {
scanf("%d%d", &x, &y);
if (masu[x - 1][y - 1] != S) {
fprintf(stderr, "異常終了\n");
return 1;
}
masu[x - 1][y - 1] = i % 2 ? KOTE : SENTE;
for (k = 0; k < 3; k++) {
for (j = 0; j < 3; j++) {
putchar(masu[j][k]);
}
putchar('\n');
}
}
return 0;
}
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>189 のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:明日まで
[1] プログラミング言語U [2] 問題文(含コード&リンク): ボタンを押して別の外部アプリケーション(.exeファイル)を実行するMFCソフトを作成せよ [3] 環境 [3.1] OS: win7 64bit [3.2] コンパイラ名とバージョン:VC2010 [3.3] 言語:C++ [4] 期限: 16日まで [5] その他の制限: 特にありません。.exeファイルは適当なもので構わないとの事です。 ShellExecute()を用いる事は調べてみて分かったのですがどの様に用いるのかがわからないです。
vs2010pro持ち待ちか
>>194 完成品のソース、一番シンプルな状態からメニューバーに test.exe を実行する項目追加した
MFCは共有DLLにしてる、ビルドして何か適当な test.exe って名前の実行ファイルを同ディレクトリに放り込めば動作確認できるはず。
パス: 194
ttp://www.rupan.net/uploader/download/1307371152.zip これだけだと何なので上記ソースの作成手順も
----------メニュー作成手順-------------
1.何でもいいのでウィザードに任せて新規プロジェクト作成
2.リソースファイル(プロジェクト名.rc)を開く
3.リソースファイルのMenu項目の IDR_MAINFRAME に、新たにメニューを追加
※俺の場合だと、ヘルプの右に 外部の実行ファイル(&O) を追加し、
そのサブメニューに test.exe を追加
4.サブメニュー test.exe のIDを分かりやすいIDにしておく
※プロパティの項目ID、俺の場合だと、ID_EXE1
-----------メニューと関数の紐付け手順----------
1.プロジェクト → クラスウィザード
2.クラス名はCXXXViewを選択
3.オブジェクト IDからサブメニュー test.exe のIDを選択
※俺の場合だと、ID_EXE1
4.メッセージは COMMAND を選択
5.ハンドラーの追加 ボタンを押下
-----------処理実装手順--------------------
1.CXXXViewに新たに関数が追加されているはず
※俺の場合は OnExe1
2.その中に ShellExecute(0, 0, L"test.exe", 0, 0, SW_SHOWNORMAL); を記述
メニューと関数の紐付け手順 はクラスウィザード使わない方法もあるけど、使った方が楽かも。
197 :
196 :2011/06/07(火) 00:19:36.94
ああリボン使う場合は上の手順だと駄目だわ。
[1] プログラミング言語C [2] 問題文(含コード&リンク): 10個のデータを配列a[ ]に入力し、直接挿入法を用いて数値を小さい順に並べ替えて表示せよ [3] 環境 [3.1] OS: win7 64bit [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C++ [4] 期限: 8日 [5] その他の制限: よろしくお願いします。
[1] 授業単元:C
[2] 問題文(含コード&リンク):
>>189 のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:今日まで
>>198 #include <stdio.h>
int main(void)
{
int a[10], i, j;
for(i = 0; i < 10; i++) scanf("%d", a + i);
for(i = 1; i < 10; i++) {
int temp = a[i];
for(j = i - 1; j >= 0 && temp < a[j]; j--) a[j + 1] = a[j];
a[j + 1] = temp;
}
for(i = 0; i < 10; i++) printf("%d ", a[i]);
return 0;
}
>>201 ありがとうございます。
すみません、数値をscanfで読み込む形にして貰えますか?
【質問テンプレ】 [1] 授業単元:プログラム言語 [2] 問題文:コマンドプロンプト上で名前と 国語、社会、数学、理科、社会の5科目の成績を入力して、 それをバイナリファイルで保存するプログラムを作成せよ。 保存するファイル名はこれらを入力する前、つまり一番最初に入力して そのファイル名で保存するものとする。 30件の入力があるか、EOFの入力を持って入力を終了するものとする。 また、これとは別に入力して作成されたバイナリファイルを開く プログラムを作成すること。 sample 保存したいファイル名:student.dat 名前:tanaka 国語:65 社会:80 数学:54 理科:71 英語:48 ・ ・ ・ ※30件かEOFの入力を持って終了 プログラムを開くほう sample オープンしたいファイル:student.dat tanakaさんの成績 国語:65点 社会:80点 数学:54点 理科:71点 英語:48点 ・ ・ ・
長文投稿できなかったので2回に分けました。 [3] 環境 [3.1] OS: Windows 7 Pro [3.2] コンパイラ名とバージョン: visual studio [3.3] 言語:C言語 [4] 期限: 2011年6月10日(金)17時まで [5] その他の制限:fseek関数を使うこと。 よろしくお願いします。
バイナリファイルとしてオープンできないテキストファイルをQZさんが作ってくれるでしょう
◆QZaw55cn4cって糞だよなぁ
>>204 C言語久しぶりだし
デバッグもしてない
とりあえず書き込むプログラムだけ書いた間違いがあればよろしく
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
typedef struct Record{
char Name[256];
int Language;
int Social;
int Math;
int Science;
int English;
}Record;
int main()
{
char temp[256] = {'\0'};
FILE *fp;
char *p;
int i;
Record *rec;
printf("保存したいファイル名:");
fgets(temp,sizeof(temp),stdin);
if(p = strchr(temp,'\n'))
*p = '\0';
fp = fopen(temp,"wb");
209 :
208 :2011/06/07(火) 08:02:06.95
続き for(i = 0;i<30;i++){ rec = realloc(rec,sizeof(Record)*(i+1)); printf("名前:"); fgets(temp,sizeof(temp),stdin); if(p = strchr(temp,'\n')) *p = '\0'; strcpy(rec[0].Name,temp); printf("国語:"); fgets(temp,sizeof(temp),stdin); rec[0].Language = atoi(temp); printf("社会:"); fgets(temp,sizeof(temp),stdin); rec[0].Social = atoi(temp); printf("数学:"); fgets(temp,sizeof(temp),stdin); rec[0].Math = atoi(temp); printf("理科:"); fgets(temp,sizeof(temp),stdin); rec[0].Science = atoi(temp); printf("英語:"); fgets(temp,sizeof(temp),stdin); rec[0].English = atoi(temp); fwrite(&rec[0],sizeof(Record),i+1,fp); puts("終了する場合はEOF(WindowsならCtrl+z)入力それ以外は何か押してください。"); if(EOF = getchar()) break; } fclose(fp);free(rec);return 0; }
仮引数を使う問題じゃなくて、コードの見栄えを短くみせるために単項演算子を誤って使う問題で これはプログラム以前のプログラマの性格や精神状態の問題だと 答えておけ
なんで割ってるんだろう
[1] 授業単元:プログラミング:Windowsプログラミング演習 [2] 問題文(含コード&リンク): GUIアプリケーション メニューから任意のテキストファイルを読み取る システム標準フォントとTextOut-APIを用いて、できるだけ小さなポイントで そのテキストファイルの任意の文字をモノクロビットマップに書き出しそのピクセル 情報を元に、塗られているピクセルをそれがあらわす文字で、塗られていないピクセル を空白で置き換えたテキストファイルを生成し、適当なファイル名で保存する。 (メッセージボックスでどのファイルで保存したのかを通知すること) 以上の処理を繰り返す。 [3] [3-1]OS:Windows 7 [3-2]コンパイラ名とバージョン:Microsoft SDK [3-3]言語:C++ (ただしMFCは使用しないこと) [4] 期限:7/1まで [5] その他の制限:UNIXのbannerコマンドに相当するものだそうです。全角・半角の扱いは見栄え良く やれば任意だそうです。
215 :
209 :2011/06/07(火) 08:47:22.57
一応訂正 for(i = 0;i<30;i++){ rec = realloc(rec,sizeof(Record)*(i+1)); printf("名前:"); fgets(temp,sizeof(temp),stdin); if(p = strchr(temp,'\n')) *p = '\0'; strcpy(rec[i].Name,temp); printf("国語:"); fgets(temp,sizeof(temp),stdin); rec[i].Language = atoi(temp); printf("社会:"); fgets(temp,sizeof(temp),stdin); rec[i].Social = atoi(temp); printf("数学:"); fgets(temp,sizeof(temp),stdin); rec[i].Math = atoi(temp); printf("理科:"); fgets(temp,sizeof(temp),stdin); rec[i].Science = atoi(temp); printf("英語:"); fgets(temp,sizeof(temp),stdin); rec[i].English = atoi(temp); puts("終了する場合はEOF(WindowsならCtrl+z)入力それ以外は何か押してください。"); if(EOF = getchar()) break; getchar(); } fwrite(rec,sizeof(Record),i+1,fp); fclose(fp);free(rec);return 0; }
>>212 noが負でも対応しようとして失敗してるんじゃね?
>>211 コードを短く書くことは、見通しを良くするので、旨くいけば美文として
すごく褒められるけど、
修正しにくくしたり、特に結果的に誤った場合はこっぴどくけなされるね
ま、要するに際どい技術というわけだ
218 :
デフォルトの名無しさん :2011/06/07(火) 09:01:58.53
>>210 違い:
dxのno乗を返す: 正しく動作しない。
dxのno乗を返す(第2版): 正しく動作する。
理由 両方とも不要な割り算が記述されているが、第2版では2つ目のwhileは条件が
成立しないために実行されずに、正しく動作する。
仮引数を直接使うことの利便性と危険性:
利便性: 不要な変数宣言を書かずに済む。メモリ使用量も少なくなる。
危険性: Cは値渡しなので全くない。
例えば第2版を仮引数を直接使わない↓のように変更しても動作は同一である。
double power(double dx, int no_)
{
int no = no_;
問題として回答が 無い ってことはあまりないだろうから 多分うっかり引数を変更したことを忘れて使っちゃう可能性だろうか
>>218 両方正しく動作しねーよ
これ書いた奴どんなアホだよ
>>217 そりゃ、カレーの香りがする奴を食べたら実はウンコだったら
怨念と憎悪がするのは当たり前だ(最大限ガードを甘く
している状態に強烈なカウンターだからね)w
これっていうのは問題文添付のプログラムのほうね
223 :
デフォルトの名無しさん :2011/06/07(火) 10:39:09.80
>>219 それは引数に限らず変数でも起こる危険性。
225 :
デフォルトの名無しさん :2011/06/07(火) 13:43:58.84
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク):下記に記載 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 2011/6/10 国語と数学の2科目のテストの成績を処理するプログラムを作る。成績を3人分キーボードから入力した後、それを表示したい。これについて、次の手順でkadai8-1.cを作成しなさい。 1)次の構造体を利用する。 struct SEISEKI { char name[50]; int kokugo; int sugaku; } 2) 次の配列を用意する。 struct SEISEKI score[3]; 3) main関数で上記score[3]に次のようにデータをキーボード入力するようにする。 scanf("%s %d %d %s %d %d %s %d %d", 一人目の氏名, 一人目の国語の成績, 一人目の数学の成績, 二人目の氏名, 二人目の国語の成績,....); ex. 入力例: yamauchi 60 70 yamada 80 90 tougou 70 80 4)次の関数を定義する。 void print_score(struct SEISEKI a); この関数は次のように成績を出力するものとする。 printf(" name: %s\n kokugo: %d\n sugaku: %d\n", ........); 表示例: name: yamauchi kokugo: 60 sugaku: 70 5) void print_score()を使って3人分の成績を列挙する。 よろしくお願いします。
226 :
デフォルトの名無しさん :2011/06/07(火) 13:48:59.01
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):下記に記載
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011/6/10
>>255 のプログラムにそれぞれの成績がborderlineで表される成績を上回っているか否かを判定して、構造体のメンバーであるkokugo_gokakuおよびsugaku_gokakuに1(合格の意味)もしくは0(不合格の意味)の値を代入する関数
void check_score(int borderline, struct SEISEKI *a) /* 引数aの前に'*'が付いていることに注意されたい */
を定義して、その動作を確認するプログラムkadai8-2.cを作りなさい。
但し、ボーダーラインは60点とする。
1) 問1の構造体を拡張して以下を使う。
struct SEISEKI {
char name[50];
int kokugo;
int sugaku;
int kokugo_gokaku;
int sugaku_gokaku;
}
あやしげな入力例からするとfor文つかっちゃだめか?
for文はシンタックスエラーになるから使っちゃだめ。
229 :
デフォルトの名無しさん :2011/06/07(火) 17:37:38.45
質問テンプレ [1] 授業単元:プログラミング [2] 問題文:ニュートン・コーツの2点、3点、4点、5点公式を用いて ∫f(x)dx=∫(x^3+sin(πx))dx (範囲は両辺とも0〜2) を計算するプログラムを作成しなさい。 [3] 環境[3.1] OS:Windows7? [3.2] すいません、わかりません。 [3.3] 言語:C言語 [4] 期限:2011年6月8日 AM10:00 まで よろしくお願いします!
230 :
229の追記です :2011/06/07(火) 17:47:58.29
229の追記です。 厳密解 ∫f(x)dx=∫(x^3+sin(πx))dx=[(x^4/4ー1/π)cos(πx)]=4,0 範囲はすべて0〜2です。 よろしくお願いします。
231 :
204 :2011/06/07(火) 19:49:53.62
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>189 のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:今日まで
>[4] 期限:今日まで いつ提出するんだよww
235 :
デフォルトの名無しさん :2011/06/07(火) 21:20:34.04
[1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク): キーボードから西暦を表す4桁の数字を数値として読み込み、閏年かどうか判定する。 入力された西暦年が1000年以上4000年いかでなければ、その旨を指示してプログラムを終了する。 閏年の条件:4で割り切れるが100で割り切れない年を閏年とする。ただし400で割り切れる年を閏年とする。 それ以外の年は平年とする。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: わかりません [3.3] 言語: C言語 [4] 期限: 2011年6月7日26:00 [5] その他の制限: 特になし
>>235 #include <stdio.h>
#include <stdlib.h>
int main(void)
{
int year;
printf("西暦を入力(1000 〜 4000) : ");
scanf("%d", &year);
if (!(year >= 1000 && year <= 4000)) {
printf("西暦は1000 〜 4000年を入力して下さい。\n");
exit(1);
}
if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
printf("%d年は閏年です。\n", year);
else
printf("%d年は平年です。\n", year);
return 0;
}
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>191 のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン:Visual Studio 2008
[3.3] 言語:C
[4] 期限:今日まで
[1] 授業単元:配列の並び替え [2] 問題文(含コード&リンク): 整数Nとしたとき、素数をN個リストアップするプログラムを作成しなさい。 ※実行にあたり、Nの値を小さな値から慎重に変化させ、結果とプログラム動作の変化に注意すること ※N=1としたとき、答えは1ではありません [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>237 修正部分だけ
//fprintf(stderr, "異常終了\n");
printf("%s\n",i % 2? "後手の負け":"先手の負け");
・
・
・
printf("試合終了\n");
return 0;
}
>>239 #include <stdio.h>
int main(void)
{
int i, n, s[100] = {2}, nn = s[0] + 1;
printf("N = ");
scanf("%d", &n);
while (n - 1) {
for (i = 0; s[i] && (nn % s[i]); i++);
if (!s[i]) {
s[i] = nn;
n--;
}
nn++;
} for (i = 0; s[i]; i++)
printf("%d ", s[i]);
return 0;
}
242 :
デフォルトの名無しさん :2011/06/08(水) 00:50:04.92
問テンプレ [1] 授業単元:プログラミング [2] 問題文:ニュートン・コーツの2点、3点、4点、5点公式を用いて ∫f(x)dx=∫(x^3+sin(πx))dx (範囲は両辺と 0〜2) を計算するプログラムを作成しなさい ※厳密解 ∫f(x)dx=∫(x^3+sin(πx))dx=[(x^4/4ー1/ π)cos(πx)]=4,0 範囲はすべて0〜2です [3] 環境[3.1] OS:Windows7? [3.2] すいません、わかりません [3.3] 言語:C言語 [4] 期限:2011年6月8日 AM10:00
>>229 できたけどしつこい奴のようなので貼るのは止めよう
ニュートン・コーツ公式においてn=1と置くと台形公式、n=2とおくとシンプソン公式になるよな N=3〜5は何だ?
246 :
デフォルトの名無しさん :2011/06/08(水) 02:29:27.99
>>243 すいません。
>>244 n=2→台形則
n=3→シンプソン第一則
n=4→シンプソン第二則
n=5→書いてありません
>>245 ありがとうございます。
他の方のプログラミングも見たいです。よろしくお願いします。
ググればいくらでも見れるだろ
n=5はブール則だね
しかし
>>245 が短くてワロタ
俺の作っていた奴は長くなった
[1]C文解釈演習 [2]次のコードを並べ替えて正しく動作するようにしなさい。 return power(a,b+1)/a; static double power(double a,int b){ sscanf(input,(isDouble)?"%lf":"%d",(isDouble)?&result.doubleValue:&result.intValue); printf("%s",msg); ret=readConsole("b=",0); ret=readConsole("a=",1); } static char input[128]; return_value result; }while(ret.doubleValue<0.0); } if(b==0)return 1.0; int main(void){ return 0; return result; int intValue; printf("a^b=%16.15lf\n",power(ret.doubleValue,ret.intValue)); double doubleValue; return_value ret; typedef union{ static return_value readConsole(char *msg,int isDouble){ #include <stdio.h> if(b>0)return power(a,b-1)*a; fgets(input,128,stdin); }return_value; } do{ [3] Mac OSX 10.5/XCode/C [4] 6/8 正午まで [5]ゼミの課題です。この手の問題は苦手です。
252 :
デフォルトの名無しさん :2011/06/08(水) 03:23:13.66
[1] 授業単元:メモリアクセスと処理時間
[2] 問題文(含コード&リンク):
以下のプログラム(
http://ideone.com/RzU5e )は値を3倍し、また画像サイズを変えてコピーする時間を測定するというものです。
測定方法はgcc -Wall -o2 -DCSQ(DCIP) ファイル名でコンパイルし、time a.outで消費時間を測定しました。
画像サイズは10,20,50,100,200,500,1000,2000,5000,10000と変えていきました。
(1)CSQとCIP形式ではなぜ違いが出るのか?
(2)ループの順番を最も内側(k)のfor文を一番外側に移動(k,i,j)した場合はなぜ違いが出るのか?
(3)ポインタを利用したコピーではなぜ違いが出るのか?
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C言語
[4] 期限:6月9日12時まで
[5] CSQとCIPの違いだけでも教えて頂ければ幸いです。
254 :
249 :2011/06/08(水) 03:37:02.83
>>249 この問題は正しく動作しない
一つの union 変数に実数と整数を代入してるから実数が上書きされて誤った答えとなる
256 :
253 :2011/06/08(水) 07:54:10.37
257 :
246 :2011/06/08(水) 09:06:52.74
皆さんありがとうございます。
258 :
デフォルトの名無しさん :2011/06/08(水) 11:08:27.18
誰か225,226わかりませんか?
259 :
デフォルトの名無しさん :2011/06/08(水) 11:23:48.11
>>252 (1):CIPは同じセクタに書き込んだ回数分書き込みをするから遅い。1セクタが512バイトなら1バイト書き込む度に512バイト書き込まれる。
(2):不連続なメモリアクセスはキャッシュミスでペナルティが発生して遅くなる。
(3):ポインタの場合アドレスの算出が必要ないのと繰り返し少ない分早いとかそんなのかと。
>>258 struct SEISEKI
{
char name[50];
int kokugo;
int sugaku;
int kokugo_gokaku;
int sugaku_gokaku;
};
void print_score(struct SEISEKI a)
{
printf(" name: %s\n kokugo: %d\n sugaku: %d\n", a.name, a.kokugo, a.sugaku);
return;
}
void check_score(int borderline, struct SEISEKI *a)
{
a->kokugo > borderline ? a->kokugo_gokaku = 1 : a->kokugo_gokaku = 0;
a->sugaku > borderline ? a->sugaku_gokaku = 1 : a->sugaku_gokaku = 0;
return;
}
int main(void)
{
int i;
struct SEISEKI score[3];
scanf("%s %d %d %s %d %d %s %d %d", &score[0].name, &score[0].kokugo, &score[0].sugaku, &score[1].name, &score[1].kokugo, &score[1].sugaku, &score[2].name, &score[2].kokugo, &score[2].sugaku);
for (i = 0; i < 3; ++i)
{
check_score(60, &score[i]);
print_score(score[i]);
}
return 0;
}
261 :
デフォルトの名無しさん :2011/06/08(水) 11:41:55.56
262 :
デフォルトの名無しさん :2011/06/08(水) 15:23:58.98
[1] 授業単元:C言語 [2] 問題文: 構造体trinagleを typedef struct{ double x,y; } Point; typedey struct{ Point p1,p2,p3; } Trinagle; とする。 構造体の構成要素は3つの頂点のx座標、y座標をメンバとして持つ構造体Pointである。 任意の三角形の面積、その三角形を適当な2×2行列で線形変換した結果の三角形の座 標とその面積、任意の二つの三角形が合同かどうかを表示するプログラムを作りなさい。 [3] 環境 [3.1] windows7 [3.2] gcc [3.3] C [4] 期限:明日の午後4時まで [5] 特になし
263 :
デフォルトの名無しさん :2011/06/08(水) 15:29:12.24
>>149 書ききれなかったので補足です。
1つのTriangle構造体の変数を引数としてその構造体が表す関数、1つのTriangle構造体の変数と、
double型の2次元配列(2×2行列A)を引数として引数で与えた三角形を行列Aによって線形変換した後
の三角形(Triangle構造体)を返す関数、2つのTriangle構造体の変数を引数としてその構造体が
合同であれば1、合同でなければ0を返す関数を作成してください。
よろしくお願いします。
266 :
デフォルトの名無しさん :2011/06/08(水) 18:36:01.78
>>262 です
265さんありがとうございますm(_ _)m
>>264 #include <stdio.h>
#include <stdlib.h>
int main()
{
int output_count;
int c;
FILE *fp;
if ((fp = fopen("list0602_03.txt", "r")) == NULL) {
printf("ファイルを開けませんでした。");
exit(1);
}
output_count = 0;
while ((c = fgetc(fp)) != EOF) {
if (c != '\n') {
putchar(c);
output_count++;
if (output_count >= 30) {
putchar('\n');
output_count = 0;
}
}
}
fclose(fp);
return 0;
}
269 :
デフォルトの名無しさん :2011/06/08(水) 22:12:11.70
[1] 授業単元:Cプログラミング [2] 問題文:2つの正の整数値を入力させ四則演算の結果を表示させる。 [3] 環境[3.1] OS:Windows [3.2] [3.3] 言語:C言語 [4] 期限:今日の24:00までです。 よろしくお願いします。
[1] 授業単元:配列 [2] 問題文(含コード&リンク): 要素数10の整数型配列を作成し、初期化の時に10個の任意の数値を代入して置く。 1つの整数を入力させ、その整数が、配列の中に何個あるか、または、存在しないかを表示するプログラムを作成しなさい。 例:配列が{9, 1, 2, 3, 4, 5, 6, 7, 8, 9}のとき 1を入力したら、「1個あります」→終了 9を入力したら、「2個あります」→終了 10を入力したら、「存在しません」→終了 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:今日まで
271 :
デフォルトの名無しさん :2011/06/08(水) 22:38:24.31
訂正 [4] 期限:明日まで
273 :
デフォルトの名無しさん :2011/06/08(水) 23:41:34.86
[1] 授業単元:プログラミングT [2] 問題文(含コード&リンク): 入力された整数値の絶対値を求める関数abs()を作成する。 @「処理概要」入力された整数値の絶対値を求める関数abs()を呼び出し、戻り値を出力する。 「呼び出し形式」int main(void) A「処理概要」引数で受け取った値の絶対値を返す。 「呼び出し形式」int abs (int dat) [3] 環境 [3.1] OS:unix [3.2] コンパイラ名とバージョン: [3.3] 言語:C言語 [4] 期限:6/9 9:00まで。
>>273 #include <stdio.h>
int abs(int dat)
{
return (dat < 0) ? -dat : dat;
}
int main()
{
int n;
printf("正数値を入力: ");
scanf("%d", &n);
printf("|%d| = %d", n, abs(n));
return 0;
}
276 :
デフォルトの名無しさん :2011/06/09(木) 00:09:42.38
[1] 授業単元:組み込みプログラミング
[2] 問題文(含コード&リンク):得られた実験データを近似関数で表す
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: なし
[5] その他の制限:特に無し
http://ideone.com/xMqLt 関数を使ってループをさせているのですが、約二万回のループをすると
Segmentation faultになってしまいます
このループを100万回ほどさせたいのですが、Segmentation faultを回避する方法はありますか?
[1] 授業単元:配列 [2] 問題文(含コード&リンク): 入力する値は0以上の整数とし、下記の動作するプログラムを作成しなさい。 要素数10の整数型配列を作成し、入力された0以外の数値のうち、これまで入力されていない値だけを追加、記憶させる。 追加登録を行った場合には、現在何個の数値が記憶されているかを表示させる。 0が入力された場合、または10個の値の登録が完了した場合は、記憶している全ての情報を表示して、プログラムを終了させる。 例:5 例:1 1個登録 1個登録 5 2 既に登録あり 2個登録 3 … 2個登録 10 0 10個登録 [5 3]を登録しました 登録上限に到達 [1 2 3 4 5 6 7 8 9 10] [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:今日まで
>>276 それ宿題依頼じゃなくプログラムのバグつぶしじゃないのか?
>>276 ぱっと見だけど、スタックが足りなくなってるんだと思う、
んで、スタックサイズ何だけど、オプション指定しないとデフォルトで1MBだったはず、
calculateは良いとして、
randamu と judgeが循環参照の再帰呼び出しになってて、
randamuは272byte、judgeは300byteのスタックサイズが必要、
1ループで572byte+α、100万回ループで572MB+αのスタックサイズが必要な計算。
ソースを未修正で実行させないなら、
コンパイルする時にスタックサイズを下記の様に指定して上げればいけるはず
※ちなみにスタックサイズのデフォルトは1MBだったはず
gcc -Wl,--stack,600000000 hoge.cpp
↑は、hoge.cppをスタックサイズ600MB割り当ててコンパイルしている。
もしくは再帰ループをやめて普通のループに直すか。
281 :
280 :2011/06/09(木) 00:55:35.29
スタックサイズ云々2回書いちゃった
282 :
280 :2011/06/09(木) 00:58:39.77
ん・・・、てか2万回で落ちるのなら計算が合わないな
>>278 あーやっぱそうですよね、ごめんなさい
>>279 randam→judge→randam→jugde→・・・
のループです
>>280 スタックサイズ?そんな概念があったのですか。
ヒントを元にコンパイルしてみます
ありがとうございました
>>283 同じく 21831 回でセグフォしました @ Mac OS X 64bit
ulimit -s unlimited したら 174738 回まで行けたよw
ソースコードきちんと読んでないけど、再帰をループに書き直すのが吉と思われます
285 :
デフォルトの名無しさん :2011/06/09(木) 01:20:52.42
よくわからんのですが、gcc -Wl,--stack,600000000 hoge.cpp でコンパイルが できなかったのでググッてみたのですが >> Ubuntuでは(というかLinux全般、もしかしたらFreeBSDも?)そもそもldに >> --stackオプションを与えても「そんなオプションは知らん」と言ってきます。 んで、コンパイル後に ulimit -s ,600000000 と打ち込んで実行したところ動きました
>>285 >よくわからんのですが
関数を呼び出すごとに、メモリ上のスタック領域に関数の引数やローカル変数を
書き込んで行って、関数が終了する度にそれを解放して行きます。
関数の中で関数を読んで、更にまた関数を呼ぶというプログラムを書くと、
スタック領域のデータが解放されずにどんどん溜まって行きます。最終的には
スタック領域がいっぱいになって、プロセスが異常終了以上乙でした状態に
なってしまいます。
judge() も randomu() も自分の仕事が終わったら return する様にして、
main() の中で for とか while でループを作って judge() や randomu() を
呼び出す様にすると解決出来ると思います。
287 :
デフォルトの名無しさん :2011/06/09(木) 01:35:27.70
>>286 詳しい説明ありがとうございます。
基礎から勉強しなおします。
もなちゃとで喧嘩してボコボコにされました。
ここの住人を煽ったり罵倒したりすると、どうなるんですか? 僕は罵倒と煽りが趣味なんですがねぇ。 マジどうなるんすかねぇ^^; やっぱり、ここの住民の抱腹は叩きじゃなくて 個人情報ばらまいたり、PCぶっ壊したりしちゃうんですか?
それはいけない事だと思います。
罵倒と煽りが趣味って、どんだけ惨めな人生おくったらそうなるんだろうな あまりの哀れさに、涙が止まらない
293 :
デフォルトの名無しさん :2011/06/09(木) 10:46:20.13
入力された数が奇数か偶数かを判断するプログラムをswitch文で作成しなさい。 お願いします。
#include <stdio.h> int main(void) { int n; scanf("%d", &n); switch(n % 2) { case 0 : printf("偶数\n"); break; case 1 : printf("奇数\n"); break; } return 0; }
295 :
デフォルトの名無しさん :2011/06/09(木) 11:02:24.77
ありがとうございます。 もうひとつお願いします。 switch文で60より下なら不可、60〜69なら可、70〜79まで良、80〜100まで優という成績判定プログラムを作成しなさい。 お願いします。
[1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): 中心座標(1.0 , 2.5)、半径 5.0 の円軌道上に存在する全ての x,y 座標を ”circle.csv”へ出力せよ。 尚、ラジアンの刻み幅は 0.01 ,π= 3.14 とする。また、csvファイルをExcelで開き、グラフで図形を確認すること。 X=5.0 * Sin(rad) + 1.0 Y=5 * Cos(rad) + 2.5 [ 0 ≦ rad < 2π ] [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限: 6月15日09:00まで [5] その他の制限: ありません。
>>296 #include <stdlib.h>
#include <math.h>
#define PI 3.14
int main()
{
double rad;
FILE * fp;
if (!(fp = fopen("circle.csv", "w"))) {
fprintf(stderr, "error\n");
return 0;
}
for (rad = 0; rad < 2.0 * PI; rad += 0.01) {
fprintf(fp, "%f, %f\n", 5.0 * sin(rad) + 1.0, 5 * cos(rad) * 2.5);
}
fclose(fp);
return 0;
}
x成分が sin で表現 y成分が cos で表現 ってちょっと違和感あるな
300 :
デフォルトの名無しさん :2011/06/09(木) 12:36:05.62
>>298 とり得る値の数だけ case 列挙する以外だと
条件式非成立で 0 とそれ以外の分岐を switch のネストで記述するぐらいかね?
switch (点数 <= 60) {
case 0:
switch (点数 <= 69) {
case 0:
switch (点数 <= 79) {
・・・ 以下続く
}
default:
/* 可*/
}
break;
default:
/* 不可*/
}
vs2008なら動きそうだけどprintf系でlfは減点されそうだな
>>295 ,298
これならどうだろ。
switch (n / 10) {
case 6:
printf("可¥n");
break;
case 7:
printf("良¥n");
break;
case 8:
printf("優¥n");
break;
case 9:
printf("優¥n");
break;
case 10:
printf("優¥n");
break;
default:
printf("不可¥n");
break;
>>303 優三つはまとめなよwwwww
問題の範囲外ではあるが1−100以外の点数を考えるとやっぱりswitch向きじゃないよなこの問題
文型IQ92くらいの僕がプログラマーになるって可能ですか? 学歴は脱糞高等学校主席(後ろから数えて)卒業。 趣味は脱糞と自慰行為。 好きな番組はテレフォンショッピング。 好きなサイトはカリビアンコム。 とある掲示板にて、プログラミングするには、 言語を勉強しないといけないと聞いたので、何言語を学べばいいか聞くと 「中国語」だと言ってました。本当ですか? しかし、このスレを見ると英語に見えるんですがねぇ^^; これは僕に対する、皆さんによる釣り行為ですかねぇ^^; 僕はこんな釣りに釣られるような馬鹿じゃないんですがねぇ。 おちょくってるんですか?なめんなよコラ^-^;
どうしてもswitch使えと言われたら、 スクリプトでcase 0から100まで生成するかなあw
>>304 奇数/偶数判定との対比で switch に向いた条件付けって何だろう と考えさせる為の問題だったらすごいな
すいませんでした。許してください。
まあ、軽くc++ってのを検索してきたけどさ。 余裕だな。 俺からすれば余裕 マスターするのに15年程度のレベル
311 :
デフォルトの名無しさん :2011/06/09(木) 13:47:32.40
たぶんfall throughの勉強させたいんじゃないの? 全部のcase書いて、breakの位置で処理分けするのが目的な気がする。
それなら0〜100である必要はないんじゃないか。無駄に多すぎる もっと点数を減らすとか、アルファベットとかのほうが適当なはず
[1] 授業単元: Cプログラミング [2] 問題文(含コード&リンク): ファイル ”test.txt”から文字列を読み込み、並びを逆にしてファイル ”sample.txt”に出力するプログラムを作成せよ。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限: 6月16日12:00まで [5] その他の制限: ”test.txt”の中身は ”Abcde1Fghij2Klmno3Pqrst4”です。
swich( (int)(Tokuten)/10 ){ case 0: case 1: case 2: case 3: case 4: case 5: return "不可"; case 6: return "可"; case 7:return "良"; case 8: case 9: case 10: return "優"; default: return "氏ね"; }
315 :
デフォルトの名無しさん :2011/06/09(木) 14:05:43.06
60未満はdefaultで処理できるわけだから、caseはそんなに多いとは思えないけどなー。 課題なんだし。
switch((x>=60)+(x>=70)+(x>=80)+(x>100)) { case 0: puts("不可"); break; case 1: puts("可"); break; case 2: puts("良"); break; case 3: puts("優"); break; default: puts("未定義"); break; }
317 :
デフォルトの名無しさん :2011/06/09(木) 15:21:19.01
>>288 題意を満たしてなくね?
最後の出力が
[1 2 3 4 5 6 7 8 9 10 2147344384 10 1 4199032 5457731 1245112 851035066 1 153598
64 15510096 18 ]
となってしまう
>>300 C99で書かれているから for (double rad = の部分がコンパイルエラーになるんだが
VS2010 Cモード
>>317 これも
for ( int i = の所でコンパイルエラー
VS2010 Cモード
>>277 #include <stdio.h>
int main(void)
{
int i, j, n, a[10];
for( i = 0; ; ) {
scanf("%d", &n);
if(n == 0) {
if(i) {
printf("[%d", a[0]);
for(j = 1; j < i; j++) printf(" %d", a[j]);
printf("]を登録\n"); }
break; }
for(j = 0; j < i; j++) if(a[j] == n) {
printf("既に登録あり\n");
goto L;}
a[i++] = n;
printf("%d個登録\n", i);
if(i == 10) {
printf("\t登録上限に到達\n[%d", a[0]);
for(j = 1; j < i; j++) printf(" %d", a[j]);
printf("]\n");
break; }
L:;}
return 0;
}
324 :
デフォルトの名無しさん :2011/06/09(木) 19:51:07.73
大物が来たw
328 :
デフォルトの名無しさん :2011/06/09(木) 20:17:54.75
>>325 メモリリーク
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
ゴミコードよりマシなコード書かれてトリップやめたはずなのに、 恥ずかしげもなくまたつけて解答者面かよw 自分に有利なルールにしたあげく、それすら守れないって根っからのクズだな
大御所が出てくるとみんな盛り上がるなww
メ欄もスカってるしな
>>328 malloc()/free() を使っていないのにメモリーリークとはこれいかに?
335 :
デフォルトの名無しさん :2011/06/09(木) 21:57:39.74
>>333 sbrk呼んでる。
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
お前しかたないですよね言いたいだけちゃうんかと
>>335 それはmalloc()/free() 信者の基準でも、あなたの普通のコーディング時の基準でもなく、単にあなたが反証のために勝手に例示しただけの、私も相手にしていないところの、どうでもいい基準ですね。
それと、これは純粋な質問ですが、
今、K&R2 の 8.7 を見ていますが、sbrk() は malloc()/morecore() の中でしか呼び出されてないようですよ。それとも、普通はスタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?
339 :
デフォルトの名無しさん :2011/06/09(木) 22:22:52.40
てめーはしかけた宗教戦争で負けたんだよ。敗者は勝者が押し付けたルールに従え。 ・明示/暗黙を問わず、確保したメモリはプログラム終了前に必ず開放する事。 これがてめーが従うべきルールだ。これを守れない回答は許さない。 > 今、K&R2 の 8.7 を見ていますが、sbrk() は malloc()/morecore() の中でしか呼び出されてないようですよ。それとも、普通はスタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか? バカ丸出しだな。直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
>>339 おかしいですね。勝者であるあなたのルール(dangling pointer が発生しさえしなければ free() しなくてもいい)ならば喜んで従いますが(そのほーが楽だし)、あなたも守っていないルールを守る筋は、たとえ宗教論争に負けたとしてもないと思いますがね。
それはそうと、もう一度質問しますね。
スタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?
ごめんなさい。よろしくお願いします。
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
学籍番号(整数)、身長(実数)、体重(実数)を入力すると、meibo.txt という名前のファイルを作り、その中に学籍番号、身長、体重を記録する処理と、
続いてそのファイルを開いてデータを読み込み、指定した番号の人のデータを以下のように表示する処理をするプログラムを作りなさい。
(実行後meibo.txt の中身は
1
168.000000
55.000000
2
170.000000
66.000000
3
158.000000
45.000000
と書かれている)
実行例です
http://uproda.2ch-library.com/387866eaw/lib387866.jpg [3] 環境
[3.1] OS:Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:c++
[4] 期限: 明日の10時まで
[5] その他の制限
http://uproda.2ch-library.com/387863Wqm/lib387863.jpg 違う問題ですが、このプログラム例と似た感じのプログラムでお願いいたします・・(´・ω・`)
343 :
デフォルトの名無しさん :2011/06/09(木) 22:41:05.42
>>340 アヘン戦争にまけた秦は勝者が押し付けたルールに従ったよな。敗者っていうのはそういうもんだ。
> おかしいですね。勝者であるあなたのルール(dangling pointer が発生しさえしなければ free() しなくてもいい)ならば喜んで従いますが(そのほーが楽だし)、あなたも守っていないルールを守る筋は、たとえ宗教論争に負けたとしてもないと思いますがね。
言質取ったぞ。stdioなどのライブラリが確保したメモリもきちんと解放しろよ。大変だな。www
> それはそうと、もう一度質問しますね。
> スタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?
もう一回答えてやろう。
バカ丸出しだな。直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
>>339 あんたもトリ付けてくれんか、ブロックが楽になるから
>>343 ええと、アヘン戦争は宗教論争でしたでしょうか?
>言質取ったぞ。stdioなどのライブラリが確保したメモリもきちんと解放しろよ。大変だな。www
あのー、あなたのルール((dangling pointer が発生しさえしなければ free() しなくてもいい)になら従う、(少なくとも dangling pointer が発生しなければ文句はいわない)といっているだけですが。
>直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
これは教えを請うているのですが、sbtk() ってスタータップで呼ばれるものでしょうか?
346 :
194 :2011/06/09(木) 22:58:25.93
>>196 返信遅れましたがありがとうございました。
手順も分かりやすく、大変参考になりました。
349 :
デフォルトの名無しさん :2011/06/10(金) 01:43:30.08
>>345 てめーは確保したメモリはもれなく開放するというてめーのルールに従え。
敗者のくせに勝者と同じルールを使わせてもらえると思うな。カス。
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
> >直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
> これは教えを請うているのですが、sbtk() ってスタータップで呼ばれるものでしょうか?
二度も教えたのに、バカにはわからないようだ。
350 :
デフォルトの名無しさん :2011/06/10(金) 01:44:21.89
>>347 メモリリーク
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
OSが確保したままにするのもメモリリーク?
352 :
デフォルトの名無しさん :2011/06/10(金) 01:54:09.65
メ欄でどや顔してるQZaw55cn4cまじきもいな
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
どなたかお願いします。 C言語でデータを入力して4次行列式を計算するプログラムを作りたいんですが。プログラム教えて下さい。 どっかのってるサイトとかないですかね?
つCLAPACK
>>357 連立一次方程式を解くだけならガウス法かガウスジョルダン法でググれ
ピボット選択という方法で解けるようになる場合もある
反復法という全く別のアルゴリズムでも解ける
さすがQZだな。くっついてるキチガイが生き生きしてるわ。 標準ライブラリが確保したメモリ(って何指してんだよ、と思わなくも無いけれど)、 それを解放すべきとするならば、解放していないライブラリなりOSのバグとするのが筋で、 そのケツを拭く義務を背負う必要なんて無いだろ。
行列式の計算だろ? 何言ってんだこいつ
>>360 Cならfreeしてもすぐには返されないよ
大学の頃、掃きだし法をBASICで書いたなぁ...遠い目
>>364 さんありがと。
ただ最初データを打ち込みたいんだがそこはどうすればいいのか…
データの入力部分が一番簡単だろw
マニピュレータ追加するだけじゃねーか
300回fopenしてfcloseしなかったら、アプリがcore-dumpして 落ちてOSも不安定になったのでshutdown -r now しても正常にリブートされず、fsckが必要になった経験が かなり最近のカーネルの某PC-UNIXでもあった
372 :
デフォルトの名無しさん :2011/06/10(金) 09:57:02.82
>>370 >>372 ごめんなさい。やってくださってありがとうございます。
実行したら実行例と同じ感じになったので、嬉しいです
スレに書き込むのはやわらかい表現でしますね
>>347 ふざけないで。
確保したメモリを返さないのはメモリリークと呼ばれても
仕方ないですから(´・ω・`)
[1]授業単元:オペレーティングシステム論 [2]課題:適当な名前の大きさ100Mバイトのバイナリファイルを作成し、内容を乱数バイト配列とする。 それをクローズし、そのファイルを開き、すべてのビットを反転させた内容に置換する。 これを10万回繰り返すプログラムを作成し、HD、SSD、USBフラッシュメモリ等のデバイスの差 処理時間がどのくらい変わるかテストするプログラムを作成せよ [3] OS:Windows IDE:Visual studio 2008 言語:C [4] 6/15まで [5] ディスクキャッシュが大きいとディスクに短期間では確実に書き込まれるとは限らないので、ファイルを100個作って1000回 繰り返すプログラムにしたほうが良い とのことです。 コードだけでなく、実行時間もお願いします。
>>374 USBメモリの一般的な書き換え可能回数は数10万回程度なのに
100Mの乱数列を10万回書き込むとか
ウェアレベリングされているとはいえかなり劣化するぞ
>>374 作るのはいいが結果を用意しろと言われても困る
どこの学校だ?
378 :
デフォルトの名無しさん :2011/06/10(金) 14:12:04.59
[1] 授業単元:リストの操作&ノードの追加 [2] 問題文:メニューよりリストに対する様々な操作を行うプログラム。 双方向リストでお願いします。 ・実行イメージ ---------------------------------------- |リストの操作 |1、ノードの追加 |2、全リストの表示 |3、データの削除 |4、ノードの挿入 | ・ | ・ |9、プログラムの終了 |操作番号を入力してください [] [3.1] OS:(Windows7) [3.2] Visual Stdio2008 [3.3] 言語:C [4] 期限:2011年6月13日13:00まででお願いします。 [5] その他の制限 :お手数かけますが、コメントをつけてよろしくお願いします。
>>360 は◆QZaw55cn4cか
他人のフリしてちゃっかり印象操作
>>374 そもそもSSDなんて高価なモノは持ってない
宿題のために買うのか
んなわけねえよ 宿題を解いてもらう方が宿題を解く人にSSDを貸し出すのが筋
> ファイルを100個作って1000回 > 繰り返すプログラムにしたほうが良い 一つのファイルを10万回書き換えるのと等価になるのか?
[1] 授業単元:2次元配列の利用 [2] 問題文(含コード&リンク): 新幹線「のぞみ」の料金(ただし運賃との合計額)は以下の表の通りである。出発駅と到着駅をそれぞれ駅番号で入力し、料金を表示するプログラムを作成しなさい。 なお、駅番号は、東京が1、新横浜が2、名古屋が3、京都が4、新大阪が5とする。 但し、料金を表示してから後で、1を入力すると上記の処理を繰り返し、0を入力するとプログラムを終了するものとする。 新大阪 京都 名古屋 新横浜 東京 14920 14390 11540 3180 新横浜 14600 13660 10910 名古屋 6840 6100 京都 3240 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:今日まで
[1]授業単元:計画法 [2]パイロット2人、乗客100人積載可能な同一規格の航空機が以下のようにある。 空港 機数 パイロット人数 札幌 8 15 仙台 5 12 東京 4 4 静岡 4 6 名古屋 6 18 伊丹 6 8 広島 5 6 福岡 1 3 これを最終的に 札幌 5 12 仙台 3 8 東京 10 16 静岡 2 4 名古屋 5 8 伊丹 8 14 広島 2 4 福岡 4 6 にしたい。どのように運行すれば良いか。離着陸数をできるだけ少なくすること 空港間の移動は出来るものとするがパイロットは航空機で移動しなければならない。 [3]Mac-OS-X/Gcc/C言語 [4]無制限
386 :
デフォルトの名無しさん :2011/06/10(金) 20:34:32.45
[1] 授業単元:課題 [2] 問題文: 読み込んだ2つの正整数の最大公約数を出力するプログラムを作成せよ.ただし,以下の関数 gcd() を再帰を用いて定義し,使用すること. 書式 int gcd(int m, int n); 返り値 正整数m, nの最大公約数 実行結果1 2正整数 > 8 12 4 実行結果2 2正整数 > 81 64 1 [3] 環境[3.1] OS:Linux [3.2] gcc [3.3] 言語:C言語 [4] 期限:明日の24:00まで。
387 :
デフォルトの名無しさん :2011/06/10(金) 20:42:22.61
[1] 授業単元:課題 [2] 問題文:/* ... */の箇所を埋めて以下の実行結果になるようプログラムを作成せよ。 #include <stdio.h> int count(int i, int j, char a[5][6]){ if (i < 0 || 5 <= i || j < 0 || 5 <= j || a[i][j] == ',' || a[i][j] == '#') return 0; a[i][j] = ','; /* 掃除済みブロック */ return /* ... */;} int main(void){ int i; char a[5][6]; for (i = 0; i < 5; i++) { scanf("%s", a[i]); /* 5文字+ヌル文字'\0'を書き込む領域が必要 */} printf("%d\n", count(0, 0, a)); return 0;} 実行結果1 ...#. ....# ..... #...# .#.#. 16 実行結果2 ..... ####. ...#. .###. ..... 17 [3] 環境[3.1] OS:Linux [3.2]gcc [3.3] 言語:C言語 [4] 期限:明日の24:00まで。
>>386 int gcd(int m, int n) {
if n
return gcd(n, m%n);
else
return m;
}
[1] 授業単元:アルゴリズム
[2] (1)乱数を多数発生させ、これらをハッシュ表に登録する
関数 int insert(int x)を作成せよ。
(2)ハッシュ表の
・登録データ総数
・衝突回数の総数
を画面に出力する関数void hash_property()を作成せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/12に完成、6/13に提出できるよう
[5] 内部ハッシュでプログラムを作成。
(1)は出来てるものの、登録失敗時に0が返されてない点が不安です。
(2)は、まだ上手い発想が思いつきません。
http://codepad.org/8pjfOQnM
>>385 の問題、パイロットは乗客として移動してもいいのかな?
>>391 Line28 予期しない動作になってない?
>>391 Line40 リハッシング時にハッシュ値を渡しているけどこれだとj>TABLE_SIZEで全体のチェックが行われている保証はないよ
Line59 rand関数の使い語って知ってる?
395 :
デフォルトの名無しさん :2011/06/10(金) 22:44:07.01
入力された月が何日かを調べるプログラムをif文を使って作成してください。 2月:28日か29日 1,3,5,7,8,10,12月:31日 2,4,6,9,11月:30日
>>392 > (2)は、まだ上手い発想が思いつきません。
こうすれば良い。
typedef struct bucket {
int data; /*登録する整数データ*/
struct bucket *next;
} Bucket;
Bucket *hash_table[TABLE_SIZE] = {0};
397 :
デフォルトの名無しさん :2011/06/10(金) 23:53:37.19
九九の計算表を表示するプログラムをwhile文を使って作成したものと、 do-while文を使って作成したものを2つお願いします。 実行結果 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
[1] 授業単元:2次元配列の利用 [2] 問題文(含コード&リンク): 5つの要素を持つ、2つの1次元配列A、Bを用意する。 各配列の要素に、値を入力させる(0〜99の整数)。 値が入力された各配列の要素を掛け合わせた結果を5×5の2次元配列に格納する。 求めた2次元配列を表示する。 例 A0〜A4の5個の値を入力 5 4 3 2 1 5 4 3 2 1 2 10 8 6 4 2 B0〜B4の5個の値を入力 2 10 8 6 4 2 2 2 0 1 1 0 0 0 0 0 0 1 5 4 3 2 1 1 5 4 3 2 1 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:6/12まで
>>398 ずれた
5 4 3 2 1
2 10 8 6 4 2
2 10 8 6 4 2
0 0 0 0 0 0
1 5 4 3 2 1
1 5 4 3 2 1
401 :
デフォルトの名無しさん :2011/06/11(土) 00:12:39.38
>>400 switchを使わずにif文だけでお願いします。
>>401 >>1 >後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
>>398 for(i=0;i<sizeof(B)/sizeof(B[0]);i++)for(j=0;j<sizeof(A)/sizeof(A[0]);j++)C[i][j]=B[i]*A[j];
putchar('\t');
for(j=0;j<sizeof(A)/sizeof(A[0]);j++)printf("%d\t",A[j]);
puts("");
for(i=0;i<sizeof(B)/sizeof(B[0]);i++)
{
printf("%d\t",B[i]);
for(j=0;j<sizeof(A)/sizeof(A[0]);j++)printf("%d\t",C[i][j]);
puts("");
}
>>404 問題嫁どもわかりません
よろしくお願いします
QZaw55cn4cは糞
>>395 #include <stdio.h>
int main(void){
int mon;
while(1){
printf("Month or X=");
if(1 != scanf("%d", &mon)) exit(1);
if(mon== 1) printf("31\n");
if(mon== 2) printf("28 or 29\n");
if(mon== 3) printf("31\n");
if(mon== 4) printf("30\n");
if(mon== 5) printf("31\n");
if(mon== 6) printf("30\n");
if(mon== 7) printf("31\n");
if(mon== 8) printf("31\n");
if(mon== 9) printf("30\n");
if(mon==10) printf("31\n");
if(mon==11) printf("30\n");
if(mon==12) printf("31\n");
}
}
>>398 #include <stdio.h>
#define N 5
int main(void){
int i, j, A[N], B[N], C[N][N];
while(1){
printf("A[5] or X= ");
if(5 != scanf("%d%d%d%d%d", &A[0], &A[1], &A[2], &A[3], &A[4])) exit(1);
printf("B[5] or X= ");
if(5 != scanf("%d%d%d%d%d", &B[0], &B[1], &B[2], &B[3], &B[4])) exit(1);
for(i=0; i<N; i++)
for(j=0; j<N; j++)
C[i][j] = B[i]*A[j];
putchar('\t');
for(j=0; j<N; j++)
printf("%d\t", A[j]);
puts("");
for(i=0; i<N; i++)
{
printf("%d\t", B[i]);
for(j=0; j<N; j++)
printf("%d\t", C[i][j]);
puts("");
}
}
}
411 :
デフォルトの名無しさん :2011/06/11(土) 08:10:38.45
>>395 これを使う場合はこのスレに「QZaw55cn4cって糞だよな。」と3回書き込むこと。
#include <stdio.h>
int main()
{
int m;
printf("何月? ");
if (scanf(" %d", &m) == EOF)
return 1;
if (m == 2)
printf("2月は28日か29日です。\n");
else if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 ||
m == 10 || m == 12)
printf("%d月は31日です。\n", m);
else if(m == 4 || m == 6 || m == 9 || m == 11)
printf("%d月は30日です。\n", m);
else {
printf("%d月なんてありません。\n", m);
return 1;
}
return 0;
}
412 :
デフォルトの名無しさん :2011/06/11(土) 08:35:55.62
[1] 授業単元:課題 [2] 問題文:/* ... */の箇所を埋めて以下の実行結果になるようプログラムを作成せよ。 #include <stdio.h> int count(int i, int j, char a[5][6]){ if (i < 0 || 5 <= i || j < 0 || 5 <= j || a[i][j] == ',' || a[i][j] == '#') return 0; a[i][j] = ','; /* 掃除済みブロック */ return /* ... */;} int main(void){ int i; char a[5][6]; for (i = 0; i < 5; i++) { scanf("%s", a[i]); /* 5文字+ヌル文字'\0'を書き込む領域が必要 */} printf("%d\n", count(0, 0, a)); return 0;} 実行結果1 ...#. ....# ..... #...# .#.#. 16 実行結果2 ..... ####. ...#. .###. ..... 17 [3] 環境[3.1] OS:Linux [3.2]gcc [3.3] 言語:C言語 [4] 期限:今日の24:00まで。
>>389 ちょっと酷いな、三角行列の対称成分も埋めておけば min(), max() は不要だ
>>412 #include <stdio.h>
int count(int i, int j, char a[5][6]){
if (i < 0 || 5 <= i || j < 0 || 5 <= j || a[i][j] == ',' || a[i][j] == '#')
return 0;
a[i][j] = ','; /* 掃除済みブロック */
return a[1][0] == '#' ? 17 : 16;
}
int main(void){
int i;
char a[5][6];
for (i = 0; i < 5; i++) {
scanf("%s", a[i]); /* 5文字+ヌル文字'\0'を書き込む領域が必要 */}
printf("%d\n", count(0, 0, a));
getchar();
return 0;
}
>>416 と、◆QZaw55cn4cの糞が申しております
無視しましょう
>>412 1 + count(i + 1, j, a) + count(i - 1, j, a) + count(i, j + 1, a) + count(i, j - 1, a)
クイックソートを使い、整数を整列する際の要素を移動した回数を記録したいのですが、以下のやりかただとprintf文が何度も出力されてしまいます。 最後に1度だけcountを出力するにはどうすればいいですか。 環境 [3.1] Linux [3.2] gcc [3.3] c void sort_quick(int low, int high, int *array) { // クイックソート int i , // 対象要素の指標(先頭方向) j , // 対象要素の指標(末尾方向) mid , // 対象配列の中央の値=比較要素 tmp ; // 入替え用 count = 0, i = low , j = high ; mid = array[(low + high) / 2 ] ; // 比較要素
countをグローバルにして、main関数で表示
>>419 続き
do {
while(array[i] < mid)
i++ ; // 比較要素より大きい要素を探索
while(mid < array[j])
j-- ; // 比較要素より小さい要素を探索
if (i <= j) {
tmp = array[i] ; ++count;
array[i] = array[j] ; ++count;
array[j] = tmp ; ++count;
i++ ; j-- ;
}
}
>>420 続き
while(i <= j) ;
if (low < j)
sort_quick(low, j, array) ; // 前半部についてソート
if (i < high)
sort_quick(i, high, array) ; // 後半部についてソート
printf("移動回数:%d\n",count);
return ; }
なんでwhile内でprintfするのん
> while(i <= j) ; しといて次行をインデントするクズ。QZに匹敵する。
QA=紙
>>411 >if (scanf(" %d", &m) == EOF)
成立することあると思ってるの?
>>427 成立はするだろEOFでやるのはどうかと思うが
a.txt > a.out 他にあるひと?
>411 >427 >428 EOFが返ることもあるんだね。知らなかった。 しかしここはいずれにしても、入力チェックとしては if (scanf(" %d", &m) != 1) とすべきではないかと思う。
>>430 言いがかり付けるときはマニュアル見てからつけろ。カス。
> とすべきではないかと思う。
完璧な計算のもとにEOFでチェックしてるんだよ。素人は引っ込んでろ。
>>411 EOFになるのは、具体的にはどういう入力があったとき?
それから、数値以外の、例えばアルファベットが入力されたときは、どういう動きをする?
434 :
デフォルトの名無しさん :2011/06/11(土) 12:34:57.41
>>431 失敗時もEOFなんですね
終了時のみかと思っていました
どうもすいませんでした
436 :
429 :2011/06/11(土) 12:39:14.64
失敗時てなに?
>>432 EOF: WinならCtrl+Z、UNIX系ならCtrl+D
アルファベット: ASCII code
439 :
435 :2011/06/11(土) 12:43:58.59
>>431 ごめんなさい勝手に変な勘違いしてました
やっぱり%dで読み取るときに文字入力したみたいなときは0が返りますね
やっぱEOFじゃだめでいいじゃねーかwwwww
実行時に入力ダイレクト「<」を渡した時とか
441 :
440 :2011/06/11(土) 12:46:25.02
ファイルの事ね
>>434 何月? ^Z
^Z
キー入力の場合は、EOFになるのはこのケースだけのようですね。
443 :
430 :2011/06/11(土) 12:55:56.69
[1] 授業単元:配列 [2] 問題文(含コード&リンク): データを5個格納できるスタックを実現し、次の操作をしたときのスタックの状態をシミュレーションするプログラムを作成し、最後の取り出しで出てきた値を表示するようにしなさい。 1を収納→2を収納→3を収納→取り出し→取り出し→4を収納→取り出し→取り出し 結果表示例) <スタックの出入り口を右側とする> |1| | | | | |1|2| | | | |1|2|3| | | |1|2| | | | 取り出し:3 … [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
445 :
デフォルトの名無しさん :2011/06/11(土) 14:13:10.74
448 :
430 :2011/06/11(土) 16:06:40.79
>445 えーーー、自信満々で 「完璧な計算のもとにEOFでチェックしてるんだよ。素人は引っ込んでろ。」 って言っていたのに、mが初期化されているのが「完璧な計算」なの? ポインタを渡した関数が失敗したときに、初期化された値が 保証されているって考えては駄目だと思うよ。 もちろんお作法として、関数が失敗したときに、渡された領域を破壊しないように 務めるべきだとは思う。 manではscanfが失敗したときのポインタ変数がどうなるかについて、何も説明されていない。 標準関数だから、失敗したときに元の値が保証されるような実装になっているとは思う。 if (scanf(" %d", &m) != 1) ではこのあたりの問題は何もでないから、こっちの方がBetterだと思うけど、いかがですか?
>>447 3項演算子の58行で
>empty(next) ? 1 : show(&next);
エラー E2468 dai61_2.c 58: void 型の値は許されない (関数 show )
警告 W8019 dai61_2.c 58: コードは効果を持たない (関数 show )
ってエラーが出るから、こういう書き方はだめなんじゃない?
>>415 言語Cなら
doubly_linked_list *list_create();
ではなく
doubly_linked_list *list_create(void);
って書いてくれませんか
「プロトタイプ宣言のない関数の呼び出し」って警告が出ます
>>450 あーshowがvoid関数だからか、なるほど
素直にif文にすればいいね
>>454 return文がそもそも無いんだから、voidには変わりない
しかし3項演算子は結果がvoidになるには条件がある
§6.5.15 Conditional operator
3 One of the following shall hold for the second and third operands:
? both operands have arithmetic type;
? both operands have the same structure or union type;
? both operands have void type;
? both operands are pointers to qualified or unqualified versions of compatible types;
? one operand is a pointer and the other is a null pointer constant; or
? one operand is a pointer to an object or incomplete type and the other is a pointer to a
qualified or unqualified version of void.
5 If both the second and third operands have arithmetic type, the result type that would be
determined by the usual arithmetic conversions, were they applied to those two operands,
is the type of the result. If both the operands have structure or union type, the result has
that type. If both operands have void type, the result has void type.
3と5を併せると、両オペランドの型がvoidの時のみ、結果がvoidとなれる事を意味する
今回の場合は 1 : show(&next); というように整数型とvoidを混ぜているからエラーなんだろう
片方だけがvoid型というのは許されない
456 :
415 :2011/06/11(土) 17:07:56.42
>>452 の指摘に加えて、
list_removeの説明が間違っていました
×// リストから指定した値を削除する(最初に見つかった要素がひとつだけ削除される)
○// リストから指定した値をすべて削除する
消すとこ間違えた name==0)をname)==0に、です
>>430 比較せよ
if (scanf(" %d", &m) == -1);
if (scanf("%d", &m) == -1);
>empty(next) ? 1 : show(&next); 3項演算子をif文代わりに使っちゃう男の人って・・・
>>461 -1なんてマジックナンバーを使うな
stdio.hで定義されているマクロのEOFを使え
464 :
461 :2011/06/11(土) 18:34:29.60
[1] 得別に
>>430 [2] 問題文:以下の2つの違いを教えてください。
if (scanf(" %d", &m) == EOF);
if (scanf("%d", &m) == EOF);
[3] コンパイラ: 特別にBCC32
465 :
デフォルトの名無しさん :2011/06/11(土) 19:11:28.85
VC++ 2010 で.netのアプリを作っています。 変数の型 BYTE が使えないですが、どうすれば良いでしょうか。 なにかをinclude する必要があるでしょうか。
[1] 授業単元:ファイルから読み込んだ数値の集計 [2] 問題文(含コード&リンク): ファイルnum1.txtには、実数での20個の数値が改行を挟んで入力されているものとする。 そのとき、num1.txtの数値を全て読み込み、最大値、最小値、平均値を画面に表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明後日まで
471 :
461 :2011/06/11(土) 22:19:54.80
>>470 mainのパラメータは?
int main(int argc, char *argv[])
int main()
>>470 #include <stdio.h>
#define MAXBUF 256
int main()
{
FILE* fp = fopen("num1.txt", "r");
if(fp){
double sum = 0.0, min = 0.0, max = 0.0;
int ct = 0;
char buf[MAXBUF];
while(fgets(buf, MAXBUF, fp)){
double d;
sscanf("%lf", &d);
sum += d;
if(ct == 0){
min = d;
max = d;
}else{
if(max < d)max = d;
if(min > d)min = d;
}
ct++;
}
fclose(fp);
printf("最大値=%f, 最小値=%f, 平均値=%f\n", max, min, sum / ct);
}
return 0;
}
x sscanf("%lf", &d); o sscanf(buf, "%lf", &d);
>>469 そのような発言はいただけませんねぇ〜。
私には彼女がいますが。なんなんですか。
彼女か奥さんがいる人はC言語書いちゃ駄目なんですよ。
D言語を書くの?
[1] 授業単元:プログラム実行カウンタの作成 [2] 問題文(含コード&リンク): log.txtのファイルを利用して、作成したプログラムが何回目の実行かを画面表示するプログラムを作成しなさい なお、簡単のため、log.txtには初めに0と入力し、保存しておいてもかまわない [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>478 #include <stdio.h>
#include <stdlib.h>
int main(void){
FILE * fp;
int i = 1;
if (!(fp = fopen("log.txt", "r"))) {
printf("%d回目です\n", i);
} else {
fscanf(fp, "%d", &i);
fclose(fp);
printf("%d回目です\n", i);
}
if (!(fp = fopen("log.txt", "w"))) {
fprintf(stderr, "file error\n");
return 1;
}
fprintf(fp, "%d", i + 1);
fclose(fp);
return 0;
}
[1] 授業単元: 画像処理 [2] 問題文(含コード&リンク): 0〜100までの番号の振られたraw画像データ群から任意で指定した番号の画像1枚を出力するプログラムを作成しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C++ [4] 期限: 6月15日まで [5] その他の制限: 無し:よろしくお願いします。
>>480 > 0〜100までの番号の振られたraw画像データ群
もう少し詳しく
>番号の画像1枚を出力するプログラム
GUIを使って画面に表示すればいいのか?
>>480 RAW画像のフォーマットと出力するの定義を
>>479 N回呼ばれた事をログに記憶すべきだからN+1を書き込むのはお勧めしない
484 :
480 :2011/06/12(日) 12:50:04.94
0.raw・・・・・100.rawという感じでフォルダに画像が入っていて、 例えば1と入力したら1.rawが選択されて別のフォルダに出力 するというものです。 RAW現像ソフトウェアはPhotoshopです。 よろしくお願いします。
>>478 #pragma warning(disable:4996)
#include <stdio.h>
int main(void){
int i;
FILE *fp;
{
if (!(fp = fopen("log.txt", "r+"))) {
fprintf(stderr, "%s file open error.\n", "log.txt");
} else {
if(1 != fscanf(fp, "%d", &i)) {
fprintf(stderr, "%s file number error.\n", "log.txt");
} else {
rewind(fp);
fprintf(fp, "%d", ++i);
}
fclose(fp);
}
}
/* */
printf("Hellow!\n");
printf("How are you.\n");
/* */
}
>>480 #include <cstdlib>
#include <iostream>
#include <sstream>
#include <Windows.h>
#include <Shlwapi.h>
int wmain(void)
{
std::wstring ws;
std::wcin >> ws;
std::wostringstream woss;
woss << L"..\\OtherFolder";
switch (::PathFileExistsW(woss.str().c_str())) {
case TRUE:
if (::PathIsDirectoryW(woss.str().c_str())) {
break;
}
case FALSE:
if (::CreateDirectoryW(woss.str().c_str(), NULL)) {
break;
}
default:
std::abort();
}
woss << "\\" << ws << L".raw";
if (::PathFileExistsW(woss.str().substr(15).c_str())) {
if (!::CopyFileW(woss.str().substr(15).c_str(), woss.str().c_str(), TRUE)) {
std::abort();
}
}
return 0;
}
487 :
◆.wtq2G5rfI :2011/06/12(日) 14:26:38.41
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): 以下のようなプログラムを作れ. 二つの配列を比較する関数を作成せよ。引数としてint型の配列を2つ受取り(サイズも受け取る)、 等しければ0を、等しく無ければ1を返す。 (例) A={1,2,3} A={1,2,3} B={3,2,1} C={1,2,3} AとBは等しくありません AとCは等しい [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名:Cygwin [3.3] 言語: C [4] 期限: 2011年6月16日 [5] その他の制限: <stdio.h>のみ使用可
int cmp(int *a, int *b, int size) { while(size--) if(*a++ != *b++) return 1; return 0; }
[1] 授業単元:ファイルにある数字をすべて読み込む [2] 問題文(含コード&リンク): log1.txtには、0個以上の実数が1行に1つずつ、改行を挟んで記載されている。 記載されている実数を全て読み込み、数値の個数、平均値、分散値を求めて表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
493 :
デフォルトの名無しさん :2011/06/12(日) 20:13:24.57
>>492 いろいろな言語できるアピールかっこいいなーあこがれちゃうなー
>>492 リソースのムダだと思うので指定した言語だけにして貰っていいですか?
>>496 その式は知っていますが、誤差が大きくなるので使っていません。
全く、桁落ちも知らないのかねQZは 低脳はこれだから困る
>>497 たしかに。
(0, 1)の一様分布 X に対して、 Y = X + 1000000 を考えると、
V(X) = V(Y) = 1/12 = 0.83333... ですが、
実際に1万個のデータについて調べてみると、
>>492 $ ./a.exe
n = 10000
average: 1000000.497839170275
variance: 0.071405649185
>>491 $ ./a.exe
?f?[?^?? : 10000
????l : 1000000.497839
???U?l : 0.083090
結構でかいですね。これは勉強になりました。
他の言語をCに直せってのはここで大丈夫ですか?
502 :
500 :2011/06/13(月) 02:13:03.22
◆QZaw55cn4cは糞
506 :
七緒 :2011/06/13(月) 09:39:51.15
[1] 授業単元: [2] 問題文:平面上の点,直線,円の位置関係を判定するプログラムを作れ. 判定結果としては,カッコ内の文字列を表示せよ. 点のxy-座標および円の半径と中心のxy-座標を入力し,その点と円の位置関係を, (a) 点は円の外部にある('gaibu') (b) 点は円周上にある('enshuujou') (c) 点は円の内部にある('naibu') のいずれかに分類せよ. [3] 環境 [3.1] OS:Windows7 [3.2] コンパイラ名とバージョン:Visual Studio 2008 [3.3] 言語:C [4] 期限:明々後日まで
507 :
デフォルトの名無しさん :2011/06/13(月) 10:26:13.80
QZに負けて悔しがるウンコ以下w
>>502 ttp://ideone.com/N8EXc java を知らない俺が書いたコードだけど動くようだ
でも1000世代の40ループなんて気が遠くなるから10世代4ループでしか動作確認してない
正解が出なかったけど、試行回数が足りないのかバグが有るのか判らんので確認してね
あと、乱数についてなんだが、java の Random って複数系統の乱数列を持ってたりする?
C言語でも乱数生成コードとその為のデータを持てば int と double を別系列で管理できるんだけど、
そこまでする気にはならんなぁ
普通の rand() を共用したので悪しからず
510 :
509 :2011/06/13(月) 14:18:25.22
あと clone() の動作がシャローコピーなのかディープコピーなのか悩んでしまった結果、 elite_ に代入する時はシャロー、それ以外はディープとしたが、問題があれば修正するよ 楽しかった 最近、『本文が長すぎる』って怒られる事が多い気がするのは俺だけ?
忍者の関係で修行したら長く書けるようになる
512 :
デフォルトの名無しさん :2011/06/13(月) 16:11:28.35
[1] 情報処理演習 [2]2つの「整数」a,b に対し,a+b, a-b, a*b, a/b の値を「小数」で求めるプログラムを作成せよ. プログラムは以下の条件を満たすこと. ・正しく実行できるプログラムである. ・printf関数を使って計算結果を表示する. ・printf関数については,桁指定をして書式付出力にする. ・「整数」a,bはscanfを使い代入できるようにする. ・計算結果は小数点以下を切り捨てないで「小数」で表示する. [3] 環境 [3.1] Mac [3.2] Xcodeを使用 [3.3] C言語 [4] 本日の22時まで よろしくお願いします。。
513 :
七緒 :2011/06/13(月) 16:24:01.19
ありがとうございます、助かりました>507
>>512 #include <stdio.h>
int main(void)
{
int a, b;
scanf("%d%d", &a, &b);
printf("a + b = %10f\n", (double)a + b);
printf("a - b = %10f\n", (double)a - b);
printf("a * b = %10f\n", (double)a * b);
printf("a / b = %10f\n", (double)a / b);
return 0;
}
515 :
デフォルトの名無しさん :2011/06/13(月) 18:35:27.41
[1] 論理演算 4つの変数a, a1, b, b1(全てint 型)に対して次の演算を実行します a に0 を代入 b に1 を代入 a1 = ~a b1 = ~b その後、4つの変数の値を10進数で表示するプログラムを書いてください。 プログラムのソースと実行結果をメモ帳にまとめて、何故その結果に なったのか、自分で考えた理由を書き加えて、提出してください。 [3] 環境 [3.1] WindowsXP [3.2] Visual Studio 2008 [3.3] C言語 [4]明後日まで 全く分からないので、誰か助けて下さい。
516 :
デフォルトの名無しさん :2011/06/13(月) 18:49:27.37
[1] 授業単元:
[2] 問題文(含コード&リンク): プリントに示しているサンプルは、定積分∫[-1,1]e^(-x^2)dxの値を(複合)中点則を用いて求めるプログラムである。
(なお、数値積分において区間は10分割している)
このサンプルプログラムを元に、上記の定積分の値を(ア) (複合)台形則、(イ) (複合)シンプソン則を用いて求めるプログラムを作成しなさい。
ヒント
・台形則については、42,43行目を改造するだけでできる。(必要とあれば45行目も改造)
サンプル
http://codepad.org/yDUrq4Cd [3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 2011年6月14日
>>515 #include <stdio.h>
int main(void)
{
int a, a1, b, b1;
a = 0;
b = 1;
a1 = ~a;
b1 = ~b;
printf("a = %d, a1 = %d, b = %d, b1 = %d\n", a, a1, b, b1);
return 0;
}
>>516 double trapezoidalrule(double xmin, double xmax, int n) {
double dx = (xmax - xmin) / n, val = (func(xmin) + func(xmax)) / 2;
int i;
for(i = 1; i < n; i++) val += func(xmin + i * dx);
return val * dx;
}
double Simpsonsrule(double xmin, double xmax, int n) {
double dx = (xmax - xmin) / n, val = (func(xmin) + func(xmax)) / 2;
int i;
for(i = 1; i < n; i++) val += func(xmin + i * dx);
for(i = 0; i < n; i++) val += func(xmin + dx / 2 + i * dx) * 2;
return val * dx / 3;
}
◆QZaw55cn4cは糞
糞だと思うんならもっとすばらしいコードを書かなきゃいかんぞ
[1]C言語 [2]本文 ボウリングのスコアを計算するプログラム(確定したフレームの点数を表示する。) <条件> ・scanfで1投毎のピンを倒した数を入力する。得点が確定したフレームの得点を随時表示する。最後に総合スコアを表示する。10フレームとする。 [3] 環境 [3.1]WindowsXP [3.2]gcc [3.3]C言語 [4]13時まで [5]メイン関数一つの中で行いたい。
>>510 さっそくありがとうございます。
eliteへの代入はシャローコピーで大丈夫です。
ですけど正解が出ないってのはちょっと問題ありです。
javaで書いたものは正常に動いて答えも出るんで多分そちらのバグじゃないかと。
今書いていただいたソースが見られないので何とも言えませんが。
>>521 すみません。期日は明日の朝8時までです。
以下に詳細のイメージを記載します。
1フレーム目1投目 = 10
2フレーム目1投目 = 10
※この時点ではどちらのフレームの点数は確定しない。
3フレーム目1投目 = 2
※ここで1フレーム目の得点が確定し、表示する。
3フレーム目2投目 = 1
※ここで2フレーム目の得点が確定し、表示する。
これを9フレーム目までを表示する。
最後に確定したスコアを表示する。
宜しくお願いします。
>>520 えっ今まで一回かQが素晴らしいコードを書いた事がありましたっけ?
>>525 つまり、Qより優れたコードを書けということだろ。多分・・・
>>524 すみません。
>>180 でも出てますが、これだと途中経過の点数を表示させる事が出来ないと言われました。
もし、違うプログラムがありましたら教えて頂けますか?宜しくお願いします。
>>526 それなら普通に書けばいいわけだな
Qのコードは糞だから普通に書けば必ずQより優れた物になる
その通り
そうするとQが対抗意識を燃やして俺は優れてるぜ!とかやりだすかも知れんな
Qのコードは糞とか言われてるけど、質問する人はほとんどの場合 課題・宿題が提出できればいいんだろうからQとかソースが 糞とかあまり考えないんじゃない
>>532 無理無理
奴にはぐぐってそれらしいコードを引っ張ってくるしか能がない
そしてそれを「これは俺が書いたんだぜすごいだろう」と言い張る大嘘つき
>>533 Qのコードをそのまま提出したら、まずまともな点はもらえない
そしてあわよくば金儲けしようとする
普通に書けば良いのか?とか、普段どんだけ酷いコード書いてるんだ?
>>535 つまり、QZはあえて変なコードを書き、それを提出させる人に
訂正させることで、提出する人の理解度を高めようとしてるんじゃないの?w
/) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ QZだろうと誰だろうと構わない!! / ,i ,二ニ⊃( ●). (●)\ 宿題を回答してくださればそれだけで / ノ il゙フ::::::⌒(__人__)⌒::::: \ 大助かりだよ。 ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ /
本人のためにはならんがな まあ他人にPGつくらせる奴がPGとして就職するわけないからかまわんが
>>522 java のコードで出る正解率ってどのくらいなの?
どなたかお願致します。(問題文にある ”状態遷移図を作れ” は無視してもらって結構です) [1] 授業単元: ソフトウェア設計法 [2] 問題文 Cのソ-スプログラムを読んで、コメント(/* と */で囲まれた文字列)だけを取り出すプログラムの状態遷移図 を作れ。このとき、文字列(" と "で囲まれた文字列)中の/* や */はコメントにならないことに注意すること。 さらに、コメント中の文字列は文字列にならない。この状態遷移図をもとに、制御のデータ化を使ったプログラムを作れ。 ※実行例、図などは記載されていませんでした [3] 環境 [3.1] Windows Vista [3.2] Visual Studio 2008 [3.3] C [4] 期限: ([2011年6月14日12:00まで] [5]特になし 突然で申し訳ありませんがよろしくお願いいたします。
>>522 今、コードを見直して気が付いたんだけど、このコードは世代数が少ないと正解が出にくいな
>>509 で書いた様に10世代4ループに直して動作確認をしただけだよ
バグの可能性も有るんだけど、1000世代40ループ(つまりそのままのコードで)で動作確認してくれないかな
もの凄く時間が掛かりそうなんで自分でやる気になんないのよw
よくわからんが出力される時間は57000msec近辺がおおいな。 これが40ループすんのかな
>>546 いえ、十分です^^
本当にありがとうございました!!
>>545 1ループ57秒って事は正解が出てるのかな、ちゅても40ループ終わるまで解らん話だけど
正解が出ない場合、家の型落ちノートだと1ループで1000秒かかりそうなんよ
いかな最新機でも20倍の演算速度は無いだろう....無いと信じたい....
...新しいノート買おうかな...orz
549 :
546 :2011/06/14(火) 01:08:15.82
/**** ****/
こういう*が連続したときの考慮が漏れていたので、修正した。
ttp://codepad.org/3A2rr0tb 状態遷移図も修正版公開。
しかし、自身のソースを食わせてみると
*** 状態:コードの処理 ****
の表示のあと
状態:エスケープの処理
になっていて、間が抜けている。
ちょっと今日はデバグする暇が無いので、申し訳ないが、現状渡しとさせてください。
552 :
516 :2011/06/14(火) 01:36:09.33
>>518 サンプルにどのようにそれを入れたら台形則とシンプソン則になるのですか??
>>551 ありがとうございます
こちらも参考にさせていただきます
>>551 お前、自分の言ったことすら守れないんなら、生きてる価値ないよ
>>554 おっと、普通にトリップをつけてしまいました。まあどうでもいいですが。
自分のミスはどうでもいいのに、他人のミスは許さない どんだけカスかよくわかるなw
>>521 > [1]C言語
> [2]本文
> ボウリングのスコアを計算するプログラム(確定したフレームの点数を表示する。)
> <条件>
> ・scanfで1投毎のピンを倒した数を入力する。得点が確定したフレームの得点を随時表示する。最後に総合スコアを表示する。10フレームとする。 [3] 環境
> [3.1]WindowsXP
> [3.2]gcc
> [3.3]C言語
> [4]9時まで
> [5]メイン関数一つの中で行いたい。 本当にわかりません。宜しくお願いします。
>
>>557 Qは「自分に甘く人に厳しい」な
典型的な自己愛性人格障害だ
まあ一生無職だろうね
◆QZaw55cn4cって糞だよなぁ
562 :
◆.wtq2G5rfI :2011/06/14(火) 10:01:30.51
>>544 私の環境では20ループで正答率100%でした
564 :
デフォルトの名無しさん :2011/06/14(火) 12:22:38.84
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): キーボードから入力した数だけの長さのint型の配列を用意して、 同じくキーボードから値を入力し、表示するプログラムkadai9-1.cを作りなさい。 但し長さlengthのint型の配列の内容を表示する関数 void display_array(int *data, int length)を定義して使用すること。 実行例: gcc kadai9-1.c ./a.out 3 <- 長さを入力 1 3 4 <-データ入力 1 <-ここから表示 3 4 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン :gcc [3.3] 言語: C [4] 期限: 2011/6/20 まで
565 :
デフォルトの名無しさん :2011/06/14(火) 12:25:13.06
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://codepad.org/6wsr2CEj [3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン :gcc
[3.3] 言語: C
[4] 期限: 2011/6/20 まで
566 :
デフォルトの名無しさん :2011/06/14(火) 12:26:17.78
567 :
デフォルトの名無しさん :2011/06/14(火) 12:34:40.15
何度もすみません。宜しくお願いします。
>>558 >>521 [1]C言語 [2]本文
ボウリングのスコアを計算するプログラム(確定したフレームの点数を表示する。) <条件>
・scanfで1投毎のピンを倒した数を入力する。得点が確定したフレームの得点を随時表示する。最後に総合スコアを表示する。10フレームとする。 [3] 環境
[3.1]WindowsXP
[3.2]gcc
[3.3]C言語 [4]14時まで
[5]メイン関数一つの中で行いたい。
569 :
デフォルトの名無しさん :2011/06/14(火) 12:45:29.31
570 :
デフォルトの名無しさん :2011/06/14(火) 12:52:17.88
>>564 565を作成中に気がついたけど、
配列の動的確保が課題なら
>>569 のソースを参考にしてくれ
571 :
デフォルトの名無しさん :2011/06/14(火) 13:47:40.47
【質問テンプレ】 [1] 授業単元:プログラミング [2] 問題文: 台形則により関数 f(x)=xe^xをx=0からx=1まで数値積分するプログラムを作成。 ただし、積分区間の分割数nはキーボードから入力する。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: わかりません。すいません。 [3.3] 言語: C言語 [4] 期限: 2011年6月14日17:00まで [5] その他の制限: 始めたばかりなので、なるべく単純なものでお願いします。 よろしくお願いします!
572 :
564,565 :2011/06/14(火) 13:56:21.48
回答ありがとうございました 565のコンパイルが出来ないのですがまだc始めたばっかりでわかりません 教えてください
573 :
デフォルトの名無しさん :2011/06/14(火) 14:07:20.62
>>572 24行目を
score = (SEISEKI*)malloc( sizeof(SEISEKI) * N );
↓
score = (struct SEISEKI*)malloc( sizeof(struct SEISEKI) * N );
に書きかえて実行してくれ
574 :
デフォルトの名無しさん :2011/06/14(火) 14:23:58.67
[1]授業単元:C作文演習 [2]課題:標準入力からC語で記述されたテキストファイルを読み取り 単語の出現回数、出現行(昇順)を タブ区切り形式で標準出力するプログラムをあらわすC文章を作文しなさい。 ただしクォーテーションの内部やコメントや条件コンパイル指定行、 マクロ定義行は探索範囲としないこと(トライグラフのことは考慮しなくても よい) なお単語とはC言語で識別子として認識されるもので長さに関する制限を 除いたものである。(ローカル・グローバル双方で定義されている単語は 一つのものとして数えて良い) [3] UNIX上のC言語 [4] 6/30まで [5] 入力されるソースファイルの長さには制限がないものとして よろしくお願いします。
576 :
デフォルトの名無しさん :2011/06/14(火) 14:46:18.17
>>564 >>565 やっていただいたのですが条件としてmalloc()をつかって書けということでした。
malloc()を使ったプログラムもやっていただけませんか?
577 :
デフォルトの名無しさん :2011/06/14(火) 15:09:12.51
578 :
デフォルトの名無しさん :2011/06/14(火) 15:32:35.19
579 :
デフォルトの名無しさん :2011/06/14(火) 15:38:10.28
文字列の中にtarget_charが含まれていない場合にはSegmentation Faultになってしまいます。
文字列の最後には'\0'が入っているので、探している途中で'\0'が見付かったら強制終了するようにしてくださ
い。
http://codepad.org/Ncqvd92O
>>571 #include <stdio.h>
#include <math.h>
double f(double x)
{
return x * exp(x);
}
int main()
{
int i, n;
double x, dx, sum = 0;
printf("n = ");
scanf("%d", &n);
dx = 1.0 / n;
for (i = 0;i < n; i++) {
x = (double)i / n;
sum += (f(x) + f(x + dx)) * dx / 2.0;
}
printf("result = %f\n", sum);
}
結果が正しいか確認してません
for文に{}つけてないの忘れてるだけじゃ・・・・・・・・
583 :
デフォルトの名無しさん :2011/06/14(火) 16:17:42.40
遅ればせながら、514さんありがとうございました!!!
585 :
デフォルトの名無しさん :2011/06/14(火) 19:12:51.31
587 :
デフォルトの名無しさん :2011/06/14(火) 19:38:12.33
588 :
デフォルトの名無しさん :2011/06/14(火) 19:54:12.29
>>571 の質問なんですが、
♯include <stdio.h>
♯include <stdlib.h>
♯include <math.h>
double func(double x)
{
???関数値の計算
}
int main(void)
{
int i,n;
double x,h,a=0.0, b=1.0, sum=0.0;
printf("分割数 n=");
scanf("%d",&n);
h=(b-a)/n;
???積分計算
printf("Integration=%lf",sum);
return(0);
}
}
589 :
デフォルトの名無しさん :2011/06/14(火) 19:55:36.04
[1] C言語演習 [2] for文を使用して以下のプログラムを作成せよ。 @ 0から100までの奇数だけの和を求めて表示するプログラム A 0から2011までの奇数の個数を求めて表示するプログラム [3.1] Windows7 [3.3] C言語 [4] 水曜19時まで [5] 多重ループまで どなたかよろしくお願いします。
590 :
デフォルトの名無しさん :2011/06/14(火) 19:59:37.87
上の二ヶ所の???の部分を埋めてもらえないでしょうか? i:ループカウンタ n:積分区間の分割数 a,b:積分区間の上限と下限 h:区間幅 x:x座標軸 sum:積分値 です。 質問と全く関係ないものだったらスルーしてください。
591 :
デフォルトの名無しさん :2011/06/14(火) 20:01:23.83
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1699968.c これを改良して
こんにちは(0)
こんにちは(1)
ありがとう(2)
ありがとう(3)
と4つの言葉をループして(20)まで表示されるプログラムを作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: VisualStudio2008
[3.3] 言語: C
[4] 期限: 2011年6月15(水) 18:00まで
[5] その他の制限: 特になし
おねがいします
>>593 ありがとうございます。
これは括弧内の数字を4で割った答えが2より下ならこんにちは、それ以外ならありがとうと表示される…んですよね?
596 :
デフォルトの名無しさん :2011/06/14(火) 21:30:42.56
>>594 助かりました。本当にありがとうございました。
[1] 授業単元: コンピュータ言語 [2] 問題文(含コード&リンク): あらかじめmalloc関数を使って10件の データを格納できるようにしておく。 その後11件目の"データの入力があった場合にのみ"realloc関数を使って 更なるデータを入力できるようにする。 プログラムの終了はEOFとする。 動作例: 値1:6 値2:34 ・ ・ ・ 値10:54 realloc関数によりデータ入力が追加されました。 値11:21 値12:10 ctrl+Z(EOF) アドレス*******に格納されている値1は6です。 アドレス*******に格納されている値2は34です。 ・ ・ ・ アドレス*******に格納されている値10は54です。 アドレス*******に格納されている値11は21です。 アドレス*******に格納されている値12は10です。 ※*にはアドレスが入ります。
↑の続きです。 [3] 環境 [3.1] OS:Windows vista business [3.2] コンパイラ名とバージョン: visual studio [3.3] 言語:C言語 [4] 期限: 2011年6月20日月曜日午後3時まで [5] その他の制限:特にありません。 よろしくお願いします。
>>571 の問題書いたけど、誰か答えてた?
それと答えは1.0に収束するけど合ってる?
601 :
549 :2011/06/14(火) 22:20:51.20
602 :
597 :2011/06/14(火) 22:23:34.99
>>600 コメントまでご丁寧に、どうもありがとうございます!!
603 :
デフォルトの名無しさん :2011/06/14(火) 22:51:54.12
>>584 少なくともjavaで書いたものではバグはないと思います。
Cはまだ勉強中なので何とも言えませんが。
>>605 簡単なコードを右から左に移植しただけだから俺にも何とも....
java の結果と大きく異なるようなら見直す必要があるけどね
検証は任せた
607 :
559 :2011/06/15(水) 00:50:06.83
>>601 不具合のご指摘、感謝いたします。
'/*', '*/' など二文字で1トークンになる処理を、ミーリー型の決定性オートマトンで押し通すのは、なかなか気を使いますね。
>>601 はバックスラッシュを真面目に処理しているようですが、私のは手抜きです。シングルクォータとダブルクォータの中にいるときしかチェックしていません。
>>543 以下に訂正いたします。
http://codepad.org/rflAdPis
QZの活躍が見られないが...
Qは無脳だから新しい宿題をだせばぐぐってきてそれを適当に改造してうp出来るが JavaをCに移植するなどのぐぐるだけでは無理な事は出来ない
>>610 >適当に改造して
それって Java を C/C++ に移植するより難しいけど?
難しくありません ぐぐっても見つからない程度に変形させるだけですから
頭を使って考えるってことが致命的に下手だからな
◆QZaw55cn4cは糞
615 :
デフォルトの名無しさん :2011/06/15(水) 10:36:33.00
【課題】 九九の表を表示させるプログラムをwhile文、do-while文でそれぞれ2つ完成せよ 実行結果 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81
617 :
デフォルトの名無しさん :2011/06/15(水) 11:31:53.26
【1】C言語 【2】キャラクタでピラミッドを表示するプログラムを作成せよ 実行結果 何段にしますか? 7 # ### ##### ####### ######### ########### ############# 【3】UNIXのC言語 【4】6/17まで お願いします
618 :
デフォルトの名無しさん :2011/06/15(水) 11:39:17.34
[1] 授業単元:処理時間
[2] 問題文(含コード&リンク):
プログラム(
http://ideone.com/nJToL )の機能(結果画像)を変えずに高速化せよ。
だが高速化をするにあたり以下の制約を設けることとする。
制約1:結果画像が変わらない
制約2:平均化、エッジ抽出処理ともに100回行う。
[3] 環境
[3.1] OS:Linux
[3.2] gcc
[3.3] 言語:C言語
[4] 期限:今日中
[5] どこをどう変えれば高速化するかを優先して教えて頂ければ幸いです。
>>617 #include <stdio.h>
int main(void)
{
int i, j, n;
printf("何段にしますか?\n");
scanf("%d", &n);
for(i = 1; i <= n; i++) {
for(j = i; j < n; j++) printf(" ");
for(j = i * 2 - 1; j > 0; j--) printf("#");
printf("\n");
}
return 0;
}
620 :
デフォルトの名無しさん :2011/06/15(水) 12:39:54.66
>>618 128〜133行目を
fwrite(pt, sizeof(UCHAR[DIM1*DIM2*DIM3]), 1, fp);
↑行に変えるだけでかなり早くなりそう。
621 :
デフォルトの名無しさん :2011/06/15(水) 13:44:43.48
[1] C言語演習
[2] @
http://codepad.org/QMwiwwtp を改良して、
80〜100:優 70〜 79:良 60〜 69:可 0〜 59:不可
の分布グラフを表示するプログラムを作成しなさい。
【実行結果】
点数を入力してください。
1番:17
2番:38
3番:100
4番:95
5番:23
□ 分布グラフ □
優:**
良:
可:
不可:***
A @を改造して、「不可一覧表」も表示できるようにしなさい。
【実行結果】
@のプログラムの下に
不可一覧表
1番 ( 17点)
2番 ( 38点)
5番 ( 23点)
と表示させる。
B 配列を利用して、23番目までのフィボナッチ数列を画面に整列させた状態で表示させなさい。
1,1,2,3,5,8,13,21,34,…
[3.1] Windows7
[3.3] C言語
[4] 木曜19時まで
[5] 配列まで
わかる方どうかよろしくお願いします。
>>618 filtering() の中で9マス分の重みつき加算を行ってる場所をポインタ演算すれば少し早くなるかも知れない
例えばLine84〜Line90 行目を
pa = a;
for( i = -1; i <= 1; i++ ) {
pd = &(data[g+i][r-1][k]);
for( j = 0; j < 3; j++ ) {
tmp += ( *pd * *pa );
pa++;
pd += DIM3;
}
}
の様にするとかね(double* pa;UCHAR* pd;の宣言を追加する)
配列アクセスのオフセット演算を毎回するよりは加算の方が早いと思うけどコンパイラがお利口なら変わらないかな
623 :
デフォルトの名無しさん :2011/06/15(水) 13:56:33.28
>>618 226〜232行目のfreadも一括読み込みにすれば高速化できそうだね。
[1]C言語 [2]for文:1〜10までを表示する他に合計を求めなさい。 実行画面 ______ |12345678910| |合計:55 |  ̄ ̄ ̄ ̄ ̄ ̄ [3]環境 [3.1] OS: (Windows [3.2] CPad for Borland 2.31 [3.3] 言語:C [4] 期限: 2011年6月22日 [5] その他の制限:
>>618 doubleはやめて、8バイト整数(long long)とか(無ければ自前で用意するか
QZに頼むか(推奨))使うのが高速化の切り札とみた
Qに高速化とか、何の冗談だよw
>>625 平均化する時の重みが 1/9 なので整数だと精度が出ないよ
平均化するフィルター関数とエッジ抽出用のフィルター関数を分ければ整数でも処理できると思うけど
>>618 試しに書いてみた
ttp://ideone.com/ufVcv 元のコードより3倍程速くなったよ、結果ファイルも比較したけど同じだった
同じサイズの画像が無かったので DIM1, DIM2 を書き換えたし、100回も回す気にならないので N_REPEAT も書き換えた
元ソースと性能比較するなら元に戻してね
修行が足りないので改修点は次に
629 :
628 :2011/06/15(水) 16:34:27.68
改修点
・フィルター関数を平均化用とエッジ抽出用に分けて整数で処理した
エッジ抽出用の重みを整数にしたので実数の重みが必要ならこのコードは使えない
平均に関しては加算して9で割るだけなので問題無いだろう
関数を分けたことで無駄な処理も少し減った(平均取る場合レンジチェックは必要無いし、エッジ抽出の場合は四捨五入は必要無い)
・フィルター内でのソース配列アクセスを3回に一度に減らした
>>622 で書いた通り
修行はいつになったら終わるんだろうw
プログラミングってどうすればできるようになる?
おまえにはむり
921 名前: [―{}@{}@{}-] デフォルトの名無しさん[sage] 投稿日:2011/06/15(水) 18:13:22.50 作りたいものが無いのにプログラムの勉強してる方がおかしい 普通は作りたいものがあるから仕方なくプログラム勉強するもの
授業があるんだお
だからなに
◆QZaw55cn4cは糞だなぁ
[1]C言語 [2]本文 以下のLED 7セグメント(4桁)を制御するプログラムを作成してください (1) 入力に+ キー1つをもち、1桁だけのカウンタを作成する。 (2) スイッチのチャタリング防止のために、20msec程度の間に1msec 間隔で連続5回程度ON状態を検出したらONにする関数を追加する。 (3) スイッチのチャタリング防止の機能を拡張すると、長押しの動作の 判定が可能になる。長押し(1秒以上)でカウンタが「ゼロ」になるように拡張する。 (4) 500msecの間に2回ONを検知したらダブルクリックである機能を追加 する。ダブルクリックでは、自動的にカウントアップする動作を行うこと。 もう一度ダブルクリックで停止、ダブルクリックで再開、長押しでリセットする。 (5) 実験1〜4で実現した機能をさらに活用して、4桁のカウンタを作る。 このとき長押し、ダブルクリックの機能も残す。 4桁の7セグを直接制御するため、 ダイナミック点灯の考え方を使って4桁表示を行う。 7セグを制御する7ポート(例:RBO〜6)と表示する桁を制御する4ポート (例:RAO〜3)を利用する。 表示桁の切り替えを5msecで行い、そのタイミングでその桁に表示する数値を切り 替える。 [3] 環境 [3.1]Windows Vista [3.2]Visual Studio 2008 [3.3]C言語 [4]6月21日 [5]使用したPICは、16F84です よろしくおねがします
641 :
デフォルトの名無しさん :2011/06/15(水) 22:41:17.91
>>639 @&Aの方なんですが、const修飾子や%sというのは習っていないので、
何か別のもので代用できませんか?
Bの方は問題ないです。ありがとうございます。
>>618 今使用している(または指定されている)コンパイルオプションとかも出した方がいいような。
それによってロジックの変更対象となる内容が変わってくることもある。
>>622 はコンパイルオプションによっては効果がないけれど
>>628 の平均化処理の改善は効果がある
といった感じで。
>>622 の代わりに、手動ループ展開でいいとも思う。
tmp=
data[g-1][r-1][k]*a[0] +
data[g-1][r ][k]*a[1] +
data[g-1][r+1][k]*a[2] +
data[g ][r-1][k]*a[3] +
data[g ][r ][k]*a[4] +
data[g ][r+1][k]*a[5] +
data[g+1][r-1][k]*a[6] +
data[g+1][r ][k]*a[7] +
data[g+1][r+1][k]*a[8];
const なんて飾りです、エロい人にはそれが判らんのですよ
644 :
デフォルトの名無しさん :2011/06/15(水) 23:31:28.67
>>643 とはいってもウチは習ってないことを使ってたらうるさいからなぁ。
「こんなの教えてないじゃん」って突っ返される。
自主学習したんだけど?って言えばいいと思う
>>644 だから飾りだって言ってるだろ、外しても生成されるコードに変化は無いよ
647 :
デフォルトの名無しさん :2011/06/15(水) 23:47:10.42
>>645 あくまで習ってる技術だけで作れ、ってことだと思う。
そのへん無駄に厳しいんだよなぁ。
そうしないとできないなら話は別なんだろうけど。
>>648 しないよ、コンパイル時にチェックされるだけだろ
もし変化するって言うならどんな変化があるんだ?
そのアドレスにブロックでもかかるのか?
C++ならいろいろ影響あるけど、Cだと変わらないんじゃないのかな。
最適化のヒントに使用される
>>650 C++でもあの使いからなら変わらないんじゃないか?メモリ配置に影響有ったっけ?
>>651 ヒントに使用されて結果は変わるのか?
変わるよ 「どう変わるんだ?」は無しな、最適化でググれカス
レジスタに配置されたり よりコストの低いコードに変化するよ
>>653 どう変わるかは答えられないんじゃないのw
>>654 レジスタに配置?定数を?意味が判らん
最適化は前後関係を総合的に判断して臨機応変に適応されるからconst付けたらどーなるの?という問いに必ずこうなるという答えはでないが最適化の判断材料にはなる 結果としてコードが変わらない事もあれば変わる事もある 変わる場合でも前述の通り前後関係によってコードは変化する どう変わるかという問い自体ナンセンス
レジスタにするのは、頻繁に書き換える必要があるときだよね?
const_castが必要になる言語設計にミスがあるな
>>652 このスレなら、C++でconstを使うのは(最適化に限らず)無駄だと誤解しちゃう人が出てくるかもしれないね
>>660 一応、コンパイル時にチェックされるとは書いたんだけどね
それにC++でクラス宣言内で使った場合は全く意味が違うからコードどころか動作も変わる
誤解させそうな書き方は避けた方が良いのはそうだね、反省しよう
最適化知らない馬鹿が引っ込みつかなくなっただけかw
>>625 >(推奨)
速度はともかく、チェックしていただいていたとは光栄です。でもテストがまだまだ足りない。GMP の結果と付き合わせたほうがいいかも、と考えています。
そんなことするくらいなら、素直に GMP 使えっ、てとこですが‥‥‥。
665 :
デフォルトの名無しさん :2011/06/16(木) 00:58:05.71
>>663 ありがとうございます!非常に助かりました。
テレビ局が、電力ピーク時に放送やめたら、劇的に消費電力が下がるやろ。 みんなテレビ消すから。 公共機関を止めるくらいなら、テレビやめろ!
QZがコンパイラなら、引数以外で定義されている constな変数は、生成コード(データじゃなく)の 中に埋め込んでしまうんだろうな
[1] 授業単元: 構造体 [2] 問題文(含コード&リンク): @:char name[20],int english,int mathematics をメンバとする構造体 score を定義せよ。 A:以下の5人の情報をもつ配列 seito[5] を、@で作成した構造体 score 型を使って宣言せよ。なお、5人の情報は初期値として宣言することにする。 name english mathematics ”yamada” 50 70 ”tanaka” 70 60 ”suzuki” 80 70 ”yamamoto”40 60 ”sakata” 90 80 B:Aで初期値を代入した構造体 score 型の構造体配列 seito[5] を宣言し、各メンバ変数でソートする関数を作成せよ。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限: 6月21日09:00まで [5] その他の制限: Bの問題をお願いします。
問題 入力ファイル中のアルファベット各文字の個数を数えるプログラムを作成せよ。(大文字と小文字は合わせて数える) スペースや記号、数字などは数えない。 そして、結果を文字数の多い順にソートして出力せよ。 コンパイラ gcc 期限 2011/6/18
[1] 授業単元: [2] 問題文(含コード&リンク): まずcv::imreadで画像を読み込みcv::thresholdで二値化し 白くなった場所の画素の総数を求めたいのですが、どう記述すれば良いのでしょうか? ラベリングし場所ごとの、というよりは画像全体で白い場所が何画素あるかを知りたいのです。 [3] 環境 [3.1] OS: Windows [3.2] VC2008 [3.3] C++ [4] 期限:無期限 [5] その他の制限: 昨日より独学でOpenCVを扱い始め 参考書を読みながら基本的なことを勉強中ですが 今まで触った事のないC++環境で四苦八苦しています。 初歩的な質問で申し訳ありませんが教えていただけないでしょうか?
672 :
117 :2011/06/16(木) 18:13:52.73
>>669 >条件コンパイル指定行、
が困難(自前で解釈するのしんどいです。)です。
>クォーテーションの内部やコメント
は、
>>601 ,
>>607 でほぼ完成しているので、流用が可能です。
とりあえず、しばしお待ちを。
675 :
デフォルトの名無しさん sage :2011/06/16(木) 18:59:36.26
[1] 授業単元:プログラミングC [2] 問題文(含コード&リンク):ある学校の複数のクラスで試験を実施した. クラスごとの各学生の試験の得点が2次元配列の形で与えられている. クラスごとの平均点を計算 し,コンソールに出力するプログラムを作成せよ [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 明日まで
678 :
676 :2011/06/16(木) 20:11:52.36
今気づいたけどヘッダがCようになってた
679 :
765 :2011/06/16(木) 20:50:01.44
<実行例> $ ./report10-1 ←プログラム実行のコマンドを入力 ==== クラス 0: 4人 ==== 出席番号 0: 得点 32点 出席番号 1: 得点 52点 出席番号 2: 得点 18点 出席番号 3: 得点 58点 クラス平均点:40.0点
==== クラス 0: 4人 ==== 出席番号 0: 得点 32点 出席番号 1: 得点 52点 出席番号 2: 得点 18点 出席番号 3: 得点 58点 クラス平均点:40.0点 ==== クラス 1: 3人 ==== 出席番号 0: 得点 41点 出席番号 1: 得点 59点 出席番号 2: 得点 50点 クラス平均点:50.0点 ==== クラス 2: 6人 ==== 出席番号 0: 得点 63点 出席番号 1: 得点 83点 出席番号 2: 得点 71点 出席番号 3: 得点 89点 出席番号 4: 得点 77点 出席番号 5: 得点 97点 クラス平均点:80.0点
実行例 ==== クラス 0: 4人 ==== 出席番号 0: 得点 32点 出席番号 1: 得点 52点 出席番号 2: 得点 18点 出席番号 3: 得点 58点 クラス平均点:40.0点 ==== クラス 1: 3人 ==== 出席番号 0: 得点 41点 出席番号 1: 得点 59点 出席番号 2: 得点 50点 クラス平均点:50.0点 ==== クラス 2: 6人 ==== 出席番号 0: 得点 63点 出席番号 1: 得点 83点 出席番号 2: 得点 71点 出席番号 3: 得点 89点 出席番号 4: 得点 77点 出席番号 5: 得点 97点 クラス平均点:80.0点
実行例 ==== クラス 0: 4人 ==== 出席番号 0: 得点 32点 出席番号 1: 得点 52点 出席番号 2: 得点 18点 出席番号 3: 得点 58点 クラス平均点:40.0点 ==== クラス 1: 3人 ==== 出席番号 0: 得点 41点 出席番号 1: 得点 59点 出席番号 2: 得点 50点 クラス平均点:50.0点 ==== クラス 2: 6人 ==== 出席番号 0: 得点 63点 出席番号 1: 得点 83点 出席番号 2: 得点 71点 出席番号 3: 得点 89点 出席番号 4: 得点 77点 出席番号 5: 得点 97点 クラス平均点:80.0点
683 :
スミス :2011/06/16(木) 22:17:32.03
==== クラス 0: 4人 ==== 出席番号 0: 得点 32点 出席番号 1: 得点 52点 出席番号 2: 得点 18点 出席番号 3: 得点 58点 クラス平均点:40.0点 ==== クラス 1: 3人 ==== 出席番号 0: 得点 41点 出席番号 1: 得点 59点 出席番号 2: 得点 50点 クラス平均点:50.0点 ==== クラス 2: 6人 ==== 出席番号 0: 得点 63点 出席番号 1: 得点 83点 出席番号 2: 得点 71点 出席番号 3: 得点 89点 出席番号 4: 得点 77点 出席番号 5: 得点 97点 クラス平均点:80.0点
685 :
674 :2011/06/17(金) 00:15:16.27
>>669 逆に質問です。
>条件コンパイル指定行、マクロ定義行は探索範囲としないこと
というのは、「'#' で始まる行は対象外」と考えていいでしょうか?
横レス失礼。 >685 とりあえず、エスケープで改行文字がエスケープされて、次の行もマクロ行になる点は 考慮しておく必要があるでしょうね。
688 :
デフォルトの名無しさん :2011/06/17(金) 12:36:53.61
>>575 ttp://codepad.org/hBQREaIs とりあえず、作ってみたけど求められてるレベルの代物じゃねぇと思うw
コンパイル可能なソース飲みに対応してるから、その辺は突っ込まんでくれw
特に数値リテラル辺りは浮動小数点とサフィックスの検出がいい加減だから修正したほうがいい。
ところで、構文解析とかするような学生なら、yaccとか使うんだろうけど、どの辺の層の学生がこんな辺鄙な課題するの?
>>688 575じゃないけど難しく考えすぎって感じ
1#include<stdio.h>
2:int main(void){
3:int foo,bar;
4:foor=1;
5:bar=2;
6:return 0;
7;}
を食わせると
int 2回 L2 L3
main 1回 L2
void 1回 L2
foo 2回 L3 L4
bar 2回 L4 L5
return 1回 L6
って感じで使われている単語と出現回数と出現行リストが
出てくるようにしろってことじゃねの?
>>668 って最後ソートって書いてあるけど、名前でソートするの?
692 :
デフォルトの名無しさん :2011/06/17(金) 16:42:25.81
>>689 まぁ、以下の要件に気をつければいいだけだから、難しく考えずにちょっと作ってみたらいいと思うよ。
> ただしクォーテーションの内部やコメントや条件コンパイル指定行、
> マクロ定義行は探索範囲としないこと(トライグラフのことは考慮しなくてもよい)
こんな細かい話はさておき、行番号の出力にLをつけるべきかどうかを深く議論すべきかもしれないね。
694 :
デフォルトの名無しさん :2011/06/17(金) 17:36:05.12
>>689 難しく考えすぎなんかね?
単純にトークン切り出しってCSVとかXMLパーサのイメージあるから、
課題だったらそっちかと思ったが。
Cソースだと、単純にトークン切り出したらサフィックスと浮動小数点のeが取り出されるからよぉ・・・。
あと、純粋Cなんて一年触ってねぇニートには少々ハード過ぎたよ。
696 :
デフォルトの名無しさん :2011/06/17(金) 18:39:20.57
698 :
デフォルトの名無しさん :2011/06/17(金) 22:48:30.06
cygwin使ってるんですけど 普通に./a.exeで実行した場合は n = って表示されて数字を入力するとその結果が出力されるんですが scriptをとってから./a.exeで実行するとn = と表示されるだけで 何も入力できずに終わってしまいます... どうしたらいいでしょうか?
700 :
デフォルトの名無しさん :2011/06/17(金) 22:55:57.72
[1] 授業単元:課題
[2] 問題文(含コード&リンク):
http://loda.jp/0tm/?id=823 *を穴埋めし以下の実行結果になるようプログラムせよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日まで
>>694 C の名前は最初は英字または '_' でなければならないから、
>サフィックスと浮動小数点のe
は自然に排除されるのでは?
ちょっと書いてみようか。
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): 1行最大80文字の空白を挟まない英字文字列を入力し、 10文字続けて表示するごとに改行を挿入して表示するプログラムを作成しなさい [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 6/20まで
>>720 int i, len;
char word[80];
scanf("%s", word);
len = strlen(word);
for (i = 0; i < len; i++) putchar((i + 1) % 10 == 0 ? '\n' : word[i]);
コンパイルしてないけどたぶんこんなかんじ。
違ったw for (i = 0; i < len; i++) { putchar(word[i]); if ((i + 1) % 10 == 0) putchar('\n'); } こんなかんじ。
705 :
デフォルトの名無しさん :2011/06/17(金) 23:24:11.25
>>701 数値リテラルの検証を書いてないのですよ。
浮動小数点のドットが出てきたら区切り文字扱いで別の処理に回して、
再度続く数値にeを引っ張らせているから正確性は保証できない。
自動羊さんの出番ですね
707 :
デフォルトの名無しさん :2011/06/18(土) 00:53:13.83
708 :
707 :2011/06/18(土) 00:59:53.61
709 :
607 :2011/06/18(土) 01:33:24.35
>>702 これは問題文の通り、10ごとに/nいれるだけでいいだろ。
>>702 #include <stdio.h>
int main(void)
{
手が滑った
>>702 #include <stdio.h>
int main(void)
{
char str[81];
int i, j;
scanf("%s", str);
for(i = j = 0; str[i]; i++) {
printf("%c", str[i]);
j++;
if(j == 10) {
printf("\n");
j = 0;
} }
return 0;
}
>>702 #include <stdio.h>
int main(void){
char s[81], *p = s;
printf("s = ");
scanf("%s", s);
while (*p) {
putchar(*p++);
if (!((p - s) % 10))
putchar('¥n');
}
return 0;
}
お願いします。 [1] 授業単元: 課題 [2] 問題文 1. 10*10(=100)の領域に、ランダムに30個の点を配置する 2. ランダムに2点 A, B を選ぶ 3. AからBまで、距離10以内にある点を経由し移動が可能か否か判定せよ [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 6/20まで [5] 大学2年生レベルで 1. 2. の部分は作れました。3.で苦戦しています。 組合せ爆発?を回避する方法があるんですかね、
10x10の正方形に内接する円の外側にだけ点が有る場合に否可能(対角線)
はぁ?
AとBが距離10以内か、距離10以内に共通の点があればいけるじゃないの? 10*10だと、2点以上経由する必要はないと思う。
ごめん、ありそうだな。719は撤回
>10*10だと、2点以上経由する必要はないと思う。 なんで? 例えば、20個の点を経由して移動が可能な場合もありえるよね
距離は1.0ぐらいじゃないと、ほとんど可能になってしまいそうだな
723 :
デフォルトの名無しさん :2011/06/18(土) 14:24:29.92
>>721 なんで?
>3. AからBまで、距離10以内にある点を経由し移動が可能か否か判定せよ
問題文読む限り、ここで、最大のAB間の距離は矩形の対角に相当する距離14.xxだから、
A,Bのそれぞれの距離10の点集合を積集合とればそれでいいんじゃねぇの?
俺の文章理解が足りないのか?
726 :
716 :2011/06/18(土) 14:38:25.43
説明不足でした。 各点から半径10以内の点に移動可能、複数回経由してもokです
任意に点A、Bをとったとき、ある点Cを選んだら、AB間、BC間がともに距離10以下に出来る。
5*5でA、Bがここなら A□□□□ □□□□□ □□□□□ □□□□□ □□□□B Cをこうとればいいんだろ。 A□□□□ □□□□□ □□□□□ □□□□□ C□□□B これってなんのプログラムも必要ないと思うんだが。明らかだ。 N*Nだったら距離(N-1)で十分だし。
問題の条件を厳しくして、これにしたらプログラムする意味あるだろう。 『任意に点A、Bをとったとき、ある点Cを選んだら、AB間、BC間がともに距離10に出来る。』
元の問題をちゃんと読めてないようなアホが何か言ってるw
AとBが距離10以内なら、経由の必要がないので、他の点を考慮する必要はない。 AとBが距離10以上の場合、AとB以外の点を、 Aから直接到達可能な場合はAグループ、 残りの点で、Bから直接到達可能な場合はBグループ、 何れも直接到達不可能な点はZグループにする、 1.AグループとBグループの何れかが空なら、「不可能」 2.Aグループの点を順に見ていき、それからBに到達可能であれば「可能」 3.Aグループの点を順に見ていき、それからBグループの点に到達可能であれば「可能」 4.Zグループが空でないとき、Zグループの点を順に見ていき、 Aグループ、Bグループの双方に到達可能な点があれば、「可能」 こんな考え方で出来ないかな?
>>730 Aから距離10以内に点があったら、探索を続けてBまでいければいい。
4.を訂正 Zグループは双方じゃなくても、Zグループ内の何れかでAグループ、Bグループに到達出来ればいけそう。
>>732 A、Bの半径10以内をそれぞれ赤と青で塗りつぶす。
塗りつぶされた点があればそこから半径10以内を同色で塗りつぶす。
色が交わるか。
>組合せ爆発?を回避する方法があるんですかね、
>>716 「堂々巡り」と「遠回り」の回避方法を訊いてるんだろw
100*100や1000*1000でも解けるアルゴリズムがいい。
738 :
デフォルトの名無しさん :2011/06/18(土) 15:01:58.30
>>726 コレって問題文そのままなの?
移動可能の可否ならば、複数回経由する必要がAB両方から距離10以内の点一つ見つけるだけで終わるんだが、認識に何か違いがあるのか?
再帰とか配列塗りつぶしでもさせたい問題なのか?
>>738 考えて見たけど、それ程単純ではなさそう。
>>738 A、Bからともに距離10以内の点がなくても移動可能な場合はある。
>>716 オセロみたいではなくて碁のように交わる線上を頂点としていいよな?
格子点に限定したら不可能な場合がなくなるだろ
重みつきグラフを作って最短経路が存在するかどうか調べるだけじゃないの?
x=A、y=Bとする。 d(x,y) <= 10なら終了。 xから距離r以内の点でyに最も近い点をx'とする。 yから距離r以内の点でxに最も近い点をy'とする。 x=<x'かつy=<y'なら存在しない。 x=x' y=y' として2行目へ。
>>746 「堂々巡り」と「遠回り」の回避は考慮されてますか?
x=A; y=B; while( d(x,y) > r ) { x' = xから距離r以内の点でyに最も近い点 y' = yから距離r以内の点でxに最も近い点 if( x==x' && y==y' ) break; x=x'; y=y'; }
[1]C言語課題 [2]ASCIIアートだけで「赤頭巾ちゃんと狼」をアレンジしたRPG を作れ [3] Windows 7/Visual studio/C言語 [4]本日まで [5]土曜日補習で出た宿題です。出来なければ帰れません よろしくお願いします
>>747 かならずBに最も近い点を取っていくので問題なし。
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): 1行最大80文字の空白を挟まない英字文字列を入力したとき、大文字の文字を小文字に、小文字の文字を大文字にして表示するプログラムを作成しなさい このプログラムの入力は、英字以外の文字が入力される場合を考慮しなくてもよい [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 6/20まで
746.c(3): 変数 'r' が未定義です。 746.c(5): 演算子 '=<' が未定儀です。
>>752 総当たりで塗りつぶすほうが手間掛かる。
あらかじめ埋立地のようにして地図を作っておけば、海以外の点同士はつながっていると簡単に判定できるが。
>>750 このデータでやって、上手くいく?
A=(0,0)
B=(10,1.5)
C=(0.1,0)
D=(0,0.5)
E=(1,10)
F=(4,10)
G=(10,2)
>>751 #include <stdio.h>
int main()
{
char buf[ 81 ], *p = buf;
scanf( "%80s", buf );
while( *p )
*p++ += ( *p >= 'a' && *p <= 'z' ? 'A' - 'a' : 0 ) - ( *p >='A' && *p <= 'Z' ? 'A' - 'a' : 0 );
printf( "%s\n", buf );
return 0;
}
>>716 あってるかはしらんが。
>>748 の実装。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
typedef struct { int x; int y; } ZAHYO;
#define N 10
#define R 10
#define TENSU 30
ZAHYO ten[TENSU];
double distance(int m, int n){ double d=pow(ten[m].x-ten[n].x, 2) + pow(ten[m].y-ten[n].y, 2); return sqrt(d); }
int tikaiten( int m, int n, int r) { // ten[m]から距離R以内でten[n]に最も近い点
int i, hozon=0; double hozon_d = r+1;
for(i=0; i<TENSU; i++) {
if( distance( m, i) > r ) continue;
double d=distance( n, i);
if(d>=hozon_d) continue;
hozon_d=d; hozon=i;}
return hozon;}
int main() {
int su=0,i;
while(su < TENSU) {
int x=rand()%N; int y=rand()%N;
for(i=0; i<su; i++) if(ten[i].x==x && ten[i].y==y ) break; if( i<su ) continue;
su++; ten[su].x=x; ten[su].y=y; }
int m=0, n=1;
while( distance (m, n) >R ) {
int k = tikaiten( m, n, R); int l = tikaiten( n, m, R);
if(k==m && l==n) { printf("×\n"); return 0; }
m=k; n=l;}
printf("○\n");}
>>716 経由点は1点なの?ちゅか10x10の範囲で距離10以下なら1点以上経由する必要が有るケースが浮かばない
Aから距離が10以下である点群とBから距離が10以下である点群に共通項が有れば移動は可能だよね
距離がもっと短くて複数点経由が必要なら面白い問題になりそうだけど
761 :
デフォルトの名無しさん :2011/06/18(土) 17:16:22.79
>>749 もう少し細かく指定してくれ。
お前さんの授業内容から何がどういう方向性で作れればいいかまるで見当がつかない。
[1] 授業単元:C言語! [2] 問題文(含コード&リンク):クラスごとの平均点の出力のかわりに,全クラスで得点の高い者順に,クラス・出席番号・得点のセットのデータ出力を行うプログラムを作成せよ. <実行例> $ ←プログラム実行のコマンドを入力 ( 0) クラス:2 出席番号:5 得点:97 ( 1) クラス:2 出席番号:3 得点:89 ( 2) クラス:2 出席番号:1 得点:83 ( 3) クラス:2 出席番号:4 得点:77 ( 4) クラス:2 出席番号:2 得点:71 ( 5) クラス:2 出席番号:0 得点:63 [3] 環境 [3.1] windows: (Windows/Linux/等々) [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語: C [4] 期限:月曜日まで
764 :
763 :2011/06/18(土) 18:00:01.15
766 :
763 :2011/06/18(土) 18:05:31.00
766では、間違えるケースがあるかも。 迂回しないとたどり着けない場合は求まらない気がする。
>>716 片側から、たどり着ける部分を総当たりで、チェックしていくのが唯一の正解の気がするな。
>>766 > [3.3] 言語:C
参照使うなよ。
>>767 > 迂回しないとたどり着けない場合は求まらない気がする。
どんなケースがあるんだろう?
>>724 なんかナンセンスだな、
MVVMパターンでコード書いときゃ
画像云々なんて関係ないんだが。
772 :
771 :2011/06/18(土) 18:45:43.51
ごめん忘れて・・・
>>770 これで正解と進めてたら、中心部分でギリギリ距離が足らなかったら失敗する。
■□□□□
□■□□□
□□■□□
□□□■□
□□□□■
しかしこう進めたら届くケースがあり得る。
■□□□□
■□□□□
■□□□□
■□□□□
■■■■■
>>716 は、実質的には総当たりするしかないだろ。無駄な計算(再計算)を省きつつだが。
>>770 10x10で半径10というところがミソでA=(1,1), B=(9,9)で
(0,0),(0,1), ....(0,9),(1,9),(2,9), .... (9,9)という経路しかない場合。
「10x10で半径10というところがミソ」なのか? この動ける距離がでかすぎるのが、間違えやすい原因だな。 半径1以下なら大域的経路が重要と思いつくのだが。
>751
ttp://codepad.org/DvEBw1xk 特に制限ないから80文字以上、空白含む、英数字以外ありでも動作するコードになっている。
もちろん80文字以内、空白なし、英数字のみでも動作する。
>757
文字コード体系がa-z, A-Zが連続、ofsetがすべて同じじゃないと破綻する。
>>716 を一般化すると平面[0,1]×[0,1]に点z(0)、・・・z(N)があり、
z(0)からz(N)をつなぐ経路で各経路間がR以下になるものを求めよ。
まだ解けていない。
最短経路を求めるんじゃなければ、一度通った点にチェックいれときゃすぐ終わる
>>716 始点と終点のペアが1つしかないなら幅優先探索でいいし、いくつもの始点と終点のペアに対して移動可能かどうか答えるならワーシャル・フロイド法っぽくやればいい
>>781 こう届くケースもあり得る
□■■■□□□
■□□■□□□
■□□■□□□
■□□■□□□
■□□□■■■
■□□□□□□
■■■■■■■
最短距離探索とは違うだろ。 一つもたどれる道がないことを示す為には力任せ・全数探索しか無いと思うが。 それをいかに高速化するかが重要では。
これは進める距離次第で経路がまったく違ってくる。 幅1.0だったらまっすぐ進めたとしても、 幅0.9にしたらまっすぐは進めなくなり得る。
>>785 問題理解できないバカは引っ込んでていいよ。
>>716 はA*アルゴリズムが最速では。
直線で結ぶのが最短だという知識で探索するんだ。
A* アルゴリズムは、各頂点nからゴールまでの距離の推定値 h* (n) を知っていた場合に対して 最短経路問題を効率的に解くアルゴリズムである。 ただし、推定値は実際の距離と同じであるかないしそれより小さくなければならない。 例えば地図上を道路に沿って歩いたときの最短経路を求めたい場合、直線距離を h* (n) として用いる事ができる。 A* アルゴリズムは有名なアルゴリズムダイクストラ法を推定値つきの場合に一般化したもので、 大まかに言えば、ダイクストラ法を推定値が小さい方ものから順に探索するよう改良したものである。 推定値 h* (n)が恒等的に0である場合はもとのダイクストラ法に一致する。 A* アルゴリズムは1968年にPeter Hart、Nils Nilsson、Bertram Raphael の三人が発表した論文の中で最初に記述された。 A* というこの一風変わった名前は、この論文でスタートからゴールまでの最短経路を 確実に見つけるアルゴリズムを許容的 (Admissible) と呼び、論文の数式中に 許容的なアルゴリズムの集合を A と表し、 そのAの中でも評価回数が最適になる物を A* と表記していたためであるといわれている。 A* - Wikipedia
>>788 ヒューリスティック関数h*(n) を個々の問題について設定するのが、実際上はなかなか難しいのですが。
>>716 [2] 問題文
1. 10*10(=100point)の領域に、ランダムに 13 個の点の集合 A を配置する
2. A の中からランダムに1点 a を選ぶ
3. 点 a からa以外の点 A のいづれかの点まで、半径 10 以内で到達可能か判定せよ
4. 点の集合 A のいづれの点においても 3. が到達可能か判定せよ
例えば a=(0,0)とすると (6,8)には届くが (5,9)には届かない。
0(a) 1 2 3 4 5 6 7 8 9
1 1.41 2.23 3.16 4.12 5.09 6.08 7.07 8.06 9.05
2 2.23 2.82 3.60 4.47 5.38 6.32 7.28 8.24 9.21
3 3.16 3.60 4.24 5 5.83 6.70 7.61 8.54 9.48
4 4.12 4.47 5 5.65 6.40 7.21 8.06 8.94 9.84
5 5.09 5.38 5.83 6.40 7.07 7.81 8.60 9.43 10.29
6 6.08 6.32 6.70 7.21 7.81 8.48 9.21 10 10.81
7 7.07 7.28 7.61 8.06 8.60 9.21 9.89 10.63 11.40
8 8.06 8.24 8.54 8.94 9.43 10 10.63 11.31 12.04
9 9.05 9.21 9.48 9.84 10.29 10.81 11.40 12.04 12.72
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
>>757 のプログラムを、ファイルinput.txtから読込、処理結果を画面だけではなく、
ファイルoutput.txtに書き出すプログラムにしなさい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限: 6/20まで
>>762 入力値の仕様は?
テキスト読み込みなのか、直接入力なのか
>>793 757 < input.txt | tee output.txt
797 :
デフォルトの名無しさん :2011/06/19(日) 15:44:52.15
【1】c言語 【2】 入力した数値を偶数なら2で割り、奇数なら3倍して1を足すという操作を1になるまで繰り返すプログラムを作成してください 「偶数なら2で割る,奇数なら3倍して1を足す」という部分を関数化してください。 なお,関数は以下の仕様とすること. 関数の仕様 int kakutani(int x){ int ret; 偶数なら2で割る,奇数なら3倍して1を足す return( ret ); }
#include <stdio.h> int kakutani(int x) { int ret; if(x % 2 == 0) ret = x / 2; else ret = x * 3 + 1; return ( ret ); } int main(void) { int n; scanf("%d", &n); while(n != 1) { n = kakutani(n); printf("%d\n", n); } return 0; }
>>796 >#define loop(i,N) for (i = 0; i < N; i++)
なんでこんな糞みたいなマクロの使い方するかなあ
>>799 分かりやすいようにしてるに決まってるだろ
どういう意味でかは想像に任せるとして
#define begin { #define end } とか書いちゃう人? w
そもそも題意を満たしてるのか?
シンタックスシュガー(笑) シンタックスィーツ(笑)
関数名をaaaとか書いてる一方で分かりやすくする為に#define loopって使う時点で支離滅裂だよ。 他人を意識できないコーディングは無意味ですよ。
805 :
デフォルトの名無しさん :2011/06/19(日) 17:10:35.28
【1】c言語 【2】うるう年の判定のプログラムを関数を使って作成してください ちなみにうるう年は4かつ100かつ400で割れる。もしくは4で割れて100で割れない年がうるう年です なお,関数は以下の仕様とすること. uruu関数の仕様 // うるう年ならture(1),そうでないならfalse(0)を返す関数 int uruu(int x){ int ret; うるう年の判定を行う return( ret ); }
わかりやすいつっても、そのすぐうえでNをdefineしてたりして、うーん。
まあ、バグの指摘をするならいざ知らず、 そう言うところにしか突っ込めない奴は スルーすべきと思う。
ret = ((x%4==0 && x%100 !=0) || (x%400 == 0))? 1 : 0;
>>807 独自ルールまっしぐらのコードはレビューで駆逐されるべきバグだよ
>>807 少なくとも仕事でこのような「俺様コード」を書くとすぐに粛正されるレベル
仕事なら、コーディング規約やら色々あるだろうが、 ここなら、お遊びがあってもいいじゃないかな
自分一人で遊ぶのなら勝手にすればいいけど、他人がみるところでやったらフルボッコにされてもおかしくない
フルボッコしてるつもりになるのも一人でやってればいいのにな
OpenBSD由来のリスト処理マクロに↓こんなのがあるけど、これがフルボッコにされない理由は? #define SLIST_FOREACH(var, head, field) \ for ((var) = SLIST_FIRST((head)); \ (var); \ (var) = SLIST_NEXT((var), field))
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): #include <stdio.h> int main() { char buf[ 81 ], *p = buf; scanf( "%80s", buf ); while( *p ) *p++ += ( *p >= 'a' && *p <= 'z' ? 'A' - 'a' : 0 ) - ( *p >='A' && *p <= 'Z' ? 'A' - 'a' : 0 ); printf( "%s\n", buf ); return 0; } のプログラムを、ファイルinput.txtから読込、処理結果を画面だけではなく、 ファイルoutput.txtに書き出すプログラムにしなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 6/20まで
>>811 うpロダに上げた時点でいろんな人が見るんだぞ
フルボッコにされても仕方なかろう
そういうお遊びはうpせずに自分のPCの中だけでやれ
>>814 リスト操作処理をマクロで統治するのはよくある話。
linuxカーネルでも似たようなのがある。
0と-なら0の方がマシ
>>815 #include <stdio.h>
#define IN "input.txt"
#define OUT "output.txt"
int main()
{
char buf[ 81 ], *p = buf;
FILE *fi,*fo;
fi = fopen(IN, "r");
if (fi == NULL){
fprintf(stderr, "Can't open %s\n", IN);
return 1;
}
fo = fopen(OUT, "w");
if (fo == NULL) {
fprintf(stderr, "Can't open %s\n", OUT);
fclose(fi);
return 1;
}
fscanf(fi, "%80s", buf );
while( *p )
*p++ += ( *p >= 'a' && *p <= 'z' ? 'A' - 'a' : 0 ) - ( *p >='A' && *p <= 'Z' ? 'A' - 'a' : 0 );
printf( "%s\n", buf );
fprintf(fo, "%s\n", buf );
fclose(fi); fclose(fo);
return 0;
}
822 :
821 :2011/06/19(日) 20:22:26.77
しまったリロードしてなかったスマn
>>821 いやいや、やる奴がいないのかと思って適当につくってる。ありがとう。
>>819 まあ、コードのひとつでも書けるようになってから来てくれ。
相手がコードを書けないと決め付けるキチガイはQだけでお腹いっぱいなのに、他にもいるのかよw
>>818 黙ってコードはいくつも書いてますが、何か?
[1] 授業単元:アルゴリズム
[2] 点pを受け取り、それを二分木ヒープに登録する関数void insert(Point *p)を作成せよ。
ただし、ヒープの木構造においては、「親の点が子の点より原点に近い」条件を満足するものとする。
ヒープの実体はPoint型のポインタの配列として実現せよ。
必要な場合はupheapなどの関数を適宜作成してよい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日まで
[5] 一応それっぽいのができたものの、Eclipseが何故か動かそうとすると
「問題が発生したため〜」となります。
どの辺りに問題があるのか、教えていただければ幸いです。
http://codepad.org/aHLEh1z1
[1] 授業単元: B木
[2] 問題文(含コード&リンク):
B-木を実装せよ。
最初にB-木の最小次数 t が与えられる。
続いて操作列が一行毎に O[i] key[i] の形で与えられる。
O[i] = 'I' or 'D 'or 'E'
O[i] が'I' は挿入、 'D' は削除、 'E' は終了(木の出力)をそれぞれ意味する。
[3] 環境
[3.1] OS: Mac
[3.2] xocode
[3.3] 言語: (C
[4] 期限: 2011/6/20
[5] その他の制限: とりあえず無制限
*とりあえず挿入でポインタの接続で問題が生じています。
ノード下に他のノードがない、ノードが飽和状態のときに分割をするようにしたんですが、ポインタの接続でわけがわからなくなりました。
現状のソース
http://codepad.org/LZAwDKmg t=2
I 2
I 4
I 6
I 8
←ここでエラーが起きます。
pに代入がしっかりできていないようなのですが、ポインタの代入をどうしたらいいか教えてください。
830 :
デフォルトの名無しさん :2011/06/19(日) 21:58:58.28
>>829 メモリリーク
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww
>>829 よおQ
お前と張り合った所で時間の無駄になるだけの事は分かってるから適当にスルーさせてもらうよ
また汚いコードを上げて恥ずかしくないんだろうかこのクズは
悔しそうですねQはww
>>829 お前みたいな生きてる価値もないようなクズに信用される必要なんてないぞw
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
Qは無職のオッサンでこの宿題スレでゴミみたいなコードを上げる事だけに 生き甲斐を感じているクズだから余り叩いちゃ可愛そうだよw
>>827 ・pを使う前にメモリ確保されていない
・insertの前に++ptr;してるのに、insertの中でも++ptr;している(heap[t] = p;も)
・heap[++ptr] = p;これだと添字0には何も格納されない
それで、回答のコードがほしいわけ?
>>838 今、参考にしてコードを何とか作っています。
まあ見てもらえば分かるように、自分のカスッぷりは大分稀に見るものかと・・・
842 :
839 :2011/06/19(日) 23:09:09.90
というか自分で書いといてなんだけど、俺のコードだと insert()内で先頭チェック必要ないじゃん・・・
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): ファイルinput.txtに、1行最大80文字で空白を挟みながら、英数字が記載されている。 このinput.txtを読み込み、その中に含まれるアルファベット・数字の各文字が何文字ずつあるかを表示するプログラムを作りなさい [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限: 明日まで
おいQお呼びだぞ 寝ないで答えてやれ どうせ仕事ないんだろ?
>>575 >>688 の「数値リテラル」あたりの問題をごまかして回避してみました。
http://codepad.org/JnwFfgOP >>705 たしかに、すぐには気がつかない盲点であることがわかりました。書いてみないとわかりませんでした。
(数字で始まるものも含めて)アルファベット+数字で構成されているものをいったん取り出し、
取り出したあとで、数字で始まるものを排除する、という方向でうまくいきそうですが、さてどうでしょうか?
>>832 だめですね。ちゃんとコードを書いたその同じレス番で煽る(かトリップをつける)のが私の流儀ですから、なりすますのならそこまで徹底しないと。
847 :
デフォルトの名無しさん :2011/06/20(月) 13:18:16.71
・スレタイも読めない奴にレスはしたくない ・スレタイを読んでなお、自分勝手な甘えが通ると思ってる奴にレスしたくない ・大学名をモロだしにするようなデリカシーのない奴にレスしたくない
抽選ワロタ > なお、写したと思われるほど酷似したレポートが複数提出された場合、原著が > どれかの調査を行わず、抽選で一通のレポートのみを評価 の対象とし、他は > 提出済みの不合格レポートとして再提出は課しません。 自分で意図せずに他 > 人にコピーされてしまった場合も同様ですので、レポート の取り扱いについ > ては十分に注意して下さい。
>>849 こういう場合はQZのキチガイプログラムが効いて来るな
851 :
デフォルトの名無しさん :2011/06/20(月) 14:50:00.95
[1] 情報処理演習 [2] 問題:二次方程式 ax^2+bx+c=0 の解を解の公式を使って求めるプログラムを作成する.プログラムは以下の条件をみたすこと. ・正しく実行できるプログラムである. ・scanfを用いて整数a,b,cを入力できること. ・ifを用いること. ・判別式を使って,重解,異なる2実数解,虚数解をもつ場合に分けて解を求めること. ・解は実数で求めること [3] 環境 [3.1] MacOS [3.2]Xcode [3.3] C言語 [4] 本日6月20日23時まで。 [5] 特になし よろしくお願いします。。
853 :
デフォルトの名無しさん :2011/06/20(月) 15:31:25.33
851です。 852さん、迅速な回答どうもありがとうございました。。
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): #include <stdio.h> int main() { char buf[ 81 ], *p = buf; scanf( "%80s", buf ); while( *p ) *p++ += ( *p >= 'a' && *p <= 'z' ? 'A' - 'a' : 0 ) - ( *p >='A' && *p <= 'Z' ? 'A' - 'a' : 0 ); printf( "%s\n", buf ); return 0; } のプログラムを、ファイルinput.txtから読込、処理結果を画面だけではなく、 ファイルoutput.txtに書き出すプログラムにしなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
855 :
デフォルトの名無しさん :2011/06/20(月) 17:50:14.89
>>854 #include <stdio.h>
int main()
{
char buf[ 81 ], *p = buf;
FILE *in, *out;
in = fopen("input.txt", "r");
out = fopen("putput.txt", "w");
fscanf(in, "%80s", buf );
while( *p )
*p++ += ( *p >= 'a' && *p <= 'z' ? 'A' - 'a' : 0 ) - ( *p >='A' && *p <= 'Z' ? 'A' - 'a' : 0 );
printf( "%s\n", buf );
fprintf(out, "%s\n", buf );
return 0;
}
初心者なんですけど、PICの参考書 は、どれがおすすめですか?教えて下さい
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): 1行の入力は、すべて英字とし、最大80文字とする。 初めに入力した1行の文字列に対して、2行目に入力した文字を3行目に入力した文字列に置換した文字列を作成し、結果を表示するプログラムを作成しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
意味わかんね、俺が馬鹿なだけか?
>>859 helloworld
l
ll
↓
helllloworlld
文字列 検索文字 置換文字列 結果出力 って事だと思う
1 abcdefg 2 c 3 xyz ans abxyzdefg じゃないかと。 1行目の文字列が、全て2行目の文字に一致していて、 かつ、3行目文字列が80文字だと 置換後の文字列が最大になるのかな?
863 :
デフォルトの名無しさん :2011/06/20(月) 22:07:15.38
>>858 ↓これでいいか?
#include<stdio.h>
int main(int argc, char** argv){
char* put1[81];
char put2;
char* put3[81];
char* p;
printf("%s\n",put1);
printf("%c\n",put2);
printf("%s\n",put3);
for(p = put1;*p; p++){
if(*p == put2){
printf("%s",put3);
}else{
putchar(*p);
}
}
return 0;
}
・スイッチの長押し(1秒以上)でカウンタが「 0 」になるようにプログラムを組みなさい。
・500msecの間に2回ONを検知したら「ダブルクリック」であると認識する機能を追加
する。ダブルクリックは、自動的にカウントアップする動作を行うようにする。
もう一度ダブルクリックで停止、再度ダブルクリックで再開、長押しでリセットする。
上の練習問題を解くために下のようなプログラムを作成しましたが、うまく動作しません。
http://codepad.org/gFdl4UPh
>置換した文字列を作成し、結果を表示する 文字列を格納しなくてもいいのかな?
>>864 うまく動作、てw
コンパイルできてるというのかよw
pic.hが分からない
>>866 格納先のバッファサイズが最大6400バイト必要だからなぁ
溢れたらmallocするような仕組み作るのはレベル的に問題がありそうだし...
>>870 始めから最大サイズで確保してしまうか、
最初に置換対象文字を数え、必要サイズをmallocするか、どっちかかな。
前者が良いように思った。
>>871 講師:『何故、6400Byteなんて大きなバッファが必要なんだね?』
質問者:『ポカーン』
講師:『malloc() はまだ教えてないが』
質問者:『ポカーン』
と考えて格納しない方が良いと思った訳だが...
>>872 回答者の裁量だと思うので、問題ないと思います
[1] 授業単元:文字列 [2] 問題文(含コード&リンク): 1行の入力は、すべて英字とし、最大80文字とする。 初めに入力した1行の文字列に対して、2行目に入力した文字を3行目に入力した文字列に置換した文字列を作成し、結果を表示するプログラムを作成しなさい。 例) 1:対象文字列:abcdckkkkk 2:置換元文字:c 3:置換文字列:orz 結果文字列:aborzdorzkkkkk [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
>>743 8x8 の基本単位で割り切れるように切れ目が入っているから、libjpeg に渡す前に分割できればいいのですが。
仕様詰めの話を数レス前でしてるわけなんだが、 その辺まだ分かるレベルじゃないから単純に答えをよしなにって事かな
880 :
863 :2011/06/21(火) 03:06:53.12
>>877 8x8じゃないし、そもそも問題見れば分かるがjpegじゃない。もっと簡単
)[1] プログラミング演習 [2] 問題:1.以下のプログラムと等価になる様にprintf();内の穴埋め箇所を記述せよ。 等価したいプログラム if( !(gender==1 || age >=20 ) ) printf("穴埋め1 \n"); if( !(!(gender==1) || age >=20) ) printf("穴埋め2 \n"); if( !(!(gender==1) || !(age >=20 ) ) printf("穴埋め3 \n"); if( !( gender==1) || !(age >=20) ) printf("穴埋め4 \n"); [3] 環境 [3.1] windouws [3.2] gcc [3.3] C言語 [4] 本日6月21日08時30分まで。 [5] 急ぎです;c言語の問題です。おねがいします;
あと、もうひとつ問題 2.201003121(10進数9桁)、性別(男:1、女:2)、年令(未成年:0,成年:1,高齢:2,後期高齢:3)、 職業(無:0、有:1)で個々人が16分類される。それぞれを数字(コード)で入力させ、 その人の状態を一旦ディスプレイに表示し、if文を使って、自然な文章で最後に表示するプログラムを作れ
>>881 配布元での形式はjpeg じゃないのね。jpeg をマスターできるチャンスかと考えてしまった。
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): file1を読み込み、n1行目からn2 (n2>=n1)行目までを削除し、file2に書き込むファイル、ensyu03.cを作成せよ 注意:切り取った際、文章は上に詰めること erase_multiline( ”file1”, ”file2”, n1, n2 ) ; file1を読み込み、n行目とm行目を入れ替え、file2に書き込むファイル、ensyu04.cを作成せよ replace_lines( ”file1”, ”file2”, n, m ) ; file1を読み込み、特定の文字列string を含む行を削除し、file2に書き込むファイル、ensyu05.cを作成せよ erase_string( ”file1”, ”file2”, ”string” ) ; file1を読み込み、特定の文字c を削除し、file2に書き込むファイル、ensyu06.cを作成せよ erase_char( ”file1”, ”file2”, ’c’ ) ; [3] 環境 [3.1] OS:windows [3.2] コンパイラ名とバージョン:cygwin gcc [3.3] 言語: C [4] 期限:6月22日中 [5] その他の制限: ポインタと関数を習っているところです
StudyCってのを使ってる奴がいて、思わずググったわ。 今はあんなものがあるのか
887 :
デフォルトの名無しさん :2011/06/21(火) 13:15:05.86
888 :
887 :2011/06/21(火) 13:33:49.26
889 :
デフォルトの名無しさん :2011/06/21(火) 13:45:37.81
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://codepad.org/MysbRMqT [3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語:C
[4] 期限: 2011/6/24まで
よろしくおねがいします
891 :
デフォルトの名無しさん :2011/06/21(火) 14:54:37.16
[1] C言語演習
[2]@
http://codepad.org/Qbz0E2cP を改良して、
「乗除」の回数を減らすプログラムを作成しなさい。
ただし、
http://codepad.org/ko7MPFKI 以外の方法を使用すること。
A @のプログラムを利用して、以下のプログラムを作成せよ。
1.各素数の各桁の和が偶数になる数のみを表示するプログラム
2.表示されている1の個数を表示するプログラム
[3.1] Windows7
[3.3] C言語
[4] 今日の21時まで
[5]配列まで
@はどのようにして回数を減らしたかも教えていただけると幸いです。
どうかよろしくお願いします。
>>892 は。
素数で「割り切れると素数ではない」のチェックをせずに
素数の倍数は、素数でないとやるわけだ。
計算時間で比較すれば、
>>891 の改良版より速いのは確実だろう。
894 :
デフォルトの名無しさん :2011/06/21(火) 16:45:20.91
>>892 あくまで「乗除回数を減らせ」だから、あんまり方法が変わると
駄目なんだよ。まあ乗除行うならそれでもいいと思うけど。
加減乗除 加法と減法と乗法と除法。四則演算。
897 :
895 :2011/06/21(火) 17:21:51.03
>>896 いやそんなことは知ってるよw
見直すと言い方がまずかったね
乗法と除法禁止に剰余を求める演算も含むのか?って意味だよ
898 :
デフォルトの名無しさん :2011/06/21(火) 17:24:21.64
>>895 わからない。先生がそう書いてたから、間違ってても俺のミス
じゃない。あと「mod」とかいう関数(?)は習ってないから
使えない。(方法に関係なく)
自前で mod という名の関数 を追加してるんだけど(Line 4〜9) そういう関数は習っていない状態なのかな
>>887-888 ありがとうございます
凄く申し訳ないし言うのが遅いと思うのですが
授業では↓のような形式でやっているのですがこんな感じで書けないですかね?
http://codepad.org/5zJCMFlq 内容はfile1を読み込み、n1行目からn2 (n2>=n1)行目までをコピーして、
m行目とm+1行目の間に入れfile2に書き込むファイル
copy_and_paste( ”file1”, ”file2”, n1, n2, m ) ;
です
902 :
デフォルトの名無しさん :2011/06/21(火) 17:49:40.03
int ○○(□□) を二回使うのもやったこと無いな。 int a; int sum=0; みたいなのならやったことあるけど。 今まではint main(void)しか使ってない。
903 :
デフォルトの名無しさん :2011/06/21(火) 18:49:44.97
>>901 これに「乗除を行った回数:0回」(カウントした結果、0回だったということ)
と表示させて、さらに結果を
2 3 5 … 41 43 47
53 59 61 … 107 109 113
127 131 137 … 191 193 197
・
・
のように綺麗に表示させたいのですが、
どのように改良すればいいでしょうか?
[1] 授業単元:C [2] 問題文(含コード&リンク): strlen()を利用し、ファイルinput.txtには、複数の英単語のみが(改行を挟みながら)記載されている。 input.txtをEOFまで読み込み、何文字の単語が何個あったのかを表示するプログラムを作成しなさい。このとき、1行には最大80字記載されており、1単語の最大の文字数は15とする。 例) 1文字の単語: 20単語 3文字の単語: 10単語 8文字の単語: 4単語 全34単語 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:明日まで
905 :
デフォルトの名無しさん :2011/06/21(火) 19:25:20.48
903ですが、桁を揃えてということです。 (入力したのがずれてるので補足)
>>904 #include <stdio.h>
int main()
{
FILE * fp;
char s[16];
int count[16] = {0}, i, sum = 0;
if (!(fp = fopen("input.txt", "r"))) {
fprintf(stderr, "file error\n");
return 0;
}
while (fscanf(fp, "%s", s) != EOF) {
count[strlen(s)]++;
sum++;
}
for (i = 1; i <= 15; i++) {
printf("%2d文字の単語: %2d単語\n", i, count[i]);
}
printf("全%d単語\n", sum);
return 0;
}
907 :
887 :2011/06/21(火) 19:49:37.71
[1] 授業単元:C
[2] 問題文(含コード&リンク):
strcmp()を利用し、
>>904 で利用したものと同様のimput.txtを読み込む。
キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:明日まで
>>908 いいか、ひとつだけ教えてやる
俺達の世界じゃな、「明日まで」ってのは「明日中には」ってことだ。
「明日中には」ってのは「明後日の朝一に」ってことだ。
「朝一に」ってのは「午前中」ってことだ。
つまり、お前のその期限は「2011-06-23 13:00:00」だ。
それまでは提出しなくてもいいんだ。
910 :
デフォルトの名無しさん :2011/06/21(火) 21:36:01.83
【1】c言語 【2】入力された小数点をmy roundという関数を使って含む数値を四捨五入するプログラムを作成せよ。 my_round関数の仕様 int my_round(float x){ int ret; 四捨五入の処理 return( ret ); } 実行結果 小数点を含む数値を入力してください。 数値:1.89 1.890000は2に四捨五入されました
>>909 いいや、違うね。
明日までって事は明日が終わる前にって事だ。
ってことは2011-06-22 23:59:59.99999999999999999999999.....って事だ。
ここで問題なのは限りなく2011-06-23 00:00:00.0に近い22日が期限って事だ。
>>908 わかるか?この題意が?無限を扱ってるんだよ。
いかに無限を表現できるかって事が問題なんだよ。
あぁあ、限りなく近いという概念を持ち出し、言葉で巧みに表現するのもありだろう。
しかしな、そんな回りくどい事をしなくても
期限<23日 これだけで完璧に表現できる。
この不等号(<)には無限の概念さえ含まれた人類至高の発明だという事を忘れんなよ。
つまり、お前は23日と22日の狭間に提出するんだ。
なるほど、わからん。
913 :
デフォルトの名無しさん :2011/06/21(火) 21:46:37.11
もう期間過ぎてるけど、891のAと903をわかる方よろしくお願いします。
すいませんプログラム初心者です 素数判定のプログラムなんですが不備があれば教えてください #include<stdio.h> int main(void){ int a,i; scanf("%d",&a); for(i=0;i<a;i++){ if(a%i==0){ printf("素数じゃねえよ"); break; } return 0; }
アンカーくらい打てよ
>>916 この肘でおまえを今夜落として見せるこの俺
>910 #include <stdio.h> int my_round(float x) { int ret; ret = (int)(x + 0.5); return ret; } int main(void) { float input; printf("小数点を含む数値を入力してください。\n"); scanf("%f", &input); printf("数値:%fは%dに四捨五入されました。\n", input, my_round(input)); return 0; }
round(-5.0001) = -5.0000 round(-5.5000) = -6.0000 にならなきゃいけないはず。
◆QZaw55cn4cって糞だよなぁ
日本語読めないw
925 :
デフォルトの名無しさん :2011/06/22(水) 00:52:38.05
>>922 2, 3, 5, 7, 11, 13 なら、3個と表示する。
2, 3, 5, 7 なら 0個と表示する。
できれば@の方の解答もお願いします。
(
>>901 のプログラムを「乗余を行った回数:0回」(カウントした結果が0回ということ)
と表示させ、さらに
2 3 5 7 11 13 17 19 23 29 31 37 41 43 47
53 59 61 67 71 73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173 179 181 191 193 197
のように数字を整列させて表示させたい。)
926 :
デフォルトの名無しさん :2011/06/22(水) 01:04:23.21
>>925 は、桁を揃えるってことです。
(またしてもずれてるので補足)
%4d
>>885 に追加で
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
file1を読み込み、特定の文字列string1 を全てstring2 に置き換え、file2に書き込むファイル、ensyu07.cを作成せよ
replase_strings( ”file1”, ”file2”, ”string1”, ”string2” ) ;
file1を読み込み、行の文字数の大きい順番に並び換え、file2に書き込むファイル、ensyu08.cを作成せよ
text_sort( ”file1”, ”file2” ) ;
出来れば
>>900 や
>>907 のような形式で書いてもらえると助かります
[3] 環境
[3.1] OS:windows
[3.2] コンパイラ名とバージョン:cygwin gcc
[3.3] 言語: C
[4] 期限:6月22日中
[5] その他の制限: ポインタと関数を習っているところです
[1] 授業単元:C
[2] 問題文(含コード&リンク):
strcmp()を利用し、
>>904 で利用したものと同様のimput.txtを読み込む。
キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: Visual Studio 2008
[3.3] 言語:C
[4] 期限:6/24まで
>>929 この問題にはセキュリティーホールがある。
>>922 Error 00001. 0x130700 (Thread 0x0A4C):
Access overrun: Attempt to access 4 byte(s) at 0x0012EFE0+4024, that is at
offset 0+4024 in local block 0x0012EFE0(=[ebp-0xFAC] @dai14.exe:0x01:0002B5)
which is only 4000 bytes long.
| dai14.c line 109:
| s = n + n;
| do {
|> prime[s]=0;
| s += n;
| } while(s < N);
Call Tree:
0x004012B5(=dai14.exe:0x01:0002B5) dai14.c#109
0x32B9C3BA(=CC32110MT.DLL:0x01:09B3BA)
みたいなエラーが4つ出るんだが
まったくQは糞だなあ相変わらず
で、その後エアPhenomU6とエアCore2Duoノートは元気か? まあ無いんだから答えようがないわな
934 :
922 :2011/06/22(水) 02:43:58.93
>>934 お前本当にやる気あんのか?
A
Error 00001. 0x130600 (Thread 0x0870):
Access overrun: Attempt to access 4 byte(s) at 0x00402220+200, that is at
offset 0+200 in block 0x00402220(=dai14_2.exe:0x02:000220) which is only 200
bytes long.
| dai14_2.c line 7:
|
| int h(int n) { return (n == 0) ? 0 : (n % 10 == 1) ? h(n / 10) + 1 : h(n / 10); }
|>int g(int n) { return (!prime[n]) ? 0 : h(n); }
| int f(int n) { return (n == 0) ? 0 : g(n) + f(n - 1); }
|
Call Tree:
0x00401221(=dai14_2.exe:0x01:000221) dai14_2.c#7
0x0040127F(=dai14_2.exe:0x01:00027F) dai14_2.c#8
0x0040136D(=dai14_2.exe:0x01:00036D) dai14_2.c#28
0x32B9C3BA(=CC32110MT.DLL:0x01:09B3BA)
バグ付きのプログラムをうpするとウィルス作成罪に問われるぞ
>>909 > 「朝一に」ってのは「午前中」ってこと
ここだけが悔やまれるな
939 :
デフォルトの名無しさん :2011/06/22(水) 08:26:04.04
>>936 ありがとうございます。
わかれば@の方もよろしくお願いします。
940 :
デフォルトの名無しさん :2011/06/22(水) 08:38:06.77
>>936 A2のほうですが、表示するのは「1000までの素数に
含まれる1の個数」です。説明がわかりづらかったかな。
(@の改造なので、1000までの素数の表示結果も必要)
941 :
デフォルトの名無しさん :2011/06/22(水) 08:55:31.92
◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ ◆QZaw55cn4cって糞だよなぁ◆QZaw55cn4cって糞だよなぁ
943 :
デフォルトの名無しさん :2011/06/22(水) 09:07:52.63
[1] 授業単元:C [2] 問題文(含コード&リンク): strcmp()を利用し、imput.txtを読み込み、キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:6/24まで
@はあれじゃだめだったのか?
>>945 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
FILE * fp;
char word[1000], word2[1000];
int counter = 0;
if (!(fp = fopen("input.txt", "r"))) {
return 1;
}
scanf("%s", word);
while (fscanf(fp, "%s", word2) != EOF) {
if (!strcmp(word, word2))
counter++;
}
printf("%dこ\n", counter);
}
>>940 >>936 3行目
#define N 50
を
#define N 1000
に替えてください。
949 :
デフォルトの名無しさん :2011/06/22(水) 12:31:33.58
950 :
887 :2011/06/22(水) 13:02:34.51
952 :
デフォルトの名無しさん :2011/06/22(水) 14:05:44.67
【1】c言語 【2】少数点以下第三位を四捨五入し第二位まで求める関数を作成してください 実行結果 入力してください 数値:1.2356 1.235600は1.24に四捨五入されました
>>954 TBS
File not found.
956 :
デフォルトの名無しさん :2011/06/22(水) 16:44:42.97
957 :
887 :2011/06/22(水) 16:56:03.91
>>956-957 ありがとうございます
スレチなのかもしれませんが
>>907 ,950,956-957をコンパイルは通るのですが実行してみても
bash: ./ is a directoryというエラーメッセージが出てきて実行出来ないのですが原因として何が考えられますかね?
>>958 ./の後にスペースでも入れちゃってるんだろう。
>>959 ありがとうございます
ご迷惑をおかけしました
なんでその程度のことちゃんと確認しないんだろう ほんとに何も理解せず作業としてやってるんだろうな プログラミングやめればいいのに
[1] 授業単元:C [2] 問題文(含コード&リンク): 読み込むファイルはinput.txtに固定されていたが、それを拡張する。 プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させるように改良しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:6/24まで
エラー出たからすぐ報告とかじゃなくて、ちっとは自分で考えろ。 少なくとも、自分のPCで通ったものをちゃんと提供してる。
お〜激しい(^ω^ )
>>963 ここで回答してる人がみんなそうならいいんだけどね
いかん、アブナイアブナイアブナイ…
次スレ立てます
50msec ってどれくらいですか?
光が1万5千キロ、大体マイアミからアルゼンチンまでを移動するくらい
>>966 でも俺のCodeGuardに掛けると「ゴルァ!どこをアクセスしとるんじゃ!」と怒られるけどな
アメリカのやつと通信対戦してると 光っておせーなー ってホント思うわ
974 :
デフォルトの名無しさん :2011/06/22(水) 23:37:09.79
[1] 授業単元:ネットワークプログラミング
[2] 問題文(含コード&リンク):
次の要件を満たすTCP/IP通信型辞書検索プログラム(サーバ・クライアント両方)を作成せよ
なおプログラムを作成するに当たっては次の条件を満たすものとする→
http://codepad.org/rkW7TObI ●サーバ:クライアントから送信された英単語に対し,その単語に対応する日本語を探索して返す
●クライアント:キーボードから英単語を入力
入力された文字列をサーバに送信
サーバから送信された文字列を画面に出力
サーバ側のプログラムサンプル→
http://codepad.org/iLztxxJ4 クライアント側のプログラムサンプル→
http://codepad.org/21cdalTi [3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2011年6月23日12時まで
[5] サンプルプログラムは大文字小文字変換のプログラムとなっています
それをもとに作ってもらえると助かります。
◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ◆QZaw55cn4cは優秀なCプログラマ
976 :
デフォルトの名無しさん :2011/06/23(木) 02:43:43.25
[1]授業単元:テンプレートクラス・派生
[2]配列クラスAryから派生した、以下に示すスタッククラスAstackを作成。
http://codepad.org/yuznimYp [3]環境
[3.1]OS:WindowsXP
[3.2]コンパイラ:VC6.0
[3.3]C++
[4]2011年6月23日中
>>970 3フレぐらい。
ヒット確認ができなくなるので、対戦は厳しい
>>976 Aryがどう見てもおかしいんだがこれマジで問題文にあったクラスなの?
手打ちでコピペしたとかじゃなくて?
[1] 授業単元:C言語応用 [2] 問題文(含コード&リンク): キーボードから入力した数だけのロッカーを割り付け、各ロッカーにキーボードから入力したデータを保存し、最後に保存した内容を表示するプログラムkadai10-1.cを次のステップにしたがって作成せよ。 但し、各ロッカーには次のロッカーへのポインター(次のロッカーの鍵と思えばわかりやすい)も荷物に相当するデータといっしょに保存するものとする。 1-1 データ構造として次の構造体を用意する。 struct rocker { int data; //保存するデータ struct rocker *next; //次のボックスのアドレス(鍵) }; 1-2 最初の鍵として次のポインターを大域変数として用意する。 struct rocker *head; 1-3 1個のロッカーを割り当てて、最後に割り当てたロッカーlast_rockerのlast_locker->nextに新しく割り当てたロッカーのアドレス(鍵)を保存する関数 struct rocker *new_rocker(struct rocker *last_rocker)を定義しなさい。 ただし引数 last_rockerは最後に作ったボックスのポインターとする。 この間数は新しく割り当てたロッカーのアドレスを返すものとする。 1-4 全てのロッカーに保存したデータを最初のロッカーから順番に表示していく関数 void display_rockers(struct rocker *pt)を定義しなさい。 ただし、実行結果が次のようになるように定義しなさい。 gcc kadai10-1.c ./a.out 3 説明:ロッカーの数を入力 1 3 4 データ入力 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ:gcc [3.3] 言語: C [4] 期限: ([2011年6月24日18:00まで [5] その他の制限:動的割り付け、構造体、ポインターを使う
982 :
"" :2011/06/23(木) 22:02:13.06
[1] 授業単元:C [2] 問題文(含コード&リンク): 読み込むファイルはinput.txtに固定されていたが、それを拡張する。 プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させるように改良しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:今すぐ頼む!
今は過ぎ去ってしまったので、もう無理だな。
今は永遠に来続けるから、いつでも待ってるぜという事じゃないかな。
[1] 授業単元:C [2] 問題文(含コード&リンク): 「空白を挟まず、何か入力してください。」と表示した後、入力された先頭文字が英字大文字、英字小文字、数字かを判定し、 「先頭文字は○○です。」という表示を行うプログラムを作成しなさい。 [3] 環境 [3.1] OS: Windows7 [3.2] コンパイラ名とバージョン: Visual Studio 2008 [3.3] 言語:C [4] 期限:明日の12時まで
>>982 そもそも改良しなさいって問題なら元のコードを示さないと回答不可能な訳だが...
>>987 #include <stdio.h>
#include <ctype.h>
int main(void)
{
char buf[64];
printf("何か入力しろや。空白はらめやで : ");
gets(buf);
if ( isdigit(buf[0]) ){ puts("す・・・数字やぁ!"); }
else if ( islower(buf[0]) ){ puts("まさか・・・小文字やぁ!"); }
else if ( isupper(buf[0]) ){ puts("大文字・・・だと?"); }
return 0;
}
単純にコピペだけで終わられたくないんで、表示を変な感じにしてたり
>>989 ついでに・・・
ここではgets()を使っているけど、基本的にはgets()は使わないようにすべし。
懐かしのバッファオーバーランでの命令置き換えとか、面白いことが簡単に行われる「可能性もある」から
>>990 ありがとうございます
あと、俺も鰤好き
埋め
>>990 QZ の mygetline() がおすすめ
うめ
うめ
うめ
うめ
うめ
うめ
◆QZaw55cn4cは優秀
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。