5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2011/06/04(土) 14:52:36.60
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。

【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/joyful.cgi
http://codepad.org/ ←遅い時間は重い事があります
http://ideone.com/
http://pastebin.com/ ←たまにテンポるので上の2つが混んでいる時以外はなるべく使わないで下さい
【C 関数検索 man on WWW】 http://www.linux.or.jp/JM/index.html
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/
前スレ
C/C++の宿題片付けます 148代目
http://hibari.2ch.net/test/read.cgi/tech/1305867431/

2 :デフォルトの名無しさん:2011/06/04(土) 15:44:45.24
◆QZaw55cn4cって糞だよなぁ

3 :ご注意:2011/06/04(土) 15:44:48.86
このスレは偽善(教育活動の妨害)かつ
偽悪(適切でない教育啓蒙活動の被害の抑止)です。
ご利用には十分にご注意ください。

4 :デフォルトの名無しさん:2011/06/04(土) 15:51:21.73
◆QZaw55cn4cはNGワード推奨

5 :デフォルトの名無しさん:2011/06/04(土) 15:53:02.76
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

6 :デフォルトの名無しさん:2011/06/04(土) 16:13:28.41
借りた覚えのないメモリを勝手にfreeで返すとエラーになるね

7 :デフォルトの名無しさん:2011/06/04(土) 16:15:52.80
借りたメモリを返さないのは借金を返さない泥棒と同じだよね

8 :デフォルトの名無しさん:2011/06/04(土) 16:24:16.44
mallocで借りたメモリがreadonlyだったら、誰も使わないってw

9 :デフォルトの名無しさん:2011/06/04(土) 16:43:54.65
mallocで借りたメモリをmemsetでゼロクリアしてからfreeするってやっぱりマナーというか常識だよね。

10 :デフォルトの名無しさん:2011/06/04(土) 16:50:39.80
まとめるとQZってクズだよね。

11 :デフォルトの名無しさん:2011/06/04(土) 17:08:41.35
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が入ってると日時が入るので捏造しにくい

12 :デフォルトの名無しさん:2011/06/04(土) 17:19:38.02
      ☆ チン     マチクタビレタ〜
                        マチクタビレタ〜
       ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ヽ ___\(\・∀・) < ◆QZaw55cn4cのJPEGうpまだ〜?
            \_/⊂ ⊂_ )   \_____________
          / ̄ ̄ ̄ ̄ ̄ ̄ /|
       | ̄ ̄ ̄ ̄ ̄ ̄ ̄|  |
       |  愛媛みかん |/

13 :デフォルトの名無しさん:2011/06/04(土) 17:28:55.69
[1] 授業単元:繰り返し・条件分岐
[2] 問題文(含コード&リンク):
3以上40未満の整数Nを入力したとき、「*」の記号を使い、一辺の長さがNの中を塗り潰さない正方形を描画するプログラムを作成しなさい。
例: 3
***
* *
***
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



14 :デフォルトの名無しさん:2011/06/04(土) 17:51:36.32
>>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;
}


15 :デフォルトの名無しさん:2011/06/04(土) 17:52:54.14
>>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;
}

16 :デフォルトの名無しさん:2011/06/04(土) 18:03:36.18
/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] 期限:明日まで



18 :デフォルトの名無しさん:2011/06/04(土) 18:19:47.50
>>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;
}


19 :デフォルトの名無しさん:2011/06/04(土) 18:21:21.10
jは使ってなかった><

20 :デフォルトの名無しさん:2011/06/04(土) 18:49:58.50
[1] 授業単元:配列
[2] 問題文(含コード&リンク):
それぞれ10個の要素を格納する整数型配列をAとBと用意する。
Aに10個の整数を入力させた後、平均値を求める。
Bのi番目の要素に、(Aのi番目の要素の値−平均値)の値を保存する。
AとBの対応する要素ごとに、10行並べて表示しなさい。


21 :デフォルトの名無しさん:2011/06/04(土) 19:10:47.09
>>20
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで


22 :デフォルトの名無しさん:2011/06/04(土) 19:26:56.38
>>11
それってすごいスペックなの?

23 :デフォルトの名無しさん:2011/06/04(土) 20:17:36.01
QZが嘘を付いて大見得張っているかどうか>>11ですぐわかる
いつまでもうpしない時は嘘で決定な

24 :デフォルトの名無しさん:2011/06/04(土) 20:24:13.02
>>20
Aには10個の値が入るが、Bにはi番目要素の
値以外は入るチャンスがない。さて・・・

25 :デフォルトの名無しさん:2011/06/04(土) 20:31:32.08
>>24
日本語読めないんですか?

26 :デフォルトの名無しさん:2011/06/04(土) 20:38:17.97
>>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);}

27 :デフォルトの名無しさん:2011/06/04(土) 20:53:10.89
>>20
http://codepad.org/JlwDWfLY

>>24
こんな感じでいいと思うんですが。

28 :デフォルトの名無しさん:2011/06/04(土) 20:54:23.06
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;
}

30 :>>20 忍法帖【Lv=1,xxxP】 >>26:2011/06/04(土) 23:15:03.18
#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;}

31 :デフォルトの名無しさん:2011/06/04(土) 23:33:38.96
[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] その他の制限: 配列やポインタ等は習っていません


32 :デフォルトの名無しさん:2011/06/05(日) 00:06:35.77
>>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;
}

33 :デフォルトの名無しさん:2011/06/05(日) 00:07:03.74
>>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;
}

34 :デフォルトの名無しさん:2011/06/05(日) 00:12:05.55
素数を素敵と書き換えてる間に先越されてショック。

35 :デフォルトの名無しさん:2011/06/05(日) 00:25:36.84
配列やポインタを習って無いと書いてあるw

36 :デフォルトの名無しさん:2011/06/05(日) 00:30:27.89
習ってないとは言っても、使っていけないとは書いていない

37 :デフォルトの名無しさん:2011/06/05(日) 00:35:02.54
>>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;
}

38 :デフォルトの名無しさん:2011/06/05(日) 00:36:45.88
100までならprime[]={2,3,5,7}を与えて分解した方がいいでしょ

39 :デフォルトの名無しさん:2011/06/05(日) 01:44:54.95
>>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;
}

40 :デフォルトの名無しさん:2011/06/05(日) 03:25:43.41
ありがたやありがたや

41 :デフォルトの名無しさん:2011/06/05(日) 06:40:36.80
結局QZのCPU-Zのスクショのうpはなかったですね
彼は虚言癖を持っているという事も判明しました
もちろん無職で今も850MHzのPen3ノートのみでしょう

42 :デフォルトの名無しさん:2011/06/05(日) 07:06:38.60
>>28
http://codepad.org/vBBnCYwX
どう扱うもなにも普通だよ


43 :デフォルトの名無しさん:2011/06/05(日) 08:58:25.12
>>41
処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だよぉ。

44 :デフォルトの名無しさん:2011/06/05(日) 09:18:55.20
>>41
処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だよぉ。

45 :デフォルトの名無しさん:2011/06/05(日) 09:24:26.98
>>28
http://codepad.org/XnQc4INA
HTTP なんとかてのはどうやってよむんだろう。

46 :デフォルトの名無しさん:2011/06/05(日) 09:52:00.36
>>24
相変わらずの日本語の読めなさw

47 :デフォルトの名無しさん:2011/06/05(日) 10:11:07.42
QZさんのプロセッサは、まぁPIII850MHzかもしれないけど、それが何台あって
どんだけシームレスに結合しているかわかりゃしないから怖い

48 :デフォルトの名無しさん:2011/06/05(日) 10:58:44.64
>>47
それはない

49 :デフォルトの名無しさん:2011/06/05(日) 11:01:14.17
>>44
( ゚Д゚)ハァ?本当にCore2DuoとPhenomX6を持っているのならスクショをうp
出来るはずだろ
それがないという事は、嘘をついていたという事だ
つまり大言壮語だったという事です

50 :デフォルトの名無しさん:2011/06/05(日) 11:12:10.04
ここはCPUごときで大言壮語と言う言葉を使えるんだw

51 :デフォルトの名無しさん:2011/06/05(日) 11:14:46.04
それにしても見え透いた嘘を付く◆QZaw55cn4cって糞だよなあ

52 :デフォルトの名無しさん:2011/06/05(日) 11:16:04.61
QZ とやらも糞なのかもしれないけど、それに粘着してるやつも似たようなもんだ。

53 :デフォルトの名無しさん:2011/06/05(日) 11:17:43.00
>>52==◆QZaw55cn4c

54 :デフォルトの名無しさん:2011/06/05(日) 11:28:13.36
QZは神

55 :デフォルトの名無しさん:2011/06/05(日) 11:34:12.11
>>49
処方箋は飲んだ?
ちゃんとお医者さんの言うこと聞かないと駄目だお。

56 :デフォルトの名無しさん:2011/06/05(日) 11:39:12.00
>>52
宿題をとかない人と一緒にされるのは、ちと抵抗があるのですけれども。

57 :デフォルトの名無しさん:2011/06/05(日) 11:41:10.82
>>55>>56もQZの自演です

>>56 俺もちゃんと宿題を解いてますけど何か?

58 :デフォルトの名無しさん:2011/06/05(日) 11:43:04.35
>>50
ここは屁ノムごときで大言壮語という言葉をつかえるんだw

59 :デフォルトの名無しさん:2011/06/05(日) 11:44:19.29
もはや宿題を解く事だけがアイデンティティの◆QZaw55cn4c
無職だもんなあ

60 :俺もなぁ〜 ってか。:2011/06/05(日) 11:46:59.62
>>53
やれやれ、お決まりの自演認定か。
相当暇なんだな。(w

61 :デフォルトの名無しさん:2011/06/05(日) 11:48:38.08
QZは、自分に絡むやつは宿題解けないor自分より低レベルって自動的に変換するからなw

62 :デフォルトの名無しさん:2011/06/05(日) 11:49:14.35
>>56
スレ違いのレスを延々続けてる奴らははたから見たら一緒だよ。

もちろん俺も含めて。

63 :デフォルトの名無しさん:2011/06/05(日) 12:09:54.18
>>61
それしか奴には他に誇る物がないからなw
しかも肝心の答えが糞コード

64 :デフォルトの名無しさん:2011/06/05(日) 12:15:36.88
糞じゃなくてゲロい(というか糞に失礼)

65 :デフォルトの名無しさん:2011/06/05(日) 12:18:01.41
>>64
ゲロに失礼だろ
謝れよカス

66 :デフォルトの名無しさん:2011/06/05(日) 12:30:09.97
>>58
今◆QZaw55cn4cが使ってるPenIII850MHzより格段に上でしょ
無職で金がないから買えないだろうけどw

67 :デフォルトの名無しさん:2011/06/05(日) 12:30:56.95
Cで糞コードを書くのは非常に難しいだろ
C++で糞まじりのゲロコードを書くほうがまだ簡単
Javaだともっと簡単か.
ただ本当に糞コードを書きやすいのは...

68 :デフォルトの名無しさん:2011/06/05(日) 12:58:45.56
QZの頭の中では欲しい物がいつの間にか「持っている物」に変わっているからなあ
恐ろしい恐ろしい

69 :デフォルトの名無しさん:2011/06/05(日) 13:02:09.86
>>66
速いプロセッサは大きなプロジェクトの大きなコードを
書くのには圧倒的に有利だけど、小さいが速度を
要求されるコードでは、プロセッサの速さが意外に仇
になって、微妙に時間を食う場所とかが見つけにくくな
るのでコードのチューニングがしにくくなるので
一概に有利とは言えないんじゃね
高精度スローモーションが可能な録画機はめちゃくちゃ
高い

70 :デフォルトの名無しさん:2011/06/05(日) 13:04:31.03
>>69
最大の皮肉だなw
QueryPerformanceCounterとかプロファイラとかいろいろあるのになw

71 :デフォルトの名無しさん:2011/06/05(日) 13:10:02.08
>>68
ごめん。
何いってんのかほんとにわかんない。
頭平気か?

72 :デフォルトの名無しさん:2011/06/05(日) 13:11:43.19
>>70
そういうのは遅いプロセッサで、ノンプリエンプティブなタスクスケジューリング
なOSの上で有効だった話
マルチタスク環境、特にマルチプロセッサとかハイロックプロセッサでは
バックグラウンド処理が多いので、タイマで処理時間計測しても精度が
もともと悪いだろ

73 :デフォルトの名無しさん:2011/06/05(日) 13:15:39.50
>>71
バカ走ね

74 :デフォルトの名無しさん:2011/06/05(日) 13:19:17.69
>>56
メモリリーク満開の回答してるクズにメモリリークと指摘されるのはとても心外なんだが。

75 :デフォルトの名無しさん:2011/06/05(日) 13:21:03.75
>>73
相手に分かるようにしないと駄目だろ。
>QZの頭の中では欲しい物がいつの間にか「持っている物」に変わっているからなあ
>恐ろしい恐ろしい
っていうのがどこのレスから判断したのかぐらいは示さないと。

76 :デフォルトの名無しさん:2011/06/05(日) 13:21:14.33
>>72
QueryPerformanceCounter()使った事あるのか?ないだろ
SetPriorityClass()になぜHIGH_PRIORITY_CLASSや
REALTIME_PRIORITY_CLASSがあるか知ってる?

特にREALTIME_PRIORITY_CLASSはドライバも含めて
最優先順位で実行され、ほとんどノンプリエンプティブのOS上で
動かしているのと同等の実行環境になる

逆に言うとREALTIME_PRIORITY_CLASSを設定して永久
ループに故意に入れるとリセットするしか止める方法がなくなる

77 :デフォルトの名無しさん:2011/06/05(日) 13:26:59.21
>>76
質問w
マルチコアでもリセットしないと駄目になる?

78 :デフォルトの名無しさん:2011/06/05(日) 13:27:49.32
>>77
マルチコアとHTは例外です
でも使用に注意が必要な事には変わりない

79 :デフォルトの名無しさん:2011/06/05(日) 13:30:44.92
俺が言いたかったのは

>マルチタスク環境、特にマルチプロセッサとかハイロックプロセッサでは
>バックグラウンド処理が多いので、タイマで処理時間計測しても精度が
>もともと悪いだろ

これはSetPriorityClass()でREALTIME_PRIORITY_CLASSを設定した
場合には当てはまらないという事

マルチコアでも一つのコアが完全に一つのプロセスに占有されるので、極めて
高精度な時間測定が可能

80 :!=72:2011/06/05(日) 13:31:01.97
>>76
QueryPerformanceCounterっていうのをつかったことないです。
簡単に調べた感じだと、QueryPerformanceCounterっていうのはハードウェアカウンタを
読み込むだけの処理っぽい気がするけど、プロファイラとどう関係あるの?

81 :デフォルトの名無しさん:2011/06/05(日) 13:36:25.36
>>80
プロファイラには2種類あり、各関数を呼び出す回数を測定するものと、
各関数の消費CPU時間まで測定する物がある

しかし大まかに言って呼び出す回数の多い関数を優先的に高速化すれば
明らかにプログラム全体の実行速度が上がる

QueryPerformanceCounterとプロファイラは関係があるとは一言も言ってない

82 :デフォルトの名無しさん:2011/06/05(日) 13:38:21.09
>>81
了解
丁寧な説明thx

83 :デフォルトの名無しさん:2011/06/05(日) 13:44:38.62
>>79
GetTickCount() や timeGetTime() に比べて、だいぶマシというだけで、
極めて高精度と言い切るのはどうかと思う。

84 :デフォルトの名無しさん:2011/06/05(日) 13:48:58.96
>>83
x86だとRDTSC読んでるんだぞ
しかも使用するドライバまで全てロックするので、例えマルチコア環境でも
もしそのプロセスがディスクの入出力を行っていたらそのプロセスが終了するまで
他のプロセスはディスクの入出力に割り込めない

マウスもしかり

85 :デフォルトの名無しさん:2011/06/05(日) 13:49:58.00
x86系はデフォで高精度カウンタがあるから、極めて高精度って言い切ってもいいかも

86 :デフォルトの名無しさん:2011/06/05(日) 13:51:10.10
>>83
とにかく一回使ってみてから言ってくれよ、な
実行の度にどの位CPU時間が変化するのかやってみてから言ってくれ

87 :デフォルトの名無しさん:2011/06/05(日) 13:52:47.51
>>84
RDTSCは命令だ。TSCが正しい。
TSCの使用権利がドライバやアプリなどの全プロセスで公平なだけであって、
アプリがRDTSCを実行している間はRDTSCを実行しようとしているドライバが
待たされる可能性があるってことでしょ?
プロセスが終了するまでってのは違うかな。

88 :デフォルトの名無しさん:2011/06/05(日) 13:55:51.82
付け加えて言うと、SetThreadAffinityMask()を使ってコアを一つのスレッドに
固定するとマルチコア環境ではさらに精度があがる

というかRDTSCを直接読む場合はSetThreadAffinityMaskを使わないと
意味のない数字が出る確率が高い

89 :デフォルトの名無しさん:2011/06/05(日) 13:56:30.86
コテもつけずに一連の話をブツ切りで出しても分かってもらえないよ

90 :デフォルトの名無しさん:2011/06/05(日) 14:00:27.60
>>87
違う違う
REALTIME_PRIORITY_CLASSの意味をよく考えてくれ
ドライバは大きく分けて二つの部分から出来ている
ストラテジルーチンとボトムハーフからなる

これはマルチプロセス/マルチスレットでは必須の構成である事は
知っているだろう

しかしREALTIME_PRIORITY_CLASSを設定してしまうとストラテジ
への登録すらロックされてしまい、他のプロセスは一切リソースを使う
事が出来なくなってしまう

91 :デフォルトの名無しさん:2011/06/05(日) 14:05:38.33
>>84-87
あ〜、すまん。

PCのシステムクロックを「極めて高精度」と言うとは思わなかったものでな。

92 :デフォルトの名無しさん:2011/06/05(日) 14:07:32.14
>>90
>しかしREALTIME_PRIORITY_CLASSを設定してしまうとストラテジ
>への登録すらロックされてしまい、他のプロセスは一切リソースを使う
>事が出来なくなってしまう
まじすか。。。
ここまでできると理想的な計測環境になるなぁ。
せいぜい、ネットワークからパケット受け取ったりしたときのボトムハーフが動くくらいか。

93 :デフォルトの名無しさん:2011/06/05(日) 14:10:06.36
>>92
それも止まるぞ
俺の所でやってみたらバックグラウンドで高速度でファイル転送中に
REALTIME_PRIORITY_CLASSを設定した実験プログラムを動かしたら
その間ネットの転送が止まった

94 :デフォルトの名無しさん:2011/06/05(日) 14:11:27.30
コマンド終了までの時間計測だけなら timeit コマンドが使える
timeit でググって一番上から辿ればおk

95 :デフォルトの名無しさん:2011/06/05(日) 14:12:03.71
だから実際に使用する場合はHIGH_PRIORITY_CLASSまでにしといた方がいい
この先はさすがにスレ違いなのでWin32APIスレにでも行こうぜ

96 :デフォルトの名無しさん:2011/06/05(日) 14:13:35.24
>>93
ネットワークドライバはボトムハーフでパケットをキューに積み上げて、
残りの作業をストラテジルーチンへ任せるはずなので(タイマで登録したりする)、
ボトムハーフ部分は動いてると思われ。
ネットワークドライバの送信パケット・受信パケットのカウンタは増えるんじゃないかな。

97 :デフォルトの名無しさん:2011/06/05(日) 14:15:57.19
>>96
それは受信の時の話な
しかもイーサネットコントローラに大きく依存する
送信の時はやはりストラテジ→ボトムハーフの順に進む
というかストラテジに登録しないとボトムハーフが呼び出されないでしょ

98 :デフォルトの名無しさん:2011/06/05(日) 14:19:48.10
>>74
それは信者の基準でメモリーリークしている、というだけで、信者でないあなたが、都合のいいときに信者の基準を持ち出すのは、
バルフォア宣言/フサイン-マクマホン協定/サイクス・ピコ協定並みの三枚舌外交ですね。

99 :デフォルトの名無しさん:2011/06/05(日) 14:20:37.42
お、また頭がおかしいQ何とかが出て来たぞ

100 :デフォルトの名無しさん:2011/06/05(日) 14:27:07.90
せめてKYのとかにしてやれ。

101 :デフォルトの名無しさん:2011/06/05(日) 14:29:33.11
>>99
QZまで書け。でないとアボーン出来ない

102 :デフォルトの名無しさん:2011/06/05(日) 15:02:15.27
>>98
てめーらから仕掛けてきた宗教戦争でコテンパンにされて教義の修正したうんこは
毒を撒き散らすのはヤメろ。てめーの所為で単位落とすのが出てくるぞ。

103 :デフォルトの名無しさん:2011/06/05(日) 15:26:13.53
Qが他人に二枚舌とか言ってるのを見ると笑うしかないなw

104 :デフォルトの名無しさん:2011/06/05(日) 15:38:31.95
>>103
QZまで書け。でないとアボーン出来ない

105 :デフォルトの名無しさん:2011/06/05(日) 15:40:44.79
おいQ、早く自慢のCore2DuoとPhenomX6のCPU-Zのスクリーンショット貼れや
それとも持ってないの?w

106 :デフォルトの名無しさん:2011/06/05(日) 15:45:21.56
>>24ってキューだろ?
日本語読めなさすぎて吹いたw

107 :デフォルトの名無しさん:2011/06/05(日) 15:49:56.72
>>106
違いますね。私は >>27
それにしても、延々とかまってくれる人がいてうれしいですね。きたるべきモリタポスレでもよろしくお願いいたします。

108 :デフォルトの名無しさん:2011/06/05(日) 15:52:05.15
あえて自分にレスしてごまかしたんだろw

109 :デフォルトの名無しさん:2011/06/05(日) 15:52:53.46
Q一文字で特定される人って、VIP扱いじゃないかw

110 :デフォルトの名無しさん:2011/06/05(日) 17:44:02.23
忙しくて手が付けられなかったけど、やっと双方向リスト(単方向リストでもよい)の
アドレスを取得して表にしてそれをソートしてそれを元にリンクを張り直すソートプログラム
が完成した

相当速いです
良ければうpします

次はこれとコムソートで直接リンクをいじるソートと速度を比較してみたい

111 : ◆QZaw55cn4c :2011/06/05(日) 17:45:34.60
>>110
nice!

112 :デフォルトの名無しさん:2011/06/05(日) 17:52:47.61
http://codepad.org/FL9rsNdJ

こんな感じになっています
コムソートをこれでやるにはどうすればいいか考えていますが
なかなかスマートなコードが書けそうにないので悩んでいます

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] 期限: 明日まで


