C/C++の宿題を片付けます 120代目at TECH
C/C++の宿題を片付けます 120代目 - 暇つぶし2ch2:デフォルトの名無しさん
08/12/16 19:52:01
鏡を見ろよ、メガネピッツァさん?

3:デフォルトの名無しさん
08/12/16 19:54:32
          ,. -―-、
         <-‐ヘ、9ノ‐>  
         从!イノiノヘilト   これどうぞ
         ゙ヘ(!|´ヮ`ノリ シュッ シュッ シュッ、アレ?
           /∩と彡 /
     彡   ノ,! /  ./  ミ ξ
   ξ     く/   ./    旦
   旦   /    ./
      /     /      ミ ξ
     /      /        旦
   | ̄ ̄ ̄ ̄ ̄|
   |          |

4:デフォルトの名無しさん
08/12/16 20:32:25
>>前スレ998
a * Pn * (1 - area/Pn);
だとすると、
a * (Pn -area)
と言うことだもの。
整理されていない時点でおかしいし、内容も・・・

5:デフォルトの名無しさん
08/12/16 20:34:58
>>前スレ992
int word(char s[]){
int i, word_num=0, prev_is_space=1;
for(i=0;s[i];i++){
if(!isspace(s[i]) && prev_is_space) word_num++;
prev_is_space=isspace(s[i]);
}
return word_num;
}

>>前スレ996
一文字目が isspace に該当するときに余分に +1 される

6:デフォルトの名無しさん
08/12/16 20:43:50
>>1

7:998
08/12/16 20:59:33
>>1 乙


char* s[250] = "aa bb\n";
int i = 0;
int n = 0;

while(s[n])
{
while(isspace(s[n]) && s[n])
{
n++;
}
if(s[n]) i++;
while(!isspace(s[n]) && s[n])
{
n++;
}
}

こういうのはどうだろう。
結局汚名挽回してるだけな気もするorz

8:デフォルトの名無しさん
08/12/16 21:08:11
>>1さん乙
[1] 授業単元:科学実習ⅰ
[2] 問題文:
sum=1の2乗+2の2乗+・・・・Nの2乗

[3] 環境
 [3.1] OS: Windows xp
 [3.2]コンパイラ: gcc -o
 [3.3] C言語
[4] 期限: 2008年12月31日まで
[5] その他の制限: 入力にscanf使用禁止

お願いします。

9:デフォルトの名無しさん
08/12/16 21:10:19
汚名は返上すべき

10:デフォルトの名無しさん
08/12/16 21:13:42
>>7 >>9
なんかスパロボにこんな台詞あったなwww

11:デフォルトの名無しさん
08/12/16 21:14:17
わざと挽回にしてるのが理解できないとかw

12:デフォルトの名無しさん
08/12/16 21:14:50
>>8 /* 酔っ払ってるから(ry *\
#include <stdio.h>
#include <stdlib.h>
#define SIZE 256
int main(void)
{
char buff[SIZE];
int N, sum = 0, i;
printf("N = "); N = atoi(fgets(buff, SIZE, stdin));
for (i = 1; i <= N; ++i) sum += i * i;
printf("1 x 1 + 2 x 2 + ... + %d x %d = %d\n", N, N, sum);
return 0;
}

13:デフォルトの名無しさん
08/12/16 21:24:40
[1] 授業単元: C言語システムプログラミング
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限:2008年12月17日00:00まで
[5] その他: プログラム内部の動作説明やアルゴリズム説明、6)Specialの部分以外をお願いします。


14:デフォルトの名無しさん
08/12/16 21:24:45
前スレ992です。

前スレ995,996,998,999,本スレ5,7さんありがとうございました。
996さんのおっしゃったとおり、区切り文字が連続する場合は1つの区切り文字としたかったので、
みなさんのレスを参考に、以下のようにしてみました。

int word(char s[]){
int n, i, j;

i = 0;
j = strlen(s);
for(n = 0; n < j; n++){
if(!isspace(s[n]) && isspace(s[n+1])){
i = i + 1;
}
}
return i;
}

これで実行したところ、aa bbでも2と出力されました。
if(isspace(s[n]) != 0){
の部分を
if(!isspace(s[n]) && isspace(s[n+1])){
とすることで連続して空白文字がきた場合はカウントせず、
文字+空白文字となっているときのみカウントするようにしました。

15:デフォルトの名無しさん
08/12/16 21:29:49
>>14
word("word?");

16:デフォルトの名無しさん
08/12/16 21:47:28
前スレの962です。
申し訳ありませんが、もう一度お尋ねしたいと思います。

[2] 問題文(含コード&リンク): フィボナッチ数列という有名な数列がある。
以下のプログラムはある整数を入力し、その整数以下のもっとも大きなフィボナッチ数列に含まれる整数を返すものである。

#include <stdio.h>

int main(void){

int limit,new=1,pre=0,work result;
scanf("%d", &limit);
while(new<=limit){
/*printf("%d %d\n,pre,new);トレース用*/
work=new;
new=work+pre;
pre=work;
}
result =pre;
printf("%d\n", result);
}

17:16
08/12/16 21:48:01
>>16の続き

このプログラムの一部を関数にして書き換えたとする。

#include <stdio.h>

/*ここに関数を記述*/

int main(void){

int limit,result;
scanf("%d",&limit);
result=fibnum(limit);
printf("%d\n, result);
}

「ここに関数を記述」とある部分に関数を記述し、プログラムを完成させなさい。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: VC6.0
 [3.3] 言語:C

18:16
08/12/16 21:48:52
>>17の続き

いただいた回答を元に実行してみたのですが…
#include <stdio.h>

void fibnum(int limit){

int f0, f1;
f0 = 0; f1 = 1;

printf("%d\n", f0);
printf("%d\n", f1);

while(1){
f0 += f1;

if (f0 > limit) return;
printf("%d\n", f0);
f1 += f0;

if (f1 > limit) return;
printf("%d\n", f1);
}
}
(上記の通り)
return result;
}

19:デフォルトの名無しさん
08/12/16 21:49:09
テンプレに沿ってないですが…
以下のプログラムをstdio.h型ではなくiostream型に書き換えるとどうなるんでしょうか?
printfとかscanfとかはcinやcoutに書き換えられるってのは自分で調べて分かったのですがどうもコンパイルするとエラーになってしまうんです。

printfとかscanf以外にも書き換えられる部分があればお願いします。

あと、それぞれの行がどういった命令を出してるのか解説もお願いします…。

for(i=0;i<8;i++){//最初i=0でi<8まで増えていく

と言った感じで…。

#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k(){if(m[p]==0)
for(i=0;i<8;i++){
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;
if(c&&m[v]==t){a+=c;v=p;
if(d)do m[v]=t,v+=r[i];
while(m[v]!=t);
}}}
char*h="・○●\n";
int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++p)k(),printf("%.2s",&h[m[p]*2]);
if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p;
else if(s)s=0,printf("pass");
else break;t=3-t;
}
return 0;
}

20:16
08/12/16 21:49:26
>>18の続き


\\FILESV7\UN$\NE200071\デスクトップ\V\v.cpp(28) : error C2440: '=' : 'void' から 'int' に変換することはできません。
(新しい動作 ; ヘルプを参照)
void 型の式は他の型へ変換できません。

とエラーがでてしまいます…なぜでしょうか?
長々と、何度も申し訳ありません。
どなたか回答していただけたら嬉しいです。

21:デフォルトの名無しさん
08/12/16 21:53:52
>>20
#include <stdio.h>

void fibnum(int limit) {
int f0, f1;
f0 = 0; f1 = 1;
printf("%d\n", f0);
printf("%d\n", f1);
while(1){
f0 += f1;
if (f0 > limit) return;
printf("%d\n", f0);
f1 += f0;
if (f1 > limit) return;
printf("%d\n", f1);
}
}

int main(void){

int limit,result;
scanf("%d",&limit);
result=fibnum(limit);
printf("%d\n, result);
return 0;
}


22:デフォルトの名無しさん
08/12/16 21:54:59
指定された整数以下の最も大きなフィボナッチ数列に含まれる整数を返していないから。
要するにその関数は題意を満たしていない。

23:デフォルトの名無しさん
08/12/16 22:03:24
>>16ー17
#include <stdio.h>
/*ここに関数を記述*/
int fibnum(int limit) {
int a,b,c;
for(a=1,b=1,c=0; c<=limit; c=a+b) {a=b; b=c;}
return b;
}
int main(void){
int limit,result;
scanf("%d",&limit);
result=fibnum(limit);
printf("%d\n", result);
return 0;
}


24:デフォルトの名無しさん
08/12/16 22:06:25
>>17 >>16を使うのか。
#include <stdio.h>
int fibnum(int limit){
int new=1,pre=0,work,result;
while(new<=limit){
work=new; new=work+pre; pre=work;
}
return pre;
}
int main(void){
int limit,result;
scanf("%d",&limit);
result=fibnum(limit);
printf("%d\n", result);
return 0;
}


25:16
08/12/16 22:09:56
>>24
はい。
>>16を元に>>17に当てはまるように書き換えていただけたら嬉しいです。

26:16
08/12/16 22:13:47
>>23
すみません、回答していただいたものを見落としていました
無事に実行できました、ありがとうございます!

27:デフォルトの名無しさん
08/12/16 22:13:51
>>8
sum = N * (N+1) * (2*N+1) / 6;

28:デフォルトの名無しさん
08/12/16 22:15:18
>>24
おれがなぐさめてやる。

29:14
08/12/16 22:20:26
>>15
「word("word?");」と入力したとき、英単語「word」は2つあるにもかかわらず、
出力結果は1になってしまう、ということでしょうか?

30:デフォルトの名無しさん
08/12/16 22:59:06
自由課題、カモーン!タイピング、スロットマシン、15パズル、ヒットエンドラーン!じゃなくて
ブローも用意してアルヨー!

31:デフォルトの名無しさん
08/12/16 23:06:19
>>29
0 にならない?

32:デフォルトの名無しさん
08/12/16 23:08:05
お手隙の方がいたら >>13 をお願いします。
途中まででも結構です

33:デフォルトの名無しさん
08/12/16 23:09:53
初心者なんやけどCとC++って C++ = C + αみたいに
Cが強化されたのがC++ってことでいいのかな?
CでできることはC++で全て可能 とか

34:デフォルトの名無しさん
08/12/16 23:15:09
>>33
ここで質問する話じゃねえだろ糞野郎

35:デフォルトの名無しさん
08/12/16 23:17:44
>>34
大人しくここから出ていけよ、何か気に入らない発言があると
罵倒しないと気が済まない、一言居士

36:デフォルトの名無しさん
08/12/16 23:18:36
>>33
C++というくらいだから、Cに何かを付け加えたもの。
一番大きいのはクラス。

37:デフォルトの名無しさん
08/12/16 23:19:38
つまんない人がいますよね
プログラムを作る人はこうなのだろうかと思うと、悲しくなってくる

38:デフォルトの名無しさん
08/12/16 23:21:08
C++はCのソースそのままでは動作が違うんだが、付け加えたものなんて嘘つくな

39:デフォルトの名無しさん
08/12/16 23:22:06

>>13
前スレの69, 233, 266
スレリンク(tech板:69番)
スレリンク(tech板:233番)
スレリンク(tech板:266番)

40:デフォルトの名無しさん
08/12/16 23:22:28
>>37
そんなスレ違いな発言を敢えてするお前もどうかと。

41:デフォルトの名無しさん
08/12/16 23:23:19
>>38
Cにだって、ANSIとC99では動作が違う
そのくらいの差だろう

42:デフォルトの名無しさん
08/12/16 23:26:58
>>41
ANSIとは?C99とは?
馬鹿丸出しですね

43:デフォルトの名無しさん
08/12/16 23:27:15
初心者なんやけどC++とC#って
┌─┐
│   ++
│   ++
└─┘
みたいにC++が更に強化されたのがC#ってことでいいのかな?

44:デフォルトの名無しさん
08/12/16 23:27:33
>>42
程度の低いレスですねw

45:デフォルトの名無しさん
08/12/16 23:27:46
いいよ。

46:デフォルトの名無しさん
08/12/16 23:28:19
>>44
わかってないんだろうなこの馬鹿は
答えてみろよ

47:デフォルトの名無しさん
08/12/16 23:28:37
>>46
>>42
わかってないんだろうなこの馬鹿は
答えてみろよ

48:デフォルトの名無しさん
08/12/16 23:29:35
>>43
 冗談でそういわれている。
シンタックスは、似ているように見えるが、全く別物。

49:デフォルトの名無しさん
08/12/16 23:30:02
>>47
ANSIとは?C99とは?

50:デフォルトの名無しさん
08/12/16 23:32:54
知的に問題のある人の基地外発言↓

42 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:26:58
>>41
ANSIとは?C99とは?
馬鹿丸出しですね

↑特徴:罵倒(バカ、アホといった類)の言葉を平然と投げかける。
これだけで人間性の低さが露呈しているのだが、本人は気づかないんでしょうね。
この世に、自分が知っていること、知らないことなんていくらでもあるが、
知らないようなことを持ち出して、知らなかったことを責め立てるくせに、
いざ自分が重要なことを知らないと他人から指摘されると、逆切れして
無関係な話を始め、お前は(自分がよく熟知していると自身のあることを持ち出して)
~を知っているのか?自分基準でそれをこう答えないと、知らないことにするぞ、みたいな
自分の経験不足を無視して、相手の粗探しを始める。
あと、すれ違いだから、他所でやれ。

51:14
08/12/16 23:34:26
>>31
結果は1になりました。

52:デフォルトの名無しさん
08/12/16 23:34:43
ほんと馬鹿丸出しですね
知らないなら知らなかったと言えばいいのに

53:14
08/12/16 23:35:17
>>39 前スレで既出だったんですね
ご親切にありがとうございました!

54:デフォルトの名無しさん
08/12/16 23:36:18
[1] 興味本位で勉強中
[2] 問題文 a->1 ,b->2 ,c->3...............,y->25 z->26 (空白)->27として入力して、入力した英文を数字に変換するプログラム
例えば「a pen」なら「12716514」
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
お願いします

55:デフォルトの名無しさん
08/12/16 23:37:05
>>52
いや、あんた誰にレスしてんだ?無関係な人にレスして、自分の発言の汚さを
指摘されているって気づかない?バカだの丸出しだの、言動が低俗過ぎ。
そういう奴が言う言葉なんて、相手の粗探しをしようとしているとしか思えないのだが。
相手が何を知らないか、指摘すらしてないじゃん。自分はそうは思わない、程度の主張しかせず
相手にされていないって気づかない?w

56:デフォルトの名無しさん
08/12/16 23:38:00
>>54
文字コードはEBCDICでいいのかい?

57:デフォルトの名無しさん
08/12/16 23:38:33
>>55
お前は誰だ

58:デフォルトの名無しさん
08/12/16 23:39:39
>>42
URLリンク(ja.wikipedia.org)
もちっとC言語について詳しくなってから発言しろ、青二才。

59:デフォルトの名無しさん
08/12/16 23:40:38
>>58
もちっとC言語について詳しくなってから発言しろ、青二才。

60:デフォルトの名無しさん
08/12/16 23:43:31
宿題スレだろ。スレ違いな発言で罵倒し合ってんじゃねー、出てけよ。
無関係な発言するなよ、出てけよ基地外 > バカとか平気で使う
精神レベルの低いお子ちゃまねぇ~、おっぱい飲ーみたーいのぉ?

>>59
ぷっ、鸚鵡返ししか出来なくなったな。そういう 罵倒 しかしなくなった時点で
まともに議論が出来なくなったという証拠。言いたいことがあるなら、お前が
説明すれば良いだろ。ただし、スレタイを読めるくらいの日本語力をつけてから
日本語を話せよ、お子ちゃま。

61:デフォルトの名無しさん
08/12/16 23:45:13
>>60
そんなに自分を責めるなよ

62:デフォルトの名無しさん
08/12/16 23:49:58
42 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:26:58
>>41
ANSIとは?C99とは?
馬鹿丸出しですね  < 罵倒発言をするのが当たり前

46 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:28:19
>>44
わかってないんだろうなこの馬鹿は  < また馬鹿を使ってる
答えてみろよ  < 挑発しているが、自分が答えられていないことに気づいていないw

52 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:34:43
ほんと馬鹿丸出しですね  < また馬鹿w
知らないなら知らなかったと言えばいいのに < 何も説明していない自分が知らないくせにw

↑必死すぎ。レス乞食は、相手にすると粘着してスレに常駐して
自分に反論したであろう者に、罵倒レスで揺さぶって反応を楽しむという
まともな社会人とも思えぬ言動をし、暇人であることをわざわざ
自己紹介するから面倒。時間帯からして、昼夜逆転したあいつだろうな。
これから明け方まで、こいつが担当するだろうけど、幼稚なソースコードに要注意。
自分こそが、正当な説明をせずに、相手を揺さぶって情報を引き出そうと
必死になっていることに気づいていないんでしょうね。知っている人は知っている。
C99とISO、ANSI準拠を知らない無知は放置よろ。

63:デフォルトの名無しさん
08/12/16 23:51:18
理解できてないなら黙ってればいいのに

64:デフォルトの名無しさん
08/12/16 23:53:31
>>43
C++はCに1を加えたもの、もしくは、加える前の状態であるが、後で1加えられた状態になるもの
C♯はCを半音上げたもの

65:デフォルトの名無しさん
08/12/17 00:03:38
>>2-1000
 とりあえず、スレッド違いなレスポンスは、控えるようにしてね。私のレスポンスを含めて。
チャットのように掲示板を使うガキは、もう一度掲示板の本質を考えてね。
最近ム板の一部のスレッドが、荒れているから、ID強制にした方が、良いと思う。
さて、リアルブートするか。

66:デフォルトの名無しさん
08/12/17 00:04:26
URLリンク(ja.wikipedia.org)
> 少なくとも現時点の最新版に関しては、C++のC言語に対する上位互換性は完全に失われた。
検索すれば分かるものを。あと、C++コンパイラでCのソースが通るとか、
あれこれ言ったらキリがないんで。言語の使用とコンパイラの仕様も別に考えてくれ。
インターフェースなどの環境のこともあるが、所詮は0と1の数値データを
ちょちょいのちょいと操作、処理しているのさ。実行しているコンピュータ、
汎用電子”計算機”がな。

目の前にある文字や色のデータ、これもある法則や画像の形式に応じて
数値データが並んでいるんであって、それを色や形のあるものにしているのがソフト。
ある数値データを、ある法則に則って処理をしているわけだが。
ソフトは結局、OSやハードウェアの性能の範囲内の処理をしているのさ、ふっ。

あっ、宿題?今日は疲れたから、明日やってあげるね。麻呂のクソースでw
我ながら、ちょっと陶酔しちゃったぜ、かっちょえ~~!

67:デフォルトの名無しさん
08/12/17 00:09:22
wikiがソースかよwwwwww

68:デフォルトの名無しさん
08/12/17 00:12:22
>>66
0と1の数値データを操作しているという点には同意しかねる

69:デフォルトの名無しさん
08/12/17 00:20:20
>>14
前スレ >>996 だけど、いい感じに仕上がったね。


70:デフォルトの名無しさん
08/12/17 00:21:03
>>56
なんでもいいのでお願いします

71:デフォルトの名無しさん
08/12/17 00:21:40
それを了承するとは。
興味があって勉強中ならもっと自分で頑張ってみてはどうかね

72:デフォルトの名無しさん
08/12/17 00:25:08
>>54
こんな感じ?文字定数('a' みたいなの)使えばASCIIコード知らなくてもできるよ
#include <stdio.h>
int main()
{
int c;
while((c = getchar()) != '\n')
if(c >= 'a' && c <= 'z')
printf("%d", c - 'a' + 1);
else if (c == ' ')
printf("%d", c - ' ' + 27);
putchar('\n');
return 0;
}


73:デフォルトの名無しさん
08/12/17 00:40:55
どなたか>>19をお願いします('人`)

