C/C++の宿題を片付けます 120代目
■ このスレッドは過去ログ倉庫に格納されています
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・問題文やコードをリンクするときは、一言内容にについて説明をつけましょう。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはコラー!!です。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
【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++の宿題を片付けます 119代目
http://pc11.2ch.net/test/read.cgi/tech/1228313292/
0002デフォルトの名無しさん
2008/12/16(火) 19:52:010003デフォルトの名無しさん
2008/12/16(火) 19:54:32<-‐ヘ、9ノ‐>
从!イノiノヘilト これどうぞ
゙ヘ(!|´ヮ`ノリ シュッ シュッ シュッ、アレ?
/∩と彡 /
彡 ノ,! / ./ ミ ξ
ξ く/ ./ 旦
旦 / ./
/ / ミ ξ
/ / 旦
| ̄ ̄ ̄ ̄ ̄|
| |
0004デフォルトの名無しさん
2008/12/16(火) 20:32:25a * Pn * (1 - area/Pn);
だとすると、
a * (Pn -area)
と言うことだもの。
整理されていない時点でおかしいし、内容も・・・
0005デフォルトの名無しさん
2008/12/16(火) 20:34:58int 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 される
0006デフォルトの名無しさん
2008/12/16(火) 20:43:500007998
2008/12/16(火) 20:59:33char* 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
0008デフォルトの名無しさん
2008/12/16(火) 21:08:11[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使用禁止
お願いします。
0009デフォルトの名無しさん
2008/12/16(火) 21:10:190011デフォルトの名無しさん
2008/12/16(火) 21:14:170012デフォルトの名無しさん
2008/12/16(火) 21:14:50#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;
}
0013デフォルトの名無しさん
2008/12/16(火) 21:24:40[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8358.txt
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:2008年12月17日00:00まで
[5] その他: プログラム内部の動作説明やアルゴリズム説明、6)Specialの部分以外をお願いします。
0014デフォルトの名無しさん
2008/12/16(火) 21:24:45前スレ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])){
とすることで連続して空白文字がきた場合はカウントせず、
文字+空白文字となっているときのみカウントするようにしました。
0015デフォルトの名無しさん
2008/12/16(火) 21:29:49word("word?");
0016デフォルトの名無しさん
2008/12/16(火) 21:47:28申し訳ありませんが、もう一度お尋ねしたいと思います。
[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);
}
001716
2008/12/16(火) 21:48:01このプログラムの一部を関数にして書き換えたとする。
#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
001816
2008/12/16(火) 21:48:52いただいた回答を元に実行してみたのですが…
#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;
}
0019デフォルトの名無しさん
2008/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;
}
002016
2008/12/16(火) 21:49:26\\FILESV7\UN$\NE200071\デスクトップ\V\v.cpp(28) : error C2440: '=' : 'void' から 'int' に変換することはできません。
(新しい動作 ; ヘルプを参照)
void 型の式は他の型へ変換できません。
とエラーがでてしまいます…なぜでしょうか?
長々と、何度も申し訳ありません。
どなたか回答していただけたら嬉しいです。
0021デフォルトの名無しさん
2008/12/16(火) 21:53:52#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;
}
0022デフォルトの名無しさん
2008/12/16(火) 21:54:59要するにその関数は題意を満たしていない。
0023デフォルトの名無しさん
2008/12/16(火) 22:03:24#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;
}
0024デフォルトの名無しさん
2008/12/16(火) 22:06:25#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;
}
0027デフォルトの名無しさん
2008/12/16(火) 22:13:51sum = N * (N+1) * (2*N+1) / 6;
0028デフォルトの名無しさん
2008/12/16(火) 22:15:18おれがなぐさめてやる。
002914
2008/12/16(火) 22:20:26「word("word?");」と入力したとき、英単語「word」は2つあるにもかかわらず、
出力結果は1になってしまう、ということでしょうか?
0030デフォルトの名無しさん
2008/12/16(火) 22:59:06ブローも用意してアルヨー!
0031デフォルトの名無しさん
2008/12/16(火) 23:06:190 にならない?
0032デフォルトの名無しさん
2008/12/16(火) 23:08:05途中まででも結構です
0033デフォルトの名無しさん
2008/12/16(火) 23:09:53Cが強化されたのがC++ってことでいいのかな?
CでできることはC++で全て可能 とか
0034デフォルトの名無しさん
2008/12/16(火) 23:15:09ここで質問する話じゃねえだろ糞野郎
0035デフォルトの名無しさん
2008/12/16(火) 23:17:44大人しくここから出ていけよ、何か気に入らない発言があると
罵倒しないと気が済まない、一言居士
0036デフォルトの名無しさん
2008/12/16(火) 23:18:36C++というくらいだから、Cに何かを付け加えたもの。
一番大きいのはクラス。
0037デフォルトの名無しさん
2008/12/16(火) 23:19:38プログラムを作る人はこうなのだろうかと思うと、悲しくなってくる
0038デフォルトの名無しさん
2008/12/16(火) 23:21:080039デフォルトの名無しさん
2008/12/16(火) 23:22:06>>13
前スレの69, 233, 266
http://pc11.2ch.net/test/read.cgi/tech/1228313292/69
http://pc11.2ch.net/test/read.cgi/tech/1228313292/233
http://pc11.2ch.net/test/read.cgi/tech/1228313292/266
0040デフォルトの名無しさん
2008/12/16(火) 23:22:28そんなスレ違いな発言を敢えてするお前もどうかと。
0041デフォルトの名無しさん
2008/12/16(火) 23:23:19Cにだって、ANSIとC99では動作が違う
そのくらいの差だろう
0042デフォルトの名無しさん
2008/12/16(火) 23:26:58ANSIとは?C99とは?
馬鹿丸出しですね
0043デフォルトの名無しさん
2008/12/16(火) 23:27:15┌─┐
│ ++
│ ++
└─┘
みたいにC++が更に強化されたのがC#ってことでいいのかな?
0044デフォルトの名無しさん
2008/12/16(火) 23:27:33程度の低いレスですねw
0045デフォルトの名無しさん
2008/12/16(火) 23:27:460046デフォルトの名無しさん
2008/12/16(火) 23:28:19わかってないんだろうなこの馬鹿は
答えてみろよ
0047デフォルトの名無しさん
2008/12/16(火) 23:28:37>>42
わかってないんだろうなこの馬鹿は
答えてみろよ
0048デフォルトの名無しさん
2008/12/16(火) 23:29:35冗談でそういわれている。
シンタックスは、似ているように見えるが、全く別物。
0049デフォルトの名無しさん
2008/12/16(火) 23:30:02ANSIとは?C99とは?
0050デフォルトの名無しさん
2008/12/16(火) 23:32:5442 名前:デフォルトの名無しさん 投稿日:2008/12/16(火) 23:26:58
>>41
ANSIとは?C99とは?
馬鹿丸出しですね
↑特徴:罵倒(バカ、アホといった類)の言葉を平然と投げかける。
これだけで人間性の低さが露呈しているのだが、本人は気づかないんでしょうね。
この世に、自分が知っていること、知らないことなんていくらでもあるが、
知らないようなことを持ち出して、知らなかったことを責め立てるくせに、
いざ自分が重要なことを知らないと他人から指摘されると、逆切れして
無関係な話を始め、お前は(自分がよく熟知していると自身のあることを持ち出して)
〜を知っているのか?自分基準でそれをこう答えないと、知らないことにするぞ、みたいな
自分の経験不足を無視して、相手の粗探しを始める。
あと、すれ違いだから、他所でやれ。
0052デフォルトの名無しさん
2008/12/16(火) 23:34:43知らないなら知らなかったと言えばいいのに
0054デフォルトの名無しさん
2008/12/16(火) 23:36:18[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言語
お願いします
0055デフォルトの名無しさん
2008/12/16(火) 23:37:05いや、あんた誰にレスしてんだ?無関係な人にレスして、自分の発言の汚さを
指摘されているって気づかない?バカだの丸出しだの、言動が低俗過ぎ。
そういう奴が言う言葉なんて、相手の粗探しをしようとしているとしか思えないのだが。
相手が何を知らないか、指摘すらしてないじゃん。自分はそうは思わない、程度の主張しかせず
相手にされていないって気づかない?w
0056デフォルトの名無しさん
2008/12/16(火) 23:38:00文字コードはEBCDICでいいのかい?
0057デフォルトの名無しさん
2008/12/16(火) 23:38:33お前は誰だ
0058デフォルトの名無しさん
2008/12/16(火) 23:39:39http://ja.wikipedia.org/wiki/C%E8%A8%80%E8%AA%9E
もちっとC言語について詳しくなってから発言しろ、青二才。
0059デフォルトの名無しさん
2008/12/16(火) 23:40:38もちっとC言語について詳しくなってから発言しろ、青二才。
0060デフォルトの名無しさん
2008/12/16(火) 23:43:31無関係な発言するなよ、出てけよ基地外 > バカとか平気で使う
精神レベルの低いお子ちゃまねぇ〜、おっぱい飲ーみたーいのぉ?
>>59
ぷっ、鸚鵡返ししか出来なくなったな。そういう 罵倒 しかしなくなった時点で
まともに議論が出来なくなったという証拠。言いたいことがあるなら、お前が
説明すれば良いだろ。ただし、スレタイを読めるくらいの日本語力をつけてから
日本語を話せよ、お子ちゃま。
0061デフォルトの名無しさん
2008/12/16(火) 23:45:13そんなに自分を責めるなよ
0062デフォルトの名無しさん
2008/12/16(火) 23:49: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準拠を知らない無知は放置よろ。
0063デフォルトの名無しさん
2008/12/16(火) 23:51:180064デフォルトの名無しさん
2008/12/16(火) 23:53:31C++はCに1を加えたもの、もしくは、加える前の状態であるが、後で1加えられた状態になるもの
C♯はCを半音上げたもの
0065デフォルトの名無しさん
2008/12/17(水) 00:03:38とりあえず、スレッド違いなレスポンスは、控えるようにしてね。私のレスポンスを含めて。
チャットのように掲示板を使うガキは、もう一度掲示板の本質を考えてね。
最近ム板の一部のスレッドが、荒れているから、ID強制にした方が、良いと思う。
さて、リアルブートするか。
0066デフォルトの名無しさん
2008/12/17(水) 00:04:26> 少なくとも現時点の最新版に関しては、C++のC言語に対する上位互換性は完全に失われた。
検索すれば分かるものを。あと、C++コンパイラでCのソースが通るとか、
あれこれ言ったらキリがないんで。言語の使用とコンパイラの仕様も別に考えてくれ。
インターフェースなどの環境のこともあるが、所詮は0と1の数値データを
ちょちょいのちょいと操作、処理しているのさ。実行しているコンピュータ、
汎用電子”計算機”がな。
目の前にある文字や色のデータ、これもある法則や画像の形式に応じて
数値データが並んでいるんであって、それを色や形のあるものにしているのがソフト。
ある数値データを、ある法則に則って処理をしているわけだが。
ソフトは結局、OSやハードウェアの性能の範囲内の処理をしているのさ、ふっ。
あっ、宿題?今日は疲れたから、明日やってあげるね。麻呂のクソースでw
我ながら、ちょっと陶酔しちゃったぜ、かっちょえ〜〜!
0067デフォルトの名無しさん
2008/12/17(水) 00:09:220068デフォルトの名無しさん
2008/12/17(水) 00:12:220と1の数値データを操作しているという点には同意しかねる
0069デフォルトの名無しさん
2008/12/17(水) 00:20:20前スレ >>996 だけど、いい感じに仕上がったね。
0070デフォルトの名無しさん
2008/12/17(水) 00:21:03なんでもいいのでお願いします
0071デフォルトの名無しさん
2008/12/17(水) 00:21:40興味があって勉強中ならもっと自分で頑張ってみてはどうかね
0072デフォルトの名無しさん
2008/12/17(水) 00:25:08こんな感じ?文字定数('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;
}
0073デフォルトの名無しさん
2008/12/17(水) 00:40:550074デフォルトの名無しさん
2008/12/17(水) 00:41:38[2]問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8360.txt
[3]環境
[3.1]OS:windows XP
[3.2]コンパイラ名: visualC++2005
[3.3]言語:C
[4]期限:2008年12月17日AM7時30分まで
[5]特にありません。
0075デフォルトの名無しさん
2008/12/17(水) 00:46:56なんで?事実だよ。0と1とはっきり記述されていはいないが、
磁気で記録するメディアには+か-、CDではレーザーの反射を読み取る仕組みが
挙げられ、穴が開いているかいないか、さらに、PC内部では電気信号で
やはり+か-かで、あとはそれらの組み合わせで、より多くのパターンを表現しているんだし。
ビットくらい、知っているだろ?そういうこと。
0076デフォルトの名無しさん
2008/12/17(水) 00:49:26[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] その他の制限: ポインタを習っています。
ポインタの考え方が難しくてよくわかりません。
詳しい説明も付けてくれるとありがたいです。
よろしくお願いします。
0077デフォルトの名無しさん
2008/12/17(水) 00:50:08そこまで言うなら、wikiに事実無根や間違いがあるなら指摘しな。
他の資料を見ても、単純に言い切れない過去の歴史と仕様は存在しているし。
あと、何かと笑うだけの奴も無能。説明と言う説明が出来ていないから。
頼む、ランクはともかく、大学で実験や研究をしていない奴は黙っていてくれ。
そういう機関でそれなりのものを見てくれば、汎用電子計算機に対する考えは変わるよ。
少なくとも、目の前の色や画像データでウハウハやったり、KI・MO・I!文字データで
ウヒウヒやっている奴らが、0と1のデジタルデータに翻弄されているように見えるから。
その文章や画像も、真面目なものなら良いけどさ。例え風景を撮影した写真も、
所詮は0と1の組み合わせの数値データ。それをハードなりソフトで展開して
人間が認識できるある形になっているが、もとは無機質なデジタルメディアに記録された数値データ。
0078デフォルトの名無しさん
2008/12/17(水) 00:51:29あと、お前にお似合いのプレゼント。ちゃんとコンパイルして実行してくれ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;
}
0080デフォルトの名無しさん
2008/12/17(水) 00:54:2210 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
0081デフォルトの名無しさん
2008/12/17(水) 00:57:12いつになったら大学名教えてくれんだよw
0082デフォルトの名無しさん
2008/12/17(水) 00:58:54j=strlen(s);
は要らない
0083デフォルトの名無しさん
2008/12/17(水) 01:04:06宿題なのかな?
まずは頓珍漢なコードを見せてもらおうか
0084デフォルトの名無しさん
2008/12/17(水) 01:04:07画像データ、その他ファイルも、数値データの塊で、それを扱っているハードが
0と1の組み合わせで扱っていることくらい、普通に理解できる。
テレビを見て、画面の中に人がいるとは思わんだろ?w
あの映像も、何かハードウェアが映し出した映像を展開しているように、
数値データ(ファイル)をソフトに応じて実装された性能の範囲内で
処理を行っているのだよ、ワトソン君。
0085デフォルトの名無しさん
2008/12/17(水) 01:06:520086デフォルトの名無しさん
2008/12/17(水) 01:11:08> コンピュータ内部のすべての情報は ``デジタルデータ'' という情報形式で保存されています.
> デジタルデータとは,数字に置き替えられる形式の情報のことを指し,
> `0'と`1'の2通りの数字によって表現できます.文章や写真,映像,音声など
> 現実にあるさまざまな形式の情報は,デジタルデータに変換できます.
そういうこと。間違っていないことを、自分はそうは思いませんでは通用しないのが、
客観的な考えや意見が必要な人間社会で適合するには、重要なスキルだぞ。
嘘を言っていない人を嘘つき呼ばわりは、干されるだけ。もちっと理解力を身に着けような。
0087デフォルトの名無しさん
2008/12/17(水) 01:25:21#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;
}
0088デフォルトの名無しさん
2008/12/17(水) 01:27:200089デフォルトの名無しさん
2008/12/17(水) 01:30:350090デフォルトの名無しさん
2008/12/17(水) 01:51:40[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] その他の制限:制限なし
よろしくお願いします。
0091デフォルトの名無しさん
2008/12/17(水) 02:02:09#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;
}
0092デフォルトの名無しさん
2008/12/17(水) 02:06:54strncpy と同じ仕様でよければこうかな
#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;
}
0093デフォルトの名無しさん
2008/12/17(水) 02:10:217行オセロを適当に改行してみたの?
0094デフォルトの名無しさん
2008/12/17(水) 02:15:25はい、分かりやすいように改行してみて、色々いじくってみたんですがエラーになってしまってお手上げで…
0095デフォルトの名無しさん
2008/12/17(水) 02:16:40#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つの文に複数の式書くのってなんかきもいな
0096デフォルトの名無しさん
2008/12/17(水) 02:17:050097>>83 前半
2008/12/17(水) 02:18:18#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);
}
0098>>83 中半1
2008/12/17(水) 02:20:41while(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];
}
0099デフォルトの名無しさん
2008/12/17(水) 02:21:30char 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);
}
0100>>83 中半2
2008/12/17(水) 02:22:11for(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];
0101デフォルトの名無しさん
2008/12/17(水) 02:23:35もっとハードウェアに落ちた話かと思って、閾を超える超えないで判断していて、それを便宜上01に
してるだけ、といいたかった。
物理的な話だと思いこんでたからピットのtypoかと思ったりもしたのに。
デジタルデータは0と1なんだよ!とかここで講釈しても何になるというのかね。
■ このスレッドは過去ログ倉庫に格納されています