114 :デフォルトの名無しさん:2011/06/05(日) 20:24:35.62
[1] 授業単元:配列
[2] 問題文(含コード&リンク):
10人の身長(cm単位の実数)を入力させ、配列に記憶する。
その後、平均身長を求めて表示した後、10人分の身長を表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



115 :デフォルトの名無しさん:2011/06/05(日) 20:44:35.87
>>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;
}

116 :デフォルトの名無しさん:2011/06/05(日) 20:54:01.21
>>113
http://codepad.org/lTTadCuP

117 :デフォルトの名無しさん:2011/06/05(日) 21:07:04.24
>>113
遅れたけどせっかく書いたので
ttp://ideone.com/hlWNB

118 :117:2011/06/05(日) 21:11:35.67
×compare_language
○compare_japanese
ね、スマソ

119 :デフォルトの名無しさん:2011/06/05(日) 21:48:47.93
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
次の処理を順に行うプログラムを作成しなさい。
要素数5の整数型配列に、すべて異なる整数を入力させる。
入力された順に、配列の中身を表示しなさい。
次に、配列の中身を入れ替え、昇順に並び替えなさい。
並び替えた配列の中身を表示しなさい。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで


120 :デフォルトの名無しさん:2011/06/05(日) 21:58:43.60
QZとはなにか?

121 :デフォルトの名無しさん:2011/06/05(日) 21:59:33.09
◆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って糞だよなぁ


122 : ◆QZaw55cn4c :2011/06/05(日) 22:02:08.08
>>120
http://hibari.2ch.net/test/read.cgi/tech/1289715349/
http://hibari.2ch.net/test/read.cgi/tech/1295273862/

123 :デフォルトの名無しさん:2011/06/05(日) 22:05:49.41
>>117
おいおい構造体の交換にmemmoveなんか使うなよ
ANSI-C(C89)から構造体は=でコピー出来るようになってるだろ
こんなの出すつもりか?

124 :デフォルトの名無しさん:2011/06/05(日) 22:06:08.64
>>122
消えろ屑

125 :デフォルトの名無しさん:2011/06/05(日) 22:07:38.25
それからこの程度の問題にわざわざ関数ポインタを使ってqsort()と同じ形に
まとめる理由は?これ初学者が見たら絶対に意味分からないぞ

126 :デフォルトの名無しさん:2011/06/05(日) 22:08:47.23
>>123>>125
QはIOCCCにでも提出するつもりなんだろうよ

127 :デフォルトの名無しさん:2011/06/05(日) 22:09:20.66
↓「汎用性」は禁止

128 :デフォルトの名無しさん:2011/06/05(日) 22:11:58.77
>>117
ここまで来たら完全に悪意性があると認められるな
つまり「荒らし」だ

129 :デフォルトの名無しさん:2011/06/05(日) 22:18:51.30
>>126
>>117 はQZじゃないだろう。

・プログラムの末尾が /* end */ ではない。
・インデント幅が違う。
・QZ は typedef を嫌う。
・QZ は bubble sort は過去一貫して
http://hibari.2ch.net/test/read.cgi/tech/1305867431/893
http://codepad.org/mF1D4PHi
のように書いてきている。

130 :117:2011/06/05(日) 22:19:10.20
>>123
汎用的にしておきたかったのでvoidポインタにしといた。

>>125
確かにそうだわ、俺のは無視して>>116を採用して、っでことで。

131 :デフォルトの名無しさん:2011/06/05(日) 22:21:18.08
>>129
ふんふん言われてみれば確かにそうだな
という事はQよりもまだひねくれた奴が潜んでるって事か

132 :デフォルトの名無しさん:2011/06/05(日) 22:33:33.48
でも糞◆QZaw55cn4cみたいに糞トリ付けたり金儲けしようとしたりしてない分マシ

133 :デフォルトの名無しさん:2011/06/05(日) 22:46:42.10
>>117を提出して講師に「この関数の意味を説明してみたまえ」と言われた時の
>>113の青ざめた顔が目に浮かぶようだ

134 :デフォルトの名無しさん:2011/06/05(日) 22:48:58.90
>>133
>>3

135 :デフォルトの名無しさん:2011/06/05(日) 22:57:11.44
>>134
頼むから別スレ立ててそこでやってくれ

136 :デフォルトの名無しさん:2011/06/05(日) 22:59:47.10
ハル研究所がやってたプログラムコンテストみたいなスレってある?

137 :デフォルトの名無しさん:2011/06/05(日) 23:41:54.13
◆QZ*氏はともかく、このスレに巣食っている精神異常者を
排除することが急務だな。


138 :デフォルトの名無しさん:2011/06/05(日) 23:43:25.14
>>137
IDを表示するのが手っ取り早い。

139 :デフォルトの名無しさん:2011/06/05(日) 23:45:01.79
ID表示してみろょ

140 :デフォルトの名無しさん:2011/06/05(日) 23:51:53.25
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
次の処理を順に行うプログラムを作成しなさい。
要素数5の整数型配列に、すべて異なる整数を入力させる。
入力された順に、配列の中身を表示しなさい。
次に、配列の中身を入れ替え、昇順に並び替えなさい。
並び替えた配列の中身を表示しなさい。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



141 :デフォルトの名無しさん:2011/06/06(月) 00:13:04.24
>>140
http://codepad.org/NtHhYtcq

142 :デフォルトの名無しさん:2011/06/06(月) 00:16:54.09
ID表示賛成、変な粘着を排除した方がいい

143 :デフォルトの名無しさん:2011/06/06(月) 00:20:21.72
>>142
このスレのためだけにか?この板の住人全員の同意を得ろよ
勝手過ぎるぞ

144 :デフォルトの名無しさん:2011/06/06(月) 00:26:24.01
粘着するの止めれば良いだけじゃないの?

145 :デフォルトの名無しさん:2011/06/06(月) 00:29:48.63
粘着される方にも問題があると思いますけどね

粘着される奴が一人いるだけで粘着する奴が10人は現れる
どう考えても粘着されるような書き込みをする方が悪い

146 :デフォルトの名無しさん:2011/06/06(月) 00:33:02.62
このスレがム板の全てとか勘違いしてるんだろw

147 :デフォルトの名無しさん:2011/06/06(月) 00:35:33.57
Qは勘違いしてそうだな

148 :デフォルトの名無しさん:2011/06/06(月) 00:41:13.72
自治厨はスルーを覚えろよw

149 :デフォルトの名無しさん:2011/06/06(月) 00:54:15.88
>>148
人のせいにばかりしないで少しは自分の悪い点も改善するよう努力しましょうね

150 :デフォルトの名無しさん:2011/06/06(月) 01:04:44.19
◆QZaw55cn4c擁護は◆QZaw55cn4cの自演です

151 :デフォルトの名無しさん:2011/06/06(月) 01:07:07.95
うんこを擁護してる奴はいない、うんこを叩いている奴を叩いている奴がいるだけだ。

152 :デフォルトの名無しさん:2011/06/06(月) 01:09:18.87
粘着相手に粘着するなって言っても聞くわけない
言えば言うほど、無駄なレスが増えて本人が荒らしになるという矛盾

153 :デフォルトの名無しさん:2011/06/06(月) 01:10:12.63
だからQが出て行くのが一番効率がいい
Qが現れる以前は宿題スレは平和だったよな?

154 :デフォルトの名無しさん:2011/06/06(月) 01:11:56.28
>>151
うんこを叩く奴を叩く奴はそいつもうんこっぽい所があるんだろう
それしか考えられない
自分が叩かれているように感じるんだろうな

155 :デフォルトの名無しさん:2011/06/06(月) 01:14:22.39
だから◆QZaw55cn4cが消えるのが一番いいんだよね

156 :デフォルトの名無しさん:2011/06/06(月) 01:27:14.79
>>155
結論はそういう事
しかしQZは究極のKYなんで皆に嫌われている事がちっとも分からないらしく
厚かましく居座るからなあ

「俺にここに来るなと言うのは2chのガイドラインのどこに書いてありますか?」とか
また聞いて来そうだし
屁理屈はもう聞き飽きたよQZ・・・・消えてくれ

アスペはどこに行っても嫌われ者なんだよ
お前が無職なのもそのせいだ

157 :デフォルトの名無しさん:2011/06/06(月) 01:54:14.28
>>156
QZはい続けるよ。
QZがど嫌いなら、嫌いな奴(自分)がスレから消えたほうが
自分自身のためだよ。精神が変になる前に自己防衛したほうが良い
ど嫌いな奴が居るスレへ来るなんって><

158 :デフォルトの名無しさん:2011/06/06(月) 01:57:50.45
↑◆QZaw55cn4c

159 :デフォルトの名無しさん:2011/06/06(月) 02:01:20.01
>>141>>116 >>117 見習ってバブルソート早くしたほうがいい。ゆっくりでいいから。

160 :デフォルトの名無しさん:2011/06/06(月) 02:04:31.12
オーダーどうこう言って反論するからうざいだけ

161 :デフォルトの名無しさん:2011/06/06(月) 02:07:14.67
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

162 :デフォルトの名無しさん:2011/06/06(月) 02:10:36.61
>>161
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。

163 :デフォルトの名無しさん:2011/06/06(月) 02:21:29.33
>>162
>>161

164 :141:2011/06/06(月) 02:23:53.49
>>159
http://codepad.org/AoVEuUZE
>>117 はバブルソートではなく、選択ソートの一種だと思います。

165 :デフォルトの名無しさん:2011/06/06(月) 02:24:21.71
>>161を書き込んだ結果が>>162-163なわけだ
余計な書き込みを誘発する効果はあっても、スレ違いの書き込みを減らす効果はないのにな

166 :141, 164:2011/06/06(月) 02:39:46.11
>>159
>>164 にはバグがありました。寄せられる方向を間違えていました。バブルソートにとどまる限り最速かなあ。
http://codepad.org/hmR172K7

>>160
んー、それはもうやめます。

167 :デフォルトの名無しさん:2011/06/06(月) 02:47:12.48
>>157
精神は変になりませんのでご安心を
それよりこれからもQZを執拗に叩き続けますよ

168 :デフォルトの名無しさん:2011/06/06(月) 02:47:59.73
バカが最速とか口にすんなw

169 :デフォルトの名無しさん:2011/06/06(月) 04:28:40.26
>>130
汎用的にしたかったとしても、memcpyで目的を果たすことはわからないかな。

170 :デフォルトの名無しさん:2011/06/06(月) 04:38:40.56
>>168
ご指摘感謝。肝心の部分が抜けていました。

>>159 バブルソートの範囲で速くするべく努めました。
http://codepad.org/ZvwXeaeg


171 :デフォルトの名無しさん:2011/06/06(月) 04:49:45.61
オーダー一緒だからとかいって全く変えようとしなかったくせに、
なにいまさらiとかflagとか追加してんの?
昔のままのクソコード貫けよw

172 :デフォルトの名無しさん:2011/06/06(月) 05:06:03.72
なんでバブルソートなの?糞じゃん

173 :デフォルトの名無しさん:2011/06/06(月) 05:09:59.41
バブルソートだと前にこのスレでもあがってた
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;
} } } }
が最速だろ

174 :デフォルトの名無しさん:2011/06/06(月) 05:29:16.21
バブルソートよりクイックソートがいいな

175 :デフォルトの名無しさん:2011/06/06(月) 05:55:00.71
これ賞金最大10万円だぞ。やってみれば?


【囲碁?】囲連星のAIを作ってみよう【連珠?】
http://hibari.2ch.net/test/read.cgi/gamedev/1154589225/

http://irensei.com/html/ai.html


176 :デフォルトの名無しさん:2011/06/06(月) 06:43:19.24
>>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 です

179 :デフォルトの名無しさん:2011/06/06(月) 08:54:37.49
>>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;
}

180 :デフォルトの名無しさん:2011/06/06(月) 11:37:09.78
[1]C言語
[2]本文
ボウリングのスコアを計算するプログラム
<条件>
・scanfで1投毎のピンを倒した数を入力する。ストライクを出したらそのフレームの二投目は入力しない。 総合スコアを表示する。10フレームとする。
[3] 環境
[3.1]WindowsXP
[3.2]gcc
[3.3]C言語
[4]13時まで
[5]メイン関数一つの中で行いたい。

181 :デフォルトの名無しさん:2011/06/06(月) 11:44:42.57
>>180
10フレーム目はどうしてほしい?
あとマルチ死ね

182 :デフォルトの名無しさん:2011/06/06(月) 11:47:28.07
10フレーム目はストライクが出れば3回投げるようにしたいです。

183 :デフォルトの名無しさん:2011/06/06(月) 12:19:53.61
>>182
http://codepad.org/mwxZzyfK

184 :デフォルトの名無しさん:2011/06/06(月) 16:46:59.80
本当にありがとうございます。

185 :デフォルトの名無しさん:2011/06/06(月) 17:26:53.04
C/C++言語の問題作るスレはあるか?
唯一の正解はなく、スコアを競う問題を作成して、それを解き競うスレ。

186 :デフォルトの名無しさん:2011/06/06(月) 17:42:20.44
>>185
【C,C++】 ちょっと問題解いて行け 【勉強】
http://hibari.2ch.net/test/read.cgi/tech/1255277760/

ここでやればいいだろ
スレチ死ね

187 :デフォルトの名無しさん:2011/06/06(月) 18:20:40.72
WindowsVista
マイクロソフトビジュアルスタジオ2008
C言語
うるう年を判定するプログラムを作成しなさい
明日まで

お願い致します(T人T*)

188 :デフォルトの名無しさん:2011/06/06(月) 18:28:46.02
>>187
>>1

189 :デフォルトの名無しさん:2011/06/06(月) 18:32:46.61
[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] 期限:明日まで



190 :デフォルトの名無しさん:2011/06/06(月) 18:37:14.06
>>187
#include <stdio.h>
int main()
{
int y;
scanf("%d", &y);
printf("閏年%s\n", y % 400 ? y % 100 ? y % 4 ? "じゃない" : "です" : "じゃない" :"です");
return 0;
}


191 :デフォルトの名無しさん:2011/06/06(月) 18:51:39.56
>>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;
}


192 :デフォルトの名無しさん:2011/06/06(月) 19:07:53.98
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>189のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



193 :デフォルトの名無しさん:2011/06/06(月) 19:22:43.81
>>191
あー「この段階では、勝ち負けの判定も行わない」の、この段階ってこの問題自体か
まあいいや
http://codepad.org/m7Ko5Iij

194 :デフォルトの名無しさん:2011/06/06(月) 21:48:35.18
[1] プログラミング言語U
[2] 問題文(含コード&リンク):
ボタンを押して別の外部アプリケーション(.exeファイル)を実行するMFCソフトを作成せよ
[3] 環境
 [3.1] OS: win7 64bit
 [3.2] コンパイラ名とバージョン:VC2010
 [3.3] 言語:C++
[4] 期限: 16日まで
[5] その他の制限: 特にありません。.exeファイルは適当なもので構わないとの事です。
ShellExecute()を用いる事は調べてみて分かったのですがどの様に用いるのかがわからないです。

195 :デフォルトの名無しさん:2011/06/06(月) 22:08:34.70
vs2010pro持ち待ちか

196 :デフォルトの名無しさん:2011/06/06(月) 23:56:12.01
>>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
ああリボン使う場合は上の手順だと駄目だわ。

198 :デフォルトの名無しさん:2011/06/07(火) 00:22:12.11
[1] プログラミング言語C
[2] 問題文(含コード&リンク):
10個のデータを配列a[ ]に入力し、直接挿入法を用いて数値を小さい順に並べ替えて表示せよ

[3] 環境
 [3.1] OS: win7 64bit
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C++
[4] 期限: 8日
[5] その他の制限:
よろしくお願いします。


199 :デフォルトの名無しさん:2011/06/07(火) 01:07:35.54
[1] 授業単元:C
[2] 問題文(含コード&リンク):
>>189のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:今日まで



200 :デフォルトの名無しさん:2011/06/07(火) 01:10:38.47
>>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 :デフォルトの名無しさん:2011/06/07(火) 01:21:20.22
>>198
http://codepad.org/xOUcfGoD

202 :デフォルトの名無しさん:2011/06/07(火) 05:05:18.56
>>201
ありがとうございます。
すみません、数値をscanfで読み込む形にして貰えますか?

203 :デフォルトの名無しさん:2011/06/07(火) 05:18:17.68
http://codepad.org/5gz9wZsF
>>202


204 :デフォルトの名無しさん:2011/06/07(火) 05:28:16.81
【質問テンプレ】
[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点
                      ・
                      ・
                      ・


205 :デフォルトの名無しさん:2011/06/07(火) 05:30:33.60
長文投稿できなかったので2回に分けました。
[3] 環境
 [3.1] OS: Windows 7 Pro
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語:C言語
[4] 期限: 2011年6月10日(金)17時まで
[5] その他の制限:fseek関数を使うこと。
よろしくお願いします。

206 :デフォルトの名無しさん:2011/06/07(火) 07:41:27.27
バイナリファイルとしてオープンできないテキストファイルをQZさんが作ってくれるでしょう

207 :デフォルトの名無しさん:2011/06/07(火) 07:54:51.15
◆QZaw55cn4cって糞だよなぁ

208 :デフォルトの名無しさん :2011/06/07(火) 08:01:05.15
>>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;
}


210 :デフォルトの名無しさん:2011/06/07(火) 08:07:11.79
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
http://www.dotup.org/uploda/www.dotup.org1685520.c
http://www.dotup.org/uploda/www.dotup.org1685521.c
上記2つのプログラムに示すベキ乗計算の関数は動作が異なる。
この動作の違いと仮引数を直接使うことの利便性と危険性について簡単に述べよ。
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語: c++
[4] 期限: 2011年6月9日10:00
[5] その他の制限: 特になし

おねがいします

211 :デフォルトの名無しさん:2011/06/07(火) 08:17:44.09
仮引数を使う問題じゃなくて、コードの見栄えを短くみせるために単項演算子を誤って使う問題で
これはプログラム以前のプログラマの性格や精神状態の問題だと
答えておけ

212 :デフォルトの名無しさん:2011/06/07(火) 08:22:49.10
なんで割ってるんだろう

213 :すみません。面倒そうなのでお願いしたいのですが...:2011/06/07(火) 08:25:03.76
[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コマンドに相当するものだそうです。全角・半角の扱いは見栄え良く
やれば任意だそうです。

214 :デフォルトの名無しさん:2011/06/07(火) 08:43:47.61
>>204
http://codepad.org/lJ9upTgV
http://codepad.org/8pODzU5K

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;
}



216 :デフォルトの名無しさん:2011/06/07(火) 08:47:58.58
>>212
noが負でも対応しようとして失敗してるんじゃね?


217 :デフォルトの名無しさん:2011/06/07(火) 08:48:58.10
>>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_;

219 :デフォルトの名無しさん:2011/06/07(火) 09:07:03.08
問題として回答が 無い ってことはあまりないだろうから
多分うっかり引数を変更したことを忘れて使っちゃう可能性だろうか

220 :デフォルトの名無しさん:2011/06/07(火) 09:07:36.27
>>218
両方正しく動作しねーよ
これ書いた奴どんなアホだよ

221 :デフォルトの名無しさん:2011/06/07(火) 09:14:24.85
>>217
そりゃ、カレーの香りがする奴を食べたら実はウンコだったら
怨念と憎悪がするのは当たり前だ(最大限ガードを甘く
している状態に強烈なカウンターだからね)w

222 :デフォルトの名無しさん:2011/06/07(火) 10:20:37.77
これっていうのは問題文添付のプログラムのほうね

223 :デフォルトの名無しさん:2011/06/07(火) 10:39:09.80
>>220
no >= 0なら正しく動くだろ。

224 :デフォルトの名無しさん:2011/06/07(火) 10:40:20.27
>>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;
}




227 :デフォルトの名無しさん:2011/06/07(火) 14:31:11.36
あやしげな入力例からするとfor文つかっちゃだめか?

228 :デフォルトの名無しさん:2011/06/07(火) 15:13:25.24
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
>>214>>215
ありがとうございます!

232 :デフォルトの名無しさん:2011/06/07(火) 20:23:12.12
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>189のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:今日まで



233 :デフォルトの名無しさん:2011/06/07(火) 20:28:02.11
>[4] 期限:今日まで
いつ提出するんだよww


234 :デフォルトの名無しさん:2011/06/07(火) 20:32:21.91
>>233

間違えたわ
明日だった

スマソ

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] その他の制限: 特になし


236 :デフォルトの名無しさん:2011/06/07(火) 22:30:52.22
>>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;
}

237 :デフォルトの名無しさん:2011/06/07(火) 23:15:53.14
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
>>191のシステムを以下のように拡張する。
指定済みの座標を入力した場合、「先手の負け」または「後手の負け」と表示する。
全てのマスが埋まったら、「試合終了」と表示する。
この段階でも、勝ち負けの判定も行わない。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:今日まで



238 :デフォルトの名無しさん:2011/06/07(火) 23:47:53.88
>>237
23:15で今日までって

239 :デフォルトの名無しさん:2011/06/07(火) 23:49:09.68
[1] 授業単元:配列の並び替え
[2] 問題文(含コード&リンク):
整数Nとしたとき、素数をN個リストアップするプログラムを作成しなさい。
※実行にあたり、Nの値を小さな値から慎重に変化させ、結果とプログラム動作の変化に注意すること
※N=1としたとき、答えは1ではありません
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



240 :デフォルトの名無しさん:2011/06/08(水) 00:01:17.67
>>237
修正部分だけ
//fprintf(stderr, "異常終了\n");
printf("%s\n",i % 2? "後手の負け":"先手の負け");



printf("試合終了\n");
return 0;
}

241 :デフォルトの名無しさん:2011/06/08(水) 00:36:02.70
>>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