74:デフォルトの名無しさん
08/12/17 00:41:38
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月17日AM7時30分まで
[5]特にありません。

75:デフォルトの名無しさん
08/12/17 00:46:56
>>68
なんで?事実だよ。0と1とはっきり記述されていはいないが、
磁気で記録するメディアには+か-、CDではレーザーの反射を読み取る仕組みが
挙げられ、穴が開いているかいないか、さらに、PC内部では電気信号で
やはり+か-かで、あとはそれらの組み合わせで、より多くのパターンを表現しているんだし。
ビットくらい、知っているだろ?そういうこと。



76:デフォルトの名無しさん
08/12/17 00:49:26
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
文字列をコピーする関数を作成せよ。
char *my_strncpy(char *s1, char *s2, int n);
ただし、s2の文字列をs1へ、最大でn文字未満コピーするようにし、
s1がCの文字列の条件を満たすように作成せよ。
また、return valueはコピーした文字のポインタとする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 17日まで
[5] その他の制限: ポインタを習っています。
ポインタの考え方が難しくてよくわかりません。
詳しい説明も付けてくれるとありがたいです。
よろしくお願いします。


77:デフォルトの名無しさん
08/12/17 00:50:08
>>67
そこまで言うなら、wikiに事実無根や間違いがあるなら指摘しな。
他の資料を見ても、単純に言い切れない過去の歴史と仕様は存在しているし。
あと、何かと笑うだけの奴も無能。説明と言う説明が出来ていないから。
頼む、ランクはともかく、大学で実験や研究をしていない奴は黙っていてくれ。
そういう機関でそれなりのものを見てくれば、汎用電子計算機に対する考えは変わるよ。
少なくとも、目の前の色や画像データでウハウハやったり、KI・MO・I!文字データで
ウヒウヒやっている奴らが、0と1のデジタルデータに翻弄されているように見えるから。
その文章や画像も、真面目なものなら良いけどさ。例え風景を撮影した写真も、
所詮は0と1の組み合わせの数値データ。それをハードなりソフトで展開して
人間が認識できるある形になっているが、もとは無機質なデジタルメディアに記録された数値データ。

78:デフォルトの名無しさん
08/12/17 00:51:29
>>63 お前が無知だということは、よーく分かった。お前が説明できないなら、黙っていれば良いだろw
あと、お前にお似合いのプレゼント。ちゃんとコンパイルして実行してくれw

#include <stdio.h>
int main(void) {
int num[]={89,111,117,32,105,115,32,97,32,98,105,103,32,102,111,111,108,32,109,97,110,46,32,72,97,104,97,104,97,46},i;
for(i=0; i<sizeof(num)/sizeof(num[0]); i++) putchar(num[i]);
return 0;
}


79:14
08/12/17 00:52:26
>>69
おかげ様で納得のいくプログラムになりました。
ご助力ありがとうございました。

80:デフォルトの名無しさん
08/12/17 00:54:22
step  f1 f2 f3 f4
10 2.434 4.234 3.242 4.566
20 2.767 4.756 3.666 4.867
30 2.534 4.555 3.777 4.555
40 2.777 5.355 4.244 5.424
というデータファイルがあり、これをファイル入力して離散し、最終的に
0か1のデータにしたいです。そのためにまずこのテキストからf1,f2,f3,f4の
最大値(2.777,5.335,4.244,5.424)と最小値(2.434,4.234,3.242,4.555)を
見つけ出し、(データの値-最小値)/(最大値-最小値)で各値を算出し
step  f1 f2 f3 f4
10  1  0    1   1
20  1  1    1   1
30  0   1    0   1
40  1   1    0   0
とう具合の結果を出したいのですが、できるかたよろしくお願いします。
自分で作ったものの頓珍漢な結果しか算出されません。TT



81:デフォルトの名無しさん
08/12/17 00:57:12
>>77
いつになったら大学名教えてくれんだよw

82:デフォルトの名無しさん
08/12/17 00:58:54
>>79
j=strlen(s);
は要らない

83:デフォルトの名無しさん
08/12/17 01:04:06
>>80
宿題なのかな?
まずは頓珍漢なコードを見せてもらおうか

84:デフォルトの名無しさん
08/12/17 01:04:07
0と1が思い浮かばなくても、ファイルのダンプをすれば、実行プログラム、テキストファイル、
画像データ、その他ファイルも、数値データの塊で、それを扱っているハードが
0と1の組み合わせで扱っていることくらい、普通に理解できる。
テレビを見て、画面の中に人がいるとは思わんだろ?w
あの映像も、何かハードウェアが映し出した映像を展開しているように、
数値データ(ファイル)をソフトに応じて実装された性能の範囲内で
処理を行っているのだよ、ワトソン君。

85:デフォルトの名無しさん
08/12/17 01:06:52
この説明で相手より優位に立てると思ってる知能の低さが泣けてくる。

86:デフォルトの名無しさん
08/12/17 01:11:08
URLリンク(cns-guide.sfc.keio.ac.jp)
> コンピュータ内部のすべての情報は ``デジタルデータ'' という情報形式で保存されています.
> デジタルデータとは,数字に置き替えられる形式の情報のことを指し,
> `0'と`1'の2通りの数字によって表現できます.文章や写真,映像,音声など
> 現実にあるさまざまな形式の情報は,デジタルデータに変換できます.
そういうこと。間違っていないことを、自分はそうは思いませんでは通用しないのが、
客観的な考えや意見が必要な人間社会で適合するには、重要なスキルだぞ。
嘘を言っていない人を嘘つき呼ばわりは、干されるだけ。もちっと理解力を身に着けような。

87:デフォルトの名無しさん
08/12/17 01:25:21
>>74
#include <stdio.h>
int main()
{
int r = 0, x, y;
char op;
if (scanf("%d%d %c", &x, &y, &op) != 3)
return 1;
switch (op)
{
case '+': r = x + y; break;
case '-': r = x - y; break;
case '*': r = x * y; break;
case '/': r = x / y; break;
}
printf("%d\n", r);
return 0;
}


88:デフォルトの名無しさん
08/12/17 01:27:20
ぶっちゃけ、ここで聞いて要らん薮蛇出した奴には一緒っていっててもいいだろ。

89:デフォルトの名無しさん
08/12/17 01:30:35
誰と戦ってるんだお前。

90:デフォルトの名無しさん
08/12/17 01:51:40
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
「果物名 単価 個数」の形式の取引のデータのファイルを読み込む。ファイルを読み込み終わった後に、「取引の総数」、
「合計の金額」、「金額が最大であった取引の(整数計算でする)」、「1取引あたりの平均金額(整数計算でする)」、
「金額の最大であった取引(最初を1とする)の番号」と「その金額」をprintfを用いて標準出力に表示するプログラムを作れ。
入力データファイルには /home/sample/PE1/2008/e12.txt を用いる。(ファイル名はfopenの因数に文字列定数として書いてよい)
ファイルの全データを格納できるような大きな配列を用いてはいけない。(平均は、金額の合計と取引の総数から計算できる)
個数と金額は、ゼロまたは府の値にならないとする。また、取引金額の最大値が複数の取引に現れることはないものとする。

出力の形式は次の実行結果の例を参考にせよ。
取り引数10
合計金額6424円 合計個数57個
平均112円/個 642円/取引
最大の取引は6番目で2064円
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2008年12月18日20時まで
[5] その他の制限:制限なし

よろしくお願いします。

91:デフォルトの名無しさん
08/12/17 02:02:09
これをc++のiostreamを使ったものに書き換えてください


#include <stdio.h>
int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k(){if(m[p]==0)
for(i=0;i<8;i++){
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;
if(c&&m[v]==t){a+=c;v=p;
if(d)do m[v]=t,v+=r[i];
while(m[v]!=t);
}}}
char*h="・○●\n";
int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0){for(p=9;p<82;++p)k(),printf("%.2s",&h[m[p]*2]);
if(a)for(d=a=s=p=8;a==8;k())t-2?(scanf("%d %d",&p,&i),p+=i*9):++p;
else if(s)s=0,printf("pass");
else break;t=3-t;
}
return 0;
}



92:デフォルトの名無しさん
08/12/17 02:06:54
>>76
strncpy と同じ仕様でよければこうかな
#include <stdio.h>
char *my_strncpy(char *s1, char *s2, int n){
int i;
for(i = 0; *s2 != '\0' && i < n; i++)
s1[i] = *s2++;
while(i < n)
s1[i++] = '\0';
return s1;
}
int main()
{
char *p, s1[257] = "zzzzzzzzzzzzzzz";
p = my_strncpy(s1, "sample", 7);
printf("p: %s s1: %s \n", p, s1);
return 0;
}


93:デフォルトの名無しさん
08/12/17 02:10:21
>>73
7行オセロを適当に改行してみたの?

94:デフォルトの名無しさん
08/12/17 02:15:25
>>93
はい、分かりやすいように改行してみて、色々いじくってみたんですがエラーになってしまってお手上げで…

95:デフォルトの名無しさん
08/12/17 02:16:40
>>91
#include <stdio.h> ⇒ #include <iostream>
printf("%.2s", &h[m[p]*2]); ⇒ cout << h[m[p]*2];
scanf("%d %d", &p, &i) ⇒ cin >> p >> i

余計なことだが、カンマで 1つの文に複数の式書くのってなんかきもいな

96:デフォルトの名無しさん
08/12/17 02:17:05
改行しただけで諦めただろwwwwww


97:>>83 前半
08/12/17 02:18:18
#include <stdio.h>
#include <stdlib.h>
#define MAX 4
int main(void)
{
FILE*fp;
char fname[80];
int step, a, b, c, d;
int f1[MAX], f2[MAX], f3[MAX], f4[MAX];
double max1, max2, max3, max4;
double min1, min2, min3, min4;
printf("入力ファイル名:");
gets(fname);
fp=fopen(fname,"r");
if(fp==NULL){
printf("%sをオープンできません\n",fname);
exit(1);
}


98:>>83 中半1
08/12/17 02:20:41

while(fscanf(fp,"%d%d%d%d%d%", &step, &a, &b, &c, &d)!=EOF){
max1=f1[0]; /*データの最大値*/
for(i=1;i<MAX;i++){
if(f1[i]>max1)
max1=f1[i];
}
max2=f2[0];
for(i=1;i<MAX;i++){
if(f2[i]>max2)
max2=f2[i];
}
max3=f3[0];
for(i=1;i<MAX;i++){
if(f3[i]>max3)
max3=f3[i];
}
max4=f4[0];
for(i=1;i<MAX;i++){
if(f4[i]>max4)
max4=f4[i];
}


99:デフォルトの名無しさん
08/12/17 02:21:30
FILE*fp;
char fname[80];
int step, a, b, c, d;
int f1[MAX], f2[MAX], f3[MAX], f4[MAX];
double max1, max2, max3, max4;
double min1, min2, min3, min4;
printf("入力ファイル名:");
gets(fname);
fp=fopen(fname,"r");
if(fp==NULL){
printf("%sをオープンできません\n",fname);
exit(1);
}


100:>>83 中半2
08/12/17 02:22:11
max1=f1[0]; /*データの最大値*/
for(i=1;i<MAX;i++){
if(f1[i]>max1)
max1=f1[i];
}
max3=f3[0];
for(i=1;i<MAX;i++){
if(f3[i]>max3)
max3=f3[i];
}

max2=f2[0];
for(i=1;i<MAX;i++){
if(f2[i]>max2)
max2=f2[i];
}
max4=f4[0];

101:デフォルトの名無しさん
08/12/17 02:23:35
おお、俺大人気。延々01の話されたよ!
もっとハードウェアに落ちた話かと思って、閾を超える超えないで判断していて、それを便宜上01に
してるだけ、といいたかった。
物理的な話だと思いこんでたからピットのtypoかと思ったりもしたのに。

デジタルデータは0と1なんだよ!とかここで講釈しても何になるというのかね。

102: ◆MiJ.aMrglc
08/12/17 02:23:48
[1] 授業単元:自分の勉強のため
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:無期限ですが、できるだけ早く解決したい

103:>>83 中半2
08/12/17 02:25:14
min1=f1[0]; /*データの最小値*/
for(i=1;i<MAX;i++){
if(f1[i]<min1)
min1=f1[i];
}
min2=f2[0];
for(i=1;i<MAX;i++){
if(f2[i]<min2)
min2=f2[i];
}
min3=f3[0];
for(i=1;i<MAX;i++){
if(f3[i]<min3)
min3=f3[i];
}
min4=f4[0];
for(i=1;i<MAX;i++){
if(f4[i]<min4)
min4=f4[i];
}


104:>>83 last
08/12/17 02:26:39
for(i=0;i<MAX;i++) /*離散データ算出*/
f1[i]=(f1[i]-min1)/(max1-min1);
for(i=0;i<MAX;i++)
f2[i]=(f2[i]-min2)/(max2-min2);
for(i=0;i<MAX;i++)
f3[i]=(f3[i]-min3)/(max3-min3);
for(i=0;i<MAX;i++)
f4[i]=(f4[i]-min4)/(max4-min4);
printf("%d %d %d %d %d ",step,f1[i],f2[i],f3[i],f4[i]);
}
fclose(fp);
return(0);
}


105:デフォルトの名無しさん
08/12/17 02:31:09
>>101
いや、普通に比喩としても、仕組みの説明でも0と1の話は出るよ。
有るか無いか?あるいは符号化の話では矩形はなども用いられて。
まぁ、デジタル機器の仕組みを知る上では、重要な知識だよ。