243 :デフォルトの名無しさん:2011/06/08(水) 01:37:30.33
>>229
できたけどしつこい奴のようなので貼るのは止めよう

244 :デフォルトの名無しさん:2011/06/08(水) 01:41:55.43
ニュートン・コーツ公式においてn=1と置くと台形公式、n=2とおくとシンプソン公式になるよな
N=3〜5は何だ?

245 :デフォルトの名無しさん:2011/06/08(水) 02:11:05.42
>>242 >>229
http://codepad.org/tUKVDJeA

246 :デフォルトの名無しさん:2011/06/08(水) 02:29:27.99
>>243
すいません。
>>244
n=2→台形則
n=3→シンプソン第一則
n=4→シンプソン第二則
n=5→書いてありません
>>245
ありがとうございます。

他の方のプログラミングも見たいです。よろしくお願いします。

247 :デフォルトの名無しさん:2011/06/08(水) 02:32:33.84
ググればいくらでも見れるだろ

248 :デフォルトの名無しさん:2011/06/08(水) 03:05:31.91
n=5はブール則だね

しかし>>245が短くてワロタ
俺の作っていた奴は長くなった

249 :デフォルトの名無しさん:2011/06/08(水) 03:09:04.36
[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]ゼミの課題です。この手の問題は苦手です。

250 :デフォルトの名無しさん:2011/06/08(水) 03:13:59.56
俺のは

http://fussy.web.fc2.com/algo/algo10-9.htm

から黙って借用したのでコピーライトかどうかは知らん
手元に科学技術計算ハンドブックがあるが定数が小数で書いてあるので
汚くなるからこっちを使った

http://codepad.org/ynoKj2Mp

251 :デフォルトの名無しさん:2011/06/08(水) 03:14:48.69
あ、>>250>>246宛です

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の違いだけでも教えて頂ければ幸いです。

253 :デフォルトの名無しさん:2011/06/08(水) 03:30:26.22
>>249
http://codepad.org/g9SiTf7q

254 :249:2011/06/08(水) 03:37:02.83
>>253
感謝です。

255 :デフォルトの名無しさん:2011/06/08(水) 06:58:26.62
>>249
この問題は正しく動作しない
一つの union 変数に実数と整数を代入してるから実数が上書きされて誤った答えとなる

256 :253:2011/06/08(水) 07:54:10.37
>>255
いわれてみればそのとおりですね。書き直しておきましょうか。
http://codepad.org/aJ6zANlq


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):ポインタの場合アドレスの算出が必要ないのと繰り返し少ない分早いとかそんなのかと。

260 :デフォルトの名無しさん:2011/06/08(水) 11:35:25.61
>>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
>>258
http://codepad.org/cDfzNc9I

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を返す関数を作成してください。
よろしくお願いします。

264 :デフォルトの名無しさん:2011/06/08(水) 17:12:13.22
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
ファイルlist0602_03.txtを読み込み、1行30文字に整形してファイル出力するプログラムkadai03.cを作成せよ。
[3] 環境
 [3.1] OS:windows
 [3.2] コンパイラ名とバージョン:cygwin gcc-o
 [3.3] 言語: C
[4] 期限:出来れば本日中に
[5] その他の制限:
list0602_03.txt
http://www.dotup.org/uploda/www.dotup.org1686822.txt

構造体とポインタを習い始めたばかりです
他の問題ですが今の授業のレベルは↓くらいなので合わせてもらえると助かります
http://codepad.org/rTVuvjx6

265 :デフォルトの名無しさん:2011/06/08(水) 18:06:17.57
>>262
http://codepad.org/msk7jwLO

266 :デフォルトの名無しさん:2011/06/08(水) 18:36:01.78
>>262です
265さんありがとうございますm(_ _)m

267 :デフォルトの名無しさん:2011/06/08(水) 20:18:31.67
>>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;
}

268 :デフォルトの名無しさん:2011/06/08(水) 20:38:10.55
>>267
ありがとうございます

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までです。
よろしくお願いします。


270 :デフォルトの名無しさん:2011/06/08(水) 22:18:50.80
[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] 期限:明日まで

272 :デフォルトの名無しさん:2011/06/08(水) 23:06:05.77
>>270
ttp://ideone.com/ppgIq

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まで。

274 :デフォルトの名無しさん:2011/06/08(水) 23:47:02.28
>>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;
}


275 :デフォルトの名無しさん:2011/06/09(木) 00:08:18.01
>>274
ありがとうございます。

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を回避する方法はありますか?

277 :デフォルトの名無しさん:2011/06/09(木) 00:20:12.31
[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] 期限:今日まで

278 :デフォルトの名無しさん:2011/06/09(木) 00:40:51.38
>>276
それ宿題依頼じゃなくプログラムのバグつぶしじゃないのか?

279 :デフォルトの名無しさん:2011/06/09(木) 00:44:30.45
>>276
どのループ?

280 :デフォルトの名無しさん:2011/06/09(木) 00:54:45.46
>>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万回で落ちるのなら計算が合わないな

283 :デフォルトの名無しさん:2011/06/09(木) 00:59:07.44
>>278
あーやっぱそうですよね、ごめんなさい

>>279
randam→judge→randam→jugde→・・・
のループです

>>280
スタックサイズ?そんな概念があったのですか。
ヒントを元にコンパイルしてみます

ありがとうございました

284 :デフォルトの名無しさん:2011/06/09(木) 01:16:33.69
>>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
と打ち込んで実行したところ動きました



286 :デフォルトの名無しさん:2011/06/09(木) 01:32:50.50
>>285
>よくわからんのですが

関数を呼び出すごとに、メモリ上のスタック領域に関数の引数やローカル変数を
書き込んで行って、関数が終了する度にそれを解放して行きます。

関数の中で関数を読んで、更にまた関数を呼ぶというプログラムを書くと、
スタック領域のデータが解放されずにどんどん溜まって行きます。最終的には
スタック領域がいっぱいになって、プロセスが異常終了以上乙でした状態に
なってしまいます。

judge() も randomu() も自分の仕事が終わったら return する様にして、
main() の中で for とか while でループを作って judge() や randomu() を
呼び出す様にすると解決出来ると思います。

287 :デフォルトの名無しさん:2011/06/09(木) 01:35:27.70
>>286
詳しい説明ありがとうございます。
基礎から勉強しなおします。

288 :デフォルトの名無しさん:2011/06/09(木) 02:24:06.89
>>277
http://chopapp.com/#wav5r130

289 :デフォルトの名無しさん:2011/06/09(木) 10:18:41.65
もなちゃとで喧嘩してボコボコにされました。


290 :デフォルトの名無しさん:2011/06/09(木) 10:24:45.79
ここの住人を煽ったり罵倒したりすると、どうなるんですか?
僕は罵倒と煽りが趣味なんですがねぇ。
マジどうなるんすかねぇ^^;

やっぱり、ここの住民の抱腹は叩きじゃなくて
個人情報ばらまいたり、PCぶっ壊したりしちゃうんですか?

291 :デフォルトの名無しさん:2011/06/09(木) 10:26:43.28
それはいけない事だと思います。



292 :デフォルトの名無しさん:2011/06/09(木) 10:41:44.08
罵倒と煽りが趣味って、どんだけ惨めな人生おくったらそうなるんだろうな
あまりの哀れさに、涙が止まらない

293 :デフォルトの名無しさん:2011/06/09(木) 10:46:20.13
入力された数が奇数か偶数かを判断するプログラムをswitch文で作成しなさい。
お願いします。

294 :デフォルトの名無しさん:2011/06/09(木) 10:57:35.76
#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まで優という成績判定プログラムを作成しなさい。
お願いします。

296 :デフォルトの名無しさん:2011/06/09(木) 11:04:11.25
[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] その他の制限: ありません。

297 :デフォルトの名無しさん:2011/06/09(木) 12:32:31.14
>>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;
}


298 :デフォルトの名無しさん:2011/06/09(木) 12:35:27.59
>>295
それは本当にswitch文でいいのか

299 :デフォルトの名無しさん:2011/06/09(木) 12:35:28.51
x成分が sin で表現 y成分が cos で表現 ってちょっと違和感あるな

300 :デフォルトの名無しさん:2011/06/09(木) 12:36:05.62
>>296
http://codepad.org/Wwcygo40

301 :デフォルトの名無しさん:2011/06/09(木) 12:46:07.97
>>298
とり得る値の数だけ case 列挙する以外だと
条件式非成立で 0 とそれ以外の分岐を switch のネストで記述するぐらいかね?

switch (点数 <= 60) {
case 0:
 switch (点数 <= 69) {
 case 0:
  switch (点数 <= 79) {
  ・・・ 以下続く
  }
 default:
  /* 可*/
 }
 break;
default:
 /* 不可*/
}

302 :デフォルトの名無しさん:2011/06/09(木) 12:54:31.86
vs2008なら動きそうだけどprintf系でlfは減点されそうだな

303 :デフォルトの名無しさん:2011/06/09(木) 13:01:15.45
>>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;

304 :デフォルトの名無しさん:2011/06/09(木) 13:10:17.89
>>303
優三つはまとめなよwwwww

問題の範囲外ではあるが1−100以外の点数を考えるとやっぱりswitch向きじゃないよなこの問題

305 :デフォルトの名無しさん:2011/06/09(木) 13:18:27.95
>>297
>>300
素早い回答ありがとうございます!

306 :デフォルトの名無しさん:2011/06/09(木) 13:24:51.28
文型IQ92くらいの僕がプログラマーになるって可能ですか?
学歴は脱糞高等学校主席(後ろから数えて)卒業。
趣味は脱糞と自慰行為。
好きな番組はテレフォンショッピング。
好きなサイトはカリビアンコム。

とある掲示板にて、プログラミングするには、
言語を勉強しないといけないと聞いたので、何言語を学べばいいか聞くと
「中国語」だと言ってました。本当ですか?
しかし、このスレを見ると英語に見えるんですがねぇ^^;
これは僕に対する、皆さんによる釣り行為ですかねぇ^^;
僕はこんな釣りに釣られるような馬鹿じゃないんですがねぇ。
おちょくってるんですか?なめんなよコラ^-^;

307 :デフォルトの名無しさん:2011/06/09(木) 13:29:29.30
どうしてもswitch使えと言われたら、
スクリプトでcase 0から100まで生成するかなあw

308 :デフォルトの名無しさん:2011/06/09(木) 13:36:00.14
>>304
奇数/偶数判定との対比で switch に向いた条件付けって何だろう と考えさせる為の問題だったらすごいな

309 :デフォルトの名無しさん:2011/06/09(木) 13:40:41.28
すいませんでした。許してください。


310 :デフォルトの名無しさん:2011/06/09(木) 13:43:38.81
まあ、軽くc++ってのを検索してきたけどさ。
余裕だな。
俺からすれば余裕
マスターするのに15年程度のレベル


311 :デフォルトの名無しさん:2011/06/09(木) 13:47:32.40
たぶんfall throughの勉強させたいんじゃないの?
全部のcase書いて、breakの位置で処理分けするのが目的な気がする。

312 :デフォルトの名無しさん:2011/06/09(木) 13:50:14.67
それなら0〜100である必要はないんじゃないか。無駄に多すぎる
もっと点数を減らすとか、アルファベットとかのほうが適当なはず