106:デフォルトの名無しさん
08/12/17 02:32:07
ただ、本当に0と1という文字の形や、画像にしてもアナログ方式みたいな
形式ではなく、あくまでも 信号 や 符号 ということで用いられる。

107:デフォルトの名無しさん
08/12/17 02:34:12
何を0として、何を1とするか、そこから考えないとだめじゃない?という
ハードよりの視点になってしまってたです。ごめんなさい。

108:デフォルトの名無しさん
08/12/17 02:37:48
1を3で割れば仕組みが分かる。

109:デフォルトの名無しさん
08/12/17 02:40:13
>>102
for (k=1; k<=512; k++) {
 int idx=-1;
 /* ransu配列に一致するデータがあるか探す */
 for (l=0; l<=15; l++){
  if (k == ransu[l]) {
   idx = l;
   break;
  }
 }
 if (idx != -1)
 {
  /* 見つかってたならransu1の値で振り分け */
  switch (ransu1[l]) {
   case 0:
    for (b=0; b<=14; b++) {
     fprintf(fpw1,"%d\n", dt15[b]);
    }
    break;
   case 1:
    for (c=0; c<=16; c++) {
     fprintf(fpw1,"%d\n", dt17[c]);
    }
    break;
  }
 }
 /* elseなのかどうかあまり解説見てない */
 for (d=0; d<=15; d++) {
  fprintf(fpw1,"%d\n", dt16[d]);
 }
}

110:デフォルトの名無しさん
08/12/17 02:41:47
って麻呂みたいに書いてすぐミスに気づくとかorz
- if (idx != -1)
+ if (idx != 16)
です。

とりあえずこういう風に分けてみるのはどうでしょうか。

111:デフォルトの名無しさん
08/12/17 02:42:59
ほんとだめだわ。。
>>110無しでお願いします。

吊ってくる

112:デフォルトの名無しさん
08/12/17 04:35:14
>>102
大雑把にこういうことがしたいのか?と思た

void fukumarete_ita_tokino_shori(int k) {
  if (ransu1[k] == 0)
    printf("dt15を書き込む処理\n");
  else
    printf("dt17を書き込む処理\n");
}

void fukumarete_inai_tokino_shori(void) {
  printf("dt16を書き込む処理\n");
}

// 含まれたら1、無いなら 0
int ransu_ni_fukumareru_ka_douka(int k) {
  int i;
  for (i=0; i<16; i++)
    if (ransu[i] == k)
      return 1;
  return 0;
}

//メイン処理~
  for (k=1; k<=512; k++)
  {
    if (ransu_ni_fukumareru_ka_douka(k))
      fukumarete_ita_tokino_shori(k);
    else
      fukumarete_inai_tokino_shori();
  }

113:デフォルトの名無しさん
08/12/17 05:52:47
for (k=1; k<=512; k++) {
for (l=0; l<=15; l++){
if (k == ransu[l]) {
switch (ransu1[l]) {
case 0:
for (b=0; b<=14; b++) {
fprintf(fpw1,"%d\n", dt15[b]);
}
break;
case 1:
for (c=0; c<=16; c++) {
fprintf(fpw1,"%d\n", dt17[c]);
}
break;
}
break;
}

}
if(l==16){
for (d=0; d<=15; d++) {
fprintf(fpw1,"%d\n", dt16[d]);
}
}
}

114:デフォルトの名無しさん
08/12/17 06:35:56
[1]授業単元:C言語
[2]問題文: 文字列をバイナリファイルに書き込み、書き込んだデータをテキストファイルへ書き込め。
[3]環境
[3.1]OS:WindowsXP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月19日AM9時00分まで
[5]特にありません。

115:デフォルトの名無しさん
08/12/17 06:47:26
>>80
長いコードは炉だでよろしく
変数の型がでたらめだったり、a, b, c, d に取り込んだ値をいつ使うのか不明だったり
いろいろ突っ込みどころがあるけど、

> (データの値-最小値)/(最大値-最小値)で各値を算出し

これ整数(0, 1)にならないんだけど、何をもって1を出力したいのか書いてください禿
いちおう、何らかの意味の 0, 1 を出力するコードはできている

116:デフォルトの名無しさん
08/12/17 06:53:50
>>114 UNIX環境だとどちらも違いでないな
#include <stdio.h>
#include <string.h>
int main()
{
char *s = "we will complete your home work!\n";
FILE *fb = fopen("data.bin", "wb"), *ft = fopen("data.txt", "w");
fwrite(s, sizeof(char), strlen(s), fb);
fprintf(ft, "%s", s);
return 0;
}


117:デフォルトの名無しさん
08/12/17 09:33:20
[1]授業単元:プログラミングC
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: gcc
[3.3]言語:C
[4]期限:2008年12月20日 18時30分

よろしくお願いします


118:デフォルトの名無しさん
08/12/17 09:43:26
>>117
コンパイルしてないからミスったらごめん
void getAverage(int kokugo[], int sansuu[], int rika[], float result[], int length)
{
int i;
for (i=0; i<length; i++)
result[i] = (float)(kokugo[i] + sansuu[i] + rika[i]) / 3;
}


119:デフォルトの名無しさん
08/12/17 10:43:46
>>95
ありがとうございます!
>>96
いえ、いじくってみますた!

120:デフォルトの名無しさん
08/12/17 10:52:32
>>119
あとね、
using namespace std;
をincludeの下に書いておこう
もしくは
std::cout
みたいにstd:: をつける

121:デフォルトの名無しさん
08/12/17 11:10:31
>>120
ありがとうございます!

using namespace std;
っての授業で使ってたんでこれを使うと自然に習った事を使ってるように見えるのですごく助かります!

122:デフォルトの名無しさん
08/12/17 11:38:13
前すれ>>461どなたかお願いします(;´д`)


[1] 授業単元:プログラミング応用演習
[2] 問題文:
  データベースのソート機能プログラム
   ・商品のデータ(名前と個数)を各項目で昇順・降順でソートできるようにする。
   ・まずどのフィールドでソートするか尋ねる文を表示し、
    入力されたら、次に表示を降順か昇順か選ばせる文を表示する。
    二つが入力されたら全フィールドでのソートを実行する。
   ・商品の名前はポインタ配列で宣言する。
   ・ソートにはバブルソートを用いる。
   ・個数の数値の入れ替えにはswap関数を用いる。
   (商品名(ポインタ配列)の入れ替えは外部関数でなくてもよい)
   ・文字列の比較には標準のstrcmp関数を使う。(昇順はA-Z、降順はZ-A)

     <商品名>   <個数>
     bread     199
     rice      74
     potate     33
     egg      284
     meat      131
         
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:gcc 3.4
 [3.3] 言語:C言語
[4] 期限:12月22日(月)


123:デフォルトの名無しさん
08/12/17 11:53:08
>>72
ありがとうございました

124:デフォルトの名無しさん
08/12/17 12:36:28
[1] 授業単元:
[2] 問題文(含コード&リンク):
"TOKYO"などの文字列を扱うにはchar型の配列を用いる。
ただし、文字列はNULL文字を含むので、"TOKYO"を配列で
表現するにはchar s[6]; あるいは char[]="TOKYO";
と宣言する。このとき、初期化方法は、
char s[6]="TOKYO"; あるいは char s[]="TOKYO";
であり、また
char[6]={'T','O','K','Y','O','\0'};  /* \0はNULL文字*/
としてもよい。
このとき、文字数をカウントするプログラムを関数を用いて
どなたか作成しなさい。
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (gcc32)
 [3.3] 言語: (C)
[4] 期限: ([2008年12月21日18:00まで] )
[5] その他の制限: (なし)


よろしくお願いします。

125:デフォルトの名無しさん
08/12/17 12:36:51
>>122
URLリンク(kansai2channeler.hp.infoseek.co.jp)

126:デフォルトの名無しさん
08/12/17 12:46:25
>>124
#include <stdio.h>
int mystrlen(const char *s) {
int c = 0;
while(*s++) c++;
return c;
}
int main(void) {
char s[] = "TOKYO";
printf("%sの文字数は%d\n", s, mystrlen(s));
return 0;
}

127:デフォルトの名無しさん
08/12/17 14:13:45
[1] 授業単元:
[2] 問題文:

個人データを表す構造体personは、氏名、年齢、身長、体重、BMI(= 体重 / 身長^2)のメンバからなる。
BMIからは肥満度を判別することができる(プログラム中に場合分けしてあるのでそちらを参考)。
以上から、肥満度と標準体重(= 22 * 身長^2)を求めるプログラムを作成せよ。

ただし、(リダイレクト)入力した値とBMIを構造体メンバに格納し、それらメンバの値、肥満度、標準体重を出力すること。
また、BMIおよび標準体重を計算する関数と肥満度を計算する関数を作成して利用すること。

[3] 環境
 [3.1] OS:win
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:リダイレクト処理を行ってプログラムを実行する。


頑張ってはみたものの、自分の力ではこれが精一杯でした。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

改善点など、助言をいただきたいです。

128:デフォルトの名無しさん
08/12/17 14:32:54
申し訳ないですが2問お願いしたいです。。。
while文を使うということは分かるのですが


キーボードから文字列を1行(改行するまで)読み込み、文字列を逆向きに出力するプログラムを作成しなさい。
【実行例】
文字列を入力: This is a pen.
逆向き出力 = .nep a si sihT


キーボードから文字列を1行(改行するまで)読み込み、つぎに検索する文字keyを1文字読み込む。
最初に入力した文字列の中に、文字keyと一致する文字が何文字あるかを数えて出力するプログラムを作成しなさい。
ただし、空白や記号などを全てカウントして構わない。

ただし、キーボードから文字を(文字列ではなく)1文字読み込むには、getchar文を使う。
 char key;
 key = getchar();
と記述すれば、キーボードから文字を1文字だけ読み込んで key の中に代入してくれる。
 scanf("%c",&key);
を使っても構わない。

【実行例】
文字列を入力: This is a pen.
文字key:s

文字sの頻度=2

129:デフォルトの名無しさん
08/12/17 14:54:11
>>127
助言はちょっとめんどいので、とりあえず動きそうな感じに。
合ってるかは分からないけど

int level(person * p)
{
if (p->bmi < 18.5) return 0;
else if (p->bmi >= 18.5 && p->bmi < 25) return 1;
else if (p->bmi >= 25 && p->bmi < 30) return 2;
else if (p->bmi >= 30 && p->bmi < 35) return 3;
else if (p->bmi >= 35 && p->bmi < 40) return 4;
else return 5;
}
int main()
{
person p[N];
int i;
double NW;
char * hogehoge[] = { "Light", "Normal", "Heavy 1", "Heavy 2", "Heavy 3", "Heavy 4" };
for(i = 0; i < N; i++)
{
fscanf(stdin, "%s %d %lf %lf", p[i].name, &p[i].age, &p[i].height, &p[i].weight);
NW = func(p[i].height, p[i].weight, &p[i]);
printf("%10s %3d歳 %fcm %fkg | 肥満度は「%s」, 標準体重 = %fkg です。\n", p[i].name, p[i].age, p[i].height, p[i].weight, hogehoge[level(&p[i])], NW);
}
return 0;
}

130:デフォルトの名無しさん
08/12/17 15:09:04
[1] 授業単元:
[2] 問題文:

個人データを表す構造体personは、氏名、年齢、身長、体重、BMI(= 体重 / 身長^2)のメンバからなる。
BMIからは肥満度を判別することができる(プログラム中に場合分けしてあるのでそちらを参考)。
以上から、肥満度と標準体重(= 22 * 身長^2)を求めるプログラムを作成せよ。

ただし、(リダイレクト)入力した値とBMIを構造体メンバに格納し、それらメンバの値、肥満度、標準体重を出力すること。
また、BMIおよび標準体重を計算する関数と肥満度を計算する関数を作成して利用すること。

[3] 環境
 [3.1] OS:win
 [3.2] コンパイラ名とバージョン:bcc
 [3.3] 言語:C
[4] 期限:明日まで
[5] その他の制限:リダイレクト処理を行ってプログラムを実行する。


頑張ってはみたものの、自分の力ではこれが精一杯でした。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

改善点など、助言をいただきたいです。


131:デフォルトの名無しさん
08/12/17 15:21:12
すみません、>>130はスルーして下さい(^^;

>>129
ありがとうございます。どうやら大丈夫そうです。
実は、関数で場合分けして数値を返して・・・というのは考えていたのですが、返り値をどうにか文字列にできないかとググり、真似したものが投稿したものです。
課題は>>129で提出しようと思いますが、もし文字列を返す関数で定義できるのであれば、教えていただきたいです。

132:デフォルトの名無しさん
08/12/17 15:28:31
>>131
char * level(person * p)
{
static char * hogehoge[] = { "Light", "Normal", "Heavy 1", "Heavy 2", "Heavy 3", "Heavy 4" };
if (p->bmi < 18.5) return hogehoge[0];
else if (p->bmi >= 18.5 && p->bmi < 25) return hogehoge[1];
else if (p->bmi >= 25 && p->bmi < 30) return hogehoge[2];
else if (p->bmi >= 30 && p->bmi < 35) return hogehoge[3];
else if (p->bmi >= 35 && p->bmi < 40) return hogehoge[4];
else return hogehoge[5];
}


133:デフォルトの名無しさん
08/12/17 15:35:30
>>131
もしかしたら見当はずれかもしれませんが、関数内でポインタ配列を定義しても、関数を抜けると消滅してしまうということはないのでしょうか??

134:デフォルトの名無しさん
08/12/17 15:37:48
>>133
staticだから大丈夫

135:デフォルトの名無しさん
08/12/17 15:41:49
>>134
そうなんですか!! (@o@
ちょっとstaticについてググってきます。ありがとうございました。

136:デフォルトの名無しさん
08/12/17 15:47:10
[1] 授業単元:
[2] 問題文(含コード&リンク):
aのx乗(a>0,a≠1,x∈Z)を求める関数power(a,x)を
作成してくなさい。
[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: (gcc32)
 [3.3] 言語: (C)
[4] 期限: ([2008年12月20日18:00まで] )
[5] その他の制限: (なし)

137:デフォルトの名無しさん
08/12/17 15:50:22
>>136
返り値どうやって返せばいいの?

138:デフォルトの名無しさん
08/12/17 15:51:14
環境 unixだったけ? 言語: C 期限: 今日 12月17日16:30まで^^;
次のプログラムは、階乗計算の関数factを作りsin(x)をテーラー展開した式でsin(30°)をもとめるプログラムです、抜けている所があります。(___)を埋めて完成しなさい
           2k-1
5    k-1    x
Σ  (-1)     ーーーーーー
k=1       (2k-1)!
※うまく指数が表せませんでした、見にくくて申し訳ないです。
#include<stdio.h>
#include<(____)>
int (___)(int m);
int main(void);
int main(void){
double x, s;
int k;
x =(___*________________)/180.0;
s =(__);
for( k=__; k <=__ k++){
s__ pow(___,___)*pow(__,_______)/fact(____);
}
printf("sin=%.7__\n",s);
return(0);
}
int fact(int m)
{
int s = 1, i;
if (m___0) return (__);
else for(i=1;i<=m;i++) s (___) i;
return (___);
}

139:デフォルトの名無しさん
08/12/17 15:56:25
授業中かよw

140:デフォルトの名無しさん
08/12/17 15:59:25
Unixな奴です。 C言語
1.正整数nを入力し、nまでで4で割り切れる数(4の倍数)の和を出力するfor文を利用したプログラムをつくりなさい
4+8+12+・・・・= ???
2.1の問題でfor文の変わりにWhile文を利用して作りなさい。
3.ある駐車場の駐車料金は、1時間(60分まで)350円で、以降15分ごとに90円です。
 入庫時刻と出庫時刻を入力し、駐車料金を算出すプログラムを作りなさい。
次のプログラムは、階乗計算の関数factを作りsin(x)をテーラー展開した式でsin(30°)をもとめるプログラムです、抜けている所があります。(___)を埋めて完成しなさい
です、お願いします。なにもわからず瀕死状態です。テスト中です;;

141:デフォルトの名無しさん
08/12/17 16:05:10
>136
全然わからないんです。
ヒントに
A=aのx乗
両辺の対数をとる
loge A=xloge a
となり
A=eのloge a
となる
log xはlog(x)と書く.

と書いてありました。


142:デフォルトの名無しさん
08/12/17 16:16:40
>>136
#include <stdio.h>

double power(int a, int x)
{
if (x == 0) return 1.0;
if (x < 0) return power(a, x + 1) / a;
if (x > 0) return power(a, x - 1) * a;
}
int main()
{
printf("%g\n", power(2, -3));
return 0;
}


143:デフォルトの名無しさん
08/12/17 16:23:05
>>140
今テスト中なの?

144:テスト中
08/12/17 16:23:45
>>143
そうです>_<

145:デフォルトの名無しさん
08/12/17 16:24:24
すげえ。

146:デフォルトの名無しさん
08/12/17 16:25:50
そろそろタイムリミットなんじゃないの?テスト。
テスト中に2chリロードしまくってるとか超笑える

147:デフォルトの名無しさん
08/12/17 16:28:30
提出の余裕をもってる可能性も考慮しろ

148:テスト中
08/12/17 16:29:05
もう\(^o^)/ オワタ ...

149:テスト中
08/12/17 16:30:52
ぐは OUT のゴング(チャイム)

150:デフォルトの名無しさん
08/12/17 16:41:27
>>140 (1)
#include <stdio.h>
#define HOGE 4
int main(void)
{
  int n=50;
  int num;
  int result = 0;
  for (num = n / HOGE; num>0; num--)
    result += num * HOGE;
  printf("n=%d sum=%d\n", n, result);
  return 0;
}

151:デフォルトの名無しさん
08/12/17 16:42:17
無茶しやがって・・・

152:デフォルトの名無しさん
08/12/17 16:42:42
>>140 (2)
#include <stdio.h>
#define HOGE 4
int main(void)
{
  int n=50;
  int result = 0;
  int num = n / HOGE;
  while (num>0)
    result += num-- * HOGE;
  printf("n=%d sum=%d\n", n, result);
  return 0;
}

153:デフォルトの名無しさん
08/12/17 16:50:59
[1] 授業単元:プログラミング演習
[2] 問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Borland
  [3.3] 言語:C++
[4] 期限:2008年12月22日(12:00)までです。

よろしくお願いします。

154:デフォルトの名無しさん
08/12/17 16:57:45
>>128
1.
#include <stdio.h>

int main(void){
char c[100] = "";
int i;
printf("文字列を入力:");
gets(c);
printf("逆向き出力:");
for(i = 99; i >= 0; i--) putchar(c[i]);
putchar('\n');
return 0;
}

155:デフォルトの名無しさん
08/12/17 16:58:42
>>128
2.
include <stdio.h>

int main(void){
char c[100] = "";
char key;
int i, j = 0;
printf("文字列を入力:");
gets(c);
printf("文字key:");
key = getchar();
printf("文字%cの頻度=", key);
for(i = 0; i < 100; i++) if(c[i] == key) j++;
printf("%d\n", j);
return 0;
}


156:デフォルトの名無しさん
08/12/17 17:00:56
>>140 (3)
#include <stdio.h>
int main(void)
{
  int time0, time1, temp;
  int result = 350;
  printf("入庫");
  scanf("%2d:%2d", &time0, &temp);
  time0 = time0 * 60 + temp;
  printf("出庫");
  scanf("%2d:%2d", &time1, &temp);
  time1 = time1 * 60 + temp;
  if (time0 >= time1)
    return 1;
  time1 -= (time0 + 60);
  if (time1 > 0)
    result += 90 * (time1 / 15 + 1);
  printf("%d円\n", result);
  return 0;
}

157:デフォルトの名無しさん
08/12/17 17:09:50
>>119です。
>>91をiostreamを使った型に>>95>>120を参考に書き直してみたのですが以下
のようなエラーが出ます。
21行目は「t-2?(cin >> p >>i),p+=i*9:):++p;」なのですが)の前に;を入れた
ら余計に沢山エラー文が出てしまいます。どうかお助けください!


#include <iostream>
using namespace std;

int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k(){if(m[p]==0)
for(i=0;i<8;i++){
for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;
if(c&&m[v]==t){a+=c;v=p;if(d)do m[v]=t,v+=r[i];
while(m[v]!=t);}}}
char*h="・○●\n";int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;
for(;;a=d=0){for(p=9;p<82;++p)k(),cout<<h[m[p]*2];
if(a)
for(d=a=s=p=8;a==8;k())
t-2?(cin>>p>>i),p+=i*9):++p;else if(s)s=0,cout<<"pass";
else break;
t=3-t;
}return 0;}
エラー文
In function 'int main()':last.cpp:21: error:expected primary-expression before ')' token
last.cpp:21: error: expected `;'before ')' token

158:デフォルトの名無しさん
08/12/17 17:14:35
あ、改行が多すぎて書き込めなくて改行を消したので21行目ではないですが、該当ヶ所は同じです。

宜しくお願いします!

159:デフォルトの名無しさん
08/12/17 17:17:57
括弧の数がおかしいじゃん
っつーか、やめとけ。

160:デフォルトの名無しさん
08/12/17 17:23:03
>>159
なにがやめとけなんですか?

161:デフォルトの名無しさん
08/12/17 17:23:44
そんなペースでやってるようじゃらちがあかんということ。
1年ぐらいかけるつもりなら止めないけど

162:デフォルトの名無しさん
08/12/17 17:26:30
レイアウトを整えて
変数の意味を理解し次第replaceして
短くするための記述方法を開く。i++*9とか。
理解してないうちにprintfをcoutにしてみました!とか何でそう無謀な方向に進むのかがわからんよ。