313 :デフォルトの名無しさん:2011/06/09(木) 14:04:37.31
[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”です。

314 :デフォルトの名無しさん:2011/06/09(木) 14:04:44.83
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はそんなに多いとは思えないけどなー。
課題なんだし。

316 :デフォルトの名無しさん:2011/06/09(木) 14:53:21.35
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
>>313
http://codepad.org/xukGjotr

318 :デフォルトの名無しさん:2011/06/09(木) 16:14:18.92
>>288
題意を満たしてなくね?
最後の出力が
[1 2 3 4 5 6 7 8 9 10 2147344384 10 1 4199032 5457731 1245112 851035066 1 153598
64 15510096 18 ]

となってしまう

319 :デフォルトの名無しさん:2011/06/09(木) 16:27:36.13
>>277
http://codepad.org/ezndsXqx
これでちゃんと動くと思う

>>288
ちゃんとデバッグしとけよ

320 :デフォルトの名無しさん:2011/06/09(木) 16:29:40.05
>>319を修正
http://codepad.org/nIBolbdN

「登録上限に到達」が表示されなかった

321 :デフォルトの名無しさん:2011/06/09(木) 16:32:30.92
>>300
C99で書かれているから for (double rad = の部分がコンパイルエラーになるんだが
VS2010 Cモード

322 :デフォルトの名無しさん:2011/06/09(木) 16:37:06.82
>>317
これも
for ( int i = の所でコンパイルエラー

VS2010 Cモード

323 :デフォルトの名無しさん:2011/06/09(木) 16:55:35.89
>>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
>>26
すげぇ。おもしれぇコードだな

325 : ◆QZaw55cn4c :2011/06/09(木) 20:04:34.40
>>269
http://codepad.org/RYH1Jkfe

326 :デフォルトの名無しさん:2011/06/09(木) 20:09:23.46
大物が来たw

327 :デフォルトの名無しさん:2011/06/09(木) 20:11:12.99
>>324
いまさらどうした?

328 :デフォルトの名無しさん:2011/06/09(木) 20:17:54.75
>>325
メモリリーク

確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

329 :デフォルトの名無しさん:2011/06/09(木) 20:18:53.28
>>325
死ね

330 :デフォルトの名無しさん:2011/06/09(木) 20:21:09.60
ゴミコードよりマシなコード書かれてトリップやめたはずなのに、
恥ずかしげもなくまたつけて解答者面かよw

自分に有利なルールにしたあげく、それすら守れないって根っからのクズだな

331 :デフォルトの名無しさん:2011/06/09(木) 20:22:15.34
大御所が出てくるとみんな盛り上がるなww

332 :デフォルトの名無しさん:2011/06/09(木) 20:35:24.00
メ欄もスカってるしな

333 : ◆QZaw55cn4c :2011/06/09(木) 21:31:59.14
>>328
malloc()/free() を使っていないのにメモリーリークとはこれいかに?

334 : ◆QZaw55cn4c :2011/06/09(木) 21:56:53.14
>>277
配列は使いませんでした。ごめんなさい。
C: http://codepad.org/fBP8wSHR
C++: http://codepad.org/AGDFXZF2
Java: http://ideone.com/fXHSh

335 :デフォルトの名無しさん:2011/06/09(木) 21:57:39.74
>>333
sbrk呼んでる。

確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

336 :デフォルトの名無しさん:2011/06/09(木) 22:09:11.88
お前しかたないですよね言いたいだけちゃうんかと

337 : ◆QZaw55cn4c :2011/06/09(木) 22:09:14.20
>>335
それはmalloc()/free() 信者の基準でも、あなたの普通のコーディング時の基準でもなく、単にあなたが反証のために勝手に例示しただけの、私も相手にしていないところの、どうでもいい基準ですね。

それと、これは純粋な質問ですが、
今、K&R2 の 8.7 を見ていますが、sbrk() は malloc()/morecore() の中でしか呼び出されてないようですよ。それとも、普通はスタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?

338 :デフォルトの名無しさん:2011/06/09(木) 22:19:31.54
>>334
さすが基地、題意完全無視

339 :デフォルトの名無しさん:2011/06/09(木) 22:22:52.40
てめーはしかけた宗教戦争で負けたんだよ。敗者は勝者が押し付けたルールに従え。
・明示/暗黙を問わず、確保したメモリはプログラム終了前に必ず開放する事。
これがてめーが従うべきルールだ。これを守れない回答は許さない。

> 今、K&R2 の 8.7 を見ていますが、sbrk() は malloc()/morecore() の中でしか呼び出されてないようですよ。それとも、普通はスタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?
バカ丸出しだな。直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?

340 : ◆QZaw55cn4c :2011/06/09(木) 22:30:37.94
>>339
おかしいですね。勝者であるあなたのルール(dangling pointer が発生しさえしなければ free() しなくてもいい)ならば喜んで従いますが(そのほーが楽だし)、あなたも守っていないルールを守る筋は、たとえ宗教論争に負けたとしてもないと思いますがね。
それはそうと、もう一度質問しますね。
スタートアップで予備的にあらかじめ sbrk() を呼ぶものなんでしょうか?

341 :デフォルトの名無しさん:2011/06/09(木) 22:31:11.63
[よろしくお願いします・・(´・ω・`)

1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
整数aとbを入力すると、mylife.txt という名前のファイルを作り、その中にa+bの計算結果を記録する処理と、
続いてそのファイルを開いてデータを読み込み、ディスプレイ上に表示する処理をするプログラムを作りなさい。
(実行後mylife.txt の中身は

126

とだけ書かれている)

http://uproda.2ch-library.com/387865yc9/lib387865.jpg
実行例です。

http://uproda.2ch-library.com/387863Wqm/lib387863.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
こんな感じのプログラムでお願いしたいです。

342 :デフォルトの名無しさん:2011/06/09(木) 22:39:12.51
ごめんなさい。よろしくお願いします。

[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)はカンケーねーとでも言う気なのだろうか?

344 :デフォルトの名無しさん:2011/06/09(木) 22:48:22.64
>>339
あんたもトリ付けてくれんか、ブロックが楽になるから

345 : ◆QZaw55cn4c :2011/06/09(木) 22:52:04.24
>>343
ええと、アヘン戦争は宗教論争でしたでしょうか?

>言質取ったぞ。stdioなどのライブラリが確保したメモリもきちんと解放しろよ。大変だな。www
あのー、あなたのルール((dangling pointer が発生しさえしなければ free() しなくてもいい)になら従う、(少なくとも dangling pointer が発生しなければ文句はいわない)といっているだけですが。

>直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
これは教えを請うているのですが、sbtk() ってスタータップで呼ばれるものでしょうか?

346 :194:2011/06/09(木) 22:58:25.93
>>196
返信遅れましたがありがとうございました。
手順も分かりやすく、大変参考になりました。

347 : ◆QZaw55cn4c :2011/06/10(金) 00:24:49.17
>>341
C: http://codepad.org/neGFxuZB
C++: http://codepad.org/ZhQsBZeF
Java: http://ideone.com/Iv72g

348 :デフォルトの名無しさん:2011/06/10(金) 00:27:10.38
>>341,342
http://codepad.org/6xl21vm5
http://codepad.org/U5JmaIyp

349 :デフォルトの名無しさん:2011/06/10(金) 01:43:30.08
>>345
てめーは確保したメモリはもれなく開放するというてめーのルールに従え。
敗者のくせに勝者と同じルールを使わせてもらえると思うな。カス。

確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

> >直接呼んでねーmalloc(sbrk)はカンケーねーとでも言う気なのだろうか?
> これは教えを請うているのですが、sbtk() ってスタータップで呼ばれるものでしょうか?
二度も教えたのに、バカにはわからないようだ。

350 :デフォルトの名無しさん:2011/06/10(金) 01:44:21.89
>>347
メモリリーク

確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

351 :デフォルトの名無しさん:2011/06/10(金) 01:45:10.19
OSが確保したままにするのもメモリリーク?

352 :デフォルトの名無しさん:2011/06/10(金) 01:54:09.65
メ欄でどや顔してるQZaw55cn4cまじきもいな

353 :デフォルトの名無しさん:2011/06/10(金) 01:55:52.94
◆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って糞だよなぁ


354 :デフォルトの名無しさん:2011/06/10(金) 01:57:07.60
◆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って糞だよなぁ

355 :デフォルトの名無しさん:2011/06/10(金) 01:57:59.83
◆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って糞だよなぁ



356 :デフォルトの名無しさん:2011/06/10(金) 01:59:01.99
◆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って糞だよなぁ


357 :デフォルトの名無しさん:2011/06/10(金) 02:14:09.83
どなたかお願いします。
C言語でデータを入力して4次行列式を計算するプログラムを作りたいんですが。プログラム教えて下さい。
どっかのってるサイトとかないですかね?

358 :デフォルトの名無しさん:2011/06/10(金) 02:16:47.93
つCLAPACK

359 :デフォルトの名無しさん:2011/06/10(金) 02:17:04.48
>>357
連立一次方程式を解くだけならガウス法かガウスジョルダン法でググれ
ピボット選択という方法で解けるようになる場合もある
反復法という全く別のアルゴリズムでも解ける

360 :デフォルトの名無しさん:2011/06/10(金) 02:21:25.26
さすがQZだな。くっついてるキチガイが生き生きしてるわ。

標準ライブラリが確保したメモリ(って何指してんだよ、と思わなくも無いけれど)、
それを解放すべきとするならば、解放していないライブラリなりOSのバグとするのが筋で、
そのケツを拭く義務を背負う必要なんて無いだろ。

361 :デフォルトの名無しさん:2011/06/10(金) 02:21:36.05
行列式の計算だろ?
何言ってんだこいつ

362 :デフォルトの名無しさん:2011/06/10(金) 02:23:16.93
>>360
Cならfreeしてもすぐには返されないよ

363 :デフォルトの名無しさん:2011/06/10(金) 02:41:55.11
大学の頃、掃きだし法をBASICで書いたなぁ...遠い目

364 :デフォルトの名無しさん:2011/06/10(金) 04:00:24.34
>>357
http://thira.plavox.info/blog/2008/06/_c.html
こんなのは?
ぐぐると一番上に出て来た

365 :デフォルトの名無しさん:2011/06/10(金) 04:30:39.33
>>364さんありがと。
ただ最初データを打ち込みたいんだがそこはどうすればいいのか…

366 :デフォルトの名無しさん:2011/06/10(金) 04:31:30.39
データの入力部分が一番簡単だろw

367 :デフォルトの名無しさん:2011/06/10(金) 08:44:44.75
>>347>>348
ありがとうございます。
やってもらってとても嬉しいのですが、
http://uproda.2ch-library.com/387865yc9/lib387865.jpg この実行例と、

http://uproda.2ch-library.com/387866eaw/lib387866.jpg この実行例とちょっと違っています・・。

http://uproda.2ch-library.com/387863Wqm/lib387863.jpg  これの続きみたいな感じで、
scanfとかprintfを使う形でやってくださる方いないでしょうか・・(´・ω・`)



368 :デフォルトの名無しさん:2011/06/10(金) 09:01:31.83
マニピュレータ追加するだけじゃねーか

369 :デフォルトの名無しさん:2011/06/10(金) 09:12:24.20
300回fopenしてfcloseしなかったら、アプリがcore-dumpして
落ちてOSも不安定になったのでshutdown -r now
しても正常にリブートされず、fsckが必要になった経験が
かなり最近のカーネルの某PC-UNIXでもあった

370 :デフォルトの名無しさん:2011/06/10(金) 09:46:00.70
>>367
>>342は実行例と問題文が異なるが、問題文に合わせた。
http://codepad.org/Mb3s8Fz1
http://codepad.org/pR5OumUf

この回答を使用する利用条件。以下↓をこのスレに書き込むこと。

>>347死ね。
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

371 :デフォルトの名無しさん:2011/06/10(金) 09:48:28.27
>>370
死ね死ね

372 :デフォルトの名無しさん:2011/06/10(金) 09:57:02.82
>>367
メッセージもまねるのか…
http://codepad.org/DDzgd1D8
利用条件は同じく、以下↓をこのスレに書き込むこと。

>>347死ね。
確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

373 :デフォルトの名無しさん:2011/06/10(金) 10:08:32.26
>>370>>372
ごめんなさい。やってくださってありがとうございます。
実行したら実行例と同じ感じになったので、嬉しいです

スレに書き込むのはやわらかい表現でしますね

>>347ふざけないで。
確保したメモリを返さないのはメモリリークと呼ばれても
仕方ないですから(´・ω・`)

374 :デフォルトの名無しさん:2011/06/10(金) 10:32:53.45
[1]授業単元:オペレーティングシステム論
[2]課題:適当な名前の大きさ100Mバイトのバイナリファイルを作成し、内容を乱数バイト配列とする。
それをクローズし、そのファイルを開き、すべてのビットを反転させた内容に置換する。
これを10万回繰り返すプログラムを作成し、HD、SSD、USBフラッシュメモリ等のデバイスの差
処理時間がどのくらい変わるかテストするプログラムを作成せよ
[3] OS:Windows IDE:Visual studio 2008 言語:C
[4] 6/15まで
[5] ディスクキャッシュが大きいとディスクに短期間では確実に書き込まれるとは限らないので、ファイルを100個作って1000回
繰り返すプログラムにしたほうが良い
とのことです。
コードだけでなく、実行時間もお願いします。

375 :デフォルトの名無しさん:2011/06/10(金) 10:55:59.33
>>374
USBメモリの一般的な書き換え可能回数は数10万回程度なのに
100Mの乱数列を10万回書き込むとか
ウェアレベリングされているとはいえかなり劣化するぞ

376 :デフォルトの名無しさん:2011/06/10(金) 11:02:45.03
>>374
作るのはいいが結果を用意しろと言われても困る

377 :デフォルトの名無しさん:2011/06/10(金) 11:03:34.88
どこの学校だ?

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] その他の制限 :お手数かけますが、コメントをつけてよろしくお願いします。

379 :デフォルトの名無しさん:2011/06/10(金) 15:58:37.19
>>360は◆QZaw55cn4cか
他人のフリしてちゃっかり印象操作

380 :デフォルトの名無しさん:2011/06/10(金) 16:06:28.29
>>374
そもそもSSDなんて高価なモノは持ってない

381 :デフォルトの名無しさん:2011/06/10(金) 17:50:23.79
宿題のために買うのか

382 :デフォルトの名無しさん:2011/06/10(金) 17:51:53.10
んなわけねえよ
宿題を解いてもらう方が宿題を解く人にSSDを貸し出すのが筋

383 :デフォルトの名無しさん:2011/06/10(金) 17:59:19.00
> ファイルを100個作って1000回
> 繰り返すプログラムにしたほうが良い
一つのファイルを10万回書き換えるのと等価になるのか?

384 :デフォルトの名無しさん:2011/06/10(金) 18:02:56.59

[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] 期限:今日まで

385 :デフォルトの名無しさん:2011/06/10(金) 19:26:19.53
[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まで。

388 :デフォルトの名無しさん:2011/06/10(金) 20:49:09.65
>>386
int gcd(int m, int n) {
if n
return gcd(n, m%n);
else
return m;
}

389 :デフォルトの名無しさん:2011/06/10(金) 20:50:41.28
アルゴリズム問題は久しぶりだな

>>384
ttp://ideone.com/V1oj0

390 :デフォルトの名無しさん:2011/06/10(金) 21:39:59.81
QZの>>385の回答を期待

391 :デフォルトの名無しさん:2011/06/10(金) 21:57:28.08
[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

392 :デフォルトの名無しさん:2011/06/10(金) 22:13:54.44
>>385の問題、パイロットは乗客として移動してもいいのかな?

393 :デフォルトの名無しさん:2011/06/10(金) 22:31:32.17
>>391
Line28 予期しない動作になってない?

394 :デフォルトの名無しさん:2011/06/10(金) 22:39:54.90
>>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日


396 :デフォルトの名無しさん:2011/06/10(金) 22:51:38.45
>>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



398 :デフォルトの名無しさん:2011/06/10(金) 23:54:47.46
[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まで



399 :デフォルトの名無しさん:2011/06/10(金) 23:56:54.57
>>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

400 :デフォルトの名無しさん:2011/06/11(土) 00:02:12.38
>>395
ttp://codepad.org/yg2kWD3T

401 :デフォルトの名無しさん:2011/06/11(土) 00:12:39.38
>>400
switchを使わずにif文だけでお願いします。

402 :デフォルトの名無しさん:2011/06/11(土) 00:13:39.48
>>401

>>1
>後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。

403 :デフォルトの名無しさん:2011/06/11(土) 00:21:34.76
>>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 :デフォルトの名無しさん:2011/06/11(土) 00:25:27.17
>>403
問題嫁

405 :デフォルトの名無しさん:2011/06/11(土) 00:34:09.44
>>404
問題嫁どもわかりません
よろしくお願いします

406 :デフォルトの名無しさん:2011/06/11(土) 00:36:23.02
>>402
>>395でif文指定してるんだから、問題に後から付け足しじゃないだろ

407 :デフォルトの名無しさん:2011/06/11(土) 00:52:21.68
>395

if文は使っている。
望まれている使い方では無いと思うがな。

ttp://codepad.org/ODmNL3Dv

408 :デフォルトの名無しさん:2011/06/11(土) 01:35:39.37
QZaw55cn4cは糞

409 : ◆/91kCCQXBo :2011/06/11(土) 03:18:22.13
>>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");
  }
}

410 : ◆/91kCCQXBo :2011/06/11(土) 03:35:44.72
>>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まで。

413 :デフォルトの名無しさん:2011/06/11(土) 08:45:21.64
>>389
ちょっと酷いな、三角行列の対称成分も埋めておけば min(), max() は不要だ

414 :デフォルトの名無しさん:2011/06/11(土) 09:07:41.64
>>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;
}

415 :デフォルトの名無しさん:2011/06/11(土) 10:06:04.77
>>378
[分割版]
doubly_linked_list.h - http://codepad.org/0dqb5dHw
doubly_linked_list.c - http://codepad.org/Re26cYoi
main.c - http://codepad.org/LRbtt2Z4

[ひとまとめ]
http://ideone.com/qy55m

416 :デフォルトの名無しさん:2011/06/11(土) 10:27:49.23
>>411
条件は認められませんでした。下げ

417 :デフォルトの名無しさん:2011/06/11(土) 10:44:20.32
>>416
と、◆QZaw55cn4cの糞が申しております
無視しましょう

418 :デフォルトの名無しさん:2011/06/11(土) 10:44:45.81
>>412
1 + count(i + 1, j, a) + count(i - 1, j, a) + count(i, j + 1, a) + count(i, j - 1, a)

419 :デフォルトの名無しさん:2011/06/11(土) 10:55:41.75
クイックソートを使い、整数を整列する際の要素を移動した回数を記録したいのですが、以下のやりかただと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 ] ; // 比較要素
 

420 :デフォルトの名無しさん:2011/06/11(土) 11:01:05.01
countをグローバルにして、main関数で表示

421 :デフォルトの名無しさん:2011/06/11(土) 11:02:13.90
>>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-- ;
  }
 }

422 :デフォルトの名無しさん:2011/06/11(土) 11:04:30.67
>>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 ; }

423 :デフォルトの名無しさん:2011/06/11(土) 11:09:14.14
なんでwhile内でprintfするのん

424 :デフォルトの名無しさん:2011/06/11(土) 11:12:29.54
>>423
コード読めないアホは引っ込んでろw

425 :デフォルトの名無しさん:2011/06/11(土) 11:18:30.07
> while(i <= j) ;
しといて次行をインデントするクズ。QZに匹敵する。

426 :デフォルトの名無しさん:2011/06/11(土) 11:22:50.12
QA=紙

427 :デフォルトの名無しさん:2011/06/11(土) 11:32:05.56
>>411
>if (scanf(" %d", &m) == EOF)
成立することあると思ってるの?

428 :デフォルトの名無しさん:2011/06/11(土) 11:39:30.12
>>427
成立はするだろEOFでやるのはどうかと思うが

429 :デフォルトの名無しさん:2011/06/11(土) 11:44:04.02
a.txt > a.out
他にあるひと?

430 :デフォルトの名無しさん:2011/06/11(土) 11:58:14.59
>411 >427 >428

EOFが返ることもあるんだね。知らなかった。

しかしここはいずれにしても、入力チェックとしては
if (scanf(" %d", &m) != 1)
とすべきではないかと思う。

431 :デフォルトの名無しさん:2011/06/11(土) 12:28:38.83
>>430
言いがかり付けるときはマニュアル見てからつけろ。カス。

> とすべきではないかと思う。
完璧な計算のもとにEOFでチェックしてるんだよ。素人は引っ込んでろ。

432 :デフォルトの名無しさん:2011/06/11(土) 12:32:08.40
>>411
EOFになるのは、具体的にはどういう入力があったとき?
それから、数値以外の、例えばアルファベットが入力されたときは、どういう動きをする?

433 :デフォルトの名無しさん:2011/06/11(土) 12:34:24.40
はい。灰色人です。
http://ideone.com/plain/Hsvo8


434 :デフォルトの名無しさん:2011/06/11(土) 12:34:57.41
>>432
自分で調べろクズ。

435 :デフォルトの名無しさん:2011/06/11(土) 12:38:29.37
>>431
失敗時もEOFなんですね
終了時のみかと思っていました
どうもすいませんでした

436 :429:2011/06/11(土) 12:39:14.64
失敗時てなに?

437 :デフォルトの名無しさん:2011/06/11(土) 12:42:29.34
>>432
EOF: WinならCtrl+Z、UNIX系ならCtrl+D
アルファベット: ASCII code

438 :デフォルトの名無しさん:2011/06/11(土) 12:42:53.70
>>434
>何月? a
>1月は31日です。

439 :435:2011/06/11(土) 12:43:58.59
>>431
ごめんなさい勝手に変な勘違いしてました
やっぱり%dで読み取るときに文字入力したみたいなときは0が返りますね
やっぱEOFじゃだめでいいじゃねーかwwwww

440 :デフォルトの名無しさん:2011/06/11(土) 12:45:37.62
実行時に入力ダイレクト「<」を渡した時とか

441 :440:2011/06/11(土) 12:46:25.02
ファイルの事ね

442 :デフォルトの名無しさん:2011/06/11(土) 12:49:28.38
>>434
何月? ^Z
^Z

キー入力の場合は、EOFになるのはこのケースだけのようですね。

443 :430:2011/06/11(土) 12:55:56.69
>431

いや私は通りすがりなんだけど、「EOFが返ること知らなかったから、参考になりました。」
というニュアンスだったんですが、なんでそんなテンションなんですか?

>432 >434 >442
元の人は喧嘩売りたいだけみたいなので、こちらでどうぞ。
エラーの項目を見れば、どんなエラーがあり得るかわかります。
ttp://linuxjm.sourceforge.jp/html/LDP_man-pages/man3/scanf.3.html#lbAF

444 :デフォルトの名無しさん:2011/06/11(土) 13:28:48.76
[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
>>430
int m = 0;

446 :デフォルトの名無しさん:2011/06/11(土) 15:00:35.41
>>444
ttp://ideone.com/LB3dF

447 :デフォルトの名無しさん:2011/06/11(土) 15:39:52.96
>>444
ttp://ideone.com/J9r3O

448 :430:2011/06/11(土) 16:06:40.79
>445

えーーー、自信満々で
「完璧な計算のもとにEOFでチェックしてるんだよ。素人は引っ込んでろ。」
って言っていたのに、mが初期化されているのが「完璧な計算」なの?

ポインタを渡した関数が失敗したときに、初期化された値が
保証されているって考えては駄目だと思うよ。

もちろんお作法として、関数が失敗したときに、渡された領域を破壊しないように
務めるべきだとは思う。

manではscanfが失敗したときのポインタ変数がどうなるかについて、何も説明されていない。
標準関数だから、失敗したときに元の値が保証されるような実装になっているとは思う。

if (scanf(" %d", &m) != 1)
ではこのあたりの問題は何もでないから、こっちの方がBetterだと思うけど、いかがですか?

449 :デフォルトの名無しさん:2011/06/11(土) 16:24:38.17
>>385
12回、でいいのだろうか

450 :デフォルトの名無しさん:2011/06/11(土) 16:26:07.47
>>447
3項演算子の58行で

>empty(next) ? 1 : show(&next);

エラー E2468 dai61_2.c 58: void 型の値は許されない (関数 show )
警告 W8019 dai61_2.c 58: コードは効果を持たない (関数 show )

ってエラーが出るから、こういう書き方はだめなんじゃない?

451 :デフォルトの名無しさん:2011/06/11(土) 16:27:46.73
>>385
これは最小全域木の問題?

452 :デフォルトの名無しさん:2011/06/11(土) 16:32:43.44
>>415
言語Cなら

doubly_linked_list *list_create();

ではなく

doubly_linked_list *list_create(void);

って書いてくれませんか

「プロトタイプ宣言のない関数の呼び出し」って警告が出ます

453 :デフォルトの名無しさん:2011/06/11(土) 16:34:55.14
>>450
gcc?

1の項がエラーなのかな

454 :デフォルトの名無しさん:2011/06/11(土) 16:39:27.00
>>450
あーshowがvoid関数だからか、なるほど
素直にif文にすればいいね

455 :デフォルトの名無しさん:2011/06/11(土) 16:58:03.36
>>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の説明が間違っていました
×// リストから指定した値を削除する(最初に見つかった要素がひとつだけ削除される)
○// リストから指定した値をすべて削除する

457 :デフォルトの名無しさん:2011/06/11(土) 17:43:05.36
http://codepad.org/qNbvotbvのプログラムエラーの原因を教えて下さい。
名前が一致すると数を出力するプログラムなんですが、「2 番目の引数を 'bool' から 'const char *' に変換できません。」
と出力されてしまいます。

458 :デフォルトの名無しさん:2011/06/11(土) 17:47:59.33
>>457
name==0).name)==0に

459 :デフォルトの名無しさん:2011/06/11(土) 17:49:20.57
消すとこ間違えた
name==0)をname)==0に、です

460 :デフォルトの名無しさん:2011/06/11(土) 17:55:05.74
>>458-459
ありがとうございました。

461 :デフォルトの名無しさん:2011/06/11(土) 18:15:37.23
>>430 比較せよ
if (scanf(" %d", &m) == -1);
if (scanf("%d", &m) == -1);

462 :デフォルトの名無しさん:2011/06/11(土) 18:17:16.44
>empty(next) ? 1 : show(&next);
3項演算子をif文代わりに使っちゃう男の人って・・・

463 :デフォルトの名無しさん:2011/06/11(土) 18:25:12.96
>>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
>>415
378です!ありがとうございました。

466 :デフォルトの名無しさん:2011/06/11(土) 20:58:50.93
VC++ 2010 で.netのアプリを作っています。

変数の型 BYTE が使えないですが、どうすれば良いでしょうか。

なにかをinclude する必要があるでしょうか。
 

467 :デフォルトの名無しさん:2011/06/11(土) 21:05:43.89
>>466
なんでこのスレに来たの?

468 :デフォルトの名無しさん:2011/06/11(土) 21:12:11.82
>>466
windows.h

469 :デフォルトの名無しさん:2011/06/11(土) 21:23:22.74
>>464
ねぇよ死ね

470 :デフォルトの名無しさん:2011/06/11(土) 21:45:40.42
[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()


472 :デフォルトの名無しさん:2011/06/11(土) 22:21:31.58
>>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;
}

473 :デフォルトの名無しさん:2011/06/11(土) 22:22:08.90
x sscanf("%lf", &d);
o sscanf(buf, "%lf", &d);

474 :デフォルトの名無しさん:2011/06/11(土) 23:15:40.42
>>469
そのような発言はいただけませんねぇ〜。
私には彼女がいますが。なんなんですか。

475 :デフォルトの名無しさん:2011/06/12(日) 00:05:50.23
彼女か奥さんがいる人はC言語書いちゃ駄目なんですよ。

476 :デフォルトの名無しさん:2011/06/12(日) 09:12:23.11
>>475
D言語を書けってか?

477 :デフォルトの名無しさん:2011/06/12(日) 09:28:03.29
D言語を書くの?

478 :デフォルトの名無しさん:2011/06/12(日) 11:31:12.81
[1] 授業単元:プログラム実行カウンタの作成
[2] 問題文(含コード&リンク):
log.txtのファイルを利用して、作成したプログラムが何回目の実行かを画面表示するプログラムを作成しなさい
なお、簡単のため、log.txtには初めに0と入力し、保存しておいてもかまわない
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



479 :デフォルトの名無しさん:2011/06/12(日) 11:41:34.80
>>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;
}

480 :デフォルトの名無しさん:2011/06/12(日) 11:48:01.98
[1] 授業単元: 画像処理
[2] 問題文(含コード&リンク):
0〜100までの番号の振られたraw画像データ群から任意で指定した番号の画像1枚を出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: 6月15日まで
[5] その他の制限: 無し:よろしくお願いします。


481 :デフォルトの名無しさん:2011/06/12(日) 11:52:11.27
>>480
> 0〜100までの番号の振られたraw画像データ群
もう少し詳しく
>番号の画像1枚を出力するプログラム
GUIを使って画面に表示すればいいのか?

482 :デフォルトの名無しさん:2011/06/12(日) 11:52:33.15
>>480
RAW画像のフォーマットと出力するの定義を

483 :デフォルトの名無しさん:2011/06/12(日) 12:47:26.61
>>479
N回呼ばれた事をログに記憶すべきだからN+1を書き込むのはお勧めしない

484 :480:2011/06/12(日) 12:50:04.94
0.raw・・・・・100.rawという感じでフォルダに画像が入っていて、
例えば1と入力したら1.rawが選択されて別のフォルダに出力
するというものです。
RAW現像ソフトウェアはPhotoshopです。
よろしくお願いします。

485 :デフォルトの名無しさん:2011/06/12(日) 12:50:52.90
>>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");
/* */
}

486 :デフォルトの名無しさん:2011/06/12(日) 13:57:08.18
>>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>のみ使用可


488 :デフォルトの名無しさん:2011/06/12(日) 14:45:14.46
int cmp(int *a, int *b, int size)
{
while(size--) if(*a++ != *b++) return 1;
return 0;
}

489 :デフォルトの名無しさん:2011/06/12(日) 14:51:45.00
>487

ttp://codepad.org/Q3APnxxY

490 :デフォルトの名無しさん:2011/06/12(日) 17:39:07.34
[1] 授業単元:ファイルにある数字をすべて読み込む
[2] 問題文(含コード&リンク):
log1.txtには、0個以上の実数が1行に1つずつ、改行を挟んで記載されている。
記載されている実数を全て読み込み、数値の個数、平均値、分散値を求めて表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS:Windows7
 [3.2] コンパイラ名とバージョン:Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで

491 :デフォルトの名無しさん:2011/06/12(日) 19:57:47.82
>>490
http://codepad.org/IFzgMNfB

492 : ◆QZaw55cn4c :2011/06/12(日) 19:58:58.74
>>490
C: http://codepad.org/vDdikLm7
C++: http://codepad.org/eFIpvA8t
Java: http://ideone.com/1ueBI

493 :デフォルトの名無しさん:2011/06/12(日) 20:13:24.57
群馬県高崎市に住む39歳AB型、製造業界で派遣プログラマーの仕事をしているhekenekoこと、黒飛健と申します。
新日本テクトスという会社を追われ、その後どうしてよいかわからなくなりました。
だけど私の大好きな尾崎豊の歌に励まされ、夢であるプロのクリエイターを目指すことにしました。
何度も挫けそうになりましたが、尾崎豊の歌を聞きながら自分を励ましています。
今も尾崎豊の歌のおかげで、夢を諦めずにCGアニメの製作を続けられています。

とりあえず、以下の動画を見てください。一生懸命作ったもので、自分では既にプロレベルの傑作だと思ってます。
できればみなさんのご意見、ご感想を聞きたいです。

復興支援アニメ.mp4
http://www.youtube.com/watch?v=yn4uTiN8vvM

湾岸鉄道キャンペーンCM(カラー).mp4
http://www.youtube.com/watch?v=g3PlX1OAhug&feature=channel_video_title


これは力作で、にしおかすみこさんにも是非見てもらいたかったため彼女のブログにコメントしたんですが無視されました。
http://blog.watanabepro.co.jp/nishiokasumiko/archives/2008/02/22_15_post_22.html
(下の方にあります。投稿者: hekeneko | 2008年03月24日 22:54)
やはり私の才能に気づいてくれる人は中々いないみたいですね(苦笑)。


題名”ラダニアムの翼”
A wing of radaniam_partU.mp4
http://www.youtube.com/watch?v=keSK70uqDJY
A wing of radaniamu part_V.mp4
http://www.youtube.com/watch?v=-LRZbXbirR0

題名”hekeneko honey”
http://www.youtube.com/watch?v=kATwf6fAkG8
私の世界観の全てを凝縮した力作です。hekenekoワールドをご堪能あれ。

494 :デフォルトの名無しさん:2011/06/12(日) 20:51:04.74
>>492
いろいろな言語できるアピールかっこいいなーあこがれちゃうなー

495 :デフォルトの名無しさん:2011/06/12(日) 21:37:35.37
>>492
リソースのムダだと思うので指定した言語だけにして貰っていいですか?

496 :デフォルトの名無しさん:2011/06/12(日) 21:57:04.58
>>491
http://ja.wikipedia.org/wiki/%E5%88%86%E6%95%A3
V(X) = E(X^2) - (E(X))^2

497 :デフォルトの名無しさん:2011/06/12(日) 22:36:19.25
>>496
その式は知っていますが、誤差が大きくなるので使っていません。

498 :デフォルトの名無しさん:2011/06/12(日) 22:47:06.35
全く、桁落ちも知らないのかねQZは
低脳はこれだから困る

499 :デフォルトの名無しさん:2011/06/12(日) 23:23:32.50
>>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

結構でかいですね。これは勉強になりました。

500 :デフォルトの名無しさん:2011/06/13(月) 01:27:49.11
他の言語をCに直せってのはここで大丈夫ですか?

501 :デフォルトの名無しさん:2011/06/13(月) 01:42:30.70
>>500
とりあえず出してみれば?

502 :500:2011/06/13(月) 02:13:03.22
ttp://www.uproda.net/down/uproda312675.java.html

よろしく

503 :デフォルトの名無しさん:2011/06/13(月) 06:50:44.69
◆QZaw55cn4cは糞

504 :デフォルトの名無しさん:2011/06/13(月) 09:12:27.57
>>502
C?C++?

505 :デフォルトの名無しさん:2011/06/13(月) 09:32:47.57
>>504
Cでお願いします

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
>>506
http://codepad.org/U1sjwg1q

508 :デフォルトの名無しさん:2011/06/13(月) 13:49:17.05
QZに負けて悔しがるウンコ以下w

509 :デフォルトの名無しさん:2011/06/13(月) 14:16:40.01
>>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_ に代入する時はシャロー、それ以外はディープとしたが、問題があれば修正するよ
楽しかった

最近、『本文が長すぎる』って怒られる事が多い気がするのは俺だけ?

511 :デフォルトの名無しさん:2011/06/13(月) 15:24:31.03
忍者の関係で修行したら長く書けるようになる

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

514 :デフォルトの名無しさん:2011/06/13(月) 17:57:11.12
>>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日

517 :デフォルトの名無しさん:2011/06/13(月) 19:16:40.33
>>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;
}

518 :デフォルトの名無しさん:2011/06/13(月) 19:33:17.15
>>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;
}

519 :デフォルトの名無しさん:2011/06/13(月) 19:42:29.84
◆QZaw55cn4cは糞

520 :デフォルトの名無しさん:2011/06/13(月) 21:11:46.46
糞だと思うんならもっとすばらしいコードを書かなきゃいかんぞ

521 :デフォルトの名無しさん:2011/06/13(月) 21:20:33.12
[1]C言語
[2]本文
ボウリングのスコアを計算するプログラム(確定したフレームの点数を表示する。)
<条件>
・scanfで1投毎のピンを倒した数を入力する。得点が確定したフレームの得点を随時表示する。最後に総合スコアを表示する。10フレームとする。 [3] 環境
[3.1]WindowsXP
[3.2]gcc
[3.3]C言語
[4]13時まで
[5]メイン関数一つの中で行いたい。


522 :デフォルトの名無しさん:2011/06/13(月) 21:21:03.43
>>510
さっそくありがとうございます。
eliteへの代入はシャローコピーで大丈夫です。
ですけど正解が出ないってのはちょっと問題ありです。
javaで書いたものは正常に動いて答えも出るんで多分そちらのバグじゃないかと。
今書いていただいたソースが見られないので何とも言えませんが。

523 :デフォルトの名無しさん:2011/06/13(月) 21:29:07.51
>>521
すみません。期日は明日の朝8時までです。
以下に詳細のイメージを記載します。
1フレーム目1投目 = 10
2フレーム目1投目 = 10
※この時点ではどちらのフレームの点数は確定しない。
3フレーム目1投目 = 2
※ここで1フレーム目の得点が確定し、表示する。
3フレーム目2投目 = 1
※ここで2フレーム目の得点が確定し、表示する。
これを9フレーム目までを表示する。
最後に確定したスコアを表示する。
宜しくお願いします。

524 :デフォルトの名無しさん:2011/06/13(月) 21:30:59.21
>>521
>>180

525 :デフォルトの名無しさん:2011/06/13(月) 21:39:07.64
>>520
えっ今まで一回かQが素晴らしいコードを書いた事がありましたっけ?

526 :デフォルトの名無しさん:2011/06/13(月) 21:42:33.73
>>525
つまり、Qより優れたコードを書けということだろ。多分・・・

527 :デフォルトの名無しさん:2011/06/13(月) 21:48:36.04
>>524
すみません。
>>180でも出てますが、これだと途中経過の点数を表示させる事が出来ないと言われました。
もし、違うプログラムがありましたら教えて頂けますか?宜しくお願いします。


528 :デフォルトの名無しさん:2011/06/13(月) 21:51:49.02
>>520
君面白いねー

529 :デフォルトの名無しさん:2011/06/13(月) 21:57:13.38
>>527
テンプレ読んだか?

530 :デフォルトの名無しさん:2011/06/13(月) 21:57:26.99
>>526
それなら普通に書けばいいわけだな
Qのコードは糞だから普通に書けば必ずQより優れた物になる

531 :デフォルトの名無しさん:2011/06/13(月) 22:00:35.34
その通り

532 :デフォルトの名無しさん:2011/06/13(月) 22:03:49.13
そうするとQが対抗意識を燃やして俺は優れてるぜ!とかやりだすかも知れんな

533 :デフォルトの名無しさん:2011/06/13(月) 22:07:01.04
Qのコードは糞とか言われてるけど、質問する人はほとんどの場合
課題・宿題が提出できればいいんだろうからQとかソースが
糞とかあまり考えないんじゃない

534 :デフォルトの名無しさん:2011/06/13(月) 22:07:37.24
>>532
無理無理
奴にはぐぐってそれらしいコードを引っ張ってくるしか能がない
そしてそれを「これは俺が書いたんだぜすごいだろう」と言い張る大嘘つき

535 :デフォルトの名無しさん:2011/06/13(月) 22:09:47.34
>>533
Qのコードをそのまま提出したら、まずまともな点はもらえない

536 :デフォルトの名無しさん:2011/06/13(月) 22:10:21.24
そしてあわよくば金儲けしようとする

537 :デフォルトの名無しさん:2011/06/13(月) 22:10:52.32
普通に書けば良いのか?とか、普段どんだけ酷いコード書いてるんだ?

538 :デフォルトの名無しさん:2011/06/13(月) 22:15:25.36
>>535
つまり、QZはあえて変なコードを書き、それを提出させる人に
訂正させることで、提出する人の理解度を高めようとしてるんじゃないの?w

539 :デフォルトの名無しさん:2011/06/13(月) 22:17:16.87
>>538
そんな余計なお節介は不要

540 :デフォルトの名無しさん:2011/06/13(月) 22:25:09.66
             /)
           ///)
          /,.=゙''"/
   /     i f ,.r='"-‐'つ____   こまけぇこたぁいいんだよ!!
  /      /   _,.-‐'~/⌒  ⌒\   QZだろうと誰だろうと構わない!!
    /   ,i   ,二ニ⊃( ●). (●)\  宿題を回答してくださればそれだけで
   /    ノ    il゙フ::::::⌒(__人__)⌒::::: \ 大助かりだよ。
      ,イ「ト、  ,!,!|     |r┬-|     |
     / iトヾヽ_/ィ"\      `ー'´     /

541 :デフォルトの名無しさん:2011/06/13(月) 22:30:54.69
本人のためにはならんがな
まあ他人にPGつくらせる奴がPGとして就職するわけないからかまわんが

542 :デフォルトの名無しさん:2011/06/13(月) 22:31:24.35
>>522
java のコードで出る正解率ってどのくらいなの?

543 :デフォルトの名無しさん:2011/06/13(月) 22:37:52.44
どなたかお願致します。(問題文にある ”状態遷移図を作れ” は無視してもらって結構です)

[1] 授業単元: ソフトウェア設計法
[2] 問題文

Cのソ-スプログラムを読んで、コメント(/* と */で囲まれた文字列)だけを取り出すプログラムの状態遷移図
を作れ。このとき、文字列(" と "で囲まれた文字列)中の/* や */はコメントにならないことに注意すること。
さらに、コメント中の文字列は文字列にならない。この状態遷移図をもとに、制御のデータ化を使ったプログラムを作れ。

※実行例、図などは記載されていませんでした


[3] 環境
 [3.1] Windows Vista
 [3.2] Visual Studio 2008
 [3.3] C
[4] 期限: ([2011年6月14日12:00まで]
[5]特になし


突然で申し訳ありませんがよろしくお願いいたします。

544 :デフォルトの名無しさん:2011/06/13(月) 22:42:38.87
>>522
今、コードを見直して気が付いたんだけど、このコードは世代数が少ないと正解が出にくいな
>>509 で書いた様に10世代4ループに直して動作確認をしただけだよ
バグの可能性も有るんだけど、1000世代40ループ(つまりそのままのコードで)で動作確認してくれないかな
もの凄く時間が掛かりそうなんで自分でやる気になんないのよw

545 :デフォルトの名無しさん:2011/06/13(月) 23:14:32.29
よくわからんが出力される時間は57000msec近辺がおおいな。
これが40ループすんのかな

546 :デフォルトの名無しさん:2011/06/14(火) 00:14:32.81
>543

状態遷移図を書かないとバグリそうだったから、作った。
ttps://spreadsheets.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0ArItcbm5SobndGMyX2JfV0pYcVlDQnBPSzVuX01zWnc&output=html

コード
ttp://codepad.org/jKqcvQbi

元はベタにswitchの中にswitchがあるようなコードだったのだが、やはり見難かったのでジャンプテーブルになった。
状態でswitchで分岐してそれぞれの関数を呼ぶようにした方がよかったかな?

547 :デフォルトの名無しさん:2011/06/14(火) 00:45:16.45
>>546
いえ、十分です^^
本当にありがとうございました!!

548 :デフォルトの名無しさん:2011/06/14(火) 01:07:22.21
>>545
1ループ57秒って事は正解が出てるのかな、ちゅても40ループ終わるまで解らん話だけど
正解が出ない場合、家の型落ちノートだと1ループで1000秒かかりそうなんよ
いかな最新機でも20倍の演算速度は無いだろう....無いと信じたい....

...新しいノート買おうかな...orz

549 :546:2011/06/14(火) 01:08:15.82

/**** ****/
こういう*が連続したときの考慮が漏れていたので、修正した。

ttp://codepad.org/3A2rr0tb

状態遷移図も修正版公開。

しかし、自身のソースを食わせてみると
*** 状態:コードの処理 ****
の表示のあと
状態:エスケープの処理

になっていて、間が抜けている。

ちょっと今日はデバグする暇が無いので、申し訳ないが、現状渡しとさせてください。

550 :デフォルトの名無しさん:2011/06/14(火) 01:18:34.77
>>549
ご丁寧にありがとうございます

551 : ◆QZaw55cn4c :2011/06/14(火) 01:24:52.90
>>543
http://codepad.org/O4BnmVvy

552 :516:2011/06/14(火) 01:36:09.33
>>518
サンプルにどのようにそれを入れたら台形則とシンプソン則になるのですか??

553 :デフォルトの名無しさん:2011/06/14(火) 01:37:53.67
>>551
ありがとうございます
こちらも参考にさせていただきます

554 :デフォルトの名無しさん:2011/06/14(火) 01:38:31.61
>>551
お前、自分の言ったことすら守れないんなら、生きてる価値ないよ

555 :デフォルトの名無しさん:2011/06/14(火) 01:44:08.99
>>554
おっと、普通にトリップをつけてしまいました。まあどうでもいいですが。

556 :デフォルトの名無しさん:2011/06/14(火) 01:48:44.63
>>555
どうでも良くねえだろks

557 :デフォルトの名無しさん:2011/06/14(火) 02:09:51.47
自分のミスはどうでもいいのに、他人のミスは許さない
どんだけカスかよくわかるなw

558 :デフォルトの名無しさん:2011/06/14(火) 06:51:24.17
>>521
> [1]C言語
> [2]本文
> ボウリングのスコアを計算するプログラム(確定したフレームの点数を表示する。)
> <条件>
> ・scanfで1投毎のピンを倒した数を入力する。得点が確定したフレームの得点を随時表示する。最後に総合スコアを表示する。10フレームとする。 [3] 環境
> [3.1]WindowsXP
> [3.2]gcc
> [3.3]C言語
> [4]9時まで
> [5]メイン関数一つの中で行いたい。 本当にわかりません。宜しくお願いします。
>


559 :デフォルトの名無しさん:2011/06/14(火) 08:38:05.33
>>543
>>549 に指摘されている問題を、>>551 も持っておりました。
訂正します。
http://codepad.org/O88spGyp

560 :デフォルトの名無しさん:2011/06/14(火) 09:37:28.70
>>557
Qは「自分に甘く人に厳しい」な
典型的な自己愛性人格障害だ
まあ一生無職だろうね

561 :デフォルトの名無しさん:2011/06/14(火) 09:43:55.36
◆QZaw55cn4cって糞だよなぁ

562 : ◆.wtq2G5rfI :2011/06/14(火) 10:01:30.51
>>489 ありがとう!助かりました。

563 :デフォルトの名無しさん:2011/06/14(火) 11:57:11.94
>>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
>>564
>>565よろしくお願いします。

567 :デフォルトの名無しさん:2011/06/14(火) 12:34:40.15
>>564
http://codepad.org/4r8wNR9X

568 :デフォルトの名無しさん:2011/06/14(火) 12:40:13.89
何度もすみません。宜しくお願いします。
>>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
>>565
http://codepad.org/qQu3V8Sw

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
>>573
ありがとうございました。


575 :デフォルトの名無しさん:2011/06/14(火) 14:36:51.97
[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
>>576
http://codepad.org/dWoW89ul

578 :デフォルトの名無しさん:2011/06/14(火) 15:32:35.19
>>577
ほんと感謝します。


579 :デフォルトの名無しさん:2011/06/14(火) 15:38:10.28
文字列の中にtarget_charが含まれていない場合にはSegmentation Faultになってしまいます。
文字列の最後には'\0'が入っているので、探している途中で'\0'が見付かったら強制終了するようにしてくださ
い。
http://codepad.org/Ncqvd92O





580 :デフォルトの名無しさん:2011/06/14(火) 15:51:09.39
>>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);
}
結果が正しいか確認してません

581 :デフォルトの名無しさん:2011/06/14(火) 15:56:10.83
>>579
%9sにしようよ


582 :デフォルトの名無しさん:2011/06/14(火) 15:59:29.56
for文に{}つけてないの忘れてるだけじゃ・・・・・・・・

583 :デフォルトの名無しさん:2011/06/14(火) 16:17:42.40
遅ればせながら、514さんありがとうございました!!!

584 :デフォルトの名無しさん:2011/06/14(火) 18:29:33.12
>>563
ならバグは無かったのかな?

585 :デフォルトの名無しさん:2011/06/14(火) 19:12:51.31
どなたか>>571お願いします

586 :デフォルトの名無しさん:2011/06/14(火) 19:23:08.06
>>585
>>580 ?

587 :デフォルトの名無しさん:2011/06/14(火) 19:38:12.33
>>586
ありがとうございます。

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
>>590>>588は同じです。

592 :デフォルトの名無しさん:2011/06/14(火) 20:04:16.37
[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 :デフォルトの名無しさん:2011/06/14(火) 20:14:32.91
>>592
ttp://codepad.org/mZ6tfRnq

594 :デフォルトの名無しさん:2011/06/14(火) 20:22:40.99
>>589
@ ttp://codepad.org/407PFjxB
A ttp://codepad.org/3oS1Q6Lr

595 :デフォルトの名無しさん:2011/06/14(火) 21:07:19.13
>>593
ありがとうございます。
これは括弧内の数字を4で割った答えが2より下ならこんにちは、それ以外ならありがとうと表示される…んですよね?

596 :デフォルトの名無しさん:2011/06/14(火) 21:30:42.56
>>594
助かりました。本当にありがとうございました。

597 :デフォルトの名無しさん:2011/06/14(火) 21:33:23.54
[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です。
※*にはアドレスが入ります。

598 :デフォルトの名無しさん:2011/06/14(火) 21:33:46.60
↑の続きです。
[3] 環境
 [3.1] OS:Windows vista business
 [3.2] コンパイラ名とバージョン: visual studio
 [3.3] 言語:C言語
[4] 期限: 2011年6月20日月曜日午後3時まで
[5] その他の制限:特にありません。 よろしくお願いします。

599 :デフォルトの名無しさん:2011/06/14(火) 22:02:14.10
>>571 の問題書いたけど、誰か答えてた?
それと答えは1.0に収束するけど合ってる?

600 :デフォルトの名無しさん:2011/06/14(火) 22:17:07.53
>>597
ttp://ideone.com/9uXlu

601 :549:2011/06/14(火) 22:20:51.20
>543
もう提出期限過ぎているので完全に自己満足なのだが、バグを修正した。

>549の不具合は以下の2点
1)シングルクオート中の"の処理をしていなかった。そのため、文字列の開始とみなしていた。
2)コメント中の*の後ろ一文字が出力されていなかった。

ちなみに2は>559にもあるはず。

それから私のコードは//コメントには対応していません。

修正コード
ジャンプテーブルで書きなおしている。
ttp://codepad.org/8D17ZoT1

状態遷移図
ジャンプテーブルを意識して記述を統一している。
本質的に修正したところが朱書き
ttps://spreadsheets.google.com/spreadsheet/pub?hl=en_US&hl=en_US&key=0ArItcbm5SobndGMyX2JfV0pYcVlDQnBPSzVuX01zWnc&output=html

602 :597:2011/06/14(火) 22:23:34.99
>>600
コメントまでご丁寧に、どうもありがとうございます!!

603 :デフォルトの名無しさん:2011/06/14(火) 22:51:54.12
>>599
1になりました

よろしければ
>>588>>590をみてもらえますか?

604 :デフォルトの名無しさん:2011/06/14(火) 23:01:12.93
>>603
誰も答えてないなら
ttp://ideone.com/72umw

605 :デフォルトの名無しさん:2011/06/14(火) 23:05:39.40
>>584
少なくともjavaで書いたものではバグはないと思います。
Cはまだ勉強中なので何とも言えませんが。

606 :デフォルトの名無しさん:2011/06/14(火) 23:12:56.01
>>605
簡単なコードを右から左に移植しただけだから俺にも何とも....
java の結果と大きく異なるようなら見直す必要があるけどね
検証は任せた

607 :559:2011/06/15(水) 00:50:06.83
>>601
不具合のご指摘、感謝いたします。
'/*', '*/' など二文字で1トークンになる処理を、ミーリー型の決定性オートマトンで押し通すのは、なかなか気を使いますね。
>>601 はバックスラッシュを真面目に処理しているようですが、私のは手抜きです。シングルクォータとダブルクォータの中にいるときしかチェックしていません。

>>543
以下に訂正いたします。
http://codepad.org/rflAdPis

608 :デフォルトの名無しさん:2011/06/15(水) 01:19:23.58
QZの活躍が見られないが...

609 :デフォルトの名無しさん:2011/06/15(水) 01:30:22.36
>>608
>>607

610 :デフォルトの名無しさん:2011/06/15(水) 01:30:39.95
Qは無脳だから新しい宿題をだせばぐぐってきてそれを適当に改造してうp出来るが
JavaをCに移植するなどのぐぐるだけでは無理な事は出来ない

611 :デフォルトの名無しさん:2011/06/15(水) 01:37:20.33
>>610
>適当に改造して
それって Java を C/C++ に移植するより難しいけど?

612 :デフォルトの名無しさん:2011/06/15(水) 01:39:52.30
難しくありません
ぐぐっても見つからない程度に変形させるだけですから

613 :デフォルトの名無しさん:2011/06/15(水) 01:41:50.99
頭を使って考えるってことが致命的に下手だからな

614 :デフォルトの名無しさん:2011/06/15(水) 09:03:53.07
◆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


616 :デフォルトの名無しさん:2011/06/15(水) 10:42:22.95
>>615
>>1

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] どこをどう変えれば高速化するかを優先して教えて頂ければ幸いです。

619 :デフォルトの名無しさん:2011/06/15(水) 12:06:06.65
>>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] 配列まで
わかる方どうかよろしくお願いします。

622 :デフォルトの名無しさん:2011/06/15(水) 13:47:29.81
>>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も一括読み込みにすれば高速化できそうだね。

624 :デフォルトの名無しさん:2011/06/15(水) 14:31:37.96
[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] その他の制限:

625 :デフォルトの名無しさん:2011/06/15(水) 14:33:18.68
>>618
doubleはやめて、8バイト整数(long long)とか(無ければ自前で用意するか
QZに頼むか(推奨))使うのが高速化の切り札とみた

626 :デフォルトの名無しさん:2011/06/15(水) 14:52:03.03
Qに高速化とか、何の冗談だよw

627 :デフォルトの名無しさん:2011/06/15(水) 15:22:37.42
>>625
平均化する時の重みが 1/9 なので整数だと精度が出ないよ
平均化するフィルター関数とエッジ抽出用のフィルター関数を分ければ整数でも処理できると思うけど

628 :デフォルトの名無しさん:2011/06/15(水) 16:33:23.89
>>618
試しに書いてみた
ttp://ideone.com/ufVcv
元のコードより3倍程速くなったよ、結果ファイルも比較したけど同じだった
同じサイズの画像が無かったので DIM1, DIM2 を書き換えたし、100回も回す気にならないので N_REPEAT も書き換えた
元ソースと性能比較するなら元に戻してね
修行が足りないので改修点は次に

629 :628:2011/06/15(水) 16:34:27.68
改修点
・フィルター関数を平均化用とエッジ抽出用に分けて整数で処理した
 エッジ抽出用の重みを整数にしたので実数の重みが必要ならこのコードは使えない
 平均に関しては加算して9で割るだけなので問題無いだろう
 関数を分けたことで無駄な処理も少し減った(平均取る場合レンジチェックは必要無いし、エッジ抽出の場合は四捨五入は必要無い)
・フィルター内でのソース配列アクセスを3回に一度に減らした >>622 で書いた通り

修行はいつになったら終わるんだろうw

630 :デフォルトの名無しさん:2011/06/15(水) 16:39:37.08
プログラミングってどうすればできるようになる?

631 :デフォルトの名無しさん:2011/06/15(水) 17:32:33.63
おまえにはむり

632 : [―{}@{}@{}-] デフォルトの名無しさん:2011/06/15(水) 18:15:16.27
921 名前: [―{}@{}@{}-] デフォルトの名無しさん[sage] 投稿日:2011/06/15(水) 18:13:22.50
作りたいものが無いのにプログラムの勉強してる方がおかしい
普通は作りたいものがあるから仕方なくプログラム勉強するもの

633 :デフォルトの名無しさん:2011/06/15(水) 18:20:08.38
授業があるんだお

634 :デフォルトの名無しさん:2011/06/15(水) 19:59:54.97
だからなに

635 :デフォルトの名無しさん:2011/06/15(水) 21:04:55.54
◆QZaw55cn4cは糞だなぁ

636 :デフォルトの名無しさん:2011/06/15(水) 21:17:12.04
>>618
「ベクトル化 並列化」でぐぐれ

637 :デフォルトの名無しさん:2011/06/15(水) 21:26:56.38
>>624
http://codepad.org/U2xfkFm5
http://codepad.org/8fq0gS11
http://ideone.com/YBU4h

638 :デフォルトの名無しさん:2011/06/15(水) 21:31:50.07
>>636
具体的に書いてやれよw
書けるなら


639 :デフォルトの名無しさん:2011/06/15(水) 21:45:27.87
>>621
@&A
ttp://ideone.com/GAOSq

B
ttp://codepad.org/ZU2WZrE4

640 :デフォルトの名無しさん:2011/06/15(水) 22:31:30.00
[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の方は問題ないです。ありがとうございます。


642 :デフォルトの名無しさん:2011/06/15(水) 22:44:02.26
>>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];

643 :デフォルトの名無しさん:2011/06/15(水) 23:25:49.18
const なんて飾りです、エロい人にはそれが判らんのですよ

644 :デフォルトの名無しさん:2011/06/15(水) 23:31:28.67
>>643
とはいってもウチは習ってないことを使ってたらうるさいからなぁ。
「こんなの教えてないじゃん」って突っ返される。

645 :デフォルトの名無しさん:2011/06/15(水) 23:39:45.65
自主学習したんだけど?って言えばいいと思う

646 :デフォルトの名無しさん:2011/06/15(水) 23:42:41.67
>>644
だから飾りだって言ってるだろ、外しても生成されるコードに変化は無いよ

647 :デフォルトの名無しさん:2011/06/15(水) 23:47:10.42
>>645
あくまで習ってる技術だけで作れ、ってことだと思う。
そのへん無駄に厳しいんだよなぁ。
そうしないとできないなら話は別なんだろうけど。

648 :デフォルトの名無しさん:2011/06/15(水) 23:50:10.43
>>646
変化ないと思ってるの?

649 :デフォルトの名無しさん:2011/06/15(水) 23:54:30.96
>>648
しないよ、コンパイル時にチェックされるだけだろ
もし変化するって言うならどんな変化があるんだ?
そのアドレスにブロックでもかかるのか?


650 :デフォルトの名無しさん:2011/06/15(水) 23:56:44.92
C++ならいろいろ影響あるけど、Cだと変わらないんじゃないのかな。

651 :デフォルトの名無しさん:2011/06/15(水) 23:59:33.40
最適化のヒントに使用される

652 :デフォルトの名無しさん:2011/06/16(木) 00:02:31.72
>>650
C++でもあの使いからなら変わらないんじゃないか?メモリ配置に影響有ったっけ?

>>651
ヒントに使用されて結果は変わるのか?

653 :デフォルトの名無しさん:2011/06/16(木) 00:04:27.94
変わるよ
「どう変わるんだ?」は無しな、最適化でググれカス

654 :デフォルトの名無しさん:2011/06/16(木) 00:05:30.32
レジスタに配置されたり
よりコストの低いコードに変化するよ

655 :デフォルトの名無しさん:2011/06/16(木) 00:11:38.59
>>653
どう変わるかは答えられないんじゃないのw

>>654
レジスタに配置?定数を?意味が判らん

656 :デフォルトの名無しさん:2011/06/16(木) 00:17:01.25
最適化は前後関係を総合的に判断して臨機応変に適応されるからconst付けたらどーなるの?という問いに必ずこうなるという答えはでないが最適化の判断材料にはなる
結果としてコードが変わらない事もあれば変わる事もある 変わる場合でも前述の通り前後関係によってコードは変化する
どう変わるかという問い自体ナンセンス

657 :デフォルトの名無しさん:2011/06/16(木) 00:17:11.06
http://www.kmonos.net/alang/d/2.0/const.html

ここを読むと、constが最適化に使われる可能性があることも、
C++では抜け穴があるから実際には最適化の役に立たないことも分かる

658 :デフォルトの名無しさん:2011/06/16(木) 00:18:31.85
レジスタにするのは、頻繁に書き換える必要があるときだよね?

659 :デフォルトの名無しさん:2011/06/16(木) 00:19:35.77
const_castが必要になる言語設計にミスがあるな

660 :デフォルトの名無しさん:2011/06/16(木) 00:22:29.81
>>652
このスレなら、C++でconstを使うのは(最適化に限らず)無駄だと誤解しちゃう人が出てくるかもしれないね

661 :デフォルトの名無しさん:2011/06/16(木) 00:28:39.14
>>660
一応、コンパイル時にチェックされるとは書いたんだけどね
それにC++でクラス宣言内で使った場合は全く意味が違うからコードどころか動作も変わる

誤解させそうな書き方は避けた方が良いのはそうだね、反省しよう

662 :デフォルトの名無しさん:2011/06/16(木) 00:39:55.33
最適化知らない馬鹿が引っ込みつかなくなっただけかw

663 :デフォルトの名無しさん:2011/06/16(木) 00:46:39.28
>>641
ttp://ideone.com/Wf0IZ

664 :デフォルトの名無しさん:2011/06/16(木) 00:47:36.35
>>625
>(推奨)
速度はともかく、チェックしていただいていたとは光栄です。でもテストがまだまだ足りない。GMP の結果と付き合わせたほうがいいかも、と考えています。
そんなことするくらいなら、素直に GMP 使えっ、てとこですが‥‥‥。

665 :デフォルトの名無しさん:2011/06/16(木) 00:58:05.71
>>663
ありがとうございます!非常に助かりました。

666 :デフォルトの名無しさん:2011/06/16(木) 07:02:50.45
テレビ局が、電力ピーク時に放送やめたら、劇的に消費電力が下がるやろ。

みんなテレビ消すから。

公共機関を止めるくらいなら、テレビやめろ!

667 :デフォルトの名無しさん:2011/06/16(木) 10:09:00.12
QZがコンパイラなら、引数以外で定義されている
constな変数は、生成コード(データじゃなく)の
中に埋め込んでしまうんだろうな

668 :デフォルトの名無しさん:2011/06/16(木) 11:45:31.33
[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の問題をお願いします。

669 :デフォルトの名無しさん:2011/06/16(木) 16:48:52.84
>>575
ってやっぱり面倒な問題ですか?

670 :デフォルトの名無しさん:2011/06/16(木) 17:40:33.24
問題
入力ファイル中のアルファベット各文字の個数を数えるプログラムを作成せよ。(大文字と小文字は合わせて数える)
スペースや記号、数字などは数えない。

そして、結果を文字数の多い順にソートして出力せよ。

コンパイラ
gcc

期限
2011/6/18

671 :デフォルトの名無しさん:2011/06/16(木) 17:56:39.36
[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
>>670
一応キー入力ファイルとテキストファイル両方に対応しといた
ttp://ideone.com/gynCd

673 :デフォルトの名無しさん:2011/06/16(木) 18:18:08.09
一部消し忘れた・・・
修正
ttp://ideone.com/pFk0Y

674 :デフォルトの名無しさん:2011/06/16(木) 18:31:48.29
>>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] 期限: 明日まで


676 :デフォルトの名無しさん:2011/06/16(木) 19:16:33.19
>>671
ttp://ideone.com/4nOPa

俺もネットのサンプル漁って作ってみた、
なので一端グレイスケールにしてるけど、
工夫したらフルカラーのままでいけるかもしれないし、いけないかもしれない。

677 :デフォルトの名無しさん:2011/06/16(木) 20:10:42.49
>>675
ttp://codepad.org/CEc5L37u

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点

680 :765 ミス:2011/06/16(木) 20:54:21.71
==== クラス 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点

681 :875 ミス:2011/06/16(木) 20:57:11.48
実行例
==== クラス 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点

682 :675 ミス:2011/06/16(木) 22:11:28.57
実行例
==== クラス 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点

684 :デフォルトの名無しさん:2011/06/16(木) 23:44:17.79
>>637
ありがとうございます

685 :674:2011/06/17(金) 00:15:16.27
>>669
逆に質問です。
>条件コンパイル指定行、マクロ定義行は探索範囲としないこと
というのは、「'#' で始まる行は対象外」と考えていいでしょうか?

686 :デフォルトの名無しさん:2011/06/17(金) 00:45:31.05
横レス失礼。

>685

とりあえず、エスケープで改行文字がエスケープされて、次の行もマクロ行になる点は
考慮しておく必要があるでしょうね。

687 :デフォルトの名無しさん:2011/06/17(金) 01:27:50.06
>>686
なるほど、すっかり忘れていました。

688 :デフォルトの名無しさん:2011/06/17(金) 12:36:53.61
>>575
ttp://codepad.org/hBQREaIs

とりあえず、作ってみたけど求められてるレベルの代物じゃねぇと思うw
コンパイル可能なソース飲みに対応してるから、その辺は突っ込まんでくれw
特に数値リテラル辺りは浮動小数点とサフィックスの検出がいい加減だから修正したほうがいい。

ところで、構文解析とかするような学生なら、yaccとか使うんだろうけど、どの辺の層の学生がこんな辺鄙な課題するの?

689 :デフォルトの名無しさん:2011/06/17(金) 14:18:35.83
>>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
って感じで使われている単語と出現回数と出現行リストが
出てくるようにしろってことじゃねの?

690 :デフォルトの名無しさん:2011/06/17(金) 16:02:04.98
どなたか、>>668をお願いします…

691 :デフォルトの名無しさん:2011/06/17(金) 16:23:59.90
>>668って最後ソートって書いてあるけど、名前でソートするの?

692 :デフォルトの名無しさん:2011/06/17(金) 16:42:25.81
>>691
はい、そのとおりです。

693 :デフォルトの名無しさん:2011/06/17(金) 17:29:53.18
>>689
まぁ、以下の要件に気をつければいいだけだから、難しく考えずにちょっと作ってみたらいいと思うよ。
> ただしクォーテーションの内部やコメントや条件コンパイル指定行、
> マクロ定義行は探索範囲としないこと(トライグラフのことは考慮しなくてもよい)

こんな細かい話はさておき、行番号の出力にLをつけるべきかどうかを深く議論すべきかもしれないね。

694 :デフォルトの名無しさん:2011/06/17(金) 17:36:05.12
>>689
難しく考えすぎなんかね?
単純にトークン切り出しってCSVとかXMLパーサのイメージあるから、
課題だったらそっちかと思ったが。
Cソースだと、単純にトークン切り出したらサフィックスと浮動小数点のeが取り出されるからよぉ・・・。
あと、純粋Cなんて一年触ってねぇニートには少々ハード過ぎたよ。

695 :デフォルトの名無しさん:2011/06/17(金) 18:09:40.70
>>692
http://ideone.com/hUL6n
こんな感じでいいですか?
久しぶりにCやったんでおかしいところあるかもしれません

696 :デフォルトの名無しさん:2011/06/17(金) 18:39:20.57
>>692
ttp://codepad.org/GlCL0A96

一歩遅かったかw

697 :デフォルトの名無しさん:2011/06/17(金) 19:36:24.79
>>695
>>696
お二方とも本当にありがとうございます!!

698 :デフォルトの名無しさん:2011/06/17(金) 22:48:30.06
cygwin使ってるんですけど
普通に./a.exeで実行した場合は
n =
って表示されて数字を入力するとその結果が出力されるんですが
scriptをとってから./a.exeで実行するとn = と表示されるだけで
何も入力できずに終わってしまいます...
どうしたらいいでしょうか?

699 :デフォルトの名無しさん:2011/06/17(金) 22:49:14.79
>>640です
下が作成したプログラムです
http://codepad.org/dpspqYlT

どうにかして完成させたいので、よろしくお願いします

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] 期限:明日まで

701 : ◆QZaw55cn4c :2011/06/17(金) 23:03:38.59
>>694
C の名前は最初は英字または '_' でなければならないから、
>サフィックスと浮動小数点のe
は自然に排除されるのでは?

ちょっと書いてみようか。

702 :デフォルトの名無しさん:2011/06/17(金) 23:15:52.24
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
1行最大80文字の空白を挟まない英字文字列を入力し、
10文字続けて表示するごとに改行を挿入して表示するプログラムを作成しなさい
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限: 6/20まで


703 :デフォルトの名無しさん:2011/06/17(金) 23:21:00.66
>>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]);

コンパイルしてないけどたぶんこんなかんじ。

704 :デフォルトの名無しさん:2011/06/17(金) 23:22:16.38
違った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を引っ張らせているから正確性は保証できない。

706 :デフォルトの名無しさん:2011/06/18(土) 00:24:19.58
自動羊さんの出番ですね

707 :デフォルトの名無しさん:2011/06/18(土) 00:53:13.83
>>700
http://codepad.org/4rIJk0po

708 :707:2011/06/18(土) 00:59:53.61
>>700

↑間違い
http://codepad.org/iTlnrldK

709 :607:2011/06/18(土) 01:33:24.35
>>706
>>601, >>607 別の意味でデバッグが大変でした。あまりやりたくない、いやフラグ乱立よりはましかも、悩ましい。

710 :デフォルトの名無しさん:2011/06/18(土) 01:50:17.23
関西: 関西テレビ 6/16(木)
14:05 キキミミ! 芸能
15:00 ショムニ #12
15:54 ワンダフルライフ #09
16:48 ニュースアンカー

関東: フジテレビ 6/16(木)
14:07 韓流α・逆転の女王 #18
15:00 韓流α・検事プリンセス #12
15:57 韓流α・コーヒープリンス1号店 #13
16:53 スーパーニュース

ニュースアンカーとスーパーニュースの比較はこちら

【東】ニュースの違い【西】
1 http://www.nicovideo.jp/watch/sm14574549
2 http://www.nicovideo.jp/watch/sm14624601
3 http://www.nicovideo.jp/watch/sm14687830

711 :デフォルトの名無しさん:2011/06/18(土) 02:33:31.59
>>710


712 :デフォルトの名無しさん:2011/06/18(土) 09:53:42.78
>>702
これは問題文の通り、10ごとに/nいれるだけでいいだろ。

713 :デフォルトの名無しさん:2011/06/18(土) 09:56:44.02
>>702
#include <stdio.h>

int main(void)
{

714 :デフォルトの名無しさん:2011/06/18(土) 09:59:06.78
手が滑った
>>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;
}

715 :デフォルトの名無しさん:2011/06/18(土) 12:03:27.25
>>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;
}

716 :デフォルトの名無しさん:2011/06/18(土) 12:50:38.29
お願いします。

[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.で苦戦しています。
組合せ爆発?を回避する方法があるんですかね、


717 : ◆6W4srb4nmo :2011/06/18(土) 13:31:32.59
10x10の正方形に内接する円の外側にだけ点が有る場合に否可能(対角線)

718 :デフォルトの名無しさん:2011/06/18(土) 13:34:19.07
はぁ?

719 :デフォルトの名無しさん:2011/06/18(土) 13:41:28.98
AとBが距離10以内か、距離10以内に共通の点があればいけるじゃないの?

10*10だと、2点以上経由する必要はないと思う。


720 :デフォルトの名無しさん:2011/06/18(土) 13:42:37.17
ごめん、ありそうだな。719は撤回

721 :デフォルトの名無しさん:2011/06/18(土) 13:45:58.84
>10*10だと、2点以上経由する必要はないと思う。

なんで?
例えば、20個の点を経由して移動が可能な場合もありえるよね

722 :デフォルトの名無しさん:2011/06/18(土) 13:59:28.55
距離は1.0ぐらいじゃないと、ほとんど可能になってしまいそうだな

723 :デフォルトの名無しさん:2011/06/18(土) 14:24:29.92
>>721
なんで?

>3. AからBまで、距離10以内にある点を経由し移動が可能か否か判定せよ
問題文読む限り、ここで、最大のAB間の距離は矩形の対角に相当する距離14.xxだから、
A,Bのそれぞれの距離10の点集合を積集合とればそれでいいんじゃねぇの?
俺の文章理解が足りないのか?

724 :デフォルトの名無しさん:2011/06/18(土) 14:24:45.12
ここの人はこれとか簡単にできゃうんですか。


マザーズ上場予定の東大発ベンチャー「このプログラムを書けたら即入社!」
http://hogehogesokuhou.ldblog.jp/archives/51739013.html


チャレンジテスト
ある画像を5X3の領域に分割し、それぞれの領域をシャッフルしました。
元の画像を復元し出力するプログラムを書いてください。
但し、プログラムはC言語で記述するものとします。
http://www.morphoinc.com/careers/images/result2.jpg

725 :デフォルトの名無しさん:2011/06/18(土) 14:28:28.62
>>716
直線移動可能なのか?
縦横のみか。


726 :716:2011/06/18(土) 14:38:25.43
説明不足でした。

各点から半径10以内の点に移動可能、複数回経由してもokです

727 :デフォルトの名無しさん:2011/06/18(土) 14:42:05.27
任意に点A、Bをとったとき、ある点Cを選んだら、AB間、BC間がともに距離10以下に出来る。

728 :デフォルトの名無しさん:2011/06/18(土) 14:45:48.62
5*5でA、Bがここなら

A□□□□
□□□□□
□□□□□
□□□□□
□□□□B

Cをこうとればいいんだろ。


A□□□□
□□□□□
□□□□□
□□□□□
C□□□B

これってなんのプログラムも必要ないと思うんだが。明らかだ。
N*Nだったら距離(N-1)で十分だし。

729 :デフォルトの名無しさん:2011/06/18(土) 14:48:18.30
問題の条件を厳しくして、これにしたらプログラムする意味あるだろう。


『任意に点A、Bをとったとき、ある点Cを選んだら、AB間、BC間がともに距離10に出来る。』

730 :デフォルトの名無しさん:2011/06/18(土) 14:49:13.12
元の問題をちゃんと読めてないようなアホが何か言ってるw

731 :デフォルトの名無しさん:2011/06/18(土) 14:51:14.73
>>730
点30があったか。

732 :デフォルトの名無しさん:2011/06/18(土) 14:54:28.12
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グループの双方に到達可能な点があれば、「可能」

こんな考え方で出来ないかな?


733 :デフォルトの名無しさん:2011/06/18(土) 14:56:22.59
>>730
Aから距離10以内に点があったら、探索を続けてBまでいければいい。

734 :デフォルトの名無しさん:2011/06/18(土) 14:59:34.38
4.を訂正
Zグループは双方じゃなくても、Zグループ内の何れかでAグループ、Bグループに到達出来ればいけそう。

735 :デフォルトの名無しさん:2011/06/18(土) 14:59:44.73
>>732
A、Bの半径10以内をそれぞれ赤と青で塗りつぶす。
塗りつぶされた点があればそこから半径10以内を同色で塗りつぶす。
色が交わるか。

736 :デフォルトの名無しさん:2011/06/18(土) 15:01:32.36
>組合せ爆発?を回避する方法があるんですかね、  >>716

「堂々巡り」と「遠回り」の回避方法を訊いてるんだろw

737 :デフォルトの名無しさん:2011/06/18(土) 15:01:57.05
100*100や1000*1000でも解けるアルゴリズムがいい。

738 :デフォルトの名無しさん:2011/06/18(土) 15:01:58.30
>>726
コレって問題文そのままなの?
移動可能の可否ならば、複数回経由する必要がAB両方から距離10以内の点一つ見つけるだけで終わるんだが、認識に何か違いがあるのか?
再帰とか配列塗りつぶしでもさせたい問題なのか?

739 :デフォルトの名無しさん:2011/06/18(土) 15:03:29.59
>>738
考えて見たけど、それ程単純ではなさそう。

740 :デフォルトの名無しさん:2011/06/18(土) 15:06:26.97
>>738
A、Bからともに距離10以内の点がなくても移動可能な場合はある。

741 :デフォルトの名無しさん:2011/06/18(土) 15:11:22.32
>>716
オセロみたいではなくて碁のように交わる線上を頂点としていいよな?

742 :デフォルトの名無しさん:2011/06/18(土) 15:12:33.68
格子点に限定したら不可能な場合がなくなるだろ

743 :デフォルトの名無しさん:2011/06/18(土) 15:15:32.52
>>724
libjpegのクソさに吹いた

744 :デフォルトの名無しさん:2011/06/18(土) 15:23:46.97
重みつきグラフを作って最短経路が存在するかどうか調べるだけじゃないの?

745 :デフォルトの名無しさん:2011/06/18(土) 15:25:51.43
>>717
Aを中心とした半径10の間違いだろ

746 :デフォルトの名無しさん:2011/06/18(土) 15:49:27.76
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行目へ。



747 :デフォルトの名無しさん:2011/06/18(土) 15:58:11.58
>>746 「堂々巡り」と「遠回り」の回避は考慮されてますか?


748 :デフォルトの名無しさん:2011/06/18(土) 16:00:28.24
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';
}

749 :デフォルトの名無しさん:2011/06/18(土) 16:01:42.53
[1]C言語課題
[2]ASCIIアートだけで「赤頭巾ちゃんと狼」をアレンジしたRPG
を作れ
[3] Windows 7/Visual studio/C言語
[4]本日まで
[5]土曜日補習で出た宿題です。出来なければ帰れません
よろしくお願いします

750 :デフォルトの名無しさん:2011/06/18(土) 16:02:29.38
>>747
かならずBに最も近い点を取っていくので問題なし。

751 :デフォルトの名無しさん:2011/06/18(土) 16:03:24.77
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
1行最大80文字の空白を挟まない英字文字列を入力したとき、大文字の文字を小文字に、小文字の文字を大文字にして表示するプログラムを作成しなさい
このプログラムの入力は、英字以外の文字が入力される場合を考慮しなくてもよい
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限: 6/20まで



752 :デフォルトの名無しさん:2011/06/18(土) 16:05:05.74
>>750 なるほど。  >>735と比べたら、どっちが速い?

753 :デフォルトの名無しさん:2011/06/18(土) 16:06:11.78
746.c(3): 変数 'r' が未定義です。
746.c(5): 演算子 '=<' が未定儀です。

754 :デフォルトの名無しさん:2011/06/18(土) 16:12:57.27
>>752
総当たりで塗りつぶすほうが手間掛かる。
あらかじめ埋立地のようにして地図を作っておけば、海以外の点同士はつながっていると簡単に判定できるが。