163:デフォルトの名無しさん
08/12/17 17:38:54
>>161-162
必修だから仕方なくやってるだけなんで、自分のものにしたいなんて思ってないんです。
どう直せばよろしいんでしょうか…('`)

164:デフォルトの名無しさん
08/12/17 17:44:24
>>163
>必修だから仕方なくやってるだけなんで、自分のものにしたいなんて思ってないんです。
その心意気が気に入ったのでコンパイル時にエラーが出ないようにしといた。

#include <iostream>
using namespace std;int p,t,a,d,c,v,i,m[90]={0},s,r[]={-10,-9,-8,-1,1,8,9,10};
void k(){if(m[p]==0)for(i=0;i<8;i++){for(c=0,v=p+r[i];m[v]==3-t;v+=r[i])c++;if(
c&&m[v]==t){a+=c;v=p;if(d)do m[v]=t,v+=r[i];while(m[v]!=t);}}}char*h="・○●\n"
;int main(){for(i=1,m[41]=m[49]=2;i<10;m[i++*9]=3)m[40]=m[50]=t=s=1;for(;;a=d=0
){for(p=9;p<82;++p)k(),cout<<h[m[p]*2];if(a)for(d=a=s=p=8;a==8;k())t-2?(cin>>p
>>i),(p+=i*9):++p;else if(s)s=0,cout<<"pass"; else break;t=3-t;}return 0;}

165:デフォルトの名無しさん
08/12/17 17:48:59
>>163
元のソースは他人のだな。

スレリンク(tech板:1-25番)

21

166:デフォルトの名無しさん
08/12/17 17:54:08
前スレ868です。
遅くなってすみません。
970さん、ありがとうございました。
しかし、問題文が不十分だったため、もう一度お尋ねします。
すみませんが、よろしくお願いします。

[1] 授業単元:プログラミングII
[2] 問題文:
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WinVista
 [3.2] コンパイラ名とバージョン:VC++2008
 [3.3] 言語:C言語
[4] 期限:2008年12月17日18:00
[5] その他の制限:問題文のテキストファイルに、例を載せておきました。

何度もすみませんが、どうかよろしくお願いします。

167:デフォルトの名無しさん
08/12/17 18:00:22
>>166
スレリンク(tech板:972番)
じゃね?

168:前スレ987
08/12/17 18:02:50
何度もすいません。自分では解らないので
再度、できる方がいればよろしくお願いしますm(-_-)m

[1] 授業単元: プログラミングⅡ
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: Windows
 [3.2] VC 6.0
 [3.3] 言語: C++
[4] 期限: 2008年12月17日3:00まで
[5] その他の制限:

課題2のみお願いします。
課題2で使う課題1のソースは自作して問題文に張っておいたので
それを使用して作成おねがいします。


169:デフォルトの名無しさん
08/12/17 18:03:46
>>154-155
ありがとうございます!


170:デフォルトの名無しさん
08/12/17 18:06:11
>>90
ほい。過去の資産流用。(笑)
URLリンク(kansai2channeler.hp.infoseek.co.jp)

後から表示例見たんで、もうそのままにしてある。
表示ぐらいは何とかしてくれ。必要な要素は揃ってるはず。
後、整数で計算ということだが、作ったテストデータで都合が悪かったんで、
double でやってる。これも気に入らんかったら変えてくれ。

しかしお前、誤字多いな。w

171:デフォルトの名無しさん
08/12/17 18:06:57
>>164
ありがとうございます!
>>165
このスレの119代目で教えてもらいましたw
そのスレの中身も参考になりました。どうやって動くか分からなかったのでw



あ、>>162さんの短くする方法を使って申し訳ないんですがまた書いて欲しいです…学校で習った記述と違う部分があるので…

本当にすいません'`


172:デフォルトの名無しさん
08/12/17 18:15:15
>>163
なーんだ。じゃあそれが必修であるような学科に入ったのが間違いだよ

173:デフォルトの名無しさん
08/12/17 18:15:20
>>153
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 128
#define Y 15
#define H 5
int main(void)
{
char buff[N];
int year[Y], height[H];
int i, j;
FILE *fp = fopen("cshukudai.csv", "r");
for (i = 0; i < Y; ++i) year[i] = 0; for (i = 0; i < Y; ++i) height[i] = 0;
while (fgets(buff, N, fp) != NULL) {
strtok(buff, ",");
year[atoi(strtok(NULL, ",")) - 1975]++;
height[(atoi(strtok(NULL, ",")) - 166) / 5]++;
}
puts("生まれた年のヒストグラム");
for (i = 0; i < Y; ++i) {
printf("%4d:", 1975 + i);
for (j = 0; j < year[i]; ++j) putchar('*'); puts("");
}
puts("\n身長のヒストグラム");
for (i = 0; i < H; ++i) {
printf("%3d-%3d:", 166 + 5 * i, 170 + 5 * i);
for (j = 0; j < height[i]; ++j) putchar('*'); puts("");
}
fclose(fp);
return 0;
}

174:デフォルトの名無しさん
08/12/17 18:16:32
1箇所間違えてた
>for (i = 0; i < Y; ++i) year[i] = 0; for (i = 0; i < Y; ++i) height[i] = 0;
for (i = 0; i < Y; ++i) year[i] = 0; for (i = 0; i < H; ++i) height[i] = 0;


175:デフォルトの名無しさん
08/12/17 18:18:10
>>153
URLリンク(kansai2channeler.hp.infoseek.co.jp)

176:デフォルトの名無しさん
08/12/17 18:32:44
>>153です

>>174さん
すいません、書くのを忘れていましたが
読み込みファイル(cshukudai.csv)の数値を変えると、表示結果も変わるようにするんでしたorz

例えば、生まれた年の最低値は1975年ですが
cshukudai.csvの誰か一人の生まれた年を1970年に変更すると
ヒストグラムは、1970:* 1971: 1972:... と表示されるようにしたいんです。

分かりにくくてすいません。。。

177:デフォルトの名無しさん
08/12/17 18:41:44
>>176
>>175 のはそうなってる。レコード数は25で決めうちしてるけど

178:168
08/12/17 18:47:24
期限は18日3時の間違えです
すいません

179:デフォルトの名無しさん
08/12/17 19:19:41
なんで7行オセロを宿題に出すの?自由課題なの?

180:デフォルトの名無しさん
08/12/17 19:20:12
>>87
ありがとうございます、助かりました


181:デフォルトの名無しさん
08/12/17 19:53:23
>>179
なんでそんな、個人的などうでも良い質問をして
宿題に答えるのとは直接関係の無いレスしてんの?
馬鹿なの?野次馬なの?

182:前スレ866
08/12/17 19:54:31
[2] 問題文(含コード&リンク)
1.数式を入力する(例:x^2y^3 + 2x^2z^3 - y^5)
2.並び替える(優先順位:乗数が大きいものが先、乗数が同じ場合は係数が大きいものを優先する)
[3] 環境
 [3.1] OS: Windows
 [3.2] gcc
 [3.3] 言語:C
[4] 期限: 2008年12月17日
数式を読み込んで式を個別に別けるとこまでは出来たんですが、(x^2y^3, +2x^2z^3, -y^5)
この別けた式から係数と乗数をどのようにして摘出するかアドバイスもらえませんか?

183:デフォルトの名無しさん
08/12/17 19:54:37
>>181
無能ほど退屈

184:デフォルトの名無しさん
08/12/17 20:10:52
7行オセロとか変態的だからコピってもバレること請け合いなのに。

185:デフォルトの名無しさん
08/12/17 20:15:19
前スレの931の方
どうもありがとうございます。

186:デフォルトの名無しさん
08/12/17 20:17:17
[1]C
[2]URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]LINUX
C
[4]6時間後(木曜日午前2時)
よろしくお願いします。

187:デフォルトの名無しさん
08/12/17 20:18:27
>>181
じゃあお前が7行オセロの宿題に答えてやれよwww

188:デフォルトの名無しさん
08/12/17 20:23:41
>>182
係数、xの乗数、yの乗数をひとまとめにしてスタックに入れてやればいいんじゃね?
xの2乗と1乗が同時に出ることがないのならば。

189:デフォルトの名無しさん
08/12/17 20:23:53
>>181はコンパイルできなくてイライラがたまってきた質問者

190:デフォルトの名無しさん
08/12/17 20:35:01
>>187
> じゃあお前が
ここは個人を指定、名指しして答えてもらうスレでもないんだが、
マジでスレタイと>>1が読めるようになってから、社会に出ろよ、ガキ

191:デフォルトの名無しさん
08/12/17 20:35:48
[1] 授業単元: 暇潰し
[2] 問題文:

 9桁までの素数で、
  右から一桁ずつ桁数を減らしていった数が全て素数であるもの
 を昇順に全て出力する (1行に1つずつ)。
 最後に、1行空けて総数を出力すること。
 出力先は、標準出力のこと。

 例) 233 => 23x => 2xx
  23 や 2 も上記条件を満たす素数である。

 また、
  「左」から一桁ずつ桁数を減らしていった数が全て素数であるもの
 も同様に求めよ。

 例) 223 => x23 => xx3

[3] 環境
  OS,コンパイラは、特に指定しない。
 言語は、 C/C++ のどちらでも。
[4] 期限: 12/25
[5] その他の制限:
 プログラムの実行時間は、2秒以下とする。


192:182
08/12/17 20:37:29
>>188
どうしたらいいですかね?
^の後の数字にしたら乗数が2桁以上のときに対応できないし…
文字列から数字だけを抽出する方法とかないですか?

193:デフォルトの名無しさん
08/12/17 20:39:32
>>192
strto?()たとえば、strtol()で調べてみるといいよ。

194:デフォルトの名無しさん
08/12/17 20:40:02
>>192
^の後ろに続く数字は全部乗数(っていうんだっけ?)として扱えばいいんじゃない?

195:デフォルトの名無しさん
08/12/17 20:41:23
>>192
いや乗数が2桁のときはスタックの考え方でいけるだろ
例えば1つ目の数値があったとして2つ目の数値が来たら
1つ目の数値×10+2つ目の数値を記憶するとか。

196:デフォルトの名無しさん
08/12/17 20:47:39
[1] 授業単元:C++
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC 2005
 [3.3] 言語:C++
[4] 期限: 12月18日18:00迄
[5] その他の制限:strlenを使ってはいけない。for,if,while文は可。
よろしくお願いします。

197:デフォルトの名無しさん
08/12/17 20:49:12
>>196
同じ学校か?
>>154-155

198:デフォルトの名無しさん
08/12/17 20:52:44
>>197
!?
うわ、見てませんでした。すいません。
ありがとうございます。

199:デフォルトの名無しさん
08/12/17 21:13:14
>>196 きんもぉ~★なクソースでおじゃる。
他人と似たソースを提出したら、疑われるでおじゃるよ。
麻呂のソースを採用してたもう。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

200:デフォルトの名無しさん
08/12/17 21:15:44
>>199
これまた酷いクソースだなwww

201:デフォルトの名無しさん
08/12/17 21:15:52
>>191
1個目は166個?

202:201
08/12/17 21:19:29
83に訂正!


203:デフォルトの名無しさん
08/12/17 21:22:16
>>196 2つめのクソースでおじゃる。チムポファイルを使うでおじゃるよ。
さすれば、環境によるけど、文字数の制限は気にせず、チムポファイルの
許容範囲にまで広がるでもじゃる。

URLリンク(kansai2channeler.hp.infoseek.co.jp)

204:デフォルトの名無しさん
08/12/17 21:24:31
>>199 >>203
いちいちファイルに読み書きしてるのかよ