755 :デフォルトの名無しさん:2011/06/18(土) 16:15:00.06
>>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)


756 :デフォルトの名無しさん:2011/06/18(土) 16:26:59.69
>>716
http://s2.etowns.slyip.net/~c_cpp_homework/cgi-bin/joyful/img/125.txt

757 :デフォルトの名無しさん:2011/06/18(土) 16:34:21.49
>>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;
}

758 :デフォルトの名無しさん:2011/06/18(土) 16:52:29.84
>>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");}

759 :デフォルトの名無しさん:2011/06/18(土) 17:04:01.88
>>716
経由点は1点なの?ちゅか10x10の範囲で距離10以下なら1点以上経由する必要が有るケースが浮かばない
Aから距離が10以下である点群とBから距離が10以下である点群に共通項が有れば移動は可能だよね
距離がもっと短くて複数点経由が必要なら面白い問題になりそうだけど

760 :デフォルトの名無しさん:2011/06/18(土) 17:07:47.11
>>759
>>755考えてみてw

761 :デフォルトの名無しさん:2011/06/18(土) 17:16:22.79
>>749
もう少し細かく指定してくれ。
お前さんの授業内容から何がどういう方向性で作れればいいかまるで見当がつかない。


762 :デフォルトの名無しさん:2011/06/18(土) 17:47:47.43
[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] 期限:月曜日まで

763 :デフォルトの名無しさん:2011/06/18(土) 17:56:19.14
>>716
>>758を改良した。これは正しい経路を出していると思う。
http://ideone.com/KzVWs

764 :763:2011/06/18(土) 18:00:01.15
>>716
>>763は警告出る。こっちで。 
http://ideone.com/stQPn

765 :デフォルトの名無しさん:2011/06/18(土) 18:02:08.93
>>763>>764はどこかが間違えてるようだ。

766 :763:2011/06/18(土) 18:05:31.00
>>716
表示部分がミスってた。これで。
http://ideone.com/xzRrw

767 :デフォルトの名無しさん:2011/06/18(土) 18:16:29.05
766では、間違えるケースがあるかも。
迂回しないとたどり着けない場合は求まらない気がする。

768 :デフォルトの名無しさん:2011/06/18(土) 18:34:27.18
>>716
片側から、たどり着ける部分を総当たりで、チェックしていくのが唯一の正解の気がするな。


769 :デフォルトの名無しさん:2011/06/18(土) 18:34:56.54
>>766
>  [3.3] 言語:C
参照使うなよ。

770 :デフォルトの名無しさん:2011/06/18(土) 18:40:06.38
>>767
> 迂回しないとたどり着けない場合は求まらない気がする。

どんなケースがあるんだろう?

771 :デフォルトの名無しさん:2011/06/18(土) 18:42:56.15
>>724
なんかナンセンスだな、
MVVMパターンでコード書いときゃ
画像云々なんて関係ないんだが。

772 :771:2011/06/18(土) 18:45:43.51
ごめん忘れて・・・

773 :デフォルトの名無しさん:2011/06/18(土) 18:47:14.93
>>770
これで正解と進めてたら、中心部分でギリギリ距離が足らなかったら失敗する。

■□□□□
□■□□□
□□■□□
□□□■□
□□□□■

しかしこう進めたら届くケースがあり得る。

■□□□□
■□□□□
■□□□□
■□□□□
■■■■■



774 :デフォルトの名無しさん:2011/06/18(土) 18:50:23.43
>>716は、実質的には総当たりするしかないだろ。無駄な計算(再計算)を省きつつだが。


775 :デフォルトの名無しさん:2011/06/18(土) 18:58:29.66
>>770
10x10で半径10というところがミソでA=(1,1), B=(9,9)で
(0,0),(0,1), ....(0,9),(1,9),(2,9), .... (9,9)という経路しかない場合。

776 :デフォルトの名無しさん:2011/06/18(土) 19:04:36.26
「10x10で半径10というところがミソ」なのか?
この動ける距離がでかすぎるのが、間違えやすい原因だな。
半径1以下なら大域的経路が重要と思いつくのだが。

777 :デフォルトの名無しさん:2011/06/18(土) 19:23:08.50
>751
ttp://codepad.org/DvEBw1xk
特に制限ないから80文字以上、空白含む、英数字以外ありでも動作するコードになっている。
もちろん80文字以内、空白なし、英数字のみでも動作する。

>757
文字コード体系がa-z, A-Zが連続、ofsetがすべて同じじゃないと破綻する。

778 :デフォルトの名無しさん:2011/06/18(土) 19:28:37.15
>>716>>760
ttp://ideone.com/X24dh

垢抜けないコードだけど書いてみた、でも最短距離を求めるにはどうすれば良いかな?

779 :デフォルトの名無しさん:2011/06/18(土) 19:31:33.07
>>716を一般化すると平面[0,1]×[0,1]に点z(0)、・・・z(N)があり、
z(0)からz(N)をつなぐ経路で各経路間がR以下になるものを求めよ。
まだ解けていない。

780 :デフォルトの名無しさん:2011/06/18(土) 19:41:22.08
最短経路を求めるんじゃなければ、一度通った点にチェックいれときゃすぐ終わる

781 :デフォルトの名無しさん:2011/06/18(土) 19:42:26.28
>>773, >>775
なるほど。

>>774
自分より目標に対して遠くなる経路は考えなくてもいいよね。

782 :デフォルトの名無しさん:2011/06/18(土) 19:57:49.63
>>716
始点と終点のペアが1つしかないなら幅優先探索でいいし、いくつもの始点と終点のペアに対して移動可能かどうか答えるならワーシャル・フロイド法っぽくやればいい

783 :デフォルトの名無しさん:2011/06/18(土) 20:23:33.38
>>781
こう届くケースもあり得る

□■■■□□□
■□□■□□□
■□□■□□□
■□□■□□□
■□□□■■■
■□□□□□□
■■■■■■■


784 :デフォルトの名無しさん:2011/06/18(土) 20:38:02.56
最短距離探索とは違うだろ。
一つもたどれる道がないことを示す為には力任せ・全数探索しか無いと思うが。
それをいかに高速化するかが重要では。


785 :デフォルトの名無しさん:2011/06/18(土) 20:42:53.40
これは進める距離次第で経路がまったく違ってくる。
幅1.0だったらまっすぐ進めたとしても、
幅0.9にしたらまっすぐは進めなくなり得る。

786 :デフォルトの名無しさん:2011/06/18(土) 21:07:20.69
>>785
問題理解できないバカは引っ込んでていいよ。

787 :デフォルトの名無しさん:2011/06/18(土) 22:05:49.64
>>716はA*アルゴリズムが最速では。
直線で結ぶのが最短だという知識で探索するんだ。

788 :デフォルトの名無しさん:2011/06/18(土) 22:08:28.44

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

789 :デフォルトの名無しさん:2011/06/18(土) 22:39:56.74
>>716
http://ideone.com/86xZg

790 :デフォルトの名無しさん:2011/06/19(日) 00:32:02.59
>>788
ヒューリスティック関数h*(n) を個々の問題について設定するのが、実際上はなかなか難しいのですが。

791 :デフォルトの名無しさん:2011/06/19(日) 07:21:24.18
>>717
取り下げます。
>>745
仰るとおりです。
>>735
A点から初めて、B点が塗りつぶされるかどうか。
>>754
埋立地の例えは目から鱗です。
>>768
同意します。768を実装したのが出てるのか知れないが、質問者には768で

>>789 >>716 >>726 小数点の座標も有りか?

792 : ◆6W4srb4nmo :2011/06/19(日) 08:33:01.67
>>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

793 :デフォルトの名無しさん:2011/06/19(日) 13:00:06.27
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
>>757のプログラムを、ファイルinput.txtから読込、処理結果を画面だけではなく、
ファイルoutput.txtに書き出すプログラムにしなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限: 6/20まで



794 :デフォルトの名無しさん:2011/06/19(日) 13:07:32.21
>>762
入力値の仕様は?
テキスト読み込みなのか、直接入力なのか

795 :デフォルトの名無しさん:2011/06/19(日) 13:19:35.99
>>793
757 < input.txt | tee output.txt

796 :デフォルトの名無しさん:2011/06/19(日) 15:02:30.15
>>716
http://codepad.org/nnfmL1c7

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 );

}






798 :デフォルトの名無しさん:2011/06/19(日) 15:52:17.67
#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;
}

799 :デフォルトの名無しさん:2011/06/19(日) 16:41:16.63
>>796

>#define loop(i,N) for (i = 0; i < N; i++)

なんでこんな糞みたいなマクロの使い方するかなあ

800 :デフォルトの名無しさん:2011/06/19(日) 16:56:44.70
>>799
分かりやすいようにしてるに決まってるだろ
どういう意味でかは想像に任せるとして

801 :デフォルトの名無しさん:2011/06/19(日) 17:02:16.61
#define begin {
#define end }
とか書いちゃう人? w

802 :デフォルトの名無しさん:2011/06/19(日) 17:02:46.92
そもそも題意を満たしてるのか?

803 :デフォルトの名無しさん:2011/06/19(日) 17:08:56.00
シンタックスシュガー(笑)
シンタックスィーツ(笑)

804 :デフォルトの名無しさん:2011/06/19(日) 17:09:04.05
関数名を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 );

}



806 :デフォルトの名無しさん:2011/06/19(日) 17:17:48.81
わかりやすいつっても、そのすぐうえでNをdefineしてたりして、うーん。

807 :デフォルトの名無しさん:2011/06/19(日) 17:19:58.24
まあ、バグの指摘をするならいざ知らず、
そう言うところにしか突っ込めない奴は
スルーすべきと思う。

808 :デフォルトの名無しさん:2011/06/19(日) 17:28:07.39
ret = ((x%4==0 && x%100 !=0) || (x%400 == 0))? 1 : 0;

809 :デフォルトの名無しさん:2011/06/19(日) 17:30:02.20
>>807
独自ルールまっしぐらのコードはレビューで駆逐されるべきバグだよ

810 :デフォルトの名無しさん:2011/06/19(日) 17:52:08.54
>>807
少なくとも仕事でこのような「俺様コード」を書くとすぐに粛正されるレベル

811 :デフォルトの名無しさん:2011/06/19(日) 17:58:32.58
仕事なら、コーディング規約やら色々あるだろうが、
ここなら、お遊びがあってもいいじゃないかな


812 :デフォルトの名無しさん:2011/06/19(日) 18:00:48.79
自分一人で遊ぶのなら勝手にすればいいけど、他人がみるところでやったらフルボッコにされてもおかしくない

813 :デフォルトの名無しさん:2011/06/19(日) 18:07:42.75
フルボッコしてるつもりになるのも一人でやってればいいのにな

814 :デフォルトの名無しさん:2011/06/19(日) 18:08:39.79
OpenBSD由来のリスト処理マクロに↓こんなのがあるけど、これがフルボッコにされない理由は?
#define SLIST_FOREACH(var, head, field) \
for ((var) = SLIST_FIRST((head)); \
(var); \
(var) = SLIST_NEXT((var), field))

815 :デフォルトの名無しさん:2011/06/19(日) 18:08:46.04
[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まで



816 :デフォルトの名無しさん:2011/06/19(日) 18:12:14.49
>>811
うpロダに上げた時点でいろんな人が見るんだぞ
フルボッコにされても仕方なかろう
そういうお遊びはうpせずに自分のPCの中だけでやれ

817 :デフォルトの名無しさん:2011/06/19(日) 18:32:03.28
>>814
リスト操作処理をマクロで統治するのはよくある話。
linuxカーネルでも似たようなのがある。

818 :デフォルトの名無しさん:2011/06/19(日) 20:01:53.92
>>809-810, >>816
文句だけで、コード書かない君たちより百倍ましだけどな (w


819 :デフォルトの名無しさん:2011/06/19(日) 20:08:38.12
0と-なら0の方がマシ

820 :デフォルトの名無しさん:2011/06/19(日) 20:18:41.40
>>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;
}


821 :デフォルトの名無しさん:2011/06/19(日) 20:21:45.59
>>815
ttp://ideone.com/Fq1Lj

822 :821 :2011/06/19(日) 20:22:26.77
しまったリロードしてなかったスマn

823 :デフォルトの名無しさん:2011/06/19(日) 20:32:53.05
>>821
いやいや、やる奴がいないのかと思って適当につくってる。ありがとう。

824 :デフォルトの名無しさん:2011/06/19(日) 20:51:06.23
>>819
まあ、コードのひとつでも書けるようになってから来てくれ。

825 :デフォルトの名無しさん:2011/06/19(日) 20:57:59.60
相手がコードを書けないと決め付けるキチガイはQだけでお腹いっぱいなのに、他にもいるのかよw

826 :デフォルトの名無しさん:2011/06/19(日) 20:59:34.35
>>818
黙ってコードはいくつも書いてますが、何か?

827 :デフォルトの名無しさん:2011/06/19(日) 21:32:36.84
[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

828 :デフォルトの名無しさん:2011/06/19(日) 21:50:23.35
[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に代入がしっかりできていないようなのですが、ポインタの代入をどうしたらいいか教えてください。


829 :デフォルトの名無しさん:2011/06/19(日) 21:54:16.49
>>575
>>688 も参考に、>>607 を含ませて構成してみました。
http://codepad.org/Z5QEoTrb

>>825 >>826
言うだけならばいくらでも可能だし。
今私がしているみたいにコードを書いたその同じレスの中で反論する、というスタイルをとるならば、少しは信用してあげてもいいのですが、さて、できますかね?
それかトリップをつけるか。

830 :デフォルトの名無しさん:2011/06/19(日) 21:58:58.28
>>829
メモリリーク

確保したメモリを返さないのはメモリリークと呼ばれても
し か た な い で す よ ね wwww

831 :デフォルトの名無しさん:2011/06/19(日) 22:09:58.57
>>829
よおQ
お前と張り合った所で時間の無駄になるだけの事は分かってるから適当にスルーさせてもらうよ
また汚いコードを上げて恥ずかしくないんだろうかこのクズは

832 :デフォルトの名無しさん:2011/06/19(日) 22:11:51.89
>>825-826
まあ、口先だけならいくらでも書けるし、こっちもうお腹いっぱいだし。


833 :デフォルトの名無しさん:2011/06/19(日) 22:14:03.37
悔しそうですねQはww

834 :デフォルトの名無しさん:2011/06/19(日) 22:15:59.36
>>829
お前みたいな生きてる価値もないようなクズに信用される必要なんてないぞw

835 :デフォルトの名無しさん:2011/06/19(日) 22:18:42.82
Qや>>796なら、書き込まないほうがマシ

836 :デフォルトの名無しさん:2011/06/19(日) 22:26:23.06
◆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って糞だよなぁ

837 :デフォルトの名無しさん:2011/06/19(日) 22:35:10.80
Qは無職のオッサンでこの宿題スレでゴミみたいなコードを上げる事だけに
生き甲斐を感じているクズだから余り叩いちゃ可愛そうだよw

838 :デフォルトの名無しさん:2011/06/19(日) 22:43:11.25
>>827
・pを使う前にメモリ確保されていない
・insertの前に++ptr;してるのに、insertの中でも++ptr;している(heap[t] = p;も)
・heap[++ptr] = p;これだと添字0には何も格納されない

それで、回答のコードがほしいわけ?

839 :デフォルトの名無しさん:2011/06/19(日) 22:58:46.42
>>827
回答のコードはもう書いてもうた
ttp://ideone.com/EvEUs

問題点(>>838の指摘とほぼ同じ)
1.メモリ確保していないポインタを使っている
2.1回のinsertでptrを二個進めてる
3.最初の一つ目のinsertを考慮してない
4.配列は0番目からなんだから、最下段への代入は単にheap[ptr]で満たせる

細々したもの
大小比較なら平方根取る必要ないよ


あと、upheapがよく分からなかったので下記URLのアルゴリズムに直した
ttp://ja.wikipedia.org/wiki/二分ヒープ

840 :デフォルトの名無しさん:2011/06/19(日) 23:00:09.81
>>838
今、参考にしてコードを何とか作っています。

まあ見てもらえば分かるように、自分のカスッぷりは大分稀に見るものかと・・・

841 :デフォルトの名無しさん:2011/06/19(日) 23:03:01.64
>>839
ありがとうございます。

842 :839:2011/06/19(日) 23:09:09.90
というか自分で書いといてなんだけど、俺のコードだと
insert()内で先頭チェック必要ないじゃん・・・

843 :デフォルトの名無しさん:2011/06/20(月) 00:58:02.29
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
ファイルinput.txtに、1行最大80文字で空白を挟みながら、英数字が記載されている。
このinput.txtを読み込み、その中に含まれるアルファベット・数字の各文字が何文字ずつあるかを表示するプログラムを作りなさい
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限: 明日まで



844 :デフォルトの名無しさん:2011/06/20(月) 01:25:37.54
おいQお呼びだぞ
寝ないで答えてやれ
どうせ仕事ないんだろ?

845 :デフォルトの名無しさん:2011/06/20(月) 01:45:29.92
>>575
>>688 の「数値リテラル」あたりの問題をごまかして回避してみました。
http://codepad.org/JnwFfgOP

>>705
たしかに、すぐには気がつかない盲点であることがわかりました。書いてみないとわかりませんでした。
(数字で始まるものも含めて)アルファベット+数字で構成されているものをいったん取り出し、
取り出したあとで、数字で始まるものを排除する、という方向でうまくいきそうですが、さてどうでしょうか?

>>832
だめですね。ちゃんとコードを書いたその同じレス番で煽る(かトリップをつける)のが私の流儀ですから、なりすますのならそこまで徹底しないと。

846 :デフォルトの名無しさん:2011/06/20(月) 02:05:36.91
>>843
ttp://codepad.org/9dYZlgXd

847 :デフォルトの名無しさん:2011/06/20(月) 13:18:16.71
[1] 問題文(含コード&リンク):
http://bit.ly/iX6rb1

ここしかきくとこ無くて、解いて頂けるとありがたいです。



848 :デフォルトの名無しさん:2011/06/20(月) 13:21:39.16
・スレタイも読めない奴にレスはしたくない
・スレタイを読んでなお、自分勝手な甘えが通ると思ってる奴にレスしたくない
・大学名をモロだしにするようなデリカシーのない奴にレスしたくない

849 :デフォルトの名無しさん:2011/06/20(月) 13:25:16.11
抽選ワロタ

> なお、写したと思われるほど酷似したレポートが複数提出された場合、原著が
> どれかの調査を行わず、抽選で一通のレポートのみを評価 の対象とし、他は
> 提出済みの不合格レポートとして再提出は課しません。 自分で意図せずに他
> 人にコピーされてしまった場合も同様ですので、レポート の取り扱いについ
> ては十分に注意して下さい。

850 :デフォルトの名無しさん:2011/06/20(月) 13:56:27.00
>>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] 特になし

よろしくお願いします。。

852 :デフォルトの名無しさん:2011/06/20(月) 15:07:26.13
>>851
ttp://codepad.org/5Cqn1pBq

853 :デフォルトの名無しさん:2011/06/20(月) 15:31:25.33
851です。

852さん、迅速な回答どうもありがとうございました。。

854 :デフォルトの名無しさん:2011/06/20(月) 17:42:10.44
[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;
}

856 :デフォルトの名無しさん:2011/06/20(月) 17:57:22.54
>>854
gcc いわく、未定義だぞバカヤロー

857 :デフォルトの名無しさん:2011/06/20(月) 18:17:43.58
初心者なんですけど、PICの参考書
は、どれがおすすめですか?教えて下さい

858 :デフォルトの名無しさん:2011/06/20(月) 20:47:35.22
[1] 授業単元:文字列
[2] 問題文(含コード&リンク):
1行の入力は、すべて英字とし、最大80文字とする。
初めに入力した1行の文字列に対して、2行目に入力した文字を3行目に入力した文字列に置換した文字列を作成し、結果を表示するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



859 :デフォルトの名無しさん:2011/06/20(月) 21:52:01.39
意味わかんね、俺が馬鹿なだけか?

860 :デフォルトの名無しさん:2011/06/20(月) 21:56:48.13
>>859
helloworld
l
ll

helllloworlld

861 :デフォルトの名無しさん:2011/06/20(月) 21:59:05.55
文字列
検索文字
置換文字列
結果出力

って事だと思う

862 :デフォルトの名無しさん:2011/06/20(月) 22:00:06.11
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;
}


864 :デフォルトの名無しさん:2011/06/20(月) 22:09:49.40
・スイッチの長押し(1秒以上)でカウンタが「 0 」になるようにプログラムを組みなさい。

・500msecの間に2回ONを検知したら「ダブルクリック」であると認識する機能を追加
する。ダブルクリックは、自動的にカウントアップする動作を行うようにする。
もう一度ダブルクリックで停止、再度ダブルクリックで再開、長押しでリセットする。

上の練習問題を解くために下のようなプログラムを作成しましたが、うまく動作しません。
http://codepad.org/gFdl4UPh

865 :デフォルトの名無しさん:2011/06/20(月) 22:10:35.29
>>858
http://ideone.com/0ARrM
2行目にも文字列を許すならこうか

866 :デフォルトの名無しさん:2011/06/20(月) 22:13:28.58
>置換した文字列を作成し、結果を表示する

文字列を格納しなくてもいいのかな?

867 :デフォルトの名無しさん:2011/06/20(月) 22:17:55.20
>>864
>>1

868 :デフォルトの名無しさん:2011/06/20(月) 22:22:34.26
>>864
うまく動作、てw
コンパイルできてるというのかよw

869 :デフォルトの名無しさん:2011/06/20(月) 22:28:01.21
pic.hが分からない

870 :デフォルトの名無しさん:2011/06/20(月) 22:31:11.62
>>866
格納先のバッファサイズが最大6400バイト必要だからなぁ
溢れたらmallocするような仕組み作るのはレベル的に問題がありそうだし...

871 :デフォルトの名無しさん:2011/06/20(月) 22:56:50.02
>>870
始めから最大サイズで確保してしまうか、
最初に置換対象文字を数え、必要サイズをmallocするか、どっちかかな。
前者が良いように思った。

872 :デフォルトの名無しさん:2011/06/20(月) 23:38:31.96
>>871
講師:『何故、6400Byteなんて大きなバッファが必要なんだね?』
質問者:『ポカーン』

講師:『malloc() はまだ教えてないが』
質問者:『ポカーン』

と考えて格納しない方が良いと思った訳だが...

873 :デフォルトの名無しさん:2011/06/20(月) 23:39:30.96
>>864
くみこの組み込み相談室いけし

874 :デフォルトの名無しさん:2011/06/20(月) 23:51:24.93
>>872
回答者の裁量だと思うので、問題ないと思います

875 :デフォルトの名無しさん:2011/06/21(火) 02:36:44.52
[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] 期限:明日まで



876 :デフォルトの名無しさん:2011/06/21(火) 02:41:27.22
>>874
では回答者が求めるなら修正しよう

877 :デフォルトの名無しさん:2011/06/21(火) 02:42:43.85
>>743
8x8 の基本単位で割り切れるように切れ目が入っているから、libjpeg に渡す前に分割できればいいのですが。

878 :デフォルトの名無しさん:2011/06/21(火) 02:44:38.16
仕様詰めの話を数レス前でしてるわけなんだが、
その辺まだ分かるレベルじゃないから単純に答えをよしなにって事かな

879 :デフォルトの名無しさん:2011/06/21(火) 02:45:11.39
>>878>>875へのレスね

880 :863:2011/06/21(火) 03:06:53.12
>>875
俺のは使えなかったのか?

881 :デフォルトの名無しさん:2011/06/21(火) 04:22:38.67
>>877
8x8じゃないし、そもそも問題見れば分かるがjpegじゃない。もっと簡単

882 :デフォルトの名無しさん:2011/06/21(火) 07:19:51.70
)[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言語の問題です。おねがいします;

883 :デフォルトの名無しさん:2011/06/21(火) 07:49:35.05
あと、もうひとつ問題
2.201003121(10進数9桁)、性別(男:1、女:2)、年令(未成年:0,成年:1,高齢:2,後期高齢:3)、
職業(無:0、有:1)で個々人が16分類される。それぞれを数字(コード)で入力させ、
その人の状態を一旦ディスプレイに表示し、if文を使って、自然な文章で最後に表示するプログラムを作れ

884 :デフォルトの名無しさん:2011/06/21(火) 08:30:55.58
>>881
配布元での形式はjpeg じゃないのね。jpeg をマスターできるチャンスかと考えてしまった。

885 :デフォルトの名無しさん:2011/06/21(火) 08:55:38.09
[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] その他の制限: ポインタと関数を習っているところです

886 :デフォルトの名無しさん:2011/06/21(火) 12:33:25.20
StudyCってのを使ってる奴がいて、思わずググったわ。

今はあんなものがあるのか

887 :デフォルトの名無しさん:2011/06/21(火) 13:15:05.86
>>885
http://codepad.org/kZdJZp9Y

合ってるかはわからないけど、とりあえず動いてるっぽい。
VC2008で作ったからコンパイル通らなかったらすまんす。
あと「replace_lines」はめんどくさそうだからスルーした。

888 :887:2011/06/21(火) 13:33:49.26
>>885
http://codepad.org/Qn2XZ1d3
できるだけポインタを使うように修正してみた。

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まで

よろしくおねがいします


890 :デフォルトの名無しさん:2011/06/21(火) 14:40:33.82
>>889
ttp://ideone.com/UOdta

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 :デフォルトの名無しさん:2011/06/21(火) 15:15:41.57
改良と言えるかは知らんが。
これなら割り算使わなく効率いいぞ
http://ja.wikipedia.org/wiki/%E3%82%A8%E3%83%A9%E3%83%88%E3%82%B9%E3%83%86%E3%83%8D%E3%82%B9%E3%81%AE%E7%AF%A9

893 :デフォルトの名無しさん:2011/06/21(火) 15:19:11.26
>>892は。
素数で「割り切れると素数ではない」のチェックをせずに
素数の倍数は、素数でないとやるわけだ。
計算時間で比較すれば、>>891の改良版より速いのは確実だろう。

894 :デフォルトの名無しさん:2011/06/21(火) 16:45:20.91
>>892
あくまで「乗除回数を減らせ」だから、あんまり方法が変わると
駄目なんだよ。まあ乗除行うならそれでもいいと思うけど。


895 :デフォルトの名無しさん:2011/06/21(火) 17:03:44.31
http://codepad.org/drQxphy8
ま、こういう話では無いんだろうけどなw基本的な方法は全く変えず0回だけど
ていうかそもそも剰余を求めることを乗除っていうのか?

896 :デフォルトの名無しさん:2011/06/21(火) 17:16:27.23
加減乗除
加法と減法と乗法と除法。四則演算。

897 :895:2011/06/21(火) 17:21:51.03
>>896
いやそんなことは知ってるよw
見直すと言い方がまずかったね
乗法と除法禁止に剰余を求める演算も含むのか?って意味だよ

898 :デフォルトの名無しさん:2011/06/21(火) 17:24:21.64
>>895
わからない。先生がそう書いてたから、間違ってても俺のミス
じゃない。あと「mod」とかいう関数(?)は習ってないから
使えない。(方法に関係なく)


899 :デフォルトの名無しさん:2011/06/21(火) 17:30:00.74
自前で mod という名の関数 を追加してるんだけど(Line 4〜9)

そういう関数は習っていない状態なのかな

900 :デフォルトの名無しさん:2011/06/21(火) 17:31:59.91
>>887-888
ありがとうございます
凄く申し訳ないし言うのが遅いと思うのですが
授業では↓のような形式でやっているのですがこんな感じで書けないですかね?

http://codepad.org/5zJCMFlq

内容はfile1を読み込み、n1行目からn2 (n2>=n1)行目までをコピーして、
m行目とm+1行目の間に入れfile2に書き込むファイル
copy_and_paste( ”file1”, ”file2”, n1, n2, m ) ;
です

901 :デフォルトの名無しさん:2011/06/21(火) 17:49:20.45
乗除0回

http://codepad.org/XCQmuFsJ

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

・     
のように綺麗に表示させたいのですが、
どのように改良すればいいでしょうか?

904 :デフォルトの名無しさん:2011/06/21(火) 19:24:29.31
[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ですが、桁を揃えてということです。
(入力したのがずれてるので補足)

906 :デフォルトの名無しさん:2011/06/21(火) 19:42:31.35
>>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
>>900
即席で直してみた。

http://codepad.org/2bYGVIOa

908 :デフォルトの名無しさん:2011/06/21(火) 20:06:26.60
[1] 授業単元:C
[2] 問題文(含コード&リンク):
strcmp()を利用し、>>904で利用したものと同様のimput.txtを読み込む。
キーボードから英単語を1つ入力し、その単語が、input.txtに何個含まれるかを出力するプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日まで



909 :デフォルトの名無しさん:2011/06/21(火) 20:54:15.85
>>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に四捨五入されました

911 :デフォルトの名無しさん:2011/06/21(火) 21:39:18.11
>>909
いいや、違うね。
明日までって事は明日が終わる前にって事だ。
ってことは2011-06-22 23:59:59.99999999999999999999999.....って事だ。
ここで問題なのは限りなく2011-06-23 00:00:00.0に近い22日が期限って事だ。
>>908わかるか?この題意が?無限を扱ってるんだよ。
いかに無限を表現できるかって事が問題なんだよ。
あぁあ、限りなく近いという概念を持ち出し、言葉で巧みに表現するのもありだろう。
しかしな、そんな回りくどい事をしなくても
期限<23日 これだけで完璧に表現できる。
この不等号(<)には無限の概念さえ含まれた人類至高の発明だという事を忘れんなよ。
つまり、お前は23日と22日の狭間に提出するんだ。

912 :デフォルトの名無しさん:2011/06/21(火) 21:40:23.49
なるほど、わからん。

913 :デフォルトの名無しさん:2011/06/21(火) 21:46:37.11
もう期間過ぎてるけど、891のAと903をわかる方よろしくお願いします。

914 :デフォルトの名無しさん:2011/06/21(火) 21:50:59.66
すいませんプログラム初心者です 素数判定のプログラムなんですが不備があれば教えてください

#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;
}

915 :デフォルトの名無しさん:2011/06/21(火) 21:52:36.24
アンカーくらい打てよ

916 :デフォルトの名無しさん:2011/06/21(火) 21:52:53.40
>>914
0 除算

917 :デフォルトの名無しさん:2011/06/21(火) 22:17:51.81
>>916
この肘でおまえを今夜落として見せるこの俺

918 :デフォルトの名無しさん:2011/06/21(火) 22:21:12.51
>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;
}

919 :デフォルトの名無しさん:2011/06/21(火) 22:34:41.76
>>916
ありがとうございます

920 :デフォルトの名無しさん:2011/06/21(火) 23:19:33.33
>>907
ありがとうございます

921 :デフォルトの名無しさん:2011/06/21(火) 23:26:10.78
round(-5.0001) = -5.0000
round(-5.5000) = -6.0000

にならなきゃいけないはず。

922 :デフォルトの名無しさん:2011/06/22(水) 00:19:49.69
>>913
>>901 を流用しました。
>>891A1 http://codepad.org/3ABjkB23
A2 は意味がよくわからないので具体例をあげて教えてください。

923 :デフォルトの名無しさん:2011/06/22(水) 00:26:39.05
◆QZaw55cn4cって糞だよなぁ

924 :デフォルトの名無しさん:2011/06/22(水) 00:27:12.67
日本語読めない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は、桁を揃えるってことです。
(またしてもずれてるので補足)

927 :デフォルトの名無しさん:2011/06/22(水) 01:33:40.53
%4d

928 :デフォルトの名無しさん:2011/06/22(水) 01:53:04.57
>>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] その他の制限: ポインタと関数を習っているところです

929 :デフォルトの名無しさん:2011/06/22(水) 02:07:08.32
[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まで


930 :デフォルトの名無しさん:2011/06/22(水) 02:20:52.78
>>929
この問題にはセキュリティーホールがある。

931 :デフォルトの名無しさん:2011/06/22(水) 02:29:48.47
>>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は糞だなあ相変わらず

932 :デフォルトの名無しさん:2011/06/22(水) 02:30:45.35
>>925
>>891A2 http://codepad.org/LsCw9sh4
#define N 50 の 50 をいろいろかえてみてください。

933 :デフォルトの名無しさん:2011/06/22(水) 02:41:24.16
で、その後エアPhenomU6とエアCore2Duoノートは元気か?
まあ無いんだから答えようがないわな

934 :922:2011/06/22(水) 02:43:58.93
>>931
ご指摘感謝。バッファオーバーランですね。

>>891
訂正します。
A1 http://codepad.org/pwzuPVEc
A2 http://codepad.org/7sJyfE1y


935 :デフォルトの名無しさん:2011/06/22(水) 02:50:04.56
>>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)

936 :デフォルトの名無しさん:2011/06/22(水) 03:02:30.71
>>935
重ね重ね感謝。

>>891
すみません、訂正します。
バッファオーバーランが取れていませんでした。
static int prime[50];
に対して、
prime[50] にアクセスしようとしていたために >>935 の指摘のとおりエラーとなったと思われます。

>>891
A2 http://codepad.org/sxoPMbN8

これで大丈夫だといいのですが。

937 :デフォルトの名無しさん:2011/06/22(水) 03:04:21.71
バグ付きのプログラムをうpするとウィルス作成罪に問われるぞ

938 :デフォルトの名無しさん:2011/06/22(水) 03:54:10.52
>>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って糞だよなぁ

942 :デフォルトの名無しさん:2011/06/22(水) 08:55:53.94
>>939
ログみろ

943 :デフォルトの名無しさん:2011/06/22(水) 09:07:52.63
>>942
ログってどうやって見るんですか?

944 :デフォルトの名無しさん:2011/06/22(水) 10:34:44.65
どなたか>>928を…

945 :デフォルトの名無しさん:2011/06/22(水) 10:39:13.75
[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まで



946 :デフォルトの名無しさん:2011/06/22(水) 12:11:46.38
@はあれじゃだめだったのか?

947 :デフォルトの名無しさん:2011/06/22(水) 12:23:30.40
>>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);
}

948 :デフォルトの名無しさん:2011/06/22(水) 12:29:18.29
>>940
>>936 3行目
#define N 50

#define N 1000
に替えてください。

949 :デフォルトの名無しさん:2011/06/22(水) 12:31:33.58
>>945

>>947に一歩遅れをとったが。。。
http://codepad.org/FbzJn4nu

950 :887:2011/06/22(水) 13:02:34.51
>>944
http://codepad.org/2GmwI7vr

>>907のコードに追加してみた。

951 :デフォルトの名無しさん:2011/06/22(水) 13:54:50.48
>>950
ありがとうございます

952 :デフォルトの名無しさん:2011/06/22(水) 14:05:44.67
【1】c言語
【2】少数点以下第三位を四捨五入し第二位まで求める関数を作成してください
実行結果
入力してください
数値:1.2356
1.235600は1.24に四捨五入されました

953 :デフォルトの名無しさん:2011/06/22(水) 14:33:35.70
>>928です
小出しになってしまって申し訳ないのですがもう1つお願いします

[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):
長いのでろだにうpしました
http://www.dotup.org/uploda/www.dotup.org1726929.txt

file03.txt
http://www.dotup.org/uploda/www.dotup.org1726932.txt
[3] 環境
 [3.1] OS: windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:本日中
[5] その他の制限:
ポインタと関数を習っているところです
>>950様のような形、もしくは出来るだけ簡単に書いてもらえると助かります

954 :デフォルトの名無しさん:2011/06/22(水) 15:37:49.16
http://codepad.org/Eewas6ah

955 :デフォルトの名無しさん:2011/06/22(水) 16:14:55.30
>>954 TBS
File not found.

956 :デフォルトの名無しさん:2011/06/22(水) 16:44:42.97
>>953
http://codepad.org/KzascMbB

erase_string関数の仕様が違ったから直した。
あとmain関数の中は適当だから間違ってたら自分で修正してくれ。

957 :887:2011/06/22(水) 16:56:03.91
>>953
http://codepad.org/hE5zExP3

>>956はreplace_lines関数が間違ってたから修正した。
まあ、呼び出されてないんだけど。

958 :デフォルトの名無しさん:2011/06/22(水) 18:21:16.72
>>956-957
ありがとうございます

スレチなのかもしれませんが>>907,950,956-957をコンパイルは通るのですが実行してみても
bash: ./ is a directoryというエラーメッセージが出てきて実行出来ないのですが原因として何が考えられますかね?

959 :デフォルトの名無しさん:2011/06/22(水) 18:30:42.21
>>958
./の後にスペースでも入れちゃってるんだろう。

960 :デフォルトの名無しさん:2011/06/22(水) 18:34:35.06
>>959
ありがとうございます
ご迷惑をおかけしました

961 :デフォルトの名無しさん:2011/06/22(水) 19:46:55.65
なんでその程度のことちゃんと確認しないんだろう
ほんとに何も理解せず作業としてやってるんだろうな
プログラミングやめればいいのに

962 :デフォルトの名無しさん:2011/06/22(水) 19:47:13.55
[1] 授業単元:C
[2] 問題文(含コード&リンク):
読み込むファイルはinput.txtに固定されていたが、それを拡張する。
プログラム実行時に、ファイル名を入力させ、ファイルが読み込み出来ない場合には、ファイル名を繰り返し再入力させるように改良しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限:6/24まで


963 :デフォルトの名無しさん:2011/06/22(水) 20:09:27.95
エラー出たからすぐ報告とかじゃなくて、ちっとは自分で考えろ。

少なくとも、自分のPCで通ったものをちゃんと提供してる。

964 :デフォルトの名無しさん:2011/06/22(水) 20:12:07.40
お〜激しい(^ω^ )

965 :デフォルトの名無しさん:2011/06/22(水) 20:53:02.14
>>963
ここで回答してる人がみんなそうならいいんだけどね

966 :デフォルトの名無しさん:2011/06/22(水) 21:25:33.90
>>965
例:QZ

967 :デフォルトの名無しさん:2011/06/22(水) 22:26:24.49
いかん、アブナイアブナイアブナイ…

968 :デフォルトの名無しさん:2011/06/22(水) 22:26:45.49
次スレ立てます

969 :デフォルトの名無しさん:2011/06/22(水) 22:27:33.62
次スレ立てました
C/C++の宿題片付けます 150代目
http://hibari.2ch.net/test/read.cgi/tech/1308749241/

970 :デフォルトの名無しさん:2011/06/22(水) 22:35:17.55
50msec ってどれくらいですか?

971 :デフォルトの名無しさん:2011/06/22(水) 22:50:59.49
光が1万5千キロ、大体マイアミからアルゼンチンまでを移動するくらい

972 :デフォルトの名無しさん:2011/06/22(水) 23:18:43.77
>>966
でも俺のCodeGuardに掛けると「ゴルァ!どこをアクセスしとるんじゃ!」と怒られるけどな

973 :デフォルトの名無しさん:2011/06/22(水) 23:23:30.35
アメリカのやつと通信対戦してると
光っておせーなー ってホント思うわ

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] サンプルプログラムは大文字小文字変換のプログラムとなっています
  それをもとに作ってもらえると助かります。

975 :デフォルトの名無しさん:2011/06/23(木) 00:09:31.96
◆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日中

977 :デフォルトの名無しさん:2011/06/23(木) 03:16:49.52
>>970
3フレぐらい。
ヒット確認ができなくなるので、対戦は厳しい

978 :デフォルトの名無しさん:2011/06/23(木) 03:22:22.96
>>974
サーバー
ttp://ideone.com/btEcn
クライアント
ttp://ideone.com/0HmtQ

linux マシンを出すのが面倒なので windows で書いたら #ifdef の嵐になってグチャグチャになってもうた
#define USE_WINSOCK を外せば動くと思うけどこのまま提出する訳にはいかんだろうなぁ....まぁ参考程度にしてくれ


979 :デフォルトの名無しさん:2011/06/23(木) 12:42:31.31
>>976
Aryがどう見てもおかしいんだがこれマジで問題文にあったクラスなの?
手打ちでコピペしたとかじゃなくて?

980 :デフォルトの名無しさん:2011/06/23(木) 12:58:46.95
>>976
http://codepad.org/zbHK3vt8
VC6持ってないから大丈夫かわかんね


981 :デフォルトの名無しさん:2011/06/23(木) 21:53:58.14
[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] 期限:今すぐ頼む!



983 :デフォルトの名無しさん:2011/06/23(木) 22:34:23.68
>>982わけわかめ

984 :デフォルトの名無しさん:2011/06/23(木) 22:40:14.97
今は過ぎ去ってしまったので、もう無理だな。

985 :デフォルトの名無しさん:2011/06/23(木) 22:41:56.00
今は永遠に来続けるから、いつでも待ってるぜという事じゃないかな。

986 :デフォルトの名無しさん:2011/06/23(木) 22:48:01.99
>>981
ttp://ideone.com/X1CNl

987 :デフォルトの名無しさん:2011/06/23(木) 22:52:30.49
[1] 授業単元:C
[2] 問題文(含コード&リンク):
「空白を挟まず、何か入力してください。」と表示した後、入力された先頭文字が英字大文字、英字小文字、数字かを判定し、
「先頭文字は○○です。」という表示を行うプログラムを作成しなさい。
[3] 環境
 [3.1] OS: Windows7
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語:C
[4] 期限:明日の12時まで



988 :デフォルトの名無しさん:2011/06/23(木) 22:54:55.49
>>982
そもそも改良しなさいって問題なら元のコードを示さないと回答不可能な訳だが...

989 :デフォルトの名無しさん:2011/06/24(金) 00:50:42.35
>>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;
}

単純にコピペだけで終わられたくないんで、表示を変な感じにしてたり

990 :デフォルトの名無しさん:2011/06/24(金) 00:54:21.75
>>989
ついでに・・・

ここではgets()を使っているけど、基本的にはgets()は使わないようにすべし。
懐かしのバッファオーバーランでの命令置き換えとか、面白いことが簡単に行われる「可能性もある」から


991 :デフォルトの名無しさん:2011/06/24(金) 01:01:16.30
>>990

ありがとうございます

あと、俺も鰤好き

992 :デフォルトの名無しさん:2011/06/24(金) 01:39:26.68
埋め

993 :デフォルトの名無しさん:2011/06/24(金) 03:51:29.99
>>990
QZ の mygetline() がおすすめ

994 :デフォルトの名無しさん:2011/06/24(金) 07:30:30.41
うめ

995 :デフォルトの名無しさん:2011/06/24(金) 07:33:30.80
うめ

996 :デフォルトの名無しさん:2011/06/24(金) 07:33:42.98
うめ

997 :デフォルトの名無しさん:2011/06/24(金) 07:35:10.55
うめ

998 :デフォルトの名無しさん:2011/06/24(金) 07:35:54.30
うめ

999 :デフォルトの名無しさん:2011/06/24(金) 07:36:11.69
うめ

1000 :デフォルトの名無しさん:2011/06/24(金) 07:42:23.56
◆QZaw55cn4cは優秀

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

318 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)