205:デフォルトの名無しさん
08/12/17 21:30:41
>>204
いちいち文字配列に書き込むのは良いのかよ?
どちらにしろ、一時的に記憶領域を確保して記録している点は同じだろ。
意見するにしても、考えが浅はか過ぎるんだよ、未熟者ってのは。
自分がそうしないこと=ありえない、間違っているという考えは、
多様化する社会では通用しない、孤立する考え、思想。

206:デフォルトの名無しさん
08/12/17 21:33:11
まぁ、この世は不平等でも、C言語のライブラリは開発環境さえあれば、
誰でも同じものを共通して利用することが出来る。
しかし、経済力や技術力の差で、一般ピーポー君は
いくら高性能なエンジンを積んでも、混雑する路上を移動。
一方、金持ち、ヘリの免許とヘリを所有している大企業の社長は
昼食のために、ヘリで移動。費用は雲泥の差だがなw
そういうこと。

207:デフォルトの名無しさん
08/12/17 21:33:26
独走過ぎて他人に読めないソース書かれても困ったもんだがなw

個人的にはあのクソースはGJだとは思うがwww

208:191
08/12/17 21:36:53
>>202
83 で正解です。
因みに、最後(83番目)の素数は、73939133。


209:デフォルトの名無しさん
08/12/17 21:39:46
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
「果物名 単価 個数」の形式の取引のデータのファイルを読み込む。ファイルを読み込み終わった後に、「取引の総数」、

「合計の金額」、「金額が最大であった取引の(整数計算でする)」、「1取引あたりの平均金額(整数計算でする)」、

「金額の最大であった取引(最初を1とする)の番号」と「その金額」をprintfを用いて標準出力に表示するプログラムを作れ。

入力データファイルには /home/sample/PE1/2008/e12.txt を用いる。(ファイル名はfopenの因数に文字列定数として書いてよい)

ファイルの全データを格納できるような大きな配列を用いてはいけない。(平均は、金額の合計と取引の総数から計算できる)

個数と金額は、ゼロまたは府の値にならないとする。また、取引金額の最大値が複数の取引に現れることはないものとする。

出力の形式は次の実行結果の例。

取り引数10
合計金額6424円 合計個数57個
平均112円/個 642円/取引
最大の取引は6番目で2064円

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2008年12月17日23時59分
[5] その他の制限:制限なし


210:デフォルトの名無しさん
08/12/17 21:41:25
使えるものは使え。テンポラリーファイルだって、普通に使われているんだが?
技術力にしても、知識にしても、ここの連中はレベルが低すぎるんだよ。

211:デフォルトの名無しさん
08/12/17 21:54:03
>>172
そうなんですよねー
>>179
はいそうです。
>>184
なんとまぁ!w
ばれないように部分的に変えようと思うのでまた聞きにきますw
>>189
>>164でコンパイルできないんですか!?
まだ確かめられてなくて・・・

212:デフォルトの名無しさん
08/12/17 22:10:27
>>209
ちょーてきとー
#include<stdio.h>
int main(){
    int max_i=0,max_total=0;
    int i,num,cost;
    int sum = 0;
    int total_num = 0;

    if(!freopen("/home/sample/PE1/2008/e12.txt","r",stdin)){
        perror("/home/sample/PE1/2008/e12.txt");
        return;
    }

    for(i=0;scanf("%*s%d%d",&num,&cost)!=EOF;++i){
        int total = num*cost;
        if(total > max_total){
            max_total = total;
            max_i   = i;
        }
        sum += total;
        total_num += num;
    }
    printf("取り引数%d\n",i);
    printf("合計金額%d円 合計個数%d個\n",sum,total_num);
    if(i)printf("平均%d円/個 %d円/取引\n",sum/total_num,sum/i);
    printf("最大の取引は%d番目で%d円",max_i+1,max_total);
}

213:デフォルトの名無しさん
08/12/17 22:11:28
>>191
2個目は2166?

214:デフォルトの名無しさん
08/12/17 22:30:14
[1] 授業単元: 科学実習Ⅰ
[2] 問題文:
以下の配列を小さい順にならべ変えるプログラムを作れ。
int numbers{10} = {82,47,2,29,95,15,38,66,51.72}
[3] 環境
 [3.1] OS: windows xp
 [3.2] コンパイラ名とバージョン:gcc -o
 [3.3] 言語: C言語
[4] 期限: 2008年12月31日23時59分
[5] その他の制限:特になし、お願いします。

215:デフォルトの名無しさん
08/12/17 22:33:06
>>214
ほい
#include <stdlib.h>

int compare(const int *a, const int *b)
{
return *a - *b;
}

main()
{
int numbers{10} = {82,47,2,29,95,15,38,66,51.72} ;

int i;

qsort(numbers, sizeof(numbers) / sizeof(int), sizeof(int), (int (*)(const void*, const void*))compare);
for (i = 0; i < 10; i++) {
printf("%d", data[i]);
}
printf("\n");
}


216:デフォルトの名無しさん
08/12/17 22:34:47
>>191
> プログラムの実行時間は、2秒以下とする。
CPUの性能で差が出るのに?

217:デフォルトの名無しさん
08/12/17 22:42:29
>>191
2166個目の数は999962683で合ってる?
2166個だとprint文で結構掛かりそう

218:202=213
08/12/17 22:51:55
>>217
実はちゃんと昇順で出してなかったから、最大値をはかってみたんだけど、999962683になってたよ。
2166なのは出るけど超遅い!これ2秒でできるのだろうか?
1個目は0.8秒(Core2Duo3Ghz)だけど2個目は40秒くらいかかる。。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
もしよかったらどう解いたか教えてください。

219:217
08/12/17 22:55:47
>>218
前の桁で求めた数値を利用するくらいしかしてない
自分の環境だとギリギリ2秒くらい
URLリンク(kansai2channeler.hp.infoseek.co.jp)

220:デフォルトの名無しさん
08/12/17 22:56:47
それまで求めた素数を使ってもおkなんでしょ?
右にずらす、つまり10で割っていった値がそれ以前に求めた素数に
該当すればおk。

221:デフォルトの名無しさん
08/12/17 23:00:13
なにいってんだ?

222:217
08/12/17 23:00:26
>>220の方法が最速っぽいな

223:デフォルトの名無しさん
08/12/17 23:01:08
>>221
だから理解力のない、日本語力もない馬鹿はレスするなつってんだよ、基地外

224:217
08/12/17 23:01:23
ん、右にずらす前の素数判定で時間食うか

225:デフォルトの名無しさん
08/12/17 23:01:46
>>221
それまで求めた値を使えば、わざわざ右にずらした値が
素数か、また求めなおす必要もないんだが?池沼は黙ってろよ。

226:デフォルトの名無しさん
08/12/17 23:02:41
>>224
エラトステネスの篩を使うのもありじゃね?ただ、いくら速度を求めても
最終的にはCPUの性能に左右される。

227:デフォルトの名無しさん
08/12/17 23:04:44
単純にふるいがけすると10億要素必要だからキツイ。
2 3の倍数を除いたとしても3億なのでキツイ。
9桁までの素数を配列に詰めて2分探索するのがいいと思う

228:デフォルトの名無しさん
08/12/17 23:06:17
>>227
それ言うと>>191の解をあらかじめテーブルに持っておきたくなるなw

229:デフォルトの名無しさん
08/12/17 23:07:47
[1] 授業単元: ネットワークプログラミング演習
[2] 問題文:
HTTP1.1プロトコルを満たすサーバとクライアントを作れ

URLリンク(kansai2channeler.hp.infoseek.co.jp)
までは出来たんですが、
サーバが、fgetsしてクライアントの要求のGET /index.htmlを確認したら、残りの要求を無視するようにすると、ときどきパイプ破壊と表示されてプログラムが停止します。
これってどういう原因で起きてるんでしょう?(sarver.cの70行目前後です)
後、のこった要求を
while(fgets (str, STR_SIZE, ns_read));
で読もうとするとfgetsのところから進まなくなります。
これもなぜなんでしょう?
[3] 環境 Linux gcc
[4] 期限: 明日の昼頃まで
[5] その他の制限: とくになし

みにくいソースですけどよろしくお願いします。
他にも改善点などあれば教えていただきたいです。

230:デフォルトの名無しさん
08/12/17 23:08:23
処理の中で求めてその一覧をキャッシュして使うのは何も問題ないっしょ
9桁だからintにおさまるし、悪くはないと思う。

231:デフォルトの名無しさん
08/12/17 23:11:29
>>225
右にずらすって考え方がそもそもおかしい。
元の素数に数値を足してそれが素数か判定してくのが早い。

232:デフォルトの名無しさん
08/12/17 23:12:18
>>231
問題文がそうなんだが?いちいち五月蝿いなぁ、あんたは。

233:デフォルトの名無しさん
08/12/17 23:15:19
いやいや、>>231じゃないが、そういう順で判定を行えとは書かれてないよ。
そういう形の数であるかどうかだけなので、組み立てた結果そういう数字になっているというのもありだと思う。
が、そっちの方が速いかどうかは俺には分からん。

234:デフォルトの名無しさん
08/12/17 23:16:20
>>219
実行速度確認したかったけどコンパイルできなかった…
Borland C++なんですけど

235:デフォルトの名無しさん
08/12/17 23:17:28
long longをintにすれば?

236:デフォルトの名無しさん
08/12/17 23:18:16
それまで求めた素数を10倍して、10未満の素数を足してそれが素数か?
それを繰り返せばおkってか?

237:デフォルトの名無しさん
08/12/17 23:19:59
10未満の素数ではなく、1 3 7 9 について吟味すればいいんじゃないかな。

238:デフォルトの名無しさん
08/12/17 23:22:31
>>235
ありがとうございます!神よ!

239:デフォルトの名無しさん
08/12/17 23:37:43
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月18日AM7時30分まで
[5]特にありません,よろしくお願いします。


240:デフォルトの名無しさん
08/12/17 23:37:47
[1]授業単元:プログラミングC
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: gcc
[3.3]言語:C
[4]期限:2008年12月20日 18時30分

よろしくお願いします



241:デフォルトの名無しさん
08/12/17 23:40:55
[1] 授業単元:プログラミングⅡ
[2] 仕様に基づいたシミュレーションプログラムを作成し、シミュレーション結果をExcelでグラフにしなさい。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:WindowsXP
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio .NET 2003
 [3.3] 言語:c言語
[4] 期限:12月18日

よろしくお願いします

242:191
08/12/17 23:48:08
レス遅くなりました  ごめんなさい

>>213,217,218
ですね。
最後の素数は、 999962683 です。

桁制限を外せば、
全部で 4260 個で
最後の素数は、357686312646216567629137 (24桁)だそうです。
どちらも有限集合なんですね。


にしても、回答が速いですね。
すごい。

>>216
32ビット CPU 動作周波数1GHz 以上を想定してました。

>>233 さんの言う通り、
求め方を指定したつもりは無かったです。

>>219
一桁の素数はハードコーディングでもよかった・・・スミマセン


243:デフォルトの名無しさん
08/12/17 23:49:37
999962683 > 99996268 < ん?

244:デフォルトの名無しさん
08/12/17 23:51:43
9999626 < んん?
999962 < んんん?
99996 < んんんん?
9999 < んんんんん?
999 < んんんんんん?
99 < んんんんんんん?
9 < えっ!?


245:デフォルトの名無しさん
08/12/17 23:51:48
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
数学と英語の成績の2つのファイルを読んで処理する。

数学の成績ファイル math.txt の各行は「学生番号」「名前」「数学の得点」のデータがあり

英語の成績ファイル english.txt は「学生番号」「名前」「英語の得点」のデータがある。

2つのファイルの行数は同じ。原則的に学生も同じ順序だが、いくつかは間違っている。

2つのファイルを読み込み、両ファイルで学生番号が一致する学生は「2科目得点の和が140点以上」

かを判定し、そうなら「学生番号」「名前」「数学の得点」「英語の得点」「合計得点」を、

不一致ならば「<番号>と<番号>で一致せず」を1行でreport.txtという名のファイルに出力。

[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C
[4] 期限: 2008年12月18日12時00分

246:デフォルトの名無しさん
08/12/17 23:56:35
>>243
2種類あるから。。

247:デフォルトの名無しさん
08/12/17 23:57:47
>>242
へええ、有限なんだねぇ。
そりゃそうか、と納得する一方で、なんか残念な気持ちも。

248:デフォルトの名無しさん
08/12/18 00:14:45
麻呂の会社は有限でおじゃるが、残念でもないでおじゃるよ。

249:デフォルトの名無しさん
08/12/18 00:26:52
[1] 授業単元:データ構造とアルゴリズム
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限: 明日の12時まで
[5] その他の制限:特になし


250:デフォルトの名無しさん
08/12/18 01:20:48

URLリンク(p1-up.axfc.net)
[1] 授業単元:
[2] 構造体の配列を作った住所録(メニューを使った選択式)
  関数を使ってプログラムの最初にファイルを呼び出し 入力ファイルから構造体を読み込む(readモード)
    メニューから終了を選ぶと配列からファイルへ出力
 
[3] 環境:普通
 [3.1] WindowsVista
 [3.2] visualstudio 2005
 [3.3] 言語 C
[4] 期限: ([2008年12月18日12:00まで]
[5]住所録のcppファイルは↓にうpしてあります キーワードは「C言語」です
URLリンク(p1-up.axfc.net)

251:デフォルトの名無しさん
08/12/18 02:08:15
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):下のレス
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2008年12月24日 13:00
[5] その他の制限: ヒントを使って作るらしいです。よろしくお願いします。

252:251
08/12/18 02:10:48
[2]問題文
下記プログラムは 文字列Tokyo を逆順に表示するプログラムである.

#include<stdio.h>
main()
{
static char string[ ]=“Tokyo”;
char *cp;
cp = string + 6;
while(--cp >= string)
putchar(*cp);
putchar(‘\n’);
}

実行結果
oykoT

上記プログラムを関数recpy()を作成して書き直しなさい.main関数をヒントに示す.データのやり取りにはポインタを用いること

253:251
08/12/18 02:11:20
関数作成のヒント
*ptr1 *ptr2 tempc  の3つの変数を宣言して使用する.
逆に表示させるためには,文字の入れ替えをしなくてはならない.ソートプログラムを思い出す.

char *recpy(ptr)
char *ptr;
{
char *ptr1, *ptr2, tempc;
ptr1 = ptr2 = ■■■ ここは考える ■■■;
while(■■■ ここは考える ■■■){
■■■ ここは考える ■■■
}
--ptr2;
while(■■■ ここは考える ■■■)
{
文字列の入れ替え
}

254:デフォルトの名無しさん
08/12/18 02:24:43
スレ違いで申し訳ありませんが、>>191 の答えのソースはありますか?
自分でも作ってみましたが、83個でしたが、昇順に並べるところまでは出来なかったものでして。

255:デフォルトの名無しさん
08/12/18 02:54:25
どうスレ違いか分からないが、>>191が満足してるということはどこかにうまく動作するコードがあるだろう。
そのコードを入手、提出することで>>254 >>191のいずれかまたは両方の評価が下がるだろう。

256:デフォルトの名無しさん
08/12/18 02:55:32
>>255
> どうスレ違いか
宿題じゃないから。ある人が出した、突発的な課題だから。

257:デフォルトの名無しさん
08/12/18 02:56:38
授業単元が暇つぶしだw

258:デフォルトの名無しさん
08/12/18 02:58:12
>>255
> のいずれかまたは両方の評価が下がるだろう。
なんで評価が下がるか、こっちの方が分からんわ・・・

259:デフォルトの名無しさん
08/12/18 03:29:21
同じコードが複数提出されたらそりゃ減点だろ

260:デフォルトの名無しさん
08/12/18 03:31:45
>>191 なんか乗り遅れて悔しいぜ。 昇順にしてない分だけ >>219 より早いかもしれない
#include<stdio.h>
#include<time.h>
int isprime(int value){
int i;
if(value<=1) return 0;
if(value%2==0) return value==2;
for(i=3;i*i<=value;i+=2) if(value%i==0) return 0;
return 1;
}
void foo(int value, int digit, int maximum){
int i, next_value;
if(isprime(value)){
printf("%d\n", value);
if(value>=maximum/10) return;
next_value=value, digit*=10; // こっちが左から消しても素数
// next_value=value*10, digit=1; // こっちが右から消しても素数
for(i=1;i<=9;i++){
next_value+=digit;
if(next_value>maximum) return;
foo(next_value, digit, maximum);
}
}
}
int main(void){
int i;
clock_t s;
s=clock();
for(i=1;i<=9;i++) foo(i, 1, 1000000000);
printf("%.3f[sec]\n", (double)(clock()-s)/CLOCKS_PER_SEC);
return 0;
}

261:デフォルトの名無しさん
08/12/18 03:37:55
>>260
右からのは83個と少ないから速いね。自分のも>>260のも、自分の環境では
0 ~ 15ms で終了してるから、ほぼ処理時間は同じかな。自分も並び替えてはいないけど。

262:デフォルトの名無しさん
08/12/18 03:48:27
>>226
エラトステネスの篩でやってみた
10^9 以下の素数をすべて求める段階だけで 60 秒かかる (PentiumM 1.7GHz)
素数テーブルが完成した後から時間を計ると早い(0.10秒)けどねw

263:デフォルトの名無しさん
08/12/18 04:01:54
>>262
すまん、思いつきで言ったが、明らかに効率が悪いとすぐに分かったw

264:250
08/12/18 04:04:06
URLリンク(kansai2channeler.hp.infoseek.co.jp)
さっきつながらなかったので送れてしまいましたがうpしました。
お願いいたします

265:デフォルトの名無しさん
08/12/18 05:10:07
>>209=>>90
てんめぇ、せっかく人が作ってやってんのに、同じ宿題書き込んでんじゃねーよ。
10個程度しかレス見られないのかよ、カス。

266:デフォルトの名無しさん
08/12/18 05:51:12
同じ学校の別の生徒だろ

267:デフォルトの名無しさん
08/12/18 05:59:02
>>229
>>239
>>240
>>241
>>245
>>249
>>251



268:デフォルトの名無しさん
08/12/18 06:11:42
[1]授業単元:C言語
[2]問題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月18日AM8時00分まで(それか昼まで・・)
[5]急で申し訳ないのですがよろしくおねがいします


269:デフォルトの名無しさん
08/12/18 06:24:24
>>268
#include<stdio.h>

int main(void)
{
unsigned int x=0x10fa; /*演算対象の初期化*/
unsigned int y=0x000F;

printf("%X AND %04X : %04X\n",x,y,x&y);
printf("%X OR %04X : %04X\n",x,y,x|y);
printf("%X XOR %04X : %04X\n",x,y,x^y);
printf("%X >> 2 : %04X\n",x,x>>2);
printf("%X << 2 : %04X\n",x,x<<2);
return 0;
}


270:デフォルトの名無しさん
08/12/18 06:25:12
スイマセン、どなたか
>>239 の方を解いてもらえないでしょうか?

271:デフォルトの名無しさん
08/12/18 06:38:13
>>239(あまり検証してない)

#include <stdio.h>

#define NINZU 3
#define KAMOKU 4

int main()
{
int ten[NINZU][KAMOKU]={ /*国語、算数、理科、社会の順に格納*/
{69,62,68,72}, /*伊藤くんの成績*/
{28,100,88,48}, /*田中さんの成績*/
{60,48,65,76}}; /*林くんの成績*/
int total = 0; /*合計点数*/
int i, j, all60over;

for (i=0; i<NINZU; i++) {
total = 0;
all60over = 1;
for (j=0; j<KAMOKU; j++) {
total += ten[i][j];
if (ten[i][j] < 60) all60over = 0;
}

if (total >= 260 || all60over) {
printf("OK\n");
} else {
printf("NG\n");
}
}
return 0;
}

272:デフォルトの名無しさん
08/12/18 06:55:16
>>268
っつか、演算子を使わずに実装しろってオチは無かろうな?

273:268
08/12/18 07:15:39
>>272
ハイ、それはないです。

274:デフォルトの名無しさん
08/12/18 07:53:27
>>240
それくらい短い問題文なら、upローダ使わなくて、直接書いても大丈夫だと思う。
#include <stdio.h>

int getTeenagerCount(int *age){
return *age<0?0:(*age/10==1)+getTeenagerCount(age+1);
}

int main(){
int age[] = {18,29,10,19,22,9,20,-1};
printf("The number of teenager:%d\n",getTeenagerCount(age));
}

275:デフォルトの名無しさん
08/12/18 09:12:37
>>264
どれ?

276:250
08/12/18 10:59:58
8391zip 住所録 と書いてあるものです

277:デフォルトの名無しさん
08/12/18 11:40:27
>>245のものですが
リミットが迫ってるので出来るだけ早くお願いします。

278:250
08/12/18 12:25:46
リミット過ぎてしまいましたが
もしよろしければ引き続きお願いたします<(_ _)>

279:デフォルトの名無しさん
08/12/18 12:37:59
「2科目得点の和が140点以上」かを判定したらどうするの?
入力はどんな形式のファイルになっているの?
入力は正しい形式になっていると仮定してもよいの?

280:デフォルトの名無しさん
08/12/18 12:43:50
>>277
URLリンク(kansai2channeler.hp.infoseek.co.jp)

281:166
08/12/18 12:44:27
>>167
習ってない関数が多いので、だめだと言われました・・・

すみませんが、もう一度お願いします。

282:デフォルトの名無しさん
08/12/18 12:53:25
>>280
ありがとうございます。

283:デフォルトの名無しさん
08/12/18 13:20:40
>>245
ファイル形式はcsvでよろしいでしょうか?


284:デフォルトの名無しさん
08/12/18 13:26:32
>>281
習ってない関数ってどれのことだよ

285:デフォルトの名無しさん
08/12/18 13:39:17
カマかけられたんじゃないの?

286:デフォルトの名無しさん
08/12/18 13:42:58
前スレ972のどこに習ってない関数が・・・

287:デフォルトの名無しさん
08/12/18 14:03:24
>>278
そもそも課題の内容が分からないし、
そのコンパイルも通らないファイルをどうしたいのかさえ


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch