C言語/C++言語の宿題を片付けます 65代目
レス数が1000を超えています。これ以上書き込みはできません。
0001950じゃないけど
2006/05/18(木) 06:43:42【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[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
【前スレ】
C/C++の宿題を片付けます 64代目
http://pc8.2ch.net/test/read.cgi/tech/1146323457/
【過去スレ一覧】
http://makimo.to/cgi-bin/search/search.cgi?q=C%2B%2B%82%CC%8Fh%91%E8&andor=AND&sf=2&H=&view=table&D=tech&shw=2000
0002デフォルトの名無しさん
2006/05/18(木) 06:44:12・同じ講義を受けている人が既に同じ宿題を依頼してるかもしれなせん。
まずはスレを少しさかのぼって探してみてください。
それさえ出来ないシメジ野郎はバター焼きにして食っちまうぞ
・解答者は答える義務もないし、答えてもそれが正しいかどうかは保証しません。
もちろん、出題者先生の意図なんぞ知ったことではありません。
At your own riskで。
・態度が余りに悪いとすーぱーはかーがあなたの先生にチクるかもしれません。
報告用テンプレ(任意)
[1] 先生の評価:
[2] 提出結果:
[3] 単位取得の有無:
[4] 回答者にコメント(愚痴等は禁止):
0003デフォルトの名無しさん
2006/05/18(木) 06:51:14質問者へ
前スレが埋まってから使うように
0004デフォルトの名無しさん
2006/05/18(木) 20:05:170005デフォルトの名無しさん
2006/05/18(木) 21:01:370006デフォルトの名無しさん
2006/05/18(木) 21:22:240007デフォルトの名無しさん
2006/05/18(木) 21:48:420008デフォルトの名無しさん
2006/05/18(木) 22:12:140009デフォルトの名無しさん
2006/05/18(木) 23:45:41の結果が凄く気になる。
0010デフォルトの名無しさん
2006/05/19(金) 00:54:30[2]
長さが32の0と1の列
se7e6e5…e1e0d1d2…d22d23
を入力してこのビット列の表す実数値(実数表現の仕方はIEEE規格754に従うものと仮定する)
(-1)^s*(1+M)*2^E if-127<E<128
(-1)^s*M*2^(E+1) ifE=-127
Inf ifE=128,M=0
NaN ifE=128,M≠0
を出力するCプログラムを作成せよ。またこのプログラムの場合、使用した計算機の実数表現方式がIEEE規格754に従っているのなら、
計算結果として得られた実数値はコンピュータ内部では入力したビット列で表されているはずであるが、これをGDBのxコマンドを用いて調べてみよ。
[3] 環境
[3.1] unix
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] C
[4] 5/26
[5] その他の制限:数学関数は使わない。
0011デフォルトの名無しさん
2006/05/19(金) 01:00:580012デフォルトの名無しさん
2006/05/19(金) 01:01:060013デフォルトの名無しさん
2006/05/19(金) 01:04:39自己主張のつもり?氏ねよ
0014デフォルトの名無しさん
2006/05/19(金) 01:07:320015デフォルトの名無しさん
2006/05/19(金) 01:08:340016デフォルトの名無しさん
2006/05/19(金) 01:11:05まともに立ててる↑こっち使おうぜー
身勝手な馬鹿につきあってらんねーよ
0017デフォルトの名無しさん
2006/05/19(金) 01:15:21無意味に事を荒立てる糞>>1に付き合う義理は無いよね。
0018デフォルトの名無しさん
2006/05/19(金) 01:18:500019デフォルトの名無しさん
2006/05/19(金) 01:19:370020デフォルトの名無しさん
2006/05/19(金) 01:20:39スープカレーってうまいの?
0021デフォルトの名無しさん
2006/05/19(金) 01:32:42このタイトルでは過去スレ一覧(29ch検索)にかからないのでは?
0022デフォルトの名無しさん
2006/05/19(金) 01:39:220023デフォルトの名無しさん
2006/05/19(金) 10:28:02カレースープを作ってみろ。それを美味しいと思えるならきっと美味しいだろう。
0024デフォルトの名無しさん
2006/05/19(金) 17:12:20つーか、カレー風味のお湯?
0025デフォルトの名無しさん
2006/05/19(金) 18:34:13このスレッドは1000スレを超えました。
0026デフォルトの名無しさん
2006/05/20(土) 14:10:190027デフォルトの名無しさん
2006/05/20(土) 14:26:500028デフォルトの名無しさん
2006/05/20(土) 15:16:120029灰色の幽霊
2006/05/20(土) 17:42:46[2]
(1)
標準入力から入力された文字が小文字ならば大文字に、大文字ならば小文字に
変換し、それ以外ならばそのまま標準出力に出力するプログラムを作成せよ。
ただし、マクロ置換を用いて一文字ずつ文字の変換を行うプログラムとして
実現せよ。
(2)
標準入力から数行にわたるテキストファイル(1バイト文字のみからなる
もの)を読み込み、同一内容の行(空行を含む)が続いた場合には、それ
を一行にまとめて標準出力に出力するプログラムを作成せよ。
例えば、
main()
{
printf("a\n");
printf("a\n");
printf("b\n");
printf("c\n");
printf("c\n");
printf("c\n");
}
の場合、下記のように出力するプログラムを作成せよ。
main()
{
printf("a\n");
printf("b\n");
printf("c\n");
}
[3]unix,gcc,C [4]5/24 [5]特に制限はありません
プログラムに精通した皆さん、よろしくお願いします。
0030灰色の幽霊
2006/05/20(土) 17:46:05[2](3)
char型配列として定義された任意の文字列に対し、下記の例のように
先頭から1文字ずつ文字数を増やしながら行を変えて表示し、
最終行で文字列全体を表示するような関数
incremental_string_print(char *x)
を作成せよ。関数内部ではchar型ポインタをインクリメントしながら
1文字ずつ putchar() を用いて出力せよ。
(表示例)
O
Os
Osa
Osak
Osaka
Osaka
この関数は、例えば、以下のような利用の仕方を想定している。
(キーボードから入力された文字列(例えば Osaka University)を
上記の表示例のように表示する)
main()
{
char s[100];
fgets(s, sizeof(s), stdin);
incremental_string_print(s);
}
[3]unix,gcc ,C [4]5/24 [5]制限はありません
よろしくお願いします。
0031デフォルトの名無しさん
2006/05/20(土) 18:06:50ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
0032billy
2006/05/20(土) 18:53:36単語に分けた上で、第2引数と第3引数のフィールドを入れ替えて出力するプログラムを作成する。
ただし、入れ替えるように指定されたフィールドの一方もしくは両方が存在しなかった場合は
入れ替えを行わないようにする。
実行例:
%cat source
This,is,source.
file,end.
%gcc -o fieldswap kadai.c
%./fieldswap source 2 3
-- Line 1 --
Field 1: This
Field 2: source.
Field 3: is
-- Line 2 --
Field 1: file
Field 2: end.
環境
OS:Linux
コンパイラ名とバージョン:gcc
言語:C
期限: 5/25
0033デフォルトの名無しさん
2006/05/21(日) 01:19:420034デフォルトの名無しさん
2006/05/21(日) 01:28:16[2] 問題文: 質量m [kg]の物体が,時間t = 0 [s]で初期速度v0 [m/s]の状態から加速度a [m/s2]で直線運動するとき,
t [s]後の物体の速度v [m/s],移動距離x [m]および運動エネルギー[J]を求めるプログラムを作りなさい.
ただし,速度,移動距離および運動エネルギーは,それぞれget_vel(),get_dis(), get_e()なる関数を各自定義し,
それらにより計算させること.また,変数m,v0,aをローカル変数で宣言した場合とグローバル変数で宣言した場合の2通りで作成すること.
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ:gcc
[3.3] 言語: C
[4] 期限: 5月24日
[5] その他の制限:特にございません、職人様よろしくおねがいします
0035デフォルトの名無しさん
2006/05/21(日) 01:36:52本スレはこっち↓
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
0036デフォルトの名無しさん
2006/05/21(日) 12:56:41[2]
double型の2数a,bを入力してaをbで割った商の
小数点以下だけを表示させるプログラムを作りなさい。
ただし、while構文を使ってa,bを入力させ続けるものとします。
[3]C [4]5/22 [5]制限はありません 。
よろしくお願いいたします。
0037デフォルトの名無しさん
2006/05/21(日) 13:29:020038デフォルトの名無しさん
2006/05/21(日) 14:06:080039デフォルトの名無しさん
2006/05/21(日) 17:56:09ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
↑
これが本スレだよ!
0040デフォルトの名無しさん
2006/05/21(日) 18:23:120041デフォルトの名無しさん
2006/05/21(日) 19:35:32>>18
0042デフォルトの名無しさん
2006/05/21(日) 19:40:37じゃあ騒ぐなガキども
0043デフォルトの名無しさん
2006/05/21(日) 19:43:11>42
0044デフォルトの名無しさん
2006/05/21(日) 19:50:540045デフォルトの名無しさん
2006/05/21(日) 20:26:00ageんなよ
質問者は中なぞ読まずに目の付くほうに書き込むんだから
0046デフォルトの名無しさん
2006/05/21(日) 20:33:150047デフォルトの名無しさん
2006/05/22(月) 01:01:5800481001
2006/05/22(月) 13:20:25新しいスレッドを立ててくださいです。。。
0049デフォルトの名無しさん
2006/05/22(月) 13:34:56005050
2006/05/22(月) 15:13:47新しいスレッドを立ててくださいです。。。
0051デフォルトの名無しさん
2006/05/22(月) 15:37:500052デフォルトの名無しさん
2006/05/22(月) 15:49:39int main() {int i; for(i=1; i<10; i++) printf("%d", i);}
0053デフォルトの名無しさん
2006/05/22(月) 15:57:23プログラムを、while文で作成せよ。
0054デフォルトの名無しさん
2006/05/22(月) 16:09:16X=30
ハウ( ̄д ̄;)!!
0055デフォルトの名無しさん
NGNGint main(){ int a=2; int d=2; int n=5; int s= n*(2*a+(n-1)*d)/2; while(1){printf("%i\n", s);} return 0; }
0056デフォルトの名無しさん
2006/05/22(月) 20:03:55int main(void)
{
system("perl -e '$sum=0;$i=1;while($i<=10){$sum+=$i if($i%2==0);$i++;} print \"$sum\\n\";'");
return 0;
}
0057デフォルトの名無しさん
2006/05/22(月) 23:48:050058デフォルトの名無しさん
2006/05/23(火) 00:13:4410 A=A+1
20 LOCATE 0,A:PRINT A
30 GOTO10
0059デフォルトの名無しさん
2006/05/23(火) 02:54:580060デフォルトの名無しさん
2006/05/23(火) 03:04:20i=1;
HELL:
printf("%d\n", i);
i++;
if(i<=10) goto HELL;
0061デフォルトの名無しさん
2006/05/23(火) 17:20:58[2] 問題文(含コード&リンク):再帰関数を利用して、フィボナッチ数列を生成するプログラムを作成せよ。
ただし、生成するフィボナッチ数列の要素数をキーボードから入力する。
[3] 環境
[3.1] OS:WindowsXP
[3.2] コンパイラ名とバージョン:
[3.3] 言語:どちらでも可
[4] 期限:明日まで
[5] その他の制限:
初心者で 全く分からないので、お願いします!
0062デフォルトの名無しさん
2006/05/23(火) 17:24:47>>39
0063デフォルトの名無しさん
2006/05/23(火) 18:35:06例:
入力が1234 の場合,答えは10 になる
入力が9999 の場合,答えは36 になる
教えて
0064デフォルトの名無しさん
2006/05/23(火) 18:56:04{
char buf[20];
sprintf(buf, "%d", foo);
int sum = 0;
for (int ic = 0; buf[ic] != '\0'; ++ic) {
sum += buf[ic] - '0';
}
return sum;
}
0065デフォルトの名無しさん
2006/05/23(火) 19:01:05[2] 問題文:
1.引数にファイル名を指定すると、そのファイルのサイズと
ファイルの種類(一般ファイル、ディレクトリ、パイプ等)、
最終変更時刻を表示する(fview)を作成せよ。但し、引数には複数
のファイルを指定できるようにすること。また、fstatシステムコール
を用いること。
2.引数に指定した複数のテキストファイルの内容を結合して一つの
ファイルにまとめるコマンド(cat2)を作成せよ。但し、まとめた内容を
格納するファイル名は"concat.txt"とすること。但し、catコマンドを
system関数内部で呼ばないこと。
[3] 環境
[3.1] OS:windows cygwin
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C言語
[4] 期限: ([2006年5月28日23:59まで]
[5] その他の制限: 高水準ライブラリ関数は使用せずに
システムコールのみを使用する。
難しすぎて、分かりません。システムコールのみだとなおさらです。
よろしくお願いします。
0066デフォルトの名無しさん
2006/05/23(火) 19:24:49ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/
↑
これが本スレだよ!
0067デフォルトの名無しさん
2006/05/23(火) 20:25:50ごめん。間違えた。
終了条件がなかった。
10 A=A+1
20 LOCATE0,A:PRINT A
30 IFA<>10THEN10
40 END
0068デフォルトの名無しさん
2006/05/25(木) 07:47:120069デフォルトの名無しさん
2006/05/25(木) 13:17:03[2] 問題文:円周率を小数点以下100桁を計算するプログラム
[3] 環境
[3.1] OS:WinXP
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:5月28日
[5] その他の制限:マーチンの公式
π=16arctan1/5-4arctan1/239
を使って求める
初心者なのでサーパリわかりません、職人様よろしくお願いします。
0070デフォルトの名無しさん
2006/05/25(木) 17:18:55#define abs(a) ((a)<0?-(a):(a))
typedef struct {char r[128];} IH;
void IHsI(IH *pd,int s)
{int i;pd->r[0]=+1;if(s<0)pd->r[0]=-1;for(i=10;i>0;i--){pd->r[i]=abs(s%10);s/=10;}for(i=11;i<128;i++)pd->r[i]=0;}
void IHsIH(IH *pd,IH *ps)
{int i;for(i=0;i<128;i++)pd->r[i]=ps->r[i];}
void IHaIH(IH *pd,IH *ps)
{int i,c=0;if(pd->r[0]==ps->r[0]){for(i=127;i>0;i--){c+=pd->r[i]+ps->r[i];pd->r[i]=c%10;c/=10;}}
else{for(i=127;i>0;i--){c+=pd->r[i]-ps->r[i];if(c<0){pd->r[i]=(c+10)%10;c=-1;}else{pd->r[i]=c%10;c=0;}}
if(c<0){pd->r[0]*=-1;for(i=1;i<127;i++)pd->r[i]=9-pd->r[i];pd->r[i]=10-pd->r[i];}}}
void IHbIH(IH *pd,IH *ps)
{int i,c=0;if(pd->r[0]!=ps->r[0]){for(i=127;i>0;i--){c+=pd->r[i]+ps->r[i];pd->r[i]=c%10;c/=10;}}
else{for(i=127;i>0;i--){c+=pd->r[i]-ps->r[i];if(c<0){pd->r[i]=(c+10)%10;c=-1;}else{pd->r[i]=c%10;c=0;}}
if(c<0){pd->r[0]*=-1;for(i=1;i<127;i++)pd->r[i]=9-pd->r[i];pd->r[i]=10-pd->r[i];}}}
void IHmI(IH *pd,int s)
{int i,c=0;if(s<0){pd->r[0]*=-1;s*=-1;}for(i=127;i>0;i--){c+=pd->r[i]*s;pd->r[i]=c%10;c/=10;}}
void IHmIH(IH *pd,IH *ps)
{IH t;int i,c=0,m;t.r[0]=pd->r[0]*ps->r[0];for(i= 254;i>1;i--){for(m=i-127;m<128;m++){if(i-m>0&&m>0){c+=pd->r[i-m]*ps->r[m];}}
if(1<=i-10&&i-10<=127){t.r[i-10]=c%10;}c/=10;}IHsIH(pd,&t);}
void IHdIH(IH *pd,int s)
{int i,r;if(s<0){pd->r[0]*=-1;s*=-1;}for(r=0,i=1;i<128;i++){r=r*10+pd->r[i];pd->r[i]=r/s;r%=s;}}
int IHs(IH *ps)
{int i,s=0;for(i=1;i<128;i++)s+=ps->r[i];return(ps->r[0]*(s?1:0));}
void IHat(IH *ps)
{IH at,t;int n=0,i;IHsI(&at,0);IHsIH(&t,ps);while(IHs(&t)){IHsI(&t,1);for(i=0;i<n;i++)IHmI(&t,-1);for(i=0;i<2*n+1;i++)IHmIH(&t,ps);
IHdIH(&t,2*n+1);IHaIH(&at,&t);n++;}IHsIH(ps,&at);}
0071デフォルトの名無しさん
2006/05/25(木) 17:19:50{int i=0;if(ps->r[i]<0)printf("-");i++;for(;i<10;i++)if(ps->r[i]>0)break;for(;i<11;i++)printf("%d",ps->r[i]);printf(".");
for(;i<111;i++)printf("%d",ps->r[i]);printf("\n");}
void main()
{IH a,b;IHsI(&a,1);IHdIH(&a,5);IHat(&a);IHmI(&a,16);IHsI(&b,1);IHdIH(&b,239);IHat(&b);IHmI(&b,4);IHbIH(&a,&b);IHp(&a);}
0072デフォルトの名無しさん
2006/05/26(金) 00:45:21[2] f = C(i)*x^i
狽フ次数nおよび多項式の係数C(i)[ただし0≦i≦n]を入力し、fの値を求めなさい。
ズブのシロウトです。int や floatでプログラム内に用いる数を先に宣言しておくのはわかりましたが、
多項式においては、nが決まらない限りはC(i)の個数もわからないので、不確定な個数の数の宣言の仕方がわかりません。
どうかよろしくお願いします。
0073お願いします…
2006/05/26(金) 03:01:47助けてください。。
1、m種類の商品の単価aと数量nをキーボードから入力し
単価×数量=金額
を計算し、m種類の合計金額を求めて表示させるプログラムを作成しなさい
2、正の整数nをキーボードから入力し
1+2+・・・・・・+n
1*2*・・・・・・*n
の値を表示させるプログラムを作成しなさい。
も二問です。どうかおねがいします
0074デフォルトの名無しさん
2006/05/26(金) 03:22:592.だけ。
#include <stdio.h>
int sum(int n){ return n * (n + 1) / 2; }
int prod(int n){ int i, res; for( i = res = 1 ; i <= n ; i++ ) res *= i; return res; }
int main(void){ int n; scanf("%d", &n); printf("1+2+..+%d=%d\n1*2*..*%d=%d\n", n, sum(n), n, prod); return 0;}
エラー処理とかは自分でやりなさい。
0075デフォルトの名無しさん
2006/05/26(金) 04:20:41#include<stdlib.h>
void getn( char* o, unsigned len ){
int ch;
do { ch = getc(); *(o++) = ch; } while( ch != '\n' && --len );
(--o) = '\0';
if( ch != '\n' ){ while(getc() != \n'); }
}
int geti(){ char in[32]; getn(in,32); return atoi(in); }
void que1(void){
int a,b,c=0,s=0;
while(1){
printf("単価(a): ");
if( ! ( a = geti() ) ){ break; }
printf("\n数量(n): "); n = geti();
printf("\n種類%d: 単価(%d)×数量(%d)=金額(%d)\n",++c,a,b,a*b);
s += a*b;
}
}
void que2(void){
int n,s=0,m=0,i=0;
printf("限度(n): ");
n = geti();
for( i = 0; i < n; i++ ){ s += a; m+=b }
printf("\n1+2+3…n: %d\n",s);
printf("1*2*3…n: %d",b);
}
int main(){ que1(); que2(); return 0; }
0076デフォルトの名無しさん
2006/05/28(日) 01:27:28xは入力しない?
多項式を表示しろってこと?
0077デフォルトの名無しさん
2006/05/28(日) 16:53:490078デフォルトの名無しさん
2006/05/28(日) 17:11:000079デフォルトの名無しさん
2006/05/29(月) 11:53:520080デフォルトの名無しさん
2006/05/29(月) 12:01:030081デフォルトの名無しさん
2006/05/29(月) 15:28:52int main(void)
{
float taiju,sum=0.0;
int i;
for(i=0;i<3;i++){
printf(
0082デフォルトの名無しさん
2006/05/29(月) 15:46:54あとは在り物のライブラリを使うだけなのかな、と思うようになった。
0083デフォルトの名無しさん
2006/05/29(月) 16:02:29再入力を繰り返すプログラムを作成せよ。
(ヒント:無限ループとbreak文を使用する)
実行例 1回目点数入力:30□
不合格です。再試を受験してください。
2回目点数入力:70□
合格です。
□はエンターキーを示す
0084こんなんじゃダメか?
2006/05/29(月) 16:07:44using namespace std;
int main(void)
{
int score;
while(1){
cout << "点数を入れろ: ";
cin >> score;
if(score >= 60){
cout << "合格おめ" << endl;
break;
}
else{
cout << "不合格プギャー" << endl;
}
}
return0;
}
0085デフォルトの名無しさん
2006/05/29(月) 16:11:01int main(void)
{
int a;
while (1){
printf("input > ");
scanf("%d",&a);
if (a>=60){
break;
}
puts("不合格,おまいには10000万年早いわ!!");
}
puts("合格,はいはい,ワロスワロス");
return 0;
}
0086デフォルトの名無しさん
2006/05/29(月) 16:28:28#include<iostream>
using namespace std;
int main(void)
{
static int a;
int count = 0;
while(count <= 10){
count++;
if(count % 2 == 0){
a += count;
cout << count << "が加算されました" << endl;
}
}
cout << a;
return0;
}
0087デフォルトの名無しさん
2006/05/29(月) 17:48:24[2] 問題文(含コード&リンク):英語の小文字の文字列をキーボードから入力した時、
その文字列の大文字を出力するプログラムを作ってください。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: [2006年5月29日20時まで
[5] その他の制限: scanfを使用
0088デフォルトの名無しさん
2006/05/29(月) 18:06:49#include<stdio.h>
const char u[]={
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,
0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D,0x1E,0x1F,
0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,
0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B,0x3C,0x3D,0x3E,0x3F,
0x40,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,
0x60,0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F,
0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x7B,0x7C,0x7D,0x7E,0x7F,
0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x8B,0x8C,0x8D,0x8E,0x8F,
0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0x9B,0x9C,0x9D,0x9E,0x9F,
0xA0,0xA1,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xAB,0xAC,0xAD,0xAE,0xAF,
0xB0,0xB1,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xBB,0xBC,0xBD,0xBE,0xBF,
0xC0,0xC1,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,0xCB,0xCC,0xCD,0xCE,0xCF,
0xD0,0xD1,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xDB,0xDC,0xDD,0xDE,0xDF,
0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,
0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF};
void main(){char s[256];int i;scanf(
0089デフォルトの名無しさん
2006/05/29(月) 18:08:050090デフォルトの名無しさん
2006/05/29(月) 18:25:050091こんな感じの奴をおながいします。?のとこがわかりません。
2006/05/29(月) 18:29:40#include <stdio.h>
int main(void){
char s[10]
printf("????"");
scanf("%s",s);
printf("????",???);
return 0;
}
0092デフォルトの名無しさん
2006/05/29(月) 18:34:57ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/679
0093デフォルトの名無しさん
2006/05/29(月) 18:49:36極論すればそういうことになるな。
0094デフォルトの名無しさん
2006/05/29(月) 18:52:030095デフォルトの名無しさん
2006/05/29(月) 19:12:18組み合わせるのはまた別の才能だろうし。
0096シッタカター
2006/05/29(月) 19:34:28ライブラリもCプログラムなんですけどね…
COBOLでも書けるようなCプログラムなら、計算だけだろうけど…
『プログラム=データ構造+アルゴリズム』とか『インターフェイスとインプリメントの分離』とかの言葉があるけど…知ってる?
0097こんな感じの奴をおながいします。?のとこがわかりません。
2006/05/29(月) 19:48:350098デフォルトの名無しさん
2006/05/29(月) 19:49:500099 ◆Sra2PNCv7Q
2006/05/29(月) 20:05:18[1] 授業単元:プログラム�T
[2] 問題文(含コード&リンク):
1.1.二次方程式ax2+bx+c=0のa、b、cを入力すると、解の公式を用いて答えを出すプログラムを作って、動作を確認せよ。
ただし、aが0の場合を考慮せよ。また、解が重根の場合や複素数の場合にも対応せよ。(判別式を用いて条件分岐させるとよい。
複素数解の場合は、x = 3 + 5i のように表示させる。)
[3] 環境
[3.1] OS:Windows
[3.2] HC Editor
[3.3] 言語: C
[4] 期限: (2006年5月30日8:40まで] )
[5] その他の制限: (else ifを使って。)
よろしくお願いします。
0100デフォルトの名無しさん
2006/05/29(月) 20:09:46main(){puts(
0101デフォルトの名無しさん
2006/05/29(月) 20:10:190102デフォルトの名無しさん
2006/05/29(月) 20:11:53int main(void){
puts("2chで聞いたけどわかんねぇ");
return 0;
}
0103デフォルトの名無しさん
2006/05/29(月) 21:24:56過去ログ嫁よ猿が。
0104 ◆Sra2PNCv7Q
2006/05/29(月) 21:39:23読みました。すみません。違うみたいですね。
0105デフォルトの名無しさん
2006/05/29(月) 21:49:22#include <stdio.h>
#include <math.h>
int main(void)
{
double a, b, c, d;
printf("a, b, c =?"); scanf("%lf , %lf , %lf", &a, &b, &c);
d = b * b - 4.0 * a * c;
if(a == 0.0){
if(b == 0.0){
if(c == 0.0){printf("解は任意\n");}
else{printf("解は無い\n");}
}else{printf("%f\n", -c/b);}
} else {
if(d < 0.0){printf("%f±%fi\n", -b/(2.0*a), sqrt(-d));}
else if(d == 0.0){printf("%f(重婚)\n", -b/(2.0*a));}
else{ printf("%f,%f\n", (-b-sqrt(d))/(2.0*a), (-b+sqrt(d))/(2.0*a)); }
}
return 0;
}
0106 ◆Sra2PNCv7Q
2006/05/29(月) 22:06:54ありがとうございます!
複素数もちゃんと出ました。本当にありがとうございました!
もっと勉強して自分で作れるように頑張ります。
0107七氏
2006/05/29(月) 22:13:09カラー画像→グレー画像
に変換する方法なら書いてあるのですが
グレー画像→カラー画像
に変換する方法がわかりません
どなたかわかる方教えてもらえませんか
参考にしているサイトは http://www-06.ibm.com/jp/developerworks/linux/020802/j_l-libtiff2.html
ですよろしくお願いします
0108デフォルトの名無しさん
2006/05/29(月) 22:22:14貴様は白黒写真見て元の色が全部分かるというのか。
0109七氏
2006/05/29(月) 22:34:01そうなんですかぁ
ということはG3→G4は不可能と言う事ですかね?
0110デフォルトの名有りさん
2006/05/30(火) 00:10:52無題 名無しさん - 2006/05/30(Tue) 00:08 No.1956
1956.txt [1] 授業単元: C++プログラミング
[2] 問題文(含コード&リンク):
(添付ファイル参照)
[3] 環境
[3.1] OS: WinXP
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C++
[4] 期限: [2006年05月30日07:00まで]
[5] その他の制限: なし
時間かければなんとか書ける宿題だけど、もう睡魔に勝てない・・・3日寝てないから、
明日の(5・30)朝提出しなければならないので、どうか、助けてください;;;
問題文長すぎたのでここで書いた↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?
0111デフォルトの名無しさん
2006/05/30(火) 00:26:230112デフォルトの名無しさん
2006/05/30(火) 00:40:58[2] 問題:【例】12+3=と入力し、出力は12+3=4となるようにせよ。
条件1.演算子は+-*/それぞれに対応させる。
条件2.数値は、1ケタ、2ケタとは限らない。
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名: (gcc)
[3.3] 言語: (C)
[4] 期限: ([2006年6月2日17:00まで]
[5] その他の制限: メイン関数は入力と出力のみとし、他の処理はサブルーチン(関数)を用いること。
一括入力した数値と演算子を、どう処理して関数に送ったら良いのか分かりません…get文を用いるところまでは分かったのですが、お願いします。
0113デフォルトの名無しさん
2006/05/30(火) 00:49:490114七氏
2006/05/30(火) 01:00:22すみません質問なんですがlibtiffを使った画像のG3→G4への変換をC言語
で作成したいのですがコレでは無理ですかね・・?
無理やり繋ぎ合わせた感じなのですが・・詳しいかたよろしくお願いします
↓に書き込みました
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm?
0115112
2006/05/30(火) 01:05:39”12+3=”と一括入力し、その計算問題と結果つまり、”12+3=15”を出力するプログラムです。
数値と演算子をどう分けたらいいのかが分かりません。
0116デフォルトの名無しさん
NGNGまた「予期しない入力があったときの動作が未定義」な課題かよ。
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
double calc(double a,double b,char op){switch(op){
case'+':return a+b;case'-':return a-b;case'*':return a*b;case'/':return a/b;}return 0.0;}
int anal(double* d,char* str,int len){char tmp[100];int i=0,n=0;
while(n<len&&isspace(str[n]))n++;while((n+i)<len&&i<100&&(isdigit(str[i+n])||str[i+n]=='.')){
tmp[i]=str[i+j];i++;}tmp[i]='\0';*d=atof(tmp);return i+n;}
int main(void){char tmp[100];double a,b;int len,n;char op;
fgets(tmp,100,stdin);len=strlen(tmp);n=anal(&a,tmp,len);op=tmp[n++];
anal(&b,&tmp[n],len-n);if(tmp[n]=='=')printf("%s%f\n",tmp,calc(a,b,op));return 0;}
0117デフォルトの名無しさん
NGNG最後の行間違い。
n+=anal(&b,&tmp[n],len-n);if(len>n&&tmp[n]=='=')printf("%s%f\n",tmp,calc(a,b,op));return 0;}
0118112
2006/05/30(火) 01:43:45分からなくてイライラしてましたが、変数名を見て和みました。
このまま課題提出します。
0119デフォルトの名無しさん
2006/05/30(火) 12:12:29[2] 問題文(含コード&リンク):以下の表が与えられているもの(入力データ)とし,C言語で作成したシンプレックス法で最適解を求めよ.
また,以下の表より入力データも各自作成せよ.
基底変数 基底値 z x1 x2 x3 x4
z 0 1 8 21 0 0
x3 1 0 2 3 1 0
x4 2 0 1 7 0 1
プログラムは下記のように分割せよ.
1.メインプログラム
2.データ入力
3.基底に入る変数を選択する
4.基底から出る変数を選択する
5.ピボット演算
6.出力
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:BCC
[3.3] 言語: C言語
[4] 期限: 2006年5月31日9:00まで
[5] その他の制限:ごく初歩的なことしか習っていません。for,if,while文,ファイル処理(読み込み・書き込み程度)程度の簡単なものを使用した単純なプログラム
をお願いします.できればなんの処理をしているのか説明が書いていただければ幸いです.
2段階シンプレックス法で解くのですが,さっぱりわかりません;;
0120デフォルトの名無しさん
2006/05/30(火) 12:20:430121デフォルトの名無しさん
2006/05/30(火) 12:24:050122デフォルトの名無しさん
2006/05/30(火) 12:44:28sscanf(line, "%d%c%d=", &n1, &op, &n2) とか。
0123デフォルトの名無しさん
2006/05/30(火) 14:10:30[2] 問題文(含コード&リンク):C言語のソースファイルのコメント文削除し、ディスプレイに表示
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年5月30日16:00まで
[5] その他の制限:構造体、ファイル操作、基本的な文法は習いました
0124デフォルトの名無しさん
2006/05/30(火) 14:12:300125デフォルトの名無しさん
2006/05/30(火) 15:04:110126デフォルトの名無しさん
2006/05/30(火) 21:50:510127デフォルトの名無しさん
2006/05/31(水) 15:24:530128デフォルトの名無しさん
2006/05/31(水) 16:42:510129デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){ printf("もう来るな\n");return 0;}
0130デフォルトの名無しさん
2006/05/31(水) 17:10:59精神虚弱者更生プログラミングをお勧めしよう
0131デフォルトの名無しさん
2006/05/31(水) 17:34:580132デフォルトの名無しさん
2006/05/31(水) 19:58:42[2] 問題文(含コード&リンク):
表示方法は工夫して、1,3,5,7,11,13・・・・という素数を指定した数までの中から
抽出するプログラムを作成する。(1〜50まで、など)
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: VC#
[3.3] 言語: C#
[4] 期限: ([2006年6月1日7:00まで]
[5] その他の制限: 標準ライブラリ使用可
0133デフォルトの名無しさん
2006/05/31(水) 20:04:22[2] 問題文(含コード&リンク):
ある文字列に対して、指定した文字列を検索し指定した置換文字列に置換する。
※例「私はプログラマ初心者です」という文章を入力したとしたら、
初心者をキーに上級者へと置換し
「私はプログラマ上級者です」と出力する。
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: VC#
[3.3] 言語: C#
[4] 期限: ([2006年6月1日7:00まで]
[5] その他の制限: 標準ライブラリ使用可
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGコンソールアプリでいいんかな?
----------------------------------
using System;
namespace kadai1
{
class Prime
{
static void Main()
{
// (C) 2ch syukudai sure
// http://pc8.2ch.net/test/read.cgi/tech/1147902222/l50
Console.Write("範囲>");
string line = Console.ReadLine();
int max = Convert.ToInt32(line);
byte[] table = new byte[max + 1];
Array.Clear(table, 0, max);
----------------------------------
つづく
0136デフォルトの名無しさん
NGNG------------------------------------
for (int i = 2; i <= max; i++)
{
if (table[i] != 0)
continue;
for (int j = i * 2; j <= max; j += i)
table[j] = 1;
}
for (int i = 2; i <= max; i++)
{
if (table[i] == 0)
{
Console.Write(i);
Console.Write(",");
}
}
}
}
}
0137デフォルトの名無しさん
NGNGusing System;
namespace kadai2
{
class Replace
{
static void Main()
{
// (C) 2ch syukudai sure
// http://pc8.2ch.net/test/read.cgi/tech/1147902222/l50
string s = Console.ReadLine();
Console.WriteLine(s.Replace("初心者", "上級者"));
}
}
}
0138デフォルトの名無しさん
2006/05/31(水) 21:22:36それ何のテスト?
0139デフォルトの名無しさん
NGNG全角以外でもインデントできないかなーって思って。
0140デフォルトの名無しさん
2006/05/31(水) 22:03:20なるほど。
0141デフォルトの名無しさん
2006/05/31(水) 22:28:530142デフォルトの名無しさん
2006/05/31(水) 23:28:30#include <stdlib.h>
#include <time.h>
void main(void){
int i,j,rand(void);
float x,y;
srand((unsigned)time(NULL));
for(i=0;i<1000;i++)
{
x = 1/(rand()+1);
y = 1/(rand()+1);
if( x*x + y*y <= 1)
j=0;
j++;
}
printf("%d",j);
}
[0,1]の擬似乱数の組の(x,y)を1000個発生させて x^2 + y^2 <=1 ってなる組の数を求めたいです
教えてくらださい・・・・
0143デフォルトの名無しさん
NGNG「[0,1]の擬似乱数」って、0〜1の乱数ってこと?
だったら、forのあたりはこうで。
j = 0;
for(i=0;i<1000;i++)
{
x = (float)rand() / RAND_MAX;
y = (float)rand() / RAND_MAX;
if( x*x + y*y <= 1)
j++;
}
0144デフォルトの名無しさん
2006/05/31(水) 23:38:39すごい!数値出ました!
ムケサンクス!
0145デフォルトの名無しさん
2006/06/01(木) 10:01:21[2] 問題文:
コマンドライン上の括弧文字列を読み込んで、
左括弧と右括弧が釣り合っているか(整合しているか)どうかを判定し、
釣り合っている場合には対応する括弧対に番号をつけて出力するようなプログラムを
作成せよ。
ヒント:文字入力にはgetchar()関数を呼び出す。
例:入力[ [ ] [ [ ] ] ] [ ] ⇒ 出力 [1 [2 ]2 [3 [4 ]4 ]3 ]1 [5 ]5
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:6/7まで
[5] その他の制限:無し
どなたかご教授お願いします。
0146デフォルトの名無しさん
NGNG#include<stdio.h>
int main(void){int l,m,s,c,len=0;l=m=s=0;char tmp[1000];
while((c=getch())!=EOF&&len<1000){
tmp[len++]=c;switch(c){
case'[':++l;len+=sprintf(&tmp[len],"%i",l);break;case']':--l;len+=sprintf(&tmp[len],"%i",l);break;
case'(':++s;len+=sprintf(&tmp[len],"%i",s);break;case')':--s;len+=sprintf(&tmp[len],"%i",s);break;
case'<':++m;len+=sprintf(&tmp[len],"%i",m);break;case'>':--m;len+=sprintf(&tmp[len],"%i",m);break;}
if (!(l && m && s))printf("%s\n",tmp);else printf("数が合ってないみたい\n");return 0;}
0147145
2006/06/01(木) 14:09:31ありがとうございます。
答えてくださったのに申し訳ないのですが、
こっちは本スレではないみたいなので、本スレの方で改めて質問したいと思います。
0148デフォルトの名無しさん
2006/06/01(木) 15:24:00100円ショップで1個100円の商品をまとめ買いすると値引きがある。
値引き率は、
�@10個未満の場合は、値引きなし、
�A10個以上100個未満の場合はすべて10%引き、
�B100個以上1000個未満の場合はすべて20%引き、
�C1000個以上の場合はすべて30%引き
となっている。
(問題1)購入個数nを与えると購入金額を計算するプログラムを作成せよ。
(問題2)購入個数653個の場合の購入金額を求めなさい。
0149デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main(void){int n;char tmp[100];fgets(tmp,100,stdin);n=atoi(tmp);
printf("\\%i\n",(1000<=n)?70:(100<=n&&n<1000)?80:(10<=n&&n<100)?90:100*n);return 0;}
0150デフォルトの名無しさん
NGNG優先順位やばい
printf("\\%i\n",((1000<=n)?70:(100<=n&&n<1000)?80:(10<=n&&n<100)?90:100)*n);return 0;}
0151デフォルトの名無しさん
2006/06/01(木) 15:45:08#include <stdio.h>
#include <stdlib.h>
#define UNIT_PRICE 100
main(void)
{
/* (C) 2ch prog syukudai sure */
char line[100];
int n;
double rate;
printf("個数>");
fgets(line, sizeof line, stdin);
n = atoi(line);
if (n < 10)
rate = 1.0;
else if (n < 100)
rate = 0.9;
else if (n < 1000)
rate = 0.8;
else
rate = 0.7;
printf("価格:\\%d\n", (int)(n * UNIT_PRICE * rate));
}
0152デフォルトの名無しさん
2006/06/01(木) 16:51:310153デフォルトの名無しさん
2006/06/01(木) 16:55:090154デフォルトの名無しさん
2006/06/01(木) 17:00:150155デフォルトの名無しさん
2006/06/01(木) 17:03:470156デフォルトの名無しさん
NGNGこのスレではそこまで面倒見ない。が、特別サービス。
仕様書
http://pc8.2ch.net/test/read.cgi/tech/1147902222/148
フローチャート
はじめ
↓
コンソールから文字列を入力して数値に変換
↓
変換した数値に、対応する単価を掛けた値を表示
↓
おわり
0157デフォルトの名無しさん
2006/06/02(金) 13:59:32の正方形の図形を描け
ただし3以上20以下とする
-------------------------------------*/
#include<iostream.h>
#include<conio.h>
//------------------------
//メインプログラム
//------------------------
intmain(void)
{
intm;
cout<<"1辺の長さは ";
cin>>m;
return 0;
}
これが元です。お願いします;
0158デフォルトの名無しさん
2006/06/02(金) 14:02:01>1
0159デフォルトの名無しさん
2006/06/02(金) 14:02:50表示せよ(名前と苗字はスペースで区切る)
もし、"takenouchi ken"に変えてもプログラムは
変更無しで入れ替わるようにする
-------------------------------------*/
#include<iostream.h>
#include<conio.h>
//------------------------
//メインプログラム
//------------------------
intmain(void)
{
charname[]={"Suzuki Ichiro"};//名前の定義
cout<<endl<<"入れ替前は "<<name<<endl;
//ここに入れ替えプログラムを作る---------------
cout<<"入れ替後は "<<name<<endl;
return 0;
}
次も・・・C++です
0160157
2006/06/02(金) 14:07:55[2] 問題文
[3] 環境
[3.1] Windows
[3.2] borland2.10
[3.3] 言語:C++
[4] 期限: 6/5
[5] その他の制限: if for rand while 配列 2次配列 実引数 switch case等しか習ってませんが
おそらく範囲外からも出題されます・・
0161デフォルトの名無しさん
2006/06/02(金) 14:25:42using namespace std;
int main(void){
int m;
cout << "1辺の長さは ";
cin >> m;m = 3 <= m && 20 >= m ? m : -1;
for(int i = 0; i < m; i++){for(int j = 0; j < m; j++)cout << '*';cout << endl;}
return 0;
}
0162157
2006/06/02(金) 14:31:54#include<conio.h> の形で出来ないでしょうか・・
後すいません、縦横というのは
***
* *
***のように中が開いてるみたいです
0163デフォルトの名無しさん
2006/06/02(金) 14:46:46#include <string>
using namespace std;
int main(void)
{
string name = "Suzuki Ichiro";//名前の定義
cout << "入れ替前は " << name << endl;
name = name.substr(name.find(" ") + 1, name.size()) + " " + name.substr(0, name.find(" "));
cout << "入れ替後は " << name << endl;
return 0;
}
0164デフォルトの名無しさん
2006/06/02(金) 14:58:17for(int i = 0; i < m; i++){for(int j = 0; j < m; j++)cout << (i == 0 || i == m - 1 || j == 0 || j == m - 1 ? '*' : ' ');cout << endl;}
>#include<iostream.h>
>#include<conio.h> の形で出来ないでしょうか・・
それぐらい自分で(ry
0165157
2006/06/02(金) 15:42:32#include<iostream.h>
#include<conio.h>
//-----グローバル変数---------------------
charken[][20]={
{"nigata_ken 4"},
{"tokushima_ken 5"},
{"hyougo_ken 2"},
{"akita_ken 1"},
{"kagoshima_ken 3"},
};
intken_disp(void);//プロトタイプ宣言------
intken_sort(void);
intmain(void)
{
ken_disp();//表示
ken_sort();//並び替え
ken_disp();//表示
return 0;
}
intken_sort(void)
{
return 0;
}
intken_disp(void){
intcnt;
cout<<endl;
for(cnt=0;cnt<5;cnt++){
cout<<ken[cnt]<<endl;}
return 0;
}
0166157
2006/06/02(金) 17:01:22これでは実行結果がうまくいきません・・
cout<<"1辺の長さは ";
cin>>m;
if(m=2<m && 20>=m )}
){
for(int i=0; i<m; i++){
for(int j=0; j<m; j++)
cout<<(i==0 || i==m-1 || j==0 || j==m-1 ? '*' : ' ');
cout<<endl;
}
}else {cout<<"2~20までです!!"<<endl;}
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
2006/06/02(金) 17:36:440169デフォルトの名無しさん
NGNGこの課題をだしてるやつ、だめすぎる。
0170157
2006/06/03(土) 07:27:01あ、どっちもか(´;ω;`)
0171デフォルトの名無しさん
2006/06/03(土) 08:11:05コードレビューしたら行数よりたくさんの問題が発見つかりそうな。
ネタじゃなくてマジで、こんな出題者に教わってるの?
0172デフォルトの名無しさん
2006/06/03(土) 08:20:56ファイルポインタについて教えて頂きたく思います。
現状プログラムでexternでファイルポインタを定義している箇所が
あるのですが、fopen、fcloseを252回繰り返すと別のファイルがopen異常
となってしまうのですがexternしているファイルポインタは実は
closeできていないということはおこりえるのでしょうか?
0173デフォルトの名無しさん
2006/06/03(土) 08:33:48マルチポスト乙。
0174デフォルトの名無しさん
2006/06/03(土) 09:45:49できることなら>165のようなコードを書く人間に教わらないことをお勧めする。
コーディングに変な癖はつきそうだし間違ったマニュピレータの使い方は覚えそうだし
そもそもプログラミングセンスが根本から歪められかねない。
0175デフォルトの名無しさん
NGNG#include <conio.h> の次の行に
#include <string.h> を追加
int ken_sort()
{
int i, j;
cnst int table_size = 5;
for (i = 0; i < table_size - 1; i++) {
for (j = i + 1; j < table_size; j++) {
if (strcmp(ken[i], ken[j]) < 0) {
char tmp[20];
strcpy(tmp, ken[i]);
strcpy(ken[i], ken[j]);
strcpy(ken[j], tmp);
}
}
}
}
0176デフォルトの名無しさん
NGNG×cnst int table_size = 5;
○const int table_size = 5;
0177157
2006/06/03(土) 14:09:550178デフォルトの名無しさん
2006/06/03(土) 15:38:12[2] 問題文(含コード&リンク): �@f (x) = cos (x) - x2 = 0 の根のうち、0 < x < 1 を満たすものを2分法で求める
初期値 a, b が入力でき、 6桁推定された解と関数 f (x) を呼びだした回数を出力するようにしなさい。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン: VC 6.0
[3.3] 言語: C
[4] 期限: (2006年06月08日まで
よろしくお願いします
0179デフォルトの名無しさん
2006/06/03(土) 15:52:42#include <math.h>
#define EPS .0000001//相対誤差
double func_y(double x){ return (cos(x) - x * x); }
double nibun(double a, double b){
int i = 0;double x;//xをnextと読みかえて
do{
x = (a + b) / 2.0;
if((func_y(x) * func_y(a)) < 0)b = x;
else a = x;
printf("%d回 x = %6.6f f(x) = %6.6f\n", i, x, func_y(x));
i++;
}while(fabs(a - b) > EPS);
return (x);
}
int main(void){
double a, b, x;//a,bをx0,x1と読みかえて
printf("範囲の左の値を入力してください.\n");
scanf("%lg", &a);
printf("範囲の右の値を入力してください.\n");
scanf("%lg", &b);
printf("f(x) = cos(x) - x * x = 0の二分法による数値計算\n");
printf("初期値a = %6.6f\n", a);
printf("初期値b = %6.6f\n", b);
x = nibun(a, b);
printf("近似解x=%6.6f\n", x);
return 0;
}
二分法ってよく宿題ででるんだな…
0181デフォルトの名無しさん
2006/06/05(月) 01:33:46[2] 問題:あらかじめ作成してあるテキストファイル(member.txt)を読み込み、No項目順に昇順にソートして表示させよ。
テキストファイルの例:1111 山田太郎 東京都杉並区〜〜〜
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名: VC6.0
[3.3] 言語: C言語
[4] 期限: ([2006年6月6日17:00まで]
[5] その他の制限:Noは4文字以内、名前は5文字以内とする。
コマンドライン関数を使い、他の任意のテキストファイルも読み込めるようにすること。
0182デフォルトの名無しさん
2006/06/05(月) 10:34:05それ、どこの学校の宿題?
0183デフォルトの名無しさん
2006/06/05(月) 10:52:08それとも動かしてみて正常動作するかどうかだけで採点するの
0184デフォルトの名無しさん
2006/06/05(月) 11:03:01レポートシステムってのがあって、そこに与えられたアカウントからメールで送信。
チェックは大学院生から雇っているバイトがやっていたなぁ。
0185デフォルトの名無しさん
2006/06/05(月) 12:59:48#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct _Mem{
int _no;
char _name[11];
char _adr[100];
};
int mycomp(const void *a, const void *b){
const struct _Mem aa = *((struct _Mem*)a);
const struct _Mem bb = *((struct _Mem*)b);
return (aa._no > bb._no ? 1 : -1);
}
int main(int argv, int argc[]){
int no, i = 0;char name[11], adr[100];
FILE *fp = fopen("member.txt", "r");
struct _Mem mem[100];
if(fp == NULL)return 1;
while(fgets(adr, sizeof(adr), fp) != NULL){
sscanf(adr, "%d%s%s", &no, name, adr);
mem[i]._no = no;
strcpy(mem[i]._name, name);
strcpy(mem[i]._adr, adr);
i++;
}
qsort(mem, i, sizeof(struct _Mem), mycomp);
for(int j = 0; j < i; j++)printf("%04d %s %s\n", mem[j]._no, mem[j]._name, mem[j]._adr);
fclose(fp);
return 0;
}
コマンドラインは自分でどうぞ
0186デフォルトの名無しさん
2006/06/05(月) 13:22:070187デフォルトの名無しさん
2006/06/05(月) 13:35:453.Which of the following is the best definition or example of the "principle of least privilege?"
a. Always separate classes into .h definition files and .cpp implementation files.
b. Use global variables to avoid access problems.
c. Grant access to only those clients who have a legitimate need for access.
d. Whenever possible, prefer composition over inheritance.
4.A StatusLabel
a. inherits from class StatusStrip
b. is a control with a StatusStrip control.
c. is a type of flair.
d. none of the above
5.When the code in a try block does not throw an exception, which of the following is false?
a. all the catch handlers immediately following the try block are skipped
b. execution resumes with the first line of code after the catch handlers
c. a default exception is thrown
d. none of the function calls within the try block threw an exception
誰かお願いします。
0188デフォルトの名無しさん
2006/06/05(月) 13:58:500189デフォルトの名無しさん
2006/06/05(月) 14:21:27これってwindowsのメモ帳で書いてフラシュメモリーにいれてemacs上にペーストとかできるのか?
なんかペーストしてもでてこないんだが・・。
ちなみに学校で習い始めて2ヶ月でつ。
なんか言い方がまちがってたりなにいってるかわからなかったらスマソ
0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
2006/06/05(月) 14:26:58そうか〜スマソ
宿題が家でもやれたらときいたんだけどすれ違いか・・。
0192デフォルトの名無しさん
2006/06/05(月) 14:27:33鼬害。
GUI(Gnome)の操作方法を知りたいのか、
emacsの操作方法を知りたいのか、
そもそもフラッシュメモリはマウントできているのか、
メモ帳で書くのはいいがファイル名はどうなっているのか、
さっぱり判らん。
0193デフォルトの名無しさん
NGNGいい加減しつこいな。答えやるからもう来るな。
3.c. 4.文脈が不明なので答えようがない 5.b.
0194デフォルトの名無しさん
2006/06/05(月) 14:35:41[2]バブルソートのプログラムを作成し、実行結果とともに提出せよ(配列を使う)
[3] 環境
[3.1] windowsXP
[3.2] Microsoft Visual C++ 6.0
[3.3] C言語
[4] 期限: 2006年6月5日17:30までです。
[5] よろしくお願いします。。
0196デフォルトの名無しさん
2006/06/05(月) 15:21:58適当な座標軸上にプロットするプログラムを書け、
といった課題が出されました。
while文を用いて、値を出すプログラムまでは作れるのですが、
座標軸をつくり、そこへプロットする仕方がわかりません。
どなたかご教授お願いします。
0197デフォルトの名無しさん
2006/06/05(月) 15:25:05つテンプレ
0198デフォルトの名無しさん
2006/06/05(月) 15:31:05出力するプログラムをおねがいいたします。
0199デフォルトの名無しさん
NGNG>最初の要素の総和
意味が分からん
0200デフォルトの名無しさん
2006/06/05(月) 16:10:37#include <stdio.h>
main(){
int a,b;
printf("初期値 : "); scanf("%d", &a);
printf("公差 : "); scanf("%d", &b);
printf("最初の要素の総和:%d\n", a);
}
0201 ◆QLo5PXiHuI
2006/06/05(月) 17:36:31[2] 問題文:各自で関数を適当に探し、数値積分を試みよ(円の面積など)。
[3] 環境 OS:Unix
言語:C
[4] 期限:2006年6月5日17:00まで
ひとまず、円の面積でやろうと思います。
よろしくお願いします
0202デフォルトの名無しさん
2006/06/05(月) 17:43:22[2] 問題文(含コード&リンク):0から5までを順に入力したとき、5か0の順で表示するプログラムを作れ。char a[]を使用。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 明日
[5] その他の制限:
char,(scanf),printfだけで作成」してください。
0204デフォルトの名無しさん
2006/06/05(月) 17:48:36[2] 問題文:
x=y^2のグラフを−2<y<2で0.2きざみでyを変化させ、
適当な座標軸上に*をプロットするプログラムを書く
while文を用いて、プログラムを作成
[3] 環境
[3.1] win2K
[3.2] gcc3.4
[3.3] どちらでも可
[4] 期限: 明日まで><
[5] その他の制限: 自分で結構やったのですがわかりませんでした><どなたかお願いします
0205デフォルトの名無しさん
2006/06/05(月) 18:04:02じゃあ、その結構やったソースを貼れよ
0206デフォルトの名無しさん
2006/06/05(月) 18:05:46| や - で x y 軸を表示させるとか・・・?w
0207デフォルトの名無しさん
NGNG#include<stdio.h>
#include<math.h>
int main(void){double x[20];int y;int n,a;
for(y=0;y<20;y++)x[y]=pow((y-10)/5.0,2);
n=20;while(--n>0){a=x[n]*10.0;while(--a>0)putchar(' ');putchar('*');putchar('\n');}
return 0;}
0208 ◆QLo5PXiHuI
2006/06/05(月) 18:09:14前スレにあったとは…
すみませんありがとうございます
0209デフォルトの名無しさん
2006/06/05(月) 18:14:03int main(void){
char a[6];
char b[6];
printf("a=");
scanf("%s ,a");
b[0]=a[5];
b[1]=a[4];
b[2]=a[3];
b[3]=a[2];
b[4]=a[1];
b[5]=a[0];
printf("%s\n",b);
return 0;
}
0210デフォルトの名無しさん
2006/06/05(月) 18:25:16これはちょっと精度が低くね?
>>209
なんか違うっしょ・・・
0211デフォルトの名無しさん
2006/06/05(月) 18:27:310212デフォルトの名無しさん
2006/06/05(月) 18:27:440213デフォルトの名無しさん
2006/06/05(月) 18:35:03int main(void){
int i;
char a[6];
char b[6];
for(i=0;i<6;i++) {
printf("a[%d] = ",i);
scanf("%s" ,&a[i]);
}
for(i=0;i<6;i++) {
b[i] = a[5-i];
}
printf("%s\n",b);
return 0;
}
んじゃこんな感じで?
0214デフォルトの名無しさん
2006/06/05(月) 18:36:320215デフォルトの名無しさん
NGNGxの倍率をコンソールに応じて変えればよかろ。つか、yが「0.2きざみ」と指定されてるのに
これ以上xの精度が必要とは思えない。
0216デフォルトの名無しさん
2006/06/05(月) 18:54:240217デフォルトの名無しさん
2006/06/05(月) 18:57:46>while文を用いて
0218デフォルトの名無しさん
2006/06/05(月) 19:00:30class Sample10
{
public static void main(String args[]) throws IOException
{
System.out.println("5人のテストの点数を入力してください。");
BufferedReader br =
0219デフォルトの名無しさん
2006/06/05(月) 19:01:45失せろ
0220デフォルトの名無しさん
2006/06/05(月) 19:03:22miss
0221デフォルトの名無しさん
2006/06/05(月) 19:32:37#include <stdio.h>
int main(void){
char a[6];
printf("����");
scanf("%s" ,a;
printf("%c%c%c%c%c%c\n",a[5],a[4],a[3],a[2],a[1],a[0]);
return 0;
}
これだろ?
0222デフォルトの名無しさん
2006/06/05(月) 19:39:17閉じ括弧なくてコンパイルできねーし、修正しても妙なプログラムだし
ユーザインターフェース悪っ
0223デフォルトの名無しさん
2006/06/05(月) 20:33:080224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
2006/06/05(月) 23:01:190226デフォルトの名無しさん
NGNG0227& ◆yZhi4TN6HY
2006/06/06(火) 01:17:30[2] 問題文(含コード&リンク):
長さ127以下の英数字、空白の並びからなる文字列を2つ入力し、それぞれT1,T2とする。
T1が"ABC",T2が"AB"の場合のように、T2の先頭部分がT1の先頭部分に含まれるときは1を、そうでないときは0を値として返す関数
int chkmatch(char *t1,char*t2)を作成しなさい。配列宣言以外はポインタを用いる。文字列の長さのエラー処理は必要ない。
計算の手順として、文字列の先頭から1文字ずつ一致するかどうか比べる。
T2にあたる文字列中の比較対象となった文字が’\0'であればT2はT1に包含されたものとして扱う。
これ以外で比較時に1文字でも一致しない場合があれば包含されていないとして扱う。
この関数を用いて2つの文字列を与えたとき、1つ目の文字列の中に2つ目の文字列が含まれている場合には
"yes"をさもなければ"no"を出力するプログラムを作りなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 今日の午前4時まで
文章長いですが、よろしくお願いします。
0228デフォルトの名無しさん
2006/06/06(火) 01:53:54#include <stdio.h>
int chkmatch(char* t1,char* t2) ;
int main(void) {
char t1[128],t2[128] ;
printf("一つめの文字列を入力してください:") ;
fgets(t1,sizeof(t1),stdin) ;
printf("ふたつめの文字列を入力してください:") ;
fgets(t2,sizeof(t2),stdin) ;
if(chkmatch(t1,t2)) {
printf("yes\n") ;
} else {
printf("no\n") ;
}
return(0) ;
}
int chkmatch(char* t1,char* t2) {
while(*t1 == *t2) {
t1++ ;
t2++ ;
}
if(*t2 == '\n' || *t2 == '\0') return(1) ;
return(0) ;
}
0229デフォルトの名無しさん
2006/06/06(火) 02:03:50>[4] 期限: 今日の午前4時まで
すげえ。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int chkmatch(char* t1, char* t2) {
return strstr(t1, t2)==t1;
}
int main() {
char T1[128];
char T2[128];
int i;
gets(T1);
gets(T2);
for(i = 0 ; ; i++) {
if(chkmatch(T1+i, T2)) {printf("yes\n"); break;}
if(T1[i]=='\0') {printf("no\n"); break;}
}
return 0;
}
0230227
2006/06/06(火) 02:10:06>>229
ありがとうございます!
0231デフォルトの名無しさん
2006/06/06(火) 02:15:28[2] 問題文(含コード&リンク):「アッー」の音声を合成音で作れ
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C言語
[4] 期限:2006年6月10日
[5] その他の制限:
0232227
2006/06/06(火) 02:22:22[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
長さ31以下の英数字、空白の並びからなる文字列を2つ入力し、それぞれT1,T2とする。
T1の中にT2が出現する場合に、その一番左に表れる文字列の先頭アドレスを値として返す
関数char*findstr(char*t1,char*t2);を作成しなさい。ただしT1の中にT2が現れない時はNULLを
値として返すものとする。
findstr()の中で比較対象となるT1のなかの先頭文字を先頭から1文字ずつずらして先程用いた
chkmatch()を呼び出すことにより要求を満たす関数を作成することができる。
この関数を用いて1)最初にT1を表示し、2)その次にT1の中でT2の文字列が最初に出現する
までの文字がアンダースコア('_')として端末に出力し、そのあと残りの文字列を出力する
プログラムを作りなさい。3)T2がT1に出現しない場合はT1の文字数だけのアンダースコアが
表示されるようにすること。
配列宣言以外はポインタを用い、文字列の長さのエラー処理は必要ない
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 今日午前4時
0233デフォルトの名無しさん
2006/06/06(火) 02:43:20#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int chkmatch(char* t1, char* t2) {
return strstr(t1, t2)==t1;
}
char* findstr(char*t1,char*t2) {
int i;
for(i = 0 ; t1[i]!='\0' ; i++)
if(chkmatch(t1+i, t2)) return t1+i;
return NULL;
}
int main() {
char T1[128];
char T2[128];
int i;
char *p;
gets(T1);
gets(T2);
puts(T1);
p = findstr(T1, T2);
i = p==NULL ? strlen(T1) : p-T1;
for( ; 0 < i ; i--) putc('_', stdout);
if(p!=NULL) puts(T2);
else printf("\n");
return 0;
}
0234227
2006/06/06(火) 02:46:54ありがとうございます!!本当に助かりました。
0235>>227
2006/06/06(火) 02:51:00int chkmatch(char* t1,char* t2);
void ScanStr(char * data,int max_size)
{
int i; char c;
for(i = 0; i < max_size ; i++){
scanf("%c", &c);
if ( c == '\n'){ data[i] = '\0'; break;}
else data[i] = c;
}
}
int main(){
char T1[MAX_SIZE], T2[MAX_SIZE];
printf("Input 1st string:"); ScanStr(T1,MAX_SIZE);
printf("Input 2nd string:"); ScanStr(T2,MAX_SIZE);
if(chkmatch(T1,T2)==1) printf("Yes\n");
else printf("No\n");
return 0;
}
int chkmatch(char* t1,char* t2)
{
int i=0,ret=0;
while(1){
if(t2[i] == '\0' ){ret = 1; break;}
}else{
if(t1[i] == t2[i]) i++;else break;
}
}
return ret;
}
0236デフォルトの名無しさん
2006/06/06(火) 03:01:49完全一致を含んでいない方式だな。(完全一致でnoが返るので)
0237デフォルトの名無しさん
2006/06/06(火) 03:19:13[2] 問題文(含コード&リンク):
A, B, N : 整数の定数 (N >= 0) とするとき、
\sum_{i=0}^{N} A^{N-i}*B^i
を効率よく計算するプログラムを書きなさい。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 今日の正午まで
[5] その他の制限:
関数 pow(a, b) などは使ってはいけない。
計算量は、線形時間より小さいものが望ましい。
よろしくお願いします。
0238227
2006/06/06(火) 03:26:12ありがとうございます!
みなさんのプログラミングを見てちゃんと理解できるよう、今からがんばります。
0239デフォルトの名無しさん
2006/06/06(火) 04:03:31(N=5)
i=0 A*A*A*A*A * 1
i=1 A*A*A*A * B
i=2 A*A*A * B*B
i=3 A*A * B*B*B
i=4 A * B*B*B*B
i=5 1 * B*B*B*B*B
山になってる累乗を計算する時に前の値を配列に保持して
乗算回数を減らすぐらいしか思いつかん。
数列の式変形があるんだろうけど。
0240デフォルトの名無しさん
2006/06/06(火) 04:20:03(A^(N+1)-B^(N+1))/(A-B)か?
0241227
2006/06/06(火) 04:42:19[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
長さ256文字以下の英数字,空白の並びからなる文字列を二つ入力し,それぞれをT1, T2とする. T1の中にT2が出現する場合に,その一番左に現れる文字列の先頭アドレス
を値として返す関数 char *findstr(char *t1, char *t2);を作成しなさい.ただし,T1の中にT2が出現しないときはNULLを値として返すものとする.
findstr()の中で,比較対象となるT1のなかの先頭文字を先頭から一文字ずつずらして前問のchkmatch()を呼び出すことにより要求を満たす関数を作成することができる.
この関数を用いて, 1)最初にT1を表示し,2)その次にT1の中でT2の文字列が出現するまでの文字をスペース(' ')として端末に出力し,そのあとT2の文字列文だけ(’^’)を出力し、
再度T2の文字列が出現するまでスペース(’ ’)を出力し..というプロセスを文末まで続けるプログラムを作成しなさい。3a)このプロセスは、findstrを実行して文字列の先頭を検索し、
そこまでスペースを出力する。3b)文字列の先頭が検出されたら、T2の文字列分だけ(’^’)を出力する。3c)T2の文字列分だけポインタを進め、そこからfindstrを再実行する(3aにもどる)
というプロセスを繰り返すことで完成する。4)T2がT1に出現しない場合はT1の文字数だけのスペースが表示されるようにすること.
配列宣言を除き,すべてポインタを用いて処理すること.文字列は31文字以下が入力されるものとし,文字列の長さに関するエラー処理をする必要はない.
特に、検索文字列が重複している場合も正確に検出できるようにせよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 今日の午前6時過ぎ
すみません、お願いします。
0242デフォルトの名無しさん
2006/06/06(火) 05:43:200243デフォルトの名無しさん
2006/06/06(火) 06:12:010244227
2006/06/06(火) 06:26:37そうですね。。。学校行くぎりぎりまで待ってみますが
0245デフォルトの名無しさん
2006/06/06(火) 06:37:16自分でそれを一つでも理解できなかった時点で、評価されるべきじゃないしね。
しかも、これが出来ないってことはその先の内容も危ういわけだ。
自力でやって出来ないなら、授業についていけないって結論にも至る。
0246237
2006/06/06(火) 06:57:32ありがとうございます。
友人は、全体を4等分すれば、
点対称な位置同士では同じ計算になると言っていましたが、意味が分かりませんでした。
日本語変ですいません。
>240
ありがとうございます。
なるほど!
そうやって式変形すれば、あとは A^{N+1} と B^{N+1} の計算だけなので、
それぞれ O(logN) でできるというワケですね。
0247デフォルトの名無しさん
2006/06/06(火) 07:19:37http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1984.c
多少の無駄があるけど。
0248デフォルトの名無しさん
2006/06/06(火) 07:24:38ををっ、なんかキターーーー!
0249241
2006/06/06(火) 07:27:37ありがとうございます!!本当にうれしいです
0250204
2006/06/06(火) 08:57:57そうなんですよ・・・・><
>>207
printfを使って縦軸に「|」横軸は「-」と「+」をつかってもう一度グラフを作ってもらえますか?
0251デフォルトの名無しさん
NGNG甘ったれるなクズ。
0252デフォルトの名無しさん
2006/06/06(火) 10:03:220253デフォルトの名無しさん
2006/06/06(火) 10:15:23せめてグラフを描画するウィンドウに別にってわけにはいかんのかね・・・
0254デフォルトの名無しさん
2006/06/06(火) 11:02:55学生の課題ならコンソールに記号でグラフ描画とかありがちだと思うけど。
0255デフォルトの名無しさん
2006/06/06(火) 11:12:3110 *************
20 ****
30 ***********
40 ***************
50 **
0256デフォルトの名無しさん
2006/06/06(火) 11:23:35図形描画にゃ別窓開いてたぞ・・・
0257デフォルトの名無しさん
NGNG嫌なら来るなよ。
0258デフォルトの名無しさん
2006/06/06(火) 11:57:502]配列A[x] B[X} 及び配列の大きさXを渡す。
すると配列の要素を入れ換えるプログラムを作成せよ。
尚、ポインタを用いる事。
要素の入れ換えとは、例えば
A[5]={1,2,3,4,5} B[5]={1001,1002,1003,1004,1005}
といった配列が与えられているとき、
A[5]={1001,1002,1003,1004,1005}
B[5]={1,2,3,4,5}
といった結果になるものである。
3]OS:Linux コンパイラ:gcc3.4 言語:C
4]期限:明日
0259デフォルトの名無しさん
2006/06/06(火) 14:49:54#include<stdio.h>
void exchangeA(int *a, int *b, int n){
for(int i = 0;i < n; i++, a++, b++){
int t = *b;
*b = *a;
*a = t;
}
}
int main(){
int a[] = {1, 2, 3, 4, 5}, b[] = {1001, 1002, 1003, 1004, 1005};
int n = sizeof(a) / sizeof(a[0]);
exchangeA(a, b, n);
return 0;
}
0260デフォルトの名無しさん
NGNGvoid swaparray(int** a, int** b, int x){int* t=*b;*b=*a;*a=t;}
int main(void){int i,A[5]={1,2,3,4,5},B[5]={1001,1002,1003,1004,1005};
for(i=0;i<5;i++)printf("A[%i]=%i,B[%i]=%i\n",i,A[i],i,B[i]);swaparray(&A,&B,5);
for(i=0;i<5;i++)printf("A[%i]=%i,B[%i]=%i\n",i,A[i],i,B[i]);return 0;}
0261デフォルトの名無しさん
2006/06/06(火) 15:11:52A,Bはポインタじゃ無いからメモリに存在しないと思うぞ。
int data1[5]={1,2,3,4,5},data2[5]={1001,1002,1003,1004,1005},*A=data1,*B=data2;
0262デフォルトの名無しさん
NGNG>A,Bはポインタじゃ無いからメモリに存在しないと思うぞ。
意味が分からん。が、>>260のままだと確かに配列の先頭の要素が入れ替わるだけだな。
0263デフォルトの名無しさん
2006/06/06(火) 16:01:13intとint *のサイズが同じ場合は、な。
0264不明瞭なところがあれば聞いてください
2006/06/06(火) 16:21:48[2] 問題文(含コード&リンク): 入力した数値を昇順・降順に並び替えて出力する。詳しくは下記へ
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Borland c++
[3.3] 言語: C++
[4] 期限:2・3日後
[5] その他の制限:
いくつかの(5個程度)入力した数値を、昇順or降順でどちらかに選べてソートする(選択可、1で昇順2で降順みたいに)
入出力はcin,coutを使う(c++だから),for else,switch caseなど初歩しかやっていない。
選択法をサブルーチンを使う。
学校では↓をやったので、これに沿ってお願いします。(↓はCなのでC++に変換もお願いします)
http://uploaderlink.hp.infoseek.co.jp/cgi-bin/512kb/src/up10373.jpg
0265デフォルトの名無しさん
2006/06/06(火) 16:33:540266不明瞭なところがあれば聞いてください
2006/06/06(火) 16:45:360267デフォルトの名無しさん
NGNG#include <iostream>
using namespace std;
void selection_sort(int* a, int len){
if (len) {int tmp,min_pos=-1;for(int i=0;i<len;i++)if(min_pos<0||a[i]<a[min_pos])min_pos=i;
if (min_pos > 0){tmp=a[0];a[0]=a[min_pos];a[min_pos]=tmp;}}selection_sort(&a[1],len-1);}}
int main(void){int i,n;cout << "要素数:";cin>>n;int* a = new int[n];
for(i=0;i<n;i++){cout << "要素" << i << ":";cin >> a[i];}selection_sort(a,n);
for(i=0;i<n;i++){cout << a[i] << endl;}delete[] a;return 0;}
0268デフォルトの名無しさん
2006/06/06(火) 17:02:29[1] 授業単元: Cプログラミング応用
[2] 問題文(含コード&リンク):
forkを用いて並行処理できるechoサーバを作成する
・親プロセスと子プロセスでの役割分担をちゃんと考えること
・役目が終わった子プロセスはちゃんと殺してあるか?
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc 3.4 VC 6.0等
[3.3] 言語:C
[4] 期限:7日23:59まで
[5] その他の制限:selectを用いたechoサーバはこのように書かされました。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1986.txt
0269デフォルトの名無しさん
2006/06/06(火) 17:08:57ちょっとわかりにくいかも知れんが。
配列でint A[5]={1,2,3,4,5}とした時、メモリに配置されるのは{1,2,3,4,5}で、Aは配列の先頭を指すシンボルになる。
メモリ上にAの値を保存しておく領域は作られ無い。
だから実行時にAの値を変更する事はできない。
ポインタでint *Aとした時、メモリ上にAの値を保存しておく領域が作られる。
だから実行時にAの値を変更する事ができる。
0270デフォルトの名無しさん
NGNG>ちょっとわかりにくいかも知れんが。
わかりにくいのはお前の日本語な。
0271不明瞭なところがあれば聞いてください
2006/06/06(火) 17:33:53[2] 問題文(含コード&リンク): 入力した数値を昇順・降順に並び替えて出力する。詳しくは下記へ
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: Borland c++
[3.3] 言語: C++
[4] 期限:2・3日後
[5] その他の制限: 入出力はcin,coutを使う
�@cinで5個の数値入力�A昇順か降順かを入力(switch caseで1は昇順2は降順みたいに)
�A選択法でサブルーチン使い、下記のURLを参考
http://uploaderlink.hp.infoseek.co.jp/cgi-bin/512kb/src/up10373.jpg (←はCなのでC++に変換もお願いします)
上記のようなサブルーチンを学びました。for else,switch caseなど初歩しかやっていない。
選択法をサブルーチンを使う
�B昇順or降順した数値をcoutで出力
最後に初歩のプログラムでお願いします
0272デフォルトの名無しさん
2006/06/06(火) 17:42:29具体的にどの辺りがどうわかりにくかった?
わかりにくかっただけで内容は理解したのか?それとも何言ってるか全然わからなかった?
0273デフォルトの名無しさん
NGNG帰れ。
if (min_pos>0){tmp=a[0];a[0]=a[min_pos];a[min_pos]=tmp;}selection_sort(&a[1],len-1);}}
0274デフォルトの名無しさん
NGNG>内容は理解したのか
誰に向かって口きいてるんだ。
0275271
2006/06/06(火) 17:52:21こちらとしては怒らせるつもりはありませんでした。大変失礼しました。
0276デフォルトの名無しさん
2006/06/06(火) 17:54:57[1] 情報実験2
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1987.txt
のプログラムの機能(結果画像)を変えずに高速化せよ
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 来週の月曜日(6/12)午後1時まで
[5] 特になし
0277デフォルトの名無しさん
NGNGとだけ書いてエラーの内容も書かずに同じ問題文をコピペするのが嫌がらせでなくて何なんだ。
0278デフォルトの名無しさん
2006/06/06(火) 17:59:34誰何?
0279271
2006/06/06(火) 18:32:42問題を見やすく(したつもりです)して、レスさせてもらいました。以降気をつけるように命じておきます。
すみませんでした
0280デフォルトの名無しさん
2006/06/06(火) 19:14:33[2] 問題文(含コード&リンク):プログラムを自己参照構造体で書き換えよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1988.txt
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 今週の木曜日(6/8)午後11:59時まで
[5] 特になし
よろしくお願いします。
0281デフォルトの名無しさん
2006/06/06(火) 20:47:25お前が帰れよ、ここはC++のスレだしC#じゃねっw
>>274
>誰に向かって口きいてるんだ。
なに偉そうにしてんの?専門学校程度の低学歴めがw
0282デフォルトの名無しさん
2006/06/06(火) 20:58:13[2] 問題文(含コード&リンク):
一行からなる二つの文字列を入力し,それぞれを一旦char型の配列に記録する.
二つの文字列が等しければ"yes"をさもなければ"no"を表示するプログラムを作成しなさい.
このとき,二つの文字列に対応する2つの文字列(文字配列)の先頭番地を与えたとき,
二つの文字列が一致していれば1を,一致していなければ0を返す関数int mycmp(char *, char *);を定義し,これを有効に使うこと.
文字列は256文字以下が入力されるものとし,文字列の長さに関するエラー処理をする必要はない.
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: 無期限
[5] その他の制限: 配列宣言を除き,すべてポインタを用いて処理すること
よろしくお願いします。
0283デフォルトの名無しさん
2006/06/06(火) 21:14:50#include <stdio.h>
int mycmp(char *s1, char *s2){
int i = 0, j = 0;
while(*(s1 + i) != NULL)i++;
while(*(s2 + j) != NULL)j++;
if(i != j)return 0;
while(*s1 != NULL){
if(*s1 != *s2)return 0;
s1++, s2++;
}
return 1;
}
int main(){
char tmp[256];
char s1[256], s2[256];
gets(tmp);
sscanf(tmp, "%s%s", s1, s2);
if(mycmp(s1, s2) == 1)puts("yes");
else puts("no");
return 0;
}
と作ってみたが、mycmp内でstrcmp呼べばいいんじゃないかとオモタ
0284デフォルトの名無しさん
2006/06/06(火) 21:20:40#include<math.h>
int main(void)
{
double a, b, c, D, x1, x2, x3, x4, A0;
printf("二次方程式 ax^2 + bx + c = 0 が与えられている。\n");
printf("a,b,cにそれぞれ数値を入力する。\n");
printf("a="); scanf("%f", &a);
printf("b="); scanf("%f", &b);
printf("c="); scanf("%f", &c);
printf("とすると、");
D = pow(b, 2) - 4 * a * c;
x1 = (-b + sqrt(pow(b, 2) -4 * a * c))/(2 * a);
x2 = (-b - sqrt(pow(b, 2) -4 * a * c))/(2 * a);
x3 = -b /(2 * a);
x4 = (sqrt(D))/(2 * a);
A0 = -c/b;
if (a == 0)
{printf("この場合、二次方程式は解 x=%f を持つ。\n", A0);}
else if (D > 0)
printf( "この場合は異なる2つの実数解 x=%f,%f を持つ。\n", x1, x2);
else if (D == 0)
printf( "この場合は重解 x=%f を持つ。\n", x1, x2);
else
printf( "この場合は異なる2つの虚数解 x=%f±%fiを持つ。\n", x3, x4);
return 0;
}
二次方程式ax^2+bx+c=0でa,b,cの値を入力して、解が
D<0,D=0,D>0のいずれに該当するのかを表示させ、その値も表示させるプログラムを作成したいのですが、
実行すると答えがx=0.000000±naniと出てしまいます。
どこがいけないのでしょうか???
0285デフォルトの名無しさん
2006/06/06(火) 21:34:00ありがとうございます。
出力を以下のようにしたくて、scanf関数内をいじってみたのですが、どうもうまくいきません。
どのようにすれば良いでしょうか?
./same
ABC
ABC
yes
./same
ABC
ABC
no
./same
ABC
abc
no
./same
ABC
ABD
no
./same
ABC
BC
no
0286デフォルトの名無しさん
2006/06/06(火) 21:48:08scanf("%f", &a); → scanf("%lf", &a);
scanf("%f", &b); → scanf("%lf", &b);
scanf("%f", &c); → scanf("%lf", &c);
x4 = (sqrt(D))/(2 * a); → x4 = (sqrt(-D))/(2 * a);
0287デフォルトの名無しさん
2006/06/06(火) 22:10:03で、できましたっ!
ありがとうございます☆
あと%lfと%fは何が違うのでしょうか?
0288デフォルトの名無しさん
2006/06/06(火) 22:16:13scanfにおいては%fがfloatで、%lfがdouble。
printfでは、%fがdouble用だが、floatにもdoubleにも使える。
なぜならprintfを呼ぶ時点でfloatの引数はdoubleに格上げされるので、
printfの中の人にはfloatとdoubleの区別が付けられないから。
0289デフォルトの名無しさん
2006/06/06(火) 22:24:51ありがとうございますっ!!
0290271
2006/06/06(火) 22:36:19using namespace std;void selection_sort、tmp=a[0];a[0]=a[min_pos];a[min_pos]=tmp;}}selection_sort(&a[1],len-1
など、習っていないみたいで私には解りません。よろしくお願いします。
0291デフォルトの名無しさん
NGNGここはお前に何かを理解させるスレではない。
理解するのが目的ならこんなスレに来るな。
0292デフォルトの名無しさん
NGNG>お前が帰れよ、ここはC++のスレだしC#じゃねっw
どっからC#が出てきたんだ?
>なに偉そうにしてんの?専門学校程度の低学歴めがw
あらあら…モノを知らないってのは幸せだねえ。
0293デフォルトの名無しさん
2006/06/07(水) 00:58:54このページのCプログラムをC++に書き換えたいです。
コンパイラはVC++を使ってます。
よろしければ、どなたかお願いします。
0294デフォルトの名無しさん
2006/06/07(水) 07:35:47ぷぷっ、低学歴が釣れたw
レスした時点でお前が必死こいているのが分かるw
#ってのはあんたがいちいち書き込みのタイムスタンプの後ろにつけているから
ここは#のスレじゃねっ!って突っ込んでやったわけだよ。
それから、お前の指摘はコンパイルエラー程度。
何も分かっちゃいない、他人のソース丸写し or 真似ごと
程度しか出来ないお前が偉そうにしているのがうざいだけ。
分かったらとっとと失せろ。ソフトウェア開発でも習ってから出直せ。
0295デフォルトの名無しさん
2006/06/07(水) 07:56:31>俺の子を産んでくれる繁殖可能な女性を広く募集中。
ワラタ
0296デフォルトの名無しさん
2006/06/07(水) 07:58:07うぉっと、ここまでかw
0297デフォルトの名無しさん
2006/06/07(水) 08:00:07まぁ良いや、>>291のアレをクリックしてくれりゃ。
他で「性帝トーマス◇13ThomasYo」を探してきまつw
0298デフォルトの名無しさん
2006/06/07(水) 09:11:360299デフォルトの名無しさん
NGNG>#ってのはあんたがいちいち書き込みのタイムスタンプの後ろにつけているから
半年ROMっててよ。
0300デフォルトの名無しさん
2006/06/07(水) 09:17:29やだよ、そんな分かりきったことw 良いからコテハン+トリップつけてろよw
検索エンジンで探したら、恥ずかしいレスがいっぱい出てきたぞw
0301デフォルトの名無しさん
2006/06/07(水) 09:22:19ブ○だけどお金持ちの女性が嫁ぎたいと申し出ております
どうなされますか?
0302デフォルトの名無しさん
2006/06/07(水) 09:30:10[2]
正の整数を読み込み、その整数が素数であるか調べるプログラムを作成
[3] 環境
[3.1] OS:xp
[3.2] gcc 3.4
[3.3] 言語:どちらでも可
[4] 期限:明日の15時まで
よろしくお願いいたします
0303デフォルトの名無しさん
2006/06/07(水) 09:42:20っつか、それありきたりのアルゴリズムだから。エラトステネスのふるいを使って
入力した数値が素数か判別すりゃええがな。これくらい自力で出来ないとまずいぜ。
0304デフォルトの名無しさん
2006/06/07(水) 10:12:47↓なるべく習ってないだろうというのを除いたつもり。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1995.cpp
せっかく作ってくれた人がいるんだから、あんまりこういうの無しにしてやれよ。
0306デフォルトの名無しさん
2006/06/07(水) 10:31:33ポインタ使ったり if 文の条件の中に or とか関数の返り値(0か1)で
真偽を判別するのはまだ早いんじゃね?本人が理解できるかどうか・・・
0307デフォルトの名無しさん
2006/06/07(水) 10:32:37ものすごい嫌がらせな気がしてならない・・・計算機の利便性を無視してんなw
0308デフォルトの名無しさん
2006/06/07(水) 10:37:12何が悔しくてトーマスに噛みついてるのか知らないが、いいかげん痛々しい。
マジで半年ROMった方がいい。
0309デフォルトの名無しさん
2006/06/07(水) 10:40:54悔しいとかじゃなくて目立ちたがりやで名無しを罵倒する厨房がうざいだけ
ろくに知識も能力もないのに、目だっただけで他人より優勢だと勘違いしてんだよw
そういう奴は井の中の蛙、大海に出れば波に飲まれていちころよw
0310デフォルトの名無しさん
NGNG本人の理解なんかどうでもいいというのがこのスレの趣旨です。
理解したいと思ってる人は丸投げなんかしませんので。
>>307
いやいや、「大量のメモリ」というのも利便性の一つなわけで。
0311デフォルトの名無しさん
2006/06/07(水) 10:41:59タイムスタンプの後ろをよーーく見るように、注意すべし。
0312デフォルトの名無しさん
2006/06/07(水) 10:44:34いやもう恥ずかしいから…
それ以上恥かかないうちに黙った方が…
0313デフォルトの名無しさん
2006/06/07(水) 10:44:41>大量のメモリ
はい、バーーーーカ。効率の良いアルゴリズムが重要なのに
計算処理能力が高くなった汎用電子計算機の特性をうまく利用できない奴は失せろ。
お前みたいなバカは、路上で前が詰まっているのに、信号機が赤なのに
無駄に加速して、無駄にブレーキで速度を殺してエネルギーを無駄にするタイプだろw
スマートな考えが出来ない奴は助言なんてするな、うざいだけ。
所詮、その程度のやり方しか出来ないなんて、専門学校程度だろ?
>>310
>本人の理解なんかどうでもいい
とか言って、コンパイルエラーしか指摘しないうざさ。まぁ、お前が書いたソースなんだが
自分でも要求している問題文が理解出来てないみたいじゃんw
理解させる前にお前が理解してないんだよタコ
0314デフォルトの名無しさん
2006/06/07(水) 10:46:41ノートン先生が反応して見れない。
0315デフォルトの名無しさん
NGNGおいおい。>>305に貼ったのは充分効率的なアルゴリズムだよ。
素数テーブルの最大値をよく見てみな。
>とか言って、コンパイルエラーしか指摘しないうざさ。
わざわざコンパイルエラーなんか指摘しねえよ。そんなのはコンパイラの仕事。
人間様の仕事じゃない。
0316デフォルトの名無しさん
2006/06/07(水) 10:58:52>気に入らない質問やその他や発言はスルーの方向で。
頼むよ。
0317デフォルトの名無しさん
2006/06/07(水) 11:13:58あいたたたたたた…
言わんこっちゃない。
0318デフォルトの名無しさん
2006/06/07(水) 11:26:03大人でも子供でも関係ない。馬鹿にされたり卑下されりゃむかつく。
ただ、それを我慢しよう。
スルーしたくても、むかついてレスを返したいのはわかる。
でもスルーしよう。
0319デフォルトの名無しさん
2006/06/07(水) 11:32:13[2] 問題文: 1方向線状リストを使って、スタックを実現せよ。 ただし、各記憶要素xは整数値をとるものとする。
関数として、push(x)、pop()、empty()、ならびに現在のスタック内容を表示するためのshow()を用意する。
ヒント:1方向線状リストの先頭(左端)がスタックのトップを表すようにすると、リスト末尾へのポインタが不要になる。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ(バージョン):gcc
[3.3] 言語:C
[4] 期限:今日
[5] その他の制限:無し
以前のスレで質問させていただきましたが、
エラーが大量に出てしまい、それから色々と試しましたがどうすればいいのかわかりませんでした。
0321デフォルトの名無しさん
NGNGむ。コンパイルエラーか。
struct stack{int x; struct stack* next;};
struct stack* STACK=NULL;
void push(int x){struct stack* sp=STACK;while(!sp)sp=sp->next;
sp=(struct stack*)malloc(sizeof(struct stack));sp->x=x;sp->next=NULL;}
int pop(){int ret;struct stack* sp=STACK;struct stack* prev=NULL;
while(sp){prev=sp;sp=sp->next;}if(sp){ret=sp->x;prev->next=NULL;free(sp);return ret;}
return 0;}
void empty(){struct stack* sp=STACK;struct stack* next=NULL;
while(sp){next=sp->next;free(sp);sp=next;}}
void show(){struct stack* sp=STACK;while(sp){printf("%i\n",sp->x);sp=sp->next;}}
0322デフォルトの名無しさん
2006/06/07(水) 11:42:160323デフォルトの名無しさん
NGNG問題文にはこれ以上のことをしろとは書いてないように見えるが。
0324デフォルトの名無しさん
2006/06/07(水) 11:52:36適当な数列をスタックに入れてそれが処理される過程と処理後の結果も出力しないといけないんです。
0325デフォルトの名無しさん
NGNGだったらそうすりゃいいじゃねえか。
int main(void){empty();show();
push(1);show();push(2);show();push(3);show();
pop();show();pop();show();pop();show();
return 0;}
0326デフォルトの名無しさん
2006/06/07(水) 12:02:150327デフォルトの名無しさん
NGNGpushが甘かったか。
void push(int x){struct stack* sp=STACK;struct stack* prev=NULL;
while(sp){prev=sp;sp=sp->next;}sp=(struct stack*)malloc(sizeof(struct stack));
sp->x=x;sp->next=NULL;if(!STACK)STACK=sp;if(prev)prev->next=sp;}
0329デフォルトの名無しさん
2006/06/07(水) 12:23:29結局その課題、指定した条件(サブルーチン)を使うことも含めているけど
重要なのは選択法による並び替えのアルゴリズムでしょ?
基本選択法そのものがわかっていないなら、まずはその概要から知るべきだよ。
そうすれば自ずとアルゴリズムも出来上がるでしょ。
0330デフォルトの名無しさん
2006/06/07(水) 12:24:39ごちゃごちゃ言わずに俺に従え!!!
0331デフォルトの名無しさん
2006/06/07(水) 12:30:00検索すりゃ出てくる。自分で取り込めないなら諦めるしかないね。
>>1を見れば、あまり親切なスレじゃないって割り切るしかないっしょw
0332デフォルトの名無しさん
NGNG0333デフォルトの名無しさん
2006/06/07(水) 13:14:130334デフォルトの名無しさん
2006/06/07(水) 13:14:49おじさんが完璧に解いてやる。
0335デフォルトの名無しさん
2006/06/07(水) 13:26:460336デフォルトの名無しさん
2006/06/07(水) 13:27:490337デフォルトの名無しさん
2006/06/07(水) 13:30:540338デフォルトの名無しさん
2006/06/07(水) 13:32:340339デフォルトの名無しさん
2006/06/07(水) 13:33:47\ �U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
0340性帝トーマス
2006/06/07(水) 13:38:14\ �U /
/ ̄ ̄ ヽ,
/ ', / _/\/\/\/|_
\ ノ//, {0} /¨`ヽ {0} ,ミヽ / \ /
\ / く l ヽ._.ノ ', ゝ \ < バーカ! >
/ /⌒ リ `ー'′ ' ⌒\ \ / \
(  ̄ ̄⌒ ⌒ ̄ _)  ̄|/\/\/\/ ̄
` ̄ ̄`ヽ /´ ̄
| |
−−− ‐ ノ |
/ ノ −−−−
/ ∠_
−− | f\ ノ  ̄`丶.
| | ヽ__ノー─-- 、_ ) − _
. | | / /
| | ,' /
/ / ノ | ,' \
/ / | / \
/_ノ / ,ノ 〈 \
( 〈 ヽ.__ \ \
ヽ._> \__)
0341デフォルトの名無しさん
2006/06/07(水) 13:44:070342デフォルトの名無しさん
NGNG#include<stdio.h>
struct stack{int x; struct stack* next;};
struct stack* STACK=NULL;
void push(int x){struct stack* sp=STACK;struct stack* prev=NULL;
while(sp){prev=sp;sp=sp->next;}sp=(struct stack*)malloc(sizeof(struct stack));
sp->x=x;sp->next=NULL;if(!STACK)STACK=sp;if(prev)prev->next=sp;}
int pop(){int ret=0;struct stack* sp=STACK;struct stack* prev=NULL;struct stack* prev2=NULL;
while(sp){prev2=prev;prev=sp;sp=sp->next;}if(prev){ret=prev->x;free(prev);}
if(prev2)prev2->next=NULL;else STACK=NULL;return ret;}
void empty(){struct stack* sp=STACK;struct stack* next=NULL;
while(sp){next=sp->next;free(sp);sp=next;}}
void show(){struct stack* sp=STACK;int n=0;while(sp){printf("[%i]:%i\n",n++,sp->x);sp=sp->next;}}
int main(void){empty();show();
push(1);show();push(2);show();push(3);show();
pop();show();pop();show();pop();show();
return 0;}
0343271
2006/06/07(水) 13:58:01>>329様のサイトを精査してみます。b = a[i]など[]は習っていないので調べてみます。
当該サイトのプログラマー様すみませんでした。
ちなみにわたしは>>337ではありません。
0344デフォルトの名無しさん
2006/06/07(水) 13:58:510345デフォルトの名無しさん
2006/06/07(水) 14:03:05ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1997.cpp
んじゃこれでw
0348デフォルトの名無しさん
2006/06/07(水) 14:16:490349デフォルトの名無しさん
2006/06/07(水) 14:17:46半年ROMってろ、恥をかく前に煽るのヤメレって言われますよ?
0350デフォルトの名無しさん
2006/06/07(水) 14:29:01以下淡々と質問及び解答で。
0352デフォルトの名無しさん
2006/06/07(水) 14:43:22ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1998.cpp
0353デフォルトの名無しさん
NGNG>for(i=2;i<=x;i++)
ループ回数大杉。
0354デフォルトの名無しさん
2006/06/07(水) 14:57:160355デフォルトの名無しさん
2006/06/07(水) 14:58:42というかそんなことをいちいち指摘しなくても>>305のコードで十分だろ。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
2006/06/07(水) 15:04:19おk、それじゃ偶数は不要なんで回数を減らしてみた
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1999.cpp
0358デフォルトの名無しさん
2006/06/07(水) 15:05:31ケチって言うけど、実際問題として効率の悪い部分は直していった方が
今後のためだお。そうやって推敲していって、人類は効率の良い技術を培い
次の世代に教科書などで伝授していっているんだから。
文明や文化、科学技術の発展はそういったところから重要。
0359デフォルトの名無しさん
2006/06/07(水) 15:12:170360デフォルトの名無しさん
2006/06/07(水) 15:14:59俺は>>352じゃないけど、俺でも>>352のように書いたと思うから弁護させてもらうが、
高速化のために実装を複雑にするのはトレードオフで、
どっちが優れているという話でもないだろ。
特に宿題の解答では「単純であること」を相当に優先する趣味があっても良いはず。
というわけで>>353は酷い蛇足だと思う。
>>358
書いた当人がそれを望んでいるならそれもいいがな。
0361デフォルトの名無しさん
2006/06/07(水) 15:15:48よく見ろ。
0362デフォルトの名無しさん
2006/06/07(水) 15:16:020363デフォルトの名無しさん
2006/06/07(水) 15:18:440364デフォルトの名無しさん
2006/06/07(水) 15:20:44「無用な付けたし」の意味で使ったがおかしいか?
0365デフォルトの名無しさん
2006/06/07(水) 15:23:20まぁ、批判などは良い、ご自分の素数を求めるソースを提示してくれ。
素数を求めるアルゴリズムには、エラトステネスのふるいが有名だが
今回は何が素数か?ではなく、入力された数値が素数に該当するか?だぜ。
0366デフォルトの名無しさん
NGNGあのな、
>for(i=2;i<=x;i++)
これを
>int r=sqrt(x);for(i=2;i<=r;i+=(i>2)?2:1)
こうする程度のことが複雑か?
この程度で理解できないほど複雑になったと感じるなら、それはプログラム以前の問題。
0367デフォルトの名無しさん
2006/06/07(水) 15:27:12蛇の絵を描く競争で早く書き上げた者が足まで書いて負けになったという故事から。
・あっても益のない余分な物事。
・あっても無駄になるもの。
0368デフォルトの名無しさん
2006/06/07(水) 15:28:30なんで俺?俺なら>>352で十分だと思う。
>>366
可読性や分かり易さの話じゃなくて、単純な解答にはそれ自身で
それなりに価値がある、という話。
もちろんこのスレの解答で単純さにどの程度重きを置くかは回答者の勝手だが。
0369デフォルトの名無しさん
2006/06/07(水) 15:31:34自分では素直じゃないコード書いておいて、
他人が素直じゃないコード書いた時に指摘して答えを書いちゃうのはどうかと思う。
0370デフォルトの名無しさん
NGNGもうちょっとだな。iの最大値は√xで良い。
0371デフォルトの名無しさん
2006/06/07(水) 15:39:02まっ、質問者のレベルに応じてやったまでさ。このスレの趣旨からして
答えた人のレベルで答えりゃ良いだろうし、○投げだけど答えが導ければそれで良しw
0372デフォルトの名無しさん
2006/06/07(水) 15:49:530373デフォルトの名無しさん
2006/06/07(水) 16:11:470374デフォルトの名無しさん
2006/06/07(水) 16:17:03後、この世の女の子が俺無しじゃ生きていけないPGも。
0375デフォルトの名無しさん
2006/06/07(水) 16:24:10ゾンビになるものならあるかもよ?
0376デフォルトの名無しさん
2006/06/07(水) 16:27:01他人に見せるならなおさらだな。
大掛かりなプロジェクトに参加するようになれば
そういった人間同士のやりとりも重要になるし。
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
2006/06/07(水) 16:55:42なおかつ計算手順まで理解していないから。
俺が言っているのは細かい説明じゃなくて、見やすいソース。
0379デフォルトの名無しさん
2006/06/07(水) 17:43:100380デフォルトの名無しさん
2006/06/07(水) 17:45:270381デフォルトの名無しさん
2006/06/07(水) 17:47:48人が読む為のソースとしては駄目なソース。
俺が好きなのはタルタルソース。
0382デフォルトの名無しさん
2006/06/07(水) 17:52:03100 | 0x21 == 100 & 0144
処理の優先順位を考えると 100 になると思うのですが
答えは真(1)と言われました。
なぜ真になるのでしょうか?
どなたかお願いします。
0383デフォルトの名無しさん
2006/06/07(水) 18:17:15ただし100は真なので、結果が真というのは正しい。
0384デフォルトの名無しさん
2006/06/07(水) 18:25:22ありがとうございます
1か0で答えなければならないのに答えが100となり
分からなくなってしまいました。
100は「真」なので答えは100ではなく1になるということですね
根本的な知識が足りないことがわかりました。
本当にありがとうございました。
0385デフォルトの名無しさん
2006/06/07(水) 22:32:54[2] 問題文
文字列検索の宿題なんですが、
半角と全角が(漢字など)入り混じった文字列を検索して、
検索した文字列の先頭文字の位置を出力するという問題です。
C++で用意されている検索関数は不可です。
[3] 環境
[3.1] WindowsXP
[3.2] VC++ 6.0
[3.3] C++
[4] 明日の18時まで
よろしくお願いします☆
0387デフォルトの名無しさん
2006/06/07(水) 23:05:17http://travel2.2ch.net/test/read.cgi/kyoto/1148668530/l50
0388デフォルトの名無しさん
NGNG対応するコードページは?
0389デフォルトの名無しさん
2006/06/08(木) 14:38:27すみません。コードページについての指定はありません。
日本語や英語入り混じった文字列なので、それに対応したコードでお願いします。
0390デフォルトの名無しさん
2006/06/08(木) 14:42:47ソースのコードページの事じゃなくて、文字列のコードページの事だと思われ
0391デフォルトの名無しさん
2006/06/08(木) 15:15:35次スレの184だが、似たような問題だったので改変して作った。
日本語の場合は2文字分スキップしてしまうんだけどいい?
だから表示結果は○文字目ではなくて○バイト目とした。
#include <stdio.h>
int chkmatch(char *t1, char *t2){
int find = -1, count = 0;
char *save1,*save2;
while( *t1 ){
if( *t1 == *t2 ){
save1 = t1;save2 = t2;find = count;
while( *t2 ){
if( *t1 != *t2 ){ find = -1;break; }
t1++; t2++;
}
t1 = save1;t2 = save2;
if( find != -1 ) break;
}
t1++; count++;
}
return find;
}
int main( void ){
char buf1[256],buf2[256]; int find;
printf("元の文章-->");gets(buf1);printf("検索する文章-->");gets(buf2);
find = chkmatch(buf1,buf2);
if(find>=0){ printf("見つかった。%dバイト目。\n",find+1 ); }
else{ printf("見つからなかった。\n"); }
return 0;
}
0392デフォルトの名無しさん
2006/06/08(木) 15:20:00[1] 授業単元:
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2011.txt
[3] 環境 linux
[3.2] コンパイラ名とバージョン:gcc4.0
[3.3] 言語: C
[4] 期限:無期限
[5] その他の制限:
よろしくお願いします
0393デフォルトの名無しさん
2006/06/08(木) 15:29:18えっと、文字の位置指定なのでバイトではなく、何番目って事でお願いしたいです。
すみません。お願いします。
0394デフォルトの名無しさん
NGNGんじゃUNICODE限定。
#define _UNICODE
#include<iostream>
#include<wchar.h>
using namespace std;
long wstrsearch(wchar_t* src, wchar_t* key){
long i=0, k=0;while (src[i]!=_T('\0')) {
while(src[i+k]==key[k] && key[k]!=_T('\0'))k++;
if (key[k]==_T('\0'))return i;else{k=0;i++;}}
return -1;}
int main(int argc, _TCHAR* argv[]){
if (argc>1) {wchar_t tmp[100];FILE* fp;
if ((fp=fopen(argv[1],"rt"))!=NULL) {wchar_t* buf;
fseek(fp,0,SEEK_END);long length=ftell(fp);
fread((void*)buf,1,length,fp);fclose(fp);
fgetws(tmp,100,stdin);long pos=wstrsearch(buf,tmp);
if (pos>=0)
cout << "find " << tmp << " at " << pos << " in " << argv[1] << endl;
else
cout << "not found" << endl;
}}return 0;}
0395デフォルトの名無しさん
2006/06/08(木) 15:48:31数字を入力するときはコマンドラインで「./minswp 5 87 54 23 45 61」というようにやってちょ。
#include <stdio.h>
#include <stdlib.h>
int array[10];
void swapsmall(int *data, int num){
int min = *data, *p, *head, temp;
head = data;
while(num--){
if( *data <= min ){
min = *data;
p = data;
}
data++;
}
temp = *head; *head = *p; *p = temp;
}
int main( int argc, char **argv ){
int i,num;
if( argc < 3 ){ printf("引数足りない\n"); return 1; }
num = atoi(argv[1]);
for(i=0;i<num;i++){
array[i] = atoi(argv[i+2]);
}
swapsmall( array, num );
for(i=0;i<num;i++){printf("%d",array[i]); if(i!=num-1)printf(" ");}
return 0;
}
0397395
2006/06/08(木) 16:02:09配列のほうが分かり易いのに。 ポインタの場合はアドレス進めてしまうのが嫌。
まぁ、hoge[10]を*(hoge+10)に変えてもOKならそれが早いんだけど。
0398デフォルトの名無しさん
2006/06/08(木) 16:02:17:\documents and settings\owner\デスクトップ\cpp1.cpp(6) : error C2065: '_T' : 定義されていない識別子です。
c:\documents and settings\owner\デスクトップ\cpp1.cpp(10) : error C2061: 構文エラー : 識別子 '_TCHAR' がシンタックスエラーを起こしました。
c:\documents and settings\owner\デスクトップ\cpp1.cpp(12) : error C2065: 'argv' : 定義されていない識別子です。
c:\documents and settings\owner\デスクトップ\cpp1.cpp(12) : error C2109: 配列または、ポインタでない変数に添字が使われました。
c:\documents and settings\owner\デスクトップ\cpp1.cpp(12) : error C2664: 'fopen' : 1 番目の引数を 'int' から 'const char *' に変換できません。 (新しい機能 ; ヘルプを参照)
整数型からポインタ型への変換には reinterpret_cast、C スタイル キャストまたは関数スタイル キャストが必要です。
c:\documents and settings\owner\デスクトップ\cpp1.cpp(17) : error C2109: 配列または、ポインタでない変数に添字が使われました。
cl.exe の実行エラー
というエラーが出てきました。
0399デフォルトの名無しさん
NGNGプロジェクトの新規作成→Win32コンソールアプリケーション
で
0400391
2006/06/08(木) 16:22:00#include <stdio.h>
#include <ctype.h>
int chkmatch(char *t1, char *t2){
int find = -1, count = 0, ascii=0;
char *save1,*save2;
while( *t1 ){
if( *t1 == *t2 ){
save1 = t1;save2 = t2;find = count;
while( *t2 ){
if( *t1 != *t2 ){ find = -1;break; }
t1++; t2++;
}
t1 = save1;t2 = save2;
if( find != -1 ) break;
}
/*アスキーの場合以外*/
if( !__isascii(*t1) ) { t1+=2; count++; }
else{t1++;count++;}
}
return find;
}
int main( void ){
char buf1[256],buf2[256]; int find;
printf("元の文章-->");gets(buf1);printf("検索する文章-->");gets(buf2);
find = chkmatch(buf1,buf2);
if(find>=0){ printf("見つかった。%d文字目。\n",find+1 ); }
else{ printf("見つからなかった。\n"); }
return 0;
}
0401デフォルトの名無しさん
2006/06/08(木) 16:23:32wstrsearchの中では_T使わないで直接L'\0'にすべきだろ。
あと、本当に必要なヘッダは<tchar.h>、<cstdio>などで、
そのプログラムには<iostream>も<wchar.h>も不要。(<wchar.h>は全く不要とも言えないが)
0402デフォルトの名無しさん
2006/06/08(木) 16:29:21ありごとうござました!!!
これで単位が取れます☆
感謝です!!
0403デフォルトの名無しさん
NGNGcstdioとtchar.hはstdafxに書いてあった。
0404デフォルトの名無しさん
2006/06/08(木) 17:38:58[2] 問題文(含コード&リンク):
予想値と正解の差が10以下なら「もうちょっと(上・下)!」,5以下なら「おしい!もうちょっと(上・下)!」それ以外のときは「もっと(上・下)!」というようにせよ。
また,予想値を入れる回数を5回までとせよ.5回の入力で正解できないときはゲームオーバーとしてプログラムは終了する.また,最後にスコアを以下のように計算して表示するようにせよ.
1回目で正解:100点 ,2回目で正解:80点, 3回目で正解:60点, 4回目で正解:40点, 5回目で正解:20点 ,正解できず:0点
[実行結果]
<<<<数当てゲーム>>>>
予想値を入れてください:34
もっと上!
予想値を入れてください:87
もっと下!
予想値を入れてください:49
もうちょっと上!
予想値を入れてください:60
おしい!もうちょっと下!
予想値を入れてください:55
!!!!大あたりです!!!!
SCORE: 20点
3] 環境
[3.1] OS: (Windows
[3.2] コンパイラ名とバージョン: Visual Studio.NET2003
[3.3] 言語: C++
[4] 期限: 6月9日まで
[5] その他の制限: まだ初期で、if,for,whileまで習いました。
よろしくお願いします。
0406デフォルトの名無しさん
2006/06/08(木) 17:48:52正解の値はどうやって決めるん・・・・?
0407デフォルトの名無しさん
2006/06/08(木) 17:55:30正解の値は自分で決めるんですよ。
この問題の例だと55になってます。
0408デフォルトの名無しさん
2006/06/08(木) 18:10:41ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2012.cpp
0409デフォルトの名無しさん
2006/06/08(木) 18:22:40トーマスがおとなしい……。芸風が変わったのか?単に今忙しくて相手にできないのか?
ちょっと寂しい。
0410デフォルトの名無しさん
2006/06/08(木) 18:37:20>>408削除で訂正
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2014.cpp
前のはちと点数の算出が不適切だったかと。あと、絶対値を求めるのも初歩的なものに。
0411デフォルトの名無しさん
2006/06/08(木) 18:40:58[1] 授業単元: 基本プログラミング
[2] 問題文(含コード&リンク):入力された複数の0以上の整数値の平均値、最大値、最小値を求めるプログラムを2種類作成せよ。(1をwhile文、2をdoーwhile文を使う)
1、入力する数値の個数がわかってない場合(入力が終わると負の値を入れて対応)
実行例
Input date:5
Input date:6
Input date:7
Input date:5
Input date:-1
ave=5.75 max=7 min=5
2、入力する数値の個数がわかっている場合(初めに、その個数をnに入力してから、その後にその個数分だけ数値を入力)
実行例
n=5
Input date:4
Input date:6
Input date:9
Input date:3
Input date:8
ave=6 max=9 min=3
[3] 環境
[3.1] OS:UNIX
[3.3] 言語:C++
[4] 期限:明日
[5] while,do-whileまで習いました 最初が#includ<iostream>のやつでお願いします 注文多くてすみません‥
0412デフォルトの名無しさん
2006/06/08(木) 18:48:530413デフォルトの名無しさん
2006/06/08(木) 19:26:59ありがとうございます。
少し参考にさせてもらって自分なりのプログラム作れました。
0414デフォルトの名無しさん
2006/06/08(木) 19:43:35#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
main(){
std::vector<int> v;
while(1){
std::cout << "Input date:";
int n; std::cin >> n; if( n < 0 ) break; v.push_back(n);
}
std::cout << "ave=" << std::accumulate(v.begin(), v.end(), 0)/(double)v.size()
<< " max=" << *std::max_element(v.begin(), v.end())
<< " min=" <<*std::min_element(v.begin(), v.end()) << std::endl;
}
『2』
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <numeric>
main(){
std::cout << "n="; int n; std::cin >> n; if(n<1) return 0;
std::vector<int> v;
do{
std::cout << "Input date:"; int m; std::cin >> m; v.push_back(m);
}while(--n);
std::cout << "ave=" << std::accumulate(v.begin(), v.end(), 0)/(double)v.size()
<< " max=" << *std::max_element(v.begin(), v.end())
<< " min=" <<*std::min_element(v.begin(), v.end()) << std::endl;
}
0415デフォルトの名無しさん
2006/06/08(木) 19:44:210416デフォルトの名無しさん
2006/06/08(木) 19:50:22[1] 授業単元:プログラミング
[2] 問題文:
ttp://pc8.2ch.net/test/read.cgi/tech/1147908265/152
の貯金プログラムを拡張して、額の表示の際に3桁ごとにコンマを入れる形式をとるようにせよ.下記例のようにどのような桁数でも桁数に応じてきちんと表示できるようにすること.
12円⇒12円
789012円⇒789,012円
1000001円⇒1,000,001円
1234567890円⇒1,234,567,890円
[3] 環境
[3.1] OS: (Windows
[3.2] コンパイラ名とバージョン: Visual Studio.NET2003
[3.3] 言語: C
[4] 期限: 明日まで
[5] その他の制限: if,for,whileまで習いました。
0417デフォルトの名無しさん
2006/06/08(木) 20:05:310418デフォルトの名無しさん
2006/06/08(木) 20:31:33void hoge(int n){
int x = 1, i = 0, j = 1;
while(n / 1000 >= x ){x *= 1000; j++;}
while(i < j){
if(i == 0)printf("%d", n / x);
else printf(",%03d", n / x);
n %= x;
x /= 1000;
i++;
}
printf("円\n");
}
int main(void){
int m[] = {12, 789012, 1000001, 1234567890};
for(int i = 0; i < sizeof(m) / sizeof(m[0]); i++){
printf("%d円 ", m[i]);
hoge(m[i]);
}
}
三桁区切り>>416
あとは自分で組み込んで
0419デフォルトの名無しさん
2006/06/08(木) 20:34:33へぇ。C++の標準ライブラリにはこんな便利な関数群があるのか。
こんだけスマートに書けたら卒業レベルやんね。
0420デフォルトの名無しさん
2006/06/08(木) 23:10:430421デフォルトの名無しさん
2006/06/08(木) 23:15:550422デフォルトの名無しさん
2006/06/09(金) 01:26:110423デフォルトの名無しさん
2006/06/09(金) 02:31:18[2] http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2017.zip
[3] 環境
[3.1] WindowsXP SP2
[3.2] VisualStudio2003
[3.3] C++
[4] 06月09日12:00まで うっかり忘れてたorz(どうせわからんがorz)
[5] if,for,while,switchを習ったばかりです。
0424デフォルトの名無しさん
2006/06/09(金) 07:53:44最初っからまとめて問題文ごと出しておけば良いのに
単発で目的に応じないレスを求めるから・・・
0425デフォルトの名無しさん
2006/06/09(金) 10:20:12もうすぐ12時だなぁ〜〜〜wktk
さて、今夜はワールドカップ!さすがに試合は夜中だから録画して
次の日に見るけど。ワールドカップを楽しみながら過ごす今年の夏。
俺は初めて彼女ができ、ロストチェリーボーイになった・・・とか期待してみたり
0426デフォルトの名無しさん
2006/06/09(金) 11:00:310427デフォルトの名無しさん
2006/06/09(金) 11:11:02自分の無知を呪ってね。
0429デフォルトの名無しさん
2006/06/09(金) 11:30:03ウィルス検知、駆除ソフトも持ってねーのかよ、だっせーーwwww
今じゃネットやるなら常識だろw
0430デフォルトの名無しさん
2006/06/09(金) 11:30:28#include <stdio.h>
main()
{
int n;
int i, j;
printf("一辺の長さを入力してください(1から10まで):");
scanf("%d", &n");
for (i = 0; i < n; i++) {
for (j = 0; j < i; j++)
putchar('x');
for (j = i; j < n; j++)
putchar('o');
}
return 0;
}
0431デフォルトの名無しさん
2006/06/09(金) 11:31:31怠っている奴がいるって通報しちゃうぞw
0432デフォルトの名無しさん
2006/06/09(金) 11:33:14既出だと思うので割愛
・その2
4-3.cをどう拡張しても使えそうにないので割愛
・その3
3-5.cをユーザインターフェースの仕様変更をせずに例のような表示を得ることができないので割愛
・その4
*誤り
main()に戻り値がない。
leepという変数名が不適切。
西暦年とあるのでグレゴリウス暦を仮定していいと思うが、制定年を考えると値域を限定すべき。
10行の右辺はyear != 0 && year % 400 == 0と同等になっている。
14行とも16行とも常に表示されるので閏年の判別ができない。
*修正その他
長くなったので割愛。
0433デフォルトの名無しさん
2006/06/09(金) 11:49:14ちょっwwwwwwおまっwwwwwwちゃんと改行コード入れてYO!
scanfの最後のダブルクォートが余計だYO!
0434デフォルトの名無しさん
2006/06/09(金) 11:50:490435デフォルトの名無しさん
2006/06/09(金) 11:57:40void main にしちゃって
0436デフォルトの名無しさん
2006/06/09(金) 12:05:230437デフォルトの名無しさん
2006/06/09(金) 12:06:22定義や仕様からして、不適切だってこと。それを理解していないと
環境が変わったり、突き進んだ先でコンパイルエラーが分からなくなる人が出てくるんだよ。
0438デフォルトの名無しさん
2006/06/09(金) 12:07:34そういうときは double f(x) といった形で定義するだろ?そういうこと。
main だとそういうところに気づかないだけ。
0439デフォルトの名無しさん
2006/06/09(金) 12:09:430440デフォルトの名無しさん
2006/06/09(金) 12:13:01いくつか試してみれば、そういう細かいところに気づくよ。
だから最初のその部分でつまらん論争が起こる。値を返さないなら void main にしとけばおk。
0441デフォルトの名無しさん
2006/06/09(金) 12:29:16エラーになるのはよほどへぼい処理系。
0442デフォルトの名無しさん
2006/06/09(金) 12:48:040443デフォルトの名無しさん
2006/06/09(金) 12:48:10ほうが、Cを知ってそう。
0444423
2006/06/09(金) 13:03:08ほかのやつ、習ってない語が多すぎてどうにも・・・
気持ちだけ受け取っときます(((´ー`)つ[黄餅]
ちなみにどうでもいい個人(?)情報流すと
名城大学2年Aクラスですが何か?ww
0445デフォルトの名無しさん
NGNG0446デフォルトの名無しさん
2006/06/09(金) 13:16:17ttp://www.meijo-u.ac.jp/jyukensei/info/form.html
0447デフォルトの名無しさん
2006/06/09(金) 13:18:36あのね、どのコンパイラがどうとかはこの際どうでも良い。
コンパイルエラーが起こるものがあるとかよりも
返り値についての事情を知っていれば、それに関する取り扱いも適切になってくるってこと。
にしてもint mainと書いて return 0(正常終了)を記述しないやつは完全に無知、
それは不要だと言い切った奴は知ったかだと思われるよ。
これはもはやプログラマの間でどうとかじゃない、言語の仕様の問題。
0448デフォルトの名無しさん
2006/06/09(金) 13:20:13ちょいお待ち、名城に来ている人すべてがそうとは限らないでしょ。
〜〜だからではなく、本人の本質を見抜く面接ができないところは
結局まともな人材を雇えず、まともな業務成績も出せないのさ。
0449432
2006/06/09(金) 13:24:220450デフォルトの名無しさん
2006/06/09(金) 13:28:120451デフォルトの名無しさん
2006/06/09(金) 13:44:380452デフォルトの名無しさん
NGNG「こんなところに来るクズ学生に単位をやっている」という時点でアウト。
0453デフォルトの名無しさん
2006/06/09(金) 13:52:19なぁ〜〜〜〜にぃ〜〜〜〜!?
男は黙って、return 1 男は黙って、return 1
異常終了だよ
0454デフォルトの名無しさん
2006/06/09(金) 13:59:09だから、言語仕様上は省略できだろよ。
return;を省略したら、C89はなにを返すか未定義、C99は0を返す。
それだけのこと。
mainをvoidにしろとか、returnを省略したらエラーになるとか、
間違いだとか言ってるやつが知ったかぶり。
0455デフォルトの名無しさん
2006/06/09(金) 14:00:59[1] 授業単元: 画像処理のための線形代数
[2] 問題文(含コード&リンク):
ベクトル v を任意のベクトル a を軸として左回りに t ラジアンだけ回転させたベクトルを求める関数を作成せよ。
v, a は Vector3、t は double 型とする。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: BCC32
[3.3] 言語: どちらでも可
[4] 期限: 2006年06月12日17:00まで
[5] その他の制限:
Vector3はx,y,zのメンバを持った構造体です。
0456デフォルトの名無しさん
2006/06/09(金) 14:02:590457デフォルトの名無しさん
2006/06/09(金) 14:25:54>できだろよ。
日本語でおk。
>return;を省略したら
するしないによるコンパイラがどうとか関係ない。
int main など、関数の前についている変数の定義にも使われる型が
なんで書かれているか?それに関しては返り値に関係してくる。
返り値がないなら普通に void って関数の前につけるクセはあった方が良いよ。
それをちゃんと理解してね。わけもわからずつけるんだよーってのはただのアホ。
0458デフォルトの名無しさん
2006/06/09(金) 14:28:03自分が理解してないなら屁理屈ごねてくんなよ、専門学校生w
>mainをvoidにしろとか、returnを省略したらエラーになるとか、
>間違いだとか言ってるやつが知ったかぶり。
何これ?間違いだとは言ってないじゃん。”不適切”とは書かれているがw
省略すると「返り値がない」としてエラーを表示するものもあるって話だが?
まだわかってないなこいつ・・・良い悪いの問題よりも
それが「何なのか?」が重要。要するにどっちでも良いって言っている奴は
何なのかが分かってない証拠。だったら適当に、値を返す関数の前に
返り値に対してのデータ型をきちっと書いてから出直せ。
0459デフォルトの名無しさん
2006/06/09(金) 14:30:40C89でも、returnを省略してエラーにはならない。
エラーになるのはよほどへぼい処理系。
↑誰もこんなことは論点にしていないw
関数の前に書かれている int や void が何を示しているのかってことなんだがw
それによって敢えて int って書くなら return をつけるつけないというよりも
値を返さないってわかってんなら void にするよ、分かっている人ならね。
>>434が言いたいのは単に「間違いではない」ってことだけであって
適切さを欠く知識しかないのが露呈されたわけだな。
0460デフォルトの名無しさん
2006/06/09(金) 14:36:51double main() でも char main() でも short、long でも好きなのを付けて
return 無しでどぞw
マジで、main の前にそれらをつけてもコンパイルできるものはできるから。
けど、敢えて int ならおkってなら、やっぱりわかってない無知決定だろw
0461デフォルトの名無しさん
2006/06/09(金) 14:44:44int main()を使う理由としてはこれで十分だろ。
0462デフォルトの名無しさん
2006/06/09(金) 15:22:10> ↑誰もこんなことは論点にしていないw
いや、すぐ上に話題にしてるやつがいるじゃん。
見えないふりするなよ。
0463デフォルトの名無しさん
2006/06/09(金) 15:27:38>>mainをvoidにしろとか、returnを省略したらエラーになるとか、
>>間違いだとか言ってるやつが知ったかぶり。
>何これ?間違いだとは言ってないじゃん。”不適切”とは書かれているがw
いや、voidにしろとか、returnを省略したらエラーになるって
言ってるやつがいるだろ。
それを間違いだって言ってるだけ。
見えないふりしたり、論点をずらそうとしても無駄。
0464デフォルトの名無しさん
2006/06/09(金) 15:31:40しろとか言い出して、間違いを指摘されたら「そんなことは論点じゃない」って、
アホか。
0465デフォルトの名無しさん
2006/06/09(金) 15:36:24い い か げ ん に し ろ
0466デフォルトの名無しさん
2006/06/09(金) 15:38:46勝手にintを規格上とかmainの返り値とか明示的に許されているとかウソこくでねぇよ、田舎もんがw
returnがないならvoidしとけっつーのっw
0467デフォルトの名無しさん
2006/06/09(金) 15:41:090468デフォルトの名無しさん
2006/06/09(金) 15:41:19>mainのリターン値をvoidに
誰も言ってないよ?しかもreturnがないならvoid・・・いやもう良いや。
この一言で分かったw
mainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidに
mainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidに
mainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidにmainのリターン値をvoidに
↑とても恥ずかしい勘違いをしていることが判明したますたw
こいつはreturnばかりにしか頭がいってないようです。
本質的なことはintやvoidといった関数の前についている変数の型についてなんだがw
0469デフォルトの名無しさん
2006/06/09(金) 15:41:58はぁ?いいから氏ねよ糞が
467 名前:デフォルトの名無しさん 投稿日:2006/06/09(金) 15:41:09
はぁ?いいから氏ねよ糞が
467 名前:デフォルトの名無しさん 投稿日:2006/06/09(金) 15:41:09
はぁ?いいから氏ねよ糞が
467 名前:デフォルトの名無しさん 投稿日:2006/06/09(金) 15:41:09
はぁ?いいから氏ねよ糞が
↑これ、どこの専門学校生?教えてよ、うちでは雇わないから
ブラックリストに入れたいんですけど?まぁ、専門学校は除外しとこうかw
0470デフォルトの名無しさん
2006/06/09(金) 15:43:31intでもcharでもdoubleでもfloatでもshortでもlongでもお好きなのを書いて
最後にreturnなしでソースを書いてなさいってw
なんでintだけおkなの?w
0471デフォルトの名無しさん
2006/06/09(金) 15:46:110472デフォルトの名無しさん
2006/06/09(金) 16:49:15> 誰も言ってないよ?
すげーこいつ、本気で見えないふりしてる。
>>440で言ってるだろよ。
0473デフォルトの名無しさん
2006/06/09(金) 17:17:19だそうだ
0474デフォルトの名無しさん
2006/06/09(金) 17:18:430475デフォルトの名無しさん
2006/06/09(金) 17:53:550476デフォルトの名無しさん
2006/06/09(金) 18:19:29ANSI CだけがC言語じゃありません、そんな一部だけ持ち出して
勝手なことを言うんじゃねーよw
>mainのリターン値をvoidにしろとか
だから本当に言ってねーってw
returnで返り値がないならvoidにしなきゃ
コンパイルエラーになるものもあるって話だろ。
まだこいつ変数の型について理解してないなw
0477デフォルトの名無しさん
2006/06/09(金) 18:22:16エラーが起こるコンパイラを知らないだけ。
逆に、そのエラーが起きないコンパイラでreturnを書かずに
voidと書いたらエラーが起こるならまだしも、話がわかってないアホ必死すぎw
0478デフォルトの名無しさん
2006/06/09(金) 18:27:34たいがいintと書かれているところはreturn 0を書くか
returnを書かない場合はvoid mainにしているから。
どのコンパイラでも通用するようにとの配慮だな。
分かってない奴は、エラーが起きるコンパイラを使っている人から
指摘されるか、こういった掲示板でこのサイトアホって晒されるかもねw
0479デフォルトの名無しさん
2006/06/09(金) 18:31:08そうは言ってもANSI(或いはISO)はもっとも知られたCであるはずだから、
473がANSIを持ち出すのも無理はなかろう。
0480デフォルトの名無しさん
2006/06/09(金) 18:37:56・繰り返し回数(N_REPEAT)を100から1にする。
#これだけで手元のLinuxPCだと100分の1とは言わないが60分の1ほどの0.12秒程度になる。
・コンパイラをgccからiccに換える。
#同じく1-2割所要時間が短縮する。
尚、この程度のソースだと人力で姑息な最適化しても(iccだと)殆ど効果はない。
処で、突っ込みどころ満載なんだけど。
・グレーはRGBの平均で求めてはいけない。
・処理する画像サイズが固定されている。
#まぁいいか。
0481デフォルトの名無しさん
NGNG須く何も書かないような奴がいたら即刻クビ。
「省略が許されているから」という理由で、returnを書かないような奴がいてもクビ。
0482デフォルトの名無しさん
2006/06/09(金) 18:42:37いくつか検索してみると、void mainが一般的でなく
int mainにするといった内容は良く見かけるし、ANSI Cについても出てくるが
int mainにしたらexit(0)だのreturn 0だのって話は出てくるね。
よって、intって書いてreturnは要らないって言っている奴が一番バカ。
それ以外は問題なし。
0483デフォルトの名無しさん
2006/06/09(金) 18:43:55intで良いからreturn 0くらい書いておけYO!
<HTML>って書いたら</HTML>の閉じるを書くがごとく。
いや、それは単に括弧の話だからどーでも良いかw
0484デフォルトの名無しさん
2006/06/09(金) 18:49:37returnなしかよ?って話。returnなしならvoidか?ってことについては・・・議論せず
int main returnはセットで使え!以上。
0485デフォルトの名無しさん
2006/06/09(金) 20:48:47aは正規化されていて、左手系を使うとする。
Vector3 vrot(Vector3 v, Vector3 a, double t) {
Vector3 r = { ((1.0-cos(t))*a.x*a.x+cos(t) )*v.x+((1.0-cos(t))*a.x*a.y-sin(t)*a.z)*v.y+((1.0-cos(t))*a.x*a.z+sin(t)*a.y)*v.z
, ((1.0-cos(t))*a.y*a.x+sin(t)*a.z)*v.x+((1.0-cos(t))*a.y*a.y+cos(t) )*v.y+((1.0-cos(t))*a.y*a.z-sin(t)*a.x)*v.z
, ((1.0-cos(t))*a.z*a.x-sin(t)*a.y)*v.x+((1.0-cos(t))*a.z*a.y+sin(t)*a.x)*v.y+((1.0-cos(t))*a.z*a.z+cos(t) )*v.z };
return r;
}
0486デフォルトの名無しさん
2006/06/09(金) 20:58:180487デフォルトの名無しさん
2006/06/09(金) 21:14:57一応こういう場所では使用のコンパイラも書かせているけど
どの道 int main() {return 0;}でエラーを起こしたり、不適切だと指摘するコンパイラは
たぶんないだろうってことで。
0488デフォルトの名無しさん
2006/06/09(金) 21:25:43個人的には、認められていないことをやっても良いと思うけど。
0489488
2006/06/09(金) 21:28:06でも、なんだろうと他人のコードに難癖を付けるのはこのスレの趣旨にかなわないと思う。
0490デフォルトの名無しさん
2006/06/09(金) 21:35:09まぁ、こんなこと書ける程度の無知蒙昧が出てきたことがこのスレの不幸だなぁw
0491デフォルトの名無しさん
2006/06/09(金) 22:06:19ここの解答と先生の模範解答が酷似している。。。
0492デフォルトの名無しさん
2006/06/09(金) 22:22:01んなわけねぇだろwww
大学の課題なんて去年の問題とほとんど変わっていない
つまり、ここで答えてくれてる人が問題の意図を非常に汲み取ってるだけ
0493デフォルトの名無しさん
2006/06/09(金) 22:27:01センセイがこのスレでも解答している、という説はどうだw
0494デフォルトの名無しさん
2006/06/09(金) 22:28:360495491
2006/06/09(金) 22:31:28授業中に、レポートを写している人がいますが、そういったことは止めましょうねという話があったんだ。
んで、その話の中でインターネットの掲示板で解答を聞いている人が居ますが、その解答と全く同じモノを提出している人が多数いるので
その人たちの成績を下げておきます と言ったんだよ。マジデ。
んで、その先生の模範解答が、ここの掲示板の解答と酷似してるんだよ。
つまり、この掲示板で先生が解答してい(ry
|彡 サッ
0496デフォルトの名無しさん
2006/06/09(金) 23:06:410497デフォルトの名無しさん
2006/06/09(金) 23:17:05特にC++。
0498デフォルトの名無しさん
2006/06/09(金) 23:21:30この板で勉強してほしいと思うぞ。
0499デフォルトの名無しさん
2006/06/09(金) 23:22:59ネットを使って宿題を済ませると。
0500デフォルトの名無しさん
2006/06/09(金) 23:25:35読書感想文の話か?
賞を貰った後に発覚したとかなんとか。
0501デフォルトの名無しさん
2006/06/09(金) 23:27:41ここに問題乗せられると、問題変更されてるし
0502デフォルトの名無しさん
2006/06/10(土) 00:14:33そうそれ。
小2と小4の子供が見ているから、毎週見ている。
0503デフォルトの名無しさん
2006/06/10(土) 00:16:13(´・ω・`)おれは一人寂しいプログラマー。。。
0504デフォルトの名無しさん
2006/06/10(土) 00:17:37にじみ出てるようなすてきな問題もあって、
そーいうのみてると、「みんなこれだけはスルーしてよ」って思うよ。
0505デフォルトの名無しさん
2006/06/10(土) 00:33:400506デフォルトの名無しさん
2006/06/10(土) 00:35:070507デフォルトの名無しさん
2006/06/10(土) 06:02:530508デフォルトの名無しさん
2006/06/10(土) 08:02:02そんな学校・・・将来パクリしかできない人材しか育ちそうにないなぁw
まぁ、所詮学校で習うC言語なんざ、初歩的で既に分かりきっているものばかりだけどね。
それすら自力でできないんじゃ終わってるけど・・・
0509デフォルトの名無しさん
2006/06/10(土) 11:17:10自分が思ったとおりに動いたときの喜びって全くないよね。
そこが醍醐味だと思うんだけど。
0510デフォルトの名無しさん
NGNGネタ回答に釣られてそれを模範解答にしてしまう神教官キボンw
>>497
禿道。こないだのvolumeクラスは凄い破壊力だった。
0511デフォルトの名無しさん
2006/06/10(土) 18:29:39ポインタの使い方が分からないです・・・
性帝トーマス殿、手ほどきプリーズ
0512デフォルトの名無しさん
NGNGお前が繁殖可能な女なら実技指導してやるがそうでないなら他を当たれ。
0513デフォルトの名無しさん
2006/06/10(土) 18:50:450514デフォルトの名無しさん
2006/06/12(月) 02:40:22http://pc8.2ch.net/test/read.cgi/tech/1149350525/
0515デフォルトの名無しさん
2006/06/13(火) 01:47:16[2] 問題文(含コード&リンク):
x,y,z,w を、要素数 n の int 配列とする。
x[i] + y[j] + z[k] + w[l] = 0 をみたす添え字 i,j,k,l の組み合わせの個数を求める
効率的なプログラムを書け。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限: 6/13 23:59
[5] その他の制限:
O(n^4) より効率的な解法をお願いします。
末尾再帰を利用せよ(?)
よろしくお願いします。
0516デフォルトの名無しさん
2006/06/13(火) 09:30:09int _23_main(void)
{
// 配列にデータを入れるのは自分でやってくれ
int x[ _n ];
int y[ _n ];
int z[ _n ];
int w[ _n ];
int i, j, k, l;
int a = 0, s;
for ( i = 0; i < _n - 1; i++ ) for ( j = _n - 1; j > i; j-- ) if ( w[ i ] > w[ j ] ) w[ i ] ^= w[ j ] ^= w[ i ] ^= w[ j ];
for ( i = 0; i < _n; i++ ) {
for ( j = 0; j < _n; j++ ) {
for ( k = 0; k < _n; k++ ) {
s = x[ i ] + y[ j ] + z[ k ];
for ( l = 0; l < _n && s + w[ l ] <= 0; l++ ) {
if ( s + w[ l ] == 0 ) a++;
}
}
}
}
printf( "組み合わせ個数 = %d\n", a );
return 0;
}
0517デフォルトの名無しさん
2006/06/13(火) 09:45:39それだとO(n^4)だろ。
最後で二分探索すればO(n^3 log n)になるけど。
0518デフォルトの名無しさん
2006/06/13(火) 10:16:410519デフォルトの名無しさん
2006/06/13(火) 19:12:46[2] 問題文(含コード&リンク):
一つの入力値に対して階乗計算を行い、結果を出力するプログラムを作成せよ。
ただし、次の仕様に基づいた関数を作成するものとし、main関数とfct関数は一つのファイル上に作成するものとする。
プロトタイプ宣言: int fct(int n);
(2)二つの入力値に対して順列計算を行い結果を出力するプログラムを作成せよ。
ただし、次の仕様に基づいた関数を作成するものとし、main関数とprm関数は一つのファイル上に作成するものとする。
プロトタイプ宣言: int prm(int n, int r);
(3) (1)(2)で作成したプログラムを関数ごとにファイル分割する。ヘッダファイルも作成し、実際に分散コンパイルができることを確認せよ。
(4) (3)で作成したプログラムに対するMakefileを作成し
makeコマンドを使って分散コンパイルが自動化できることを確認せよ。
このとき、(3)で分割したファイルのそれぞれを編集、
コンパイルしたときのmakeコマンドの動作をタイムスタンプの観点から考察せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名: gcc
[3.3] 言語: C
[4] 期限: 2006年6月19日23:59
[5] その他の制限:特にないです。なるべく簡単に仕上げてくだされば…
0520デフォルトの名無しさん
2006/06/13(火) 19:13:53階乗が(1)です
よろしくお願いします
0521デフォルトの名無しさん
2006/06/13(火) 19:19:53(1)
http://pc8.2ch.net/test/read.cgi/tech/1147375815/744
0522デフォルトの名無しさん
2006/06/14(水) 00:37:30[2] 問題文
y=3x^n+4x+5 のx=1.0における微分値を、
n=2、6、10の場合について求めるプログラムを作成せよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gccです。バージョンは分かりません。
[3.3] 言語:C言語
[4] 期限: 14日までです。
[5] その他の制限:特に無いです。
宜しくお願いします。
0523デフォルトの名無しさん
2006/06/14(水) 00:53:20本スレのやつと同じ臭いな。
解答出てるだろ?
0524デフォルトの名無しさん
2006/06/14(水) 00:53:52f(x,n)=y=3x^n+4x+5
xで微分して
f'(x,n)=3nx^(n-1)+4
x=1.0を代入して
f'(1.0,n)=3n(1.0)^(n-1)+1
んで
n=2,6,10を代入すればいいんちゃう?
これ以外だと、x=1.0まわりでのテイラー展開を項別微分するとか?←意味不明
0525デフォルトの名無しさん
2006/06/14(水) 15:45:00#include<stdio.h>
int main(void){
char a[0xff], b[0xff], *p, *q;
printf("Please input first words:");gets_s(a, sizeof(a));
printf("Please input second words:");gets_s(b, sizeof(b));
for(q = b; *q != NULL; q++);
for(p = a; *p != NULL; *q = *p, p++, q++);*q = NULL;
printf("Connected words:");puts(b);
for(p = a, q--; q >= b; *p = *q, p++, q--);*p = NULL;
printf("Backwared arranged words:");
puts(a);
return 0;
}
というプログラムに対して出力
srck6-8.c: 関数 `main' 内:
srck6-8.c:11: 警告: ポインタと整数との比較を行なっています
srck6-8.c:12: 警告: ポインタと整数との比較を行なっています
srck6-8.c:13: 警告: 代入により、キャストなしでポインタから整数を作りました
srck6-8.c:16: 警告: 代入により、キャストなしでポインタから整数を作りました
/tmp/ccuNzOR5.o(.text+0x31): In function `main':
: undefined reference to `gets_s'
/tmp/ccuNzOR5.o(.text+0x53): In function `main':
: undefined reference to `gets_s'
collect2: ld はステータス 1 で終了しました
となってしまい、わけがわかりません(ノД`)どこに不具合があるのでしょうか?教えてくださいお願いします
0526デフォルトの名無しさん
2006/06/14(水) 15:53:16>> undefined reference to `gets_s'
ここに問題があります。
0527デフォルトの名無しさん
2006/06/14(水) 16:36:35gets_sはVisual C++ 2005独自。そのほかには(少なくとも今のところ)無い。
0528デフォルトの名無しさん
2006/06/14(水) 16:40:50つまり、
double func_y(double x, int n){return (3 * pow(x, n) + 4 * x + 5);}
これを
main内で
double x = 1.0; h = 0.001;
(func_y(x + h, 2) - func_y(x - h, 2)) / (2 * h)
と呼び出せば
高校数学だっけ?
0529デフォルトの名無しさん
2006/06/14(水) 16:58:16[2]
ポインタ 6−22
先々週の課題で作成した単元の取得単位と点数を元に、
総合成績を計算するプログラムを元に、
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2063.txt
これを読み込んだ数値を入れる配列を指すポインタを使用した形に書き換えなさい。
尚、配列は1次元配列を使用する事。
また、関数は特に必要は無い。
※総合成績の計算式はGPA方式を用いる事
GPA={(科目1の単位*成績)+(科目2の単位*成績)…(科目nの単位*成績)}/総単位数
科目の成績はS(90〜100点)=4、A(80〜89点)=3、B(70〜79点)=2、C(60〜69点)=1
それ以下(評価D)は0とする。
[3]OS:Vine Linux コンパイラ:gcc 言語:C言語
[4]6月15日
よろしくお願いします
0530デフォルトの名無しさん
2006/06/14(水) 18:09:25せめてソースを人に見せるなら
コメントいれとこーよ
0531デフォルトの名無しさん
2006/06/14(水) 18:09:52#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
double x,h,l,pi;
pi=3.14159265358979323846264338;
printf("何角形?");
scanf("%lf",&n);
x = (pi*(n-2.0))/(2.0*n);
h = cos(x);
l = h*n;
printf("l = %17.16e",l);
return 0; }
それで、コンパイルはできるのですが値が出てこないのです。
C++でscanfをcinにprintfをcoutにしたところちゃんと値が出てきたので
scanfとprintfの使い方が間違っていると思うのですが、
どこが間違っているのか1時間以上考えてもわからないんです…
もしわかる方がおられましたら教えてください。
0532デフォルトの名無しさん
2006/06/14(水) 18:14:130533デフォルトの名無しさん
2006/06/14(水) 18:17:51[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2064.txt
[3] 環境
[3.1] OS: windowsXP
[3.2] コンパイラ名とバージョン: Visual C++
[3.3] 言語: C++
[4] 期限: 6月16日まで
[5] その他の制限: 習ったもの if switch do while for ローカル変数 グローバル変数
お願いします
0534デフォルトの名無しさん
2006/06/14(水) 18:20:49すみません。超初歩的なことみたいだったですね。
lfとdの意味を勉強します。ありがとうございました!!
0535デフォルトの名無しさん
NGNGクソ問題の予感。
int zero_one(int n,int m){ return n & (1 << m); }
0536デフォルトの名無しさん
NGNGint zero_one(int n,int m){ return n & (1 << (m-1)); }
0537デフォルトの名無しさん
2006/06/14(水) 18:52:24int zero_one(int n,int m)
{
return n&(1<<m);
}
0538537
2006/06/14(水) 18:53:47書くんじゃなかった
05391
2006/06/14(水) 18:56:07[2] 問題文(含コード&リンク):二分探索でデータを見つけるプログラムを作
成し,実行せよ.ただし,以下の仕様を満たすものとする.
<仕様>
1.対象とするデータ構造は,
struct SportsClub kaiin[] = { 555, "Yuki TERADA", 222, "Kaho KANO",
789, "Yuko FUKUDOME", 444, "Seiko ANDO",
456, "Mai YUKAWA", 666, "Kyoko KAMIDOHZONO",
123, "Yuasa OKADA", 777, "Aya SAKATA",
111, "Yua SAITOU", 333, "Noriko KIJIMA",
569, "Shihori YOKOHARI", 689, "Chieko NOGUCHI",
345, "Ikuko OURA", 994, "Airi TAKASAKI",
103, "Mizuna INOUE", 888, "Yuna SATONAKA"
};
と初期化すること.また,この構造体は,
struct SportsClub
{
int id_num;
char name[80];
};と定義すること.
0540デフォルトの名無しさん
NGNG気にするな。悪いのは出題者だ。
05412
2006/06/14(水) 18:56:39する.次に,クイックソートで上記データ構造を会員番号(id_num)にしたがっ
て昇順に並べ替えるとともに,その結果をsorted_kaiin.dat(ASCII 型式)に保
存する.ただし,クイックソートは,標準ライブラリ関数を用いず,各自作成
すること.
3.sorted_kaiin.dat を構造体配列kaiin2[KAIIN_NUM]に読み込み,これを二分
探索に用いる.ただし,本課題の場合,KAIIN_NUM は16 である.
4.二分探索は,会員番号を打ち込めば,該当する氏名を表示させるものとす
る.また,会員一名分の情報を表示させた後,終了・続行の希望を使用者に質
問させ,回答を基にその後動作を決定させること.
<入出力例>
Please input ID#: 123
ID#:123 Name:Yuasa OKADA
Continue? y/n: y←続けるとき,y を打ち込む
Please input ID#: 0
Not found!
Continue? y/n: y
Please input ID#: 345
ID#:345 Name:Ikuko OURA
Continue? y/n: n←これで終了
[3] 環境
[3.1] OS: linux red hat
[3.2] コンパイラ名:gcc
[3.3] 言語: C+
[4] 期限:6/20
[5] その他の制限:ながながと問題文を書いてすみませんどうかおねがいしますorz
0542デフォルトの名無しさん
2006/06/14(水) 19:02:330543デフォルトの名無しさん
NGNG構造体の定義と初期化は自分で埋め込んでくれ。
#include<stdio.h>
#include<stdlib.h>
int sccmp(const void* a,const void* b){return ((struct SportsClub*)a)->id_num-
((struct SportsClub*)b)->id_num;}
int bsearch(int n,int left, int right){int c=(right-left)/2;if(c==0)return -1;
return (kaiin[left+c].id_num>n)?bsearch(n,left+c,right):bsearch(n,left,left+c);}
int main(void){char tmp[100];int n,i;qsort(kaiin, sizeof(kaiin)/sizeof(struct SportsClub),
sizeof(struct SportsClub),sccmp);printf("会員番号:");fgets(tmp,sizeof(tmp),stdin);
n=atoi(tmp);i=bsearch(n,0,sizeof(kaiin)/sizeof(struct SportsClub)-1);
if(i>=0)printf("名前:%s\n",kaiin[i].name);else printf("そんな人いません\n");
return 0;}
0544デフォルトの名無しさん
2006/06/14(水) 19:25:21[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:bcc
[3.3] 言語:C
[4] 期限:6/16 23:59まで
問題
スタック、キューを使い後置記法の計算をするプログラミングです。
長いのでいかにアドレスを載せます。よろしくおねがいします
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2066.txt
0545デフォルトの名無しさん
NGNGってクイックソートも作るのか。最近どこかで見たような気がするので省略。
0546デフォルトの名無しさん
2006/06/14(水) 19:51:37f(1)+f(2)+f(3)+…+f(n)
の計算がどうやっても思い浮かびませんノД`)
どなたか教えていただけませんか?
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGもひとつあったか。
int zero_one(int n,int m){ return n & (1 << (m-1)); }
void disp(int n){int i;for(i=0;i<8;i++)putchar(zero_one(n,8-i)?'*':' ');putchar('\n');}
0549デフォルトの名無しさん
2006/06/14(水) 20:27:380550デフォルトの名無しさん
NGNG完全版。
#include<stdio.h>
int zero_one(int n,int m){ return ((n & (1 << (m-1)))!=0); }
void disp(int n){int i;for(i=0;i<8;i++)putchar(zero_one(n,8-i)?'*':' ');putchar('\n');}
int main(){int i,n[8];char tmp[100];for(i=0;i<8;i++){printf("%i番目の整数:",i);
fgets(tmp,sizeof(tmp),stdin);n[i]=atoi(tmp);}for(i=0;i<8;i++)disp(n[i]);return 0;}
>>549
ファイル化するの自体マンドクセ。ほとんどのコードはフォームに直書き。
0551デフォルトの名無しさん
2006/06/14(水) 20:33:17相変わらずコンパイルエラーを出すわけだがw
0552デフォルトの名無しさん
NGNG#include<stdlib.h>
0553デフォルトの名無しさん
2006/06/14(水) 20:38:44質問したわけでもない俺にレスしてもw
0554デフォルトの名無しさん
NGNG突っ込まれたら修正。これ基本。
0555デフォルトの名無しさん
2006/06/14(水) 21:06:58貴社をホワイトリストに入れたいんだが、なんて会社ですか?wktk
0556デフォルトの名無しさん
2006/06/14(水) 23:13:42Queueは構造体?
0557デフォルトの名無しさん
2006/06/14(水) 23:30:44すみません。書き忘れてました。構造体です。
typedef sturct{
Node *head;
}Queue;
です。
0558デフォルトの名無しさん
2006/06/15(木) 00:00:49ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2068.txt
0559544
2006/06/15(木) 00:21:58問題文を全部載せますのでどなたかよろしくおねがいします。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2070.txt
0560デフォルトの名無しさん
2006/06/15(木) 00:56:16まずは、問1
void push(Stack *st, ElementType n){
insert(st->top, n);
}
ElementType pop(stack *st){
ElementType e = st->top->element;
del(st->top);
return e;
}
int is_empty_stack(Stack *st){
return (st->top->next == NULL ? 1 : 0);
}
0561デフォルトの名無しさん
2006/06/15(木) 01:05:16あと>>544
[3] 環境
[3.1] OS:UNIX
[3.2] コンパイラ名とバージョン:gcc
でした。すみません。でも上のはgccでOKっぽいです
0562デフォルトの名無しさん
2006/06/15(木) 01:14:39void put(Queue *q,ElementType n){
insert(q->head, n);
}
ElementType get(Queue *q){
node *p = q->head;
ElementType e;
while(p->next->next != NULL)
p = p->next;
e = p->next->element;
del(p);
return e;
}
int is_empty_queue(Queue *q){
return (q->head->next == NULL ? 1 : 0);
}
0563デフォルトの名無しさん
2006/06/15(木) 01:30:24>/*ADD+,SUB-,MUL*,DIV/,LPAR(,RPAR),にそれぞれ対応*/
RPARが定義されてなひ
0564デフォルトの名無しさん
2006/06/15(木) 01:34:08でした。ご指摘ありがとうございますm(_ _)m
0565デフォルトの名無しさん
2006/06/15(木) 12:21:02[2] 問題文(含コード&リンク): 以下の手順にしたがって文字列を処理するプログラムを作成し,実行せよ.ただし,配列内各要素へのアクセスにはポインタを使用し,
関数(strcpy(), strcat(), strlen()等)は使用しないこと.
(1)2つの文字配列A, Bを用意する.
(2)文字配列A, Bに,対象文字列を格納する.
(3) B に格納された文字列の末尾に, A に格納された文字列を連結させ,それらを表
示させる.
(4)(3)の処理後, Bの文字列を逆順にAにコピーし,それらを表示させる.
入出力例)
Please input first words:abcd efgh (注:末尾にスペース有)
Please input second words:ijkl mnop (注:末尾にスペース有)
Connected words:ijkl mnop abcd efgh (注:末尾にスペース有)
Backwared arranged words: hgfe dcba ponm lkji(注:先頭にスペース有)
[3] 環境
[3.1] OS:linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/15 16:59まで
おねがいしますおねがいします
0566デフォルトの名無しさん
2006/06/15(木) 15:27:040567デフォルトの名無しさん
2006/06/15(木) 19:44:14もう遅いよな?
人あんまいないから早めに乗せないと…
0568デフォルトの名無しさん
2006/06/15(木) 19:51:09過去にも期限を延ばしてもらってた事があったようだし、回答してもいいと思うぞ。
0569デフォルトの名無しさん
2006/06/15(木) 19:51:32gets_sをgetsにするだけなんだけどね…
0570デフォルトの名無しさん
2006/06/15(木) 21:03:05[2] 問題文(含コード&リンク):
構造体配列xに5名分の氏名、年齢、身長を初期値代入し、最も身長が
高い人の氏名、年齢、身長を構造体aに代入し、aのデータを出力せよ。
[3] 環境
[3.1] OS: WindowsXP
[3.2] コンパイラ名とバージョン:Visual C++ 6.0
[3.3] 言語: C++
[4] 期限:6/16
[5] その他の制限: 特になし
よろしくお願いします。
0571デフォルトの名無しさん
2006/06/15(木) 22:46:01それとも初期値をハードコードしていいの?
0572デフォルトの名無しさん
2006/06/15(木) 22:46:370573デフォルトの名無しさん
2006/06/15(木) 22:55:10#include <stdio.h>
#define NUMBER 5
typedef struct {
char name[20];
int old;
int height;
} a;
void swap(a *x, a *y)
{
a temp = *x;
*x = *y;
*y = temp;
}
void sort(a *data, int n)
{
int k = n - 1;
while (k >= 0) {
int i, j;
for (i = 1, j = -1; i <= k; i++)
if (data[i - 1].height > data[i].height) {
j = i - 1;
swap(&data[i], &data[j]);
}
k = j;
}
}
0574デフォルトの名無しさん
2006/06/15(木) 22:55:43{
int i;
a std[] = {
{"test1", 18, 195},
{"teston", 22, 123},
{"testet", 57, 175},
{"testst", 75, 142},
{"testetes", 12, 125},
};
sort(std, NUMBER);
for (i = 0; i < NUMBER; i++)
printf("%s %d %d\n",
std[i].name, std[i].old, std[i].height);
return (0);
}
0575デフォルトの名無しさん
2006/06/15(木) 23:02:230576デフォルトの名無しさん
2006/06/15(木) 23:16:03無駄な努力ご苦労
0577デフォルトの名無しさん
2006/06/15(木) 23:16:500578デフォルトの名無しさん
2006/06/15(木) 23:30:35ていうか完全なCだな
オサーンかなんかじゃないの?
0579デフォルトの名無しさん
2006/06/15(木) 23:33:020580デフォルトの名無しさん
2006/06/15(木) 23:34:41[2] 問題文(含コード&リンク)
キーボードから整数を入力し、キャストを用いてdoubleとして扱って、その数を2倍することを繰り返して
演算結果が1.0e+25を超えるのに、必要な2倍する回数とそのときの数を示すwhile文のプログラムを作れ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 明日の朝まで
お願いします。
0581デフォルトの名無しさん
2006/06/15(木) 23:39:22問題文なげぇし、つか後置記法良く分からんからパス
まぁ、がんばりな
0582デフォルトの名無しさん
2006/06/15(木) 23:39:48C++版
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
struct Prof {
std::string shimei;
int nenrei;
int shincho;
void set(std::string _shimei, int _nenrei, int _shincho){
shimei=_shimei; nenrei=_nenrei; shincho=_shincho;
}
};
class CompProf {
public:
bool operator()(const Prof& x, const Prof& y){
return x.shincho < y.shincho;
}
};
0583デフォルトの名無しさん
2006/06/15(木) 23:40:59os << p.shimei << ' ' << p.nenrei << "歳 " << p.shincho << "cm";
return os;
}
int main(){
std::vector<Prof> x(5);
CompProf c;
x[0].set("abc",3,160);
x[1].set("def",10,165);
x[2].set("ghij",35,190);
x[3].set("klmn",21,150);
x[4].set("opqrst",40,170);
Prof a = *(std::max_element(x.begin(),x.end(),c));
std::cout << a << std::endl;
}
0584デフォルトの名無しさん
2006/06/15(木) 23:42:45return 0;
を適当に追加しておいて。
0585デフォルトの名無しさん
2006/06/15(木) 23:44:00[2] 問題文(含コード&リンク):
キーボードから2つの数a,bを入力し縦がa文字、横がb文字の#でできた四角形を表示するプログラムを作成
[3] 環境
[3.1] OS:unix
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: 明日の朝まで
[5] その他の制限:while文で作れということです(´・ω・`)
お願いします。
0586デフォルトの名無しさん
2006/06/15(木) 23:47:20大丈夫。C++ならmainでreturnを省略してもよい。
(intなどを返すよう宣言されていればreturn 0;になる)
0587デフォルトの名無しさん
2006/06/15(木) 23:55:56ちょっと強引だが...
#include <stdio.h>
int main(void) {
int a,b,i,j ;
i=j=0 ;
printf("a?") ;
scanf("%d",&a) ;
printf("b?") ;
scanf("%d",&b) ;
while(1) {
if(i <= b) {printf("#") ; i++ ;}
else{printf("\n"); i=0 ; j++ ;}
if(j >= a) break ;
}
}
0588デフォルトの名無しさん
2006/06/16(金) 00:02:26問題的にそういう意味でwhileを使えって事じゃないと思う…
0589585
2006/06/16(金) 00:03:45すいません。。。
まだvoidとか習ってないんです・・・
0590デフォルトの名無しさん
2006/06/16(金) 00:05:500592585
2006/06/16(金) 00:09:090593デフォルトの名無しさん
2006/06/16(金) 00:12:01ユーザが止めることを指示するまで、whileでループするプログラムってことでおk?
0594デフォルトの名無しさん
2006/06/16(金) 00:12:44int main(){
int a,b,i,k;
printf("a:");
scanf("%d",&a);
printf("b:");
scanf("%d",&b);
i = 0;
k = 0;
while(i < a){
putchar('#');
i++;
}
putchar('\n');
while(k < b -2){
i = 0;
putchar('#');
while(i < a-2){
putchar(' ');
i++;
}
puts("#");
k++;
}
i = 0;
while(i < a){
putchar('#');
i++;
}
return 0;
}
0595デフォルトの名無しさん
2006/06/16(金) 00:13:180596デフォルトの名無しさん
2006/06/16(金) 00:13:350597585
2006/06/16(金) 00:14:58>>596さんの言ったとおりです!
0598デフォルトの名無しさん
2006/06/16(金) 00:15:43でだめなの?
0599デフォルトの名無しさん
2006/06/16(金) 00:18:16whileの条件部でカウンタをデクリメントする技法に思い至って欲しい、
という出題意図と思われ。
0600デフォルトの名無しさん
2006/06/16(金) 00:18:550601585
2006/06/16(金) 00:20:06ごめんなさい;
0602デフォルトの名無しさん
2006/06/16(金) 00:20:08temp=b;
while(a--){while(b--){putchar('#');}putchar('\n');b=temp}
0603デフォルトの名無しさん
2006/06/16(金) 00:21:12while(a--){while(b--){printf("#");}printf("\n");b=temp;}
0604585
2006/06/16(金) 00:26:440605デフォルトの名無しさん
2006/06/16(金) 00:27:260606デフォルトの名無しさん
2006/06/16(金) 00:29:13を補えないようじゃまずいと思うんだが……
0607デフォルトの名無しさん
2006/06/16(金) 00:29:23問題文見にくくてすみませんでした。それに後置記法についても自分も良く分からないので
説明できません。本当にゴメンナサイ。
でも問1、問2ありがとうございました。
0608デフォルトの名無しさん
2006/06/16(金) 00:30:070609デフォルトの名無しさん
2006/06/16(金) 00:31:040610585
2006/06/16(金) 00:33:10そうでした!!
0611デフォルトの名無しさん
2006/06/16(金) 00:34:280612デフォルトの名無しさん
2006/06/16(金) 00:38:430613デフォルトの名無しさん
2006/06/16(金) 00:38:59でも情報ありが�d。ってことでググってきます
0614デフォルトの名無しさん
2006/06/16(金) 01:09:490615585
2006/06/16(金) 01:09:560616デフォルトの名無しさん
2006/06/16(金) 01:19:29int main(){
int a, b, temp;
printf("tate = ");scanf("%d", &a);
printf("yoko = ");scanf("%d", &b); temp = b;
while(a--){while(b--){printf("#");}printf("\n");b=temp;}
return 0;
}
補っただけだけど
0617デフォルトの名無しさん
2006/06/16(金) 01:21:57#include <stdio.h>
int main(void)
{
int a,b,i=0,j=0;
scanf("%d%d",&a,&b);
while (i<a){
while (j<b){
printf("#");
j++;
}
printf("\n");
j=0;
i++;
}
return 0;
}
0618デフォルトの名無しさん
2006/06/16(金) 01:25:310619デフォルトの名無しさん
2006/06/16(金) 01:59:37言語はCです。
0620デフォルトの名無しさん
2006/06/16(金) 02:03:50次からはテンプレ嫁
上(数学関数)でも下でも好きな方使え
#include <stdio.h>
#include <math.h>
int main(){
int b = 5;
double a = 1.3, z;
z = pow(a, b);
printf("%g\n", z);
z = 1.0;
while(b--)z *= a;
printf("%g\n", z);
}
0621デフォルトの名無しさん
2006/06/16(金) 02:06:42実装汁って課題ならしょうがないが…
0622デフォルトの名無しさん
2006/06/16(金) 02:42:47自治厨とか言われるかもしれないですが
よく「まだ・・・は習っていません」
ってのを質問者が回答者にレスしてるのをみるんですが
(ま、実際、自分もそんなレスを返されたことあります)
自分はCもC++も独学で勉強した身で、「まだ・・・は習っていません」
ていう書き込みを見ると、内心「学生なんだろうから、参考書とかも安く
手に入るだろうし、まだ習ってない事柄を先に学べば後から講義で
出された宿題に対して、応用きくし単位の修得等も講義すっぽかして
友達に代返してもらって、宿題だけ友達から聞いて
先に習得した事柄をつかって、コメント書いて、って感じで宿題終わらせれば
評価もあがるだろうし、そんで空いた時間等を
遊ぶなりバイトするなりなんかに割り当てて(もちろん独学も進めて)
たまに講義出て「ああ、いまこの段階の事をやってるのかって」って知って、
独学した部分に追いついてなかったら、すっぽかした分を補完し独学進めて」
ってな感じでやれば、楽だろうと思うし、知識も広がると思う。
だから「まだ・・・は習っていません」って言いたい場合は、「まだ習ってない事柄ですが
その・・・について勉強してみます」って言った方が回答者も納得すると思う。
俺が大学当時のインターネットと言えばテレホーダイをNTTに申請して
20時からインターネット始めて、かつ(自分は電気電子工学科卒)電気電子関連
の資料なんて、ろくになかった。けど、今の時代プログラミング言語習得するのに
ネットからでも結構資料はあると思う。
ま、結局言いたいのは「まだ・・・は習っていません」==「習うまで使いません」
==「自ら知識の探求をする事はいたしません」って言ってるのと同じだと思うので
独学していきましょう。
(情報工学科って代返利くのかな?ログインすることで、出席取るのかな
ま、しらねーや)
0623デフォルトの名無しさん
2006/06/16(金) 02:56:50自治厨とか言われるかもしれないですが
よく「まだ・・・は習っていません」
ってのを質問者が回答者にレスしてるのをみるんですが
(ま、実際、自分もそんなレスを返されたことあります)
自分はCもC++も独学で勉強した身で、「まだ・・・は習っていません」
ていう書き込みを見ると、内心「学生なんだろうから、参考書とかも安く
手に入るだろうし、まだ習ってない事柄を先に学べば後から講義で
出された宿題に対して、応用きくし単位の修得等も講義すっぽかして
友達に代返してもらって、宿題だけ友達から聞いて
先に習得した事柄をつかって、コメント書いて、って感じで宿題終わらせれば
評価もあがるだろうし、そんで空いた時間等を
遊ぶなりバイトするなりなんかに割り当てて(もちろん独学も進めて)
たまに講義出て「ああ、いまこの段階の事をやってるのかって」って知って、
独学した部分に追いついてなかったら、すっぽかした分を補完し独学進めて」
ってな感じでやれば、楽だろうと思うし、知識も広がると思う。
だから「まだ・・・は習っていません」って言いたい場合は、「まだ習ってない事柄ですが
その・・・について勉強してみます」って言った方が回答者も納得すると思う。
俺が大学当時のインターネットと言えばテレホーダイをNTTに申請して
20時からインターネット始めて、かつ(自分は電気電子工学科卒)電気電子関連
の資料なんて、ろくになかった。けど、今の時代プログラミング言語習得するのに
ネットからでも結構資料はあると思う。
ま、結局言いたいのは「まだ・・・は習っていません」==「習うまで使いません」
==「自ら知識の探求をする事はいたしません」って言ってるのと同じだと思うので
独学していきましょう。
(情報工学科って代返利くのかな?ログインすることで、出席取るのかな
ま、しらねーや)
0624デフォルトの名無しさん
2006/06/16(金) 03:05:38みんなと同じような無難な回答したいだけだよ。
そんなに勉強熱心なら、そもそもこんなとこに質問しないだろ。
0625デフォルトの名無しさん
2006/06/16(金) 03:06:53いたって普通ですから。教科書で勉強がデフォ。
0626619
2006/06/16(金) 04:07:08とりあえずwhileでやりたいので、自分なりに下のように書いてみましたが、
論理エラーが出てしまいます。whileループ内が可笑しいのでしょうか。。。。
#include <stdio.h>
main(){
int a,b,c,y,z;
a=b=c=0;
z=y=1;
printf("数字を入力して下さい");
scanf("%d",&a);
printf("%dの何乗にしますか?",a);
scanf("%d",&b);
c=b;
while(--c){
y=a*a;
z=z*y;
}
printf("%dの%d乗=%d\n",a,b,z);
return 0;
}
[1] 授業単元:?
[2] 問題文(含コード&リンク):aのb乗をzへ格納するプログラムの作成
[3] 環境
[3.1] OS: FedoraCore4
[3.2] コンパイラ名とバージョン:gcc 4.0.2-8
[3.3] 言語:C
[4] 期限:なし
[5] その他の制限:出来ればループを使って
解答宣しくお願いします。
0627デフォルトの名無しさん
2006/06/16(金) 04:14:07原因は最後の return 0; 。これをつけるなら int main() にするか
消すなら main() あるいは void main() でどぞ
0628デフォルトの名無しさん
2006/06/16(金) 04:17:34っつか、さらに計算結果も不適切になるものもある。
不要かもしれんが0乗の対策も不十分。
0629デフォルトの名無しさん
2006/06/16(金) 04:27:450630デフォルトの名無しさん
2006/06/16(金) 06:15:14まあ置いときます
main(){
int a=0,b=0,c=0,z=0,t=0;
printf("数字を入力して下さい\n");
scanf("%d",&a);
printf("%dの何乗にしますか?\n",a);
scanf("%d",&b);
if(b==0) {printf("%dの%d乗=1\n",a,b); exit(-1);}
c=b;
t=a;
while(b-->0){ z=a; a=z*t;}
printf("%dの%d乗=%d\n",t,c,z);
}
0631デフォルトの名無しさん
2006/06/16(金) 07:18:260632デフォルトの名無しさん
2006/06/16(金) 11:56:55[2] 問題文(含コード&リンク):
両方向リストを使って抽象データ型としてのリストを作ることにする。insert関数を書け。
ただし、位置pはちょうどその場所にある節点を指すこと(1つ後でも前でもない)
listのデータ構造とinsert関数の頭書きは以下の通りである。
typedef struct node* link;
typedef link list;
typedef link position;
struct node {
elementtype element;
struct node *next, *previous;
};
void insert(list L, position p, elementype x)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
0633632
2006/06/16(金) 12:23:350634632
2006/06/16(金) 12:58:24(おそらくLは用いないかと思われます)
void insert(list L, position p, elementype x) {
link n;
n = (link)malloc(sizeof(*n));
n->element = x;
p->previous->next = n;
n->next = p;
}
0635634
2006/06/16(金) 13:26:420636デフォルトの名無しさん
2006/06/16(金) 15:27:01[2] 問題文(含コード&リンク): フィボナッチ(Fibonacci)数列f(n)は,
f(n)=f(n−1)+f(n−2),ただし,f(1)=f(0)=1
と定義される.この数列の第1 項から第l 項までの各値とそれらの和を計算するプログラムを作成せよ。
ただし,for ループ,while ループ,do-while ループは使用不可とする.
また,各自が定義し,使用する関数については,それらのプロトタイプを必ず宣言すること.
<入出力例>
Please input number of terms:5 (l=5 の場合)
fibonacci(0)= 1 (第1項)
fibonacci(1)= 1 (第2項)
fibonacci(2)= 2 (第3項)
fibonacci(3)= 3 (第4項)
fibonacci(4)= 5 (第5項)
Sum of 5 terms:12 (第1項から第5項の和
[3] 環境
[3.1] OS: linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:6/19
[5] その他の制限:よろしくおねがいします
0637デフォルトの名無しさん
2006/06/16(金) 15:37:06#include <stdio.h>
int fibonacci(int n){
int r;
if(n == 0 || n == 1 )r = 1;
else r = fibonacci(n - 1) + fibonacci(n - 2);
return r;
}
int main(){
int i, n, tmp, sum = 0;
printf("Please input number of terms:");
scanf("%d", &n);
for(i = 0; i < n; i++){
printf("fibonacci(%d) = %d\n", i, tmp = fibonacci(i));
sum += tmp;
}
printf("Sum of %d terms:%d", n, sum);
return 0;
}
0638デフォルトの名無しさん
2006/06/16(金) 15:39:15#include <stdio.h>
int fibonacci(int n);
int main(){
int i, n, tmp, sum = 0;
printf("Please input number of terms:");
scanf("%d", &n);
for(i = 0; i < n; i++){printf("fibonacci(%d) = %d\n", i, tmp = fibonacci(i)); sum += tmp;}
printf("Sum of %d terms:%d", n, sum);
return 0;
}
int fibonacci(int n){
int r;
if(n == 0 || n == 1 )r = 1;
else r = fibonacci(n - 1) + fibonacci(n - 2);
return r;
}
0639デフォルトの名無しさん
2006/06/16(金) 15:48:280640デフォルトの名無しさん
2006/06/16(金) 15:50:07出力もダメってか
0641デフォルトの名無しさん
2006/06/16(金) 15:52:43#include<stdio.h>
int fibonacci(int n);
void putfibonacci(int i,int n,int *sum);
int main(){
int l,sum=0;
printf("Please input number of terms:");
scanf("%d",&l);
putfibonacci(0,l,&sum);
printf("Sum of %d terms:%d\n",l,sum);
return 0;
}
int fibonacci(int n){
switch(n){
case 0:
case 1:
return 1;
default:
return fibonacci(n-1)+fibonacci(n-2);
}
}
void putfibonacci(int i,int n,int *sum){
int f=fibonacci(i);
*sum += f;
printf("fibonacci(%d)= %d\n",i,f);
if(i<n-1) putfibonacci(i+1,n,sum);
else return;
}
0642デフォルトの名無しさん
2006/06/16(金) 16:11:09#include <stdio.h>
unsigned int fibonacci( unsigned int n );
unsigned int fibonacci_out( unsigned int n );
unsigned int fibonacci( unsigned int n )
{
if ( n <= 1 ) return 1; return fibonacci( n - 2 ) + fibonacci( n - 1 );
}
unsigned int fibonacci_out( unsigned int n )
{
unsigned int s = 0, r;
if ( n == 0 ) return 0;
s = fibonacci_out( n - 1 );
s += r = fibonacci( n - 1 );
printf( "fibonacci(%u)= %u\n", n - 1, r );
return s;
}
int main( void )
{
unsigned int l;
printf( "Please input number of terms:" );
scanf( "%u", &l );
printf( "Sum of %u terms:%u\n", l, fibonacci_out( l ) );
return 0;
}
0643デフォルトの名無しさん
2006/06/16(金) 16:16:04どうしても最後は 143 になるね。1〜10までの和は55というのは分かっているとは思うが
0644デフォルトの名無しさん
2006/06/16(金) 16:18:150645デフォルトの名無しさん
2006/06/16(金) 16:51:14あるぇ〜、トーマスだってバレバレなソースを貼っているのに
どうして自分のブログへのリンクを貼らないのぉ〜?
0646デフォルトの名無しさん
2006/06/16(金) 16:53:35お前氏ねよ
0647デフォルトの名無しさん
2006/06/16(金) 17:00:33いい加減、必死になってきたな。お前のソースは分かりやすいから
ここに書き込む以上、どれがトーマスか、常に指摘してやるよw
0648デフォルトの名無しさん
2006/06/16(金) 17:03:440649デフォルトの名無しさん
NGNGこの人バカなんじゃないの?
0650デフォルトの名無しさん
2006/06/16(金) 17:06:452ch暦も浅いようだな、トーマスw
0651デフォルトの名無しさん
2006/06/16(金) 17:07:13お前頭おかしーんじゃねーの?
自覚症状無いのか?病院いけよ。
0652デフォルトの名無しさん
2006/06/16(金) 17:09:03反応して煽った時点でお前の方が重症だな。放置を知らないとはw
0653デフォルトの名無しさん
2006/06/16(金) 17:12:20コンパイルエラーについてどうこう言うと、まだお前はって言ってくるんだろう。
トーマスがバカだって証明されればそれで良い。トーマスに噛み付く粘着?
そんなものどうでも良い。トーマスを擁護している香具師、お前痛すぎw
どこの専門学校だよ?トーマスに可愛がられたければ、ブラックリスト入りしないように
せいぜいがんばれよw
0654デフォルトの名無しさん
2006/06/16(金) 17:12:20お前も氏ね
0655デフォルトの名無しさん
2006/06/16(金) 17:13:09誰としゃべってんだ?
妄想もたいがいにしろ
0656デフォルトの名無しさん
2006/06/16(金) 17:14:12学歴コンプレックス丸出しw
0657デフォルトの名無しさん
2006/06/16(金) 17:17:350658デフォルトの名無しさん
NGNG昔作ったフィボナッチ数列を求めるコードを持ってきてみた。
int fibonacci(int n){double r5=sqrt(5);return (n<3)?1:
(int)((pow((1.0+r5)/2.0,n)-pow((1.0-r5)/2.0,n))/r5+0.5);}
ここに置いてある「なっちありがとう」のコア部分。
http://newsplus.jp/~thomas/
0659デフォルトの名無しさん
2006/06/16(金) 17:21:59お前らほんと邪魔。私怨か?私怨なら別の場所でやってくれ
0660デフォルトの名無しさん
2006/06/16(金) 17:41:47反応するお前が低学歴に焦っているのが滲み出てますね・・・要するに
トーマスもトーマスに噛み付く奴も放置すれば良いのに、何度言ったらお前らは(ry
0661デフォルトの名無しさん
2006/06/16(金) 17:44:370662デフォルトの名無しさん
2006/06/16(金) 17:45:43こんなところで質問する奴はトーマスのエサ。食いつぶされても「何も問題ないっすよ?」
0663559
2006/06/16(金) 17:51:29ありがとうございましたm(_ _)m
0664デフォルトの名無しさん
NGNGせっかくだから書いてみた。
http://c-kadai.sakura.ne.jp/index.php?itemid=21
0665デフォルトの名無しさん
2006/06/16(金) 20:07:07病院いけ。俺に出来るアドバイスはただそれだけだ。
0666デフォルトの名無しさん
2006/06/16(金) 20:11:28無駄レス乙。このスレに来るな。俺”が”お前”に”できるアドバイスはただそれだけだ。
日本語しっかり使えよ、在日。
0667デフォルトの名無しさん
2006/06/16(金) 20:18:50意味が曖昧だから良い言い方じゃないとは思うが。
0668デフォルトの名無しさん
2006/06/16(金) 20:20:30スゲーこんなバカ初めて見たw
0669デフォルトの名無しさん
2006/06/16(金) 20:24:18すげー、ここって煽りたがり屋が簡単に釣れるんですねw
要するに人を馬鹿にしたい人が集まっているってことか
低俗なクズ共めがw
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
2006/06/16(金) 20:39:460672デフォルトの名無しさん
2006/06/16(金) 20:48:50俺には理解できない。
誰か学のある方教えて下さい。
0673デフォルトの名無しさん
2006/06/16(金) 20:52:44ttp://www.pref.fukushima.jp/pc-concours/2005hp/03dc.html
これ?のどれ?
0674デフォルトの名無しさん
2006/06/16(金) 21:01:51わからんけど
0675デフォルトの名無しさん
2006/06/16(金) 21:04:50つか、テンプレ嫁
問題も書かずに教えろとか、聞く気あるのか?
0676デフォルトの名無しさん
2006/06/16(金) 21:06:03じゃね?
0677デフォルトの名無しさん
2006/06/16(金) 21:06:03プログラミング部門の2005年度の予選問題です。
>>674
ググったんだけど出て来なかったんだよなぁ〜。
サイト知ってたら教えて下さい。
0678677
2006/06/16(金) 21:09:55プログラミング部門の例題→2005年予想問題だった。orz
0679デフォルトの名無しさん
2006/06/16(金) 21:17:43って知らんがな。問題文or問題文のあるサイトくらい教えてくれないと
>>676>>673の質問にも答えてないしな
0680679
2006/06/16(金) 21:21:320681デフォルトの名無しさん
2006/06/16(金) 21:24:490682デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
void dsc(int* a,size_t l){int t,max=INT_MIN;size_t i,p;if(l){for(i=0;i<l;i++)
if(a[i]>max){max=a[i];p=i;}t=a[0];a[0]=a[p];a[p]=t;dsc(&a[1],l-1);}}
int main(void){char tmp[100];int a[5];size_t i;for(i=0;i<5;i++){fgets(tmp,sizeof(tmp),stdin);
a[i]=atoi(tmp);}dsc(a,5);for(i=0;i<5;i++)printf("%d\n",a[i]);return 0;}
0683デフォルトの名無しさん
2006/06/16(金) 22:41:44予選通過した( ゚�D゚)y−~~
0684デフォルトの名無しさん
2006/06/17(土) 00:47:080685デフォルトの名無しさん
2006/06/17(土) 01:15:010686デフォルトの名無しさん
2006/06/17(土) 02:05:10http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2083.c
漏れもチャレンジ・・・32辺りから処理が遅くなってもっさり感が
0687デフォルトの名無しさん
2006/06/17(土) 02:07:57ttp://shibuya.cool.ne.jp/takaren/main/etc/math/fibonatcci1.html
ttp://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0%E5%88%97
トーマス氏のソースは40以上になってももっさりせんね。
法則を理解して、別のやり方してまんな・・・この人、やっぱすげーやw
ttp://c-kadai.sakura.ne.jp/index.php?itemid=21
0688デフォルトの名無しさん
2006/06/17(土) 02:09:090689デフォルトの名無しさん
NGNGマクローリン展開(http://c-kadai.sakura.ne.jp/index.php?itemid=6&catid=5)のとこでも
書いたけど、項のリミットを外から与える必要があるときに再帰を使う意味はあまりない
し、かといってgotoを使うのも意味がないのであえて無視した。
0690デフォルトの名無しさん
2006/06/17(土) 13:12:36[2] 問題文(含コード&リンク):sin(x~2)を0〜√(12π)まで台形則で数値積分
ただし、分点の数を8点から始め、倍々に増やしていくこと
言語:C
皆さんよろしくおねがいします。
0691デフォルトの名無しさん
2006/06/17(土) 13:38:57#include <stdlib.h>
#include <math.h>
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
double func_y(double x){ return sin(pow(x,2)); }
int main(void){
int i, j, n = 8;
double *y, xa = 0.0, xb = sqrt(12 * M_PI), z = 0.0, h = 0.0, x, s, sold;
while(1){
y = (double*)malloc(sizeof(double) * (n + 1));//配列確保
if(y == NULL){puts("Error"); return 1;}
h = (xb - xa) / (double)n;//刻み計算
for(i = 0; i <= n; i++){
x = xa + h * (double)i;//関数値計算
y[i] = func_y(x);
}
for(i = 1; i < n; i++)z += 2.0 * y[i];//数値積分
if(n > 8)sold = s;
s = h / 2.0 * (y[0] + z + y[n]);
printf("Point = %d, Ans = %8.4lf\n", n, s);//表示
if(n > 8 && fabs(s - sold) < 1.0e-3)break;
n *= 2;
free(y);
}
return 0;
}
つ台形
0692デフォルトの名無しさん
2006/06/17(土) 21:34:28void func(int *a);
これって、何か違うの?
0693デフォルトの名無しさん
2006/06/17(土) 21:42:42あえて言うなら、宗派が違う。
0695デフォルトの名無しさん
2006/06/17(土) 22:15:20692の前者の書き方はC++使い、後者はC使いに多いと俺は思う。
(俺自身も初めは後者だったがC++を使っていくうちに前者になった)
0696デフォルトの名無しさん
2006/06/18(日) 00:21:01コンパイラ; gcc
言語;c
アメリカへの船便小包の郵便料金は、1000g まで1800 円、1000g を越え10000g までは1000g ごとに550 円
ずつの割増し、10000g を越え20000g まではさらに1000g ごとに350 円ずつの割増しになる。小包の重さ
を読み込み、その郵便料金を計算するプログラムを作りなさい。ただし、船便小包の重量制限は20kg であ
る。
(例: 3000g → 2900 円、3001g → 3450 円、20000g → 10250 )
お願いします 留年したくないです
0697デフォルトの名無しさん
2006/06/18(日) 00:51:19#include<stdio.h>
#include<stdlib.h>
int main(){
int i, x, y;
char tmp[100];
fgets(tmp, sizeof(tmp), stdin);
for(i = 0; tmp[i] != NULL && tmp[i] != 'g'; i++);
tmp[i] = NULL;
x = atoi(tmp);
if(x > 20000){ puts("重すぎ"); return 1; }
printf("%d円\n", x <= 1000 ? 1800 :
x <= 10000 ? 1800 + ( y = (x - 1000) / 1000) * 550 + (x - 1000) % y * 550 :
6750 + (x - 10000) / 1000 * 350);
return 0;
}
0698デフォルトの名無しさん
2006/06/18(日) 18:12:58本当?
> さらに1000g ごとに350 円ずつの割増し
じゃねの?
0699デフォルトの名無しさん
2006/06/19(月) 14:37:16[2] 問題文:初期値と交差を標準入力から入力し、その等差級数の1から10までの
要素の総和を出力するプログラムを書くただし、for文を用いて書く
[3] 環境
[3.1] XP
[3.2] gcc 3.4
[3.3] 言語:C
[4] 今日中にお願いします
[5] その他の制限:類題を見たことあるんですが
forを用いて書く方法がわかりません><;
0700デフォルトの名無しさん
2006/06/19(月) 15:50:03#include <stdio.h>
main() {
int i,b,c,a[10];
printf("書記値 > ");
scanf("%d",&b);
printf("黄 砂 > ");
scanf("%d",&c);
for(i=0; i<10; i++) {
a[i] = b+(c*i);
printf("%d ",a[i]);
}
}
0701デフォルトの名無しさん
2006/06/19(月) 15:53:14>>700は総和を書いてへんかった
#include <stdio.h>
main() {
int i,b,c,a[10],sum=0;
printf("書記値 > ");
scanf("%d",&b);
printf("黄 砂 > ");
scanf("%d",&c);
for(i=0; i<10; i++) {
a[i] = b+(c*i);
sum += a[i];
printf("%d ",a[i]);
}
printf("数列の総和 : %d \n",sum);
}
0702デフォルトの名無しさん
2006/06/19(月) 17:57:18[2] 問題文(含コード&リンク): 次のアルファベットのキーワードを入力して計算する関数電卓プログラムを作成しなさい
sin
cos
tan
arcsin
arccos
arctan
ln
log
exp
sqr
rad
deg
end
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン:VC 6.0
[3.3] 言語:C
[4] 期限: 6月21日
どなたか助けてください・・・・
0703デフォルトの名無しさん
2006/06/19(月) 17:59:560704デフォルトの名無しさん
2006/06/19(月) 18:10:30#include <stdio.h>
int main(void)
{
double a,d;
printf("初項>");
scanf("%lf",&a);
printf("項差>");
scanf("%lf",&d);
printf("合計%lf\n",5*(2*a+9*d));
for(;0;)
return 0;
}
0705デフォルトの名無しさん
2006/06/19(月) 18:10:39このスレですか?
0706デフォルトの名無しさん
2006/06/19(月) 18:17:52とりあえず、もともとあるものを使っちまえ。自分で定義して中身を作らんとあかんの?
math.hを忘れずに!検討を祈る!
0707702
2006/06/19(月) 18:18:020708デフォルトの名無しさん
2006/06/19(月) 18:31:48とりあえず、過去スレにあったCでの電卓プログラム
入出力だけ変えればC++っぽくなったりするんじゃないかと、思ったり
0709702
2006/06/19(月) 18:53:42申し訳ありませんが入出力を変えるってどこをどのようにすればよろしいのでしょうか?
0710デフォルトの名無しさん
2006/06/19(月) 23:32:58stdio.hをiostereamに変えて、printfやgetsなど使わず
cinやcoutを使え、ってことやがな。
puts("式をどーぞ : "); を、
cout << "式をどーぞ : " << endl; に直す、とかね。
0711702
2006/06/20(火) 00:28:320712デフォルトの名無しさん
2006/06/20(火) 00:32:37この辺りも目を通しておきたいところだ
0713デフォルトの名無しさん
2006/06/20(火) 00:41:57[2] 問題文(含コード&リンク):
1、3人で4種類のゲームを行ったときの得点をゲームごとにそれぞれ入力し、各人の得点を合計得点と次のような
表として表示するプログラムを作成しなさい
ゲーム1 ゲーム2 ゲーム3 ゲーム4 合計
A君 10 40 7 28 85
B君 20 30 13 27 90
C君 5 40 11 29 85
ただし、表を表示する時に罫線は表示しなくてよい
【アルゴリズム】
1、ゲーム1の3人の得点を入力し、それぞれの値を記憶しておく
2、ゲーム2の3人の得点を入力し、それぞれの値を記憶しておく
3、ゲーム3の3人の得点を入力し、それぞれの値を記憶しておく
4、ゲーム4の3人の得点を入力し、それぞれの値を記憶しておく
5、3人それぞれの合計得点を計算
6、得点、合計を表にして表示する
0714デフォルトの名無しさん
2006/06/20(火) 00:42:410715デフォルトの名無しさん
2006/06/20(火) 00:46:50int* aってのが一般的らしいよ
int *aでもいけるんだけど、定義したポインタそのものには違いはないから
キニスンナ
0716デフォルトの名無しさん
2006/06/20(火) 00:53:06次のプログラムは、文字を入力してそれを順次スタックに積み、入力終了後、スタックから1文づつ取り出して
表示するプログラムである。下線を引いた空欄部分を埋め、プログラムをかんせいせよ。
#include<stdio.h>
int stack(int,int);
void main(){
int c;
//スタックにEOF文字をいれる。取り出す時の終了マークとなる。
stack(1,EOF);
//EODマークが入力されるまで、スタックに入力文字を積む。
while((c=getchar())!=EOF)__________;
//スタックから文字を取り出す。EOFが取り出されたら終了。
while((c=stack(2,c))!=EOF)__________;
//改行して画面を見やすくする。
putchar('\n');
}
int stack(int a,int b){
//この変数と配列は、制御がmain関数に戻っても
//値を保たなければならないので静的変数にする。
_________ int n=0, tab[1000];
switch(____){
//push動作
case 1: tab[n]=b;n++;return a;
//pop動作
case 2: n--; return tab[n];
}
//動作指定が間違っている場合EOFを返す。
return EOF;
}
明日の正午までですよろしくおねがいします。
0717デフォルトの名無しさん
2006/06/20(火) 01:13:40#include <stdio.h>
int main(void){
int game1[3],game2[3],game3[3],game4[3]={0,0,0},i;
double point[3];
char *name[]={"A","B","C"};
for (i=0;i<3;i++){
printf("game1[%s] > ",name[i]);
scanf("%d",&game1[i]);
point[i]+=game1[i];
}
for (i=0;i<3;i++){
printf("game2[%s] > ",name[i]);
scanf("%d",&game2[i]);
point[i]+=game2[i];
}
for (i=0;i<3;i++){
printf("game3[%s] > ",name[i]);
scanf("%d",&game3[i]);
point[i]+=game3[i];
}
for (i=0;i<3;i++){
printf("game4[%s] > ",name[i]);
scanf("%d",&game4[i]);
point[i]+=game4[i];
}
printf("\tgame1\tgame2\tgame3\tgame4\tsum\n");
for (i=0;i<3;i++){
printf("%s\t%5d\t%5d\t%5d\t%5d\t%5.0f\n",name[i],game1[i],game2[i],game3[i],game4[i],point[i]);
}return 0;}
0718デフォルトの名無しさん
2006/06/20(火) 01:27:14http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2105.c
0719c++
2006/06/20(火) 01:43:23#include<string>
using namespace std;
int main(){
const int x_size = 5;//ゲーム数+1
const int y_size = 3;//人数
string alpha ="ABC";//ゲーム参加人
int temp;
double** array = new double*[x_size];
for(int i=0;i <= x_size-1; i++ )
array[i] = new double[y_size];
for(int q=0;q<=3;q++){
cout << "ゲーム"<< q+1 << "の得点入力" << endl;
for(int i=0;i<=2;i++)cin >> array[q][i];}
for(int i=0;i<=y_size-1;i++){
temp = 0;
for(int q=0;q<=x_size-2;q++)temp += array[q][i];
array[x_size-1][i] = temp;}
for(int i=0;i<=x_size-1;i++){
if( i == x_size-1 ) cout << "合計";
else cout << "ゲーム" << i+1;}
cout << endl;
for(int i=0;i<=y_size-1;i++){
cout << alpha[i] << "君" << "";
for(int q=0;q<=x_size-1;q++)cout << array[q][i] << " ";
cout << endl;}
for(int i=0; i< x_size; ++i)
delete[] array[i];
delete[] array; //領域の解放
return 0;
}
0721デフォルトの名無しさん
2006/06/20(火) 09:36:51下線部だけ
while((c=getchar())!=EOF)stack(1,c);
while((c=stack(2,c))!=EOF)putchar(c);
static int n=0, tab[1000];
switch(a){
0722 ◆BWxurmpBU6
2006/06/20(火) 16:07:45[2] 問題文(含コード&リンク):
三角形の3頂点の座標、(x1,y1),(x2,y2),(x3,y3)を読み込んで3つの内角の角度θ1、θ2、θ3をdeg単位(°)で計算し、印字するプログラムを作成せよ。
但し、double型変数θ1、θ2、θ3へのポインタ変数とdouble型変数x1,y1,x2,y2,x3,y3を引数とする関数を作成し、main関数では同関数を呼び出すようにせよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ gcc
[3.3] 言語:C
[4] 期限: 2006年6月21日の午後まで
すみません、何度もやってみたんですができませんでした。
よろしくお願いします。
0723デフォルトの名無しさん
2006/06/20(火) 16:33:24ウチの環境 VC6++ なんで違うかも知れないけど atan2() 関数って使える?
0724 ◆BWxurmpBU6
2006/06/20(火) 16:48:58すみません、atan()は使えるんですがatan2()というのは使えません。
0725デフォルトの名無しさん
2006/06/20(火) 17:10:51#include <math.h>
#define pi() 3.1415926535897932
int deltadeg( double *r1, double *r2, double *r3, double x1, double y1, double x2, double y2, double x3, double y3 )
{
double a1, a2, a3;
if ( x1 == x2 && y1 == y2 ) return ( 0 );
if ( x2 == x3 && y2 == y3 ) return ( 0 );
if ( x3 == x1 && y3 == y1 ) return ( 0 );
a1 = ( x1 == x2 ? ( y2 < y1 ? -pi() : +pi() ) / 2.0 : atan( ( y2 - y1 ) / ( x2 - x1 ) ) ) * 360.0 / 2.0 / pi();
a2 = ( x2 == x3 ? ( y3 < y2 ? -pi() : +pi() ) / 2.0 : atan( ( y3 - y2 ) / ( x3 - x2 ) ) ) * 360.0 / 2.0 / pi();
a3 = ( x3 == x1 ? ( y1 < y3 ? -pi() : +pi() ) / 2.0 : atan( ( y1 - y3 ) / ( x1 - x3 ) ) ) * 360.0 / 2.0 / pi();
*r1 = a1 - a3; if ( *r1 < 0.0 ) *r1 = 360.0 + *r1; if ( *r1 > 180.0 ) *r1 = 360.0 - *r1;
*r2 = a2 - a1; if ( *r2 < 0.0 ) *r2 = 360.0 + *r2; if ( *r2 > 180.0 ) *r2 = 360.0 - *r2;
*r3 = a3 - a2; if ( *r3 < 0.0 ) *r3 = 360.0 + *r3; if ( *r3 > 180.0 ) *r3 = 360.0 - *r3;
return ( 1 );
}
int main( void )
{
double r1, r2, r3;
if ( deltadeg( &r1, &r2, &r3, 0.0, 0.0, 1.0, 0.0, 0.0, sqrt( 3.0 ) ) ) {
printf( "θ1 = %3.5f°\nθ2 = %3.5f°\nθ3 = %3.5f°\n", r1, r2, r3 );
} else {
printf( "三角形として正しくありません。\n" );
}
return ( 0 );
}
0726 ◆BWxurmpBU6
2006/06/20(火) 21:38:46x1〜x3、y1〜y3までコマンドラインでしていできるようにmain関数だけ以下のように変更しました。
int main( void )
{
double r1, r2, r3;
double x1,y1,x2,y2,x3,y3;
printf("x1=");scanf("%lf",&x1);printf("\n");
printf("y1=");scanf("%lf",&y1);printf("\n");
printf("x2=");scanf("%lf",&x2);printf("\n");
printf("y2=");scanf("%lf",&y2);printf("\n");
printf("x3=");scanf("%lf",&x3);printf("\n");
printf("y3=");scanf("%lf",&y3);printf("\n");
if ( deltadeg( &r1, &r2, &r3, x1, y1, x2, y2, x3, y3) ) {
printf( "θ1 = %3.5f°\nθ2 = %3.5f°\nθ3 = %3.5f°\n", r1, r2, r3 );
} else {
printf( "三角形として正しくありません。\n" );
}
return ( 0 );
}
しかし実行結果がおかしくなってしまいました。
実行結果
x1=0
y1=1
x2=5
y2=1
x3=2
y3=0
θ1 = 26.56505°
θ2 = 18.43495°
θ3 = 45.00000°
どうすればいいのでしょうか?
0727デフォルトの名無しさん
2006/06/20(火) 22:04:55[2] 問題文
次の表は最近5試合における阪神タイガースの得点結果である。
日付 1 2 3 4 5 6 7 8 9
6/1 0 0 0 0 0 2 0 0 0
6/2 1 0 0 1 0 1 0 1 0
6/3 0 1 0 5 0 0 0 1 1
6/4 0 0 0 0 0 2 0 0 0
6/6 0 0 0 0 0 0 0 0 0
この表を score[5][9] の2次元配列に初期値として格納し、
以下の内容を答えるプログラムを作成せよ。
1試合ごとに合計得点を計算し、画面に出力せよ。
またこの5試合の平均得点を計算し、画面に出力せよ。
各イニング(1〜9回)別の平均得点を計算し、画面に出力せよ。
また計算した平均得点が最大のイニング(回)を画面に出力せよ。
【ヒント】2次元配列の要素を参照する‥多重ループを使う
[3] 環境
[3.1] OS: (Windows xp
[3.2] visual studio2003
[3.3] C
4]期限: ([2006年6月21日12:00まで]
[5] 配列、ループ
0728どなたかお願いします。
2006/06/20(火) 22:37:11[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2114.txt
[3] 環境
[3.1] OS:UNIX
[3.3] 言語:C++
[4] 期限:明後日
[5] その他の制限:if,switch,for,while文まで習いました。
0729デフォルトの名無しさん
2006/06/20(火) 22:39:46[2] 問題文(含コード&リンク):
ニュートン法によりx軸と関数fの交点を求め、間に囲まれた面積を
数値積分により求めよ。
交点のx座標から数値積分を行う部分は作れました。
そのため、交点が複数個あるときに下のプログラムを活用して解を求め、
解(重解は1つの解とする)だけ別の配列に入れる形を考えていますが、
自力では上手くいきませんでした。
[3] 環境
[3.1] OS: mac
[3.2] コンパイラ名とバージョン: x code
[3.3] 言語: C
[4] 期限: 2006年06月22日17:00まで
[5] その他の制限: 特になし
よろしければお願いします。
0730729
2006/06/20(火) 22:41:09#define KMAX 30
void eval(float x,float *f,float *df){
*f=x*x-5*x+4;
*df=2*x-5;
return;
}
main(){
int k;
float f,df,d;
float x=0.0,eps=1.0e-6;
for(k=0;k<KMAX;k++){
eval(x,&f,&df);
d=-f/df;
x+=d;
if(fabs(f)<eps) break;
}
}
0731デフォルトの名無しさん
2006/06/20(火) 22:44:050732デフォルトの名無しさん
2006/06/20(火) 23:02:23[2] 環境コンパイラ:Microsoft visualC++6.0
[3] OS:Windows XP
[4] 提出期限:6月24日
[5] 問題内容(コード&リンク含む)
MFCとOpenGLによる3次元アニメーションプログラム。
1.OpenGLによる三次元キャラクター
2.キャラクターが動く
3.MFCを使用しメニューからダイアログを開くダイアログを作成
4.ダイアログでキャラクターの大きさ、速度、角度を設定するコントロールがある。
【OpenGLプログラム】:http://www.fileup.org/fup90130.zip.html
【参考ホームページ】:http://odalab.spub.chitose.ac.jp/~oda/lang/opengl.html
http://www4.plala.or.jp/tamo/opengl/win_ogl.html
【補足】
プログラムには、適当なキャラクターとアニメーションが設置されています。
ダイアログを設置して、キャラクターの大きさ、動きの速さ、動きの角度などを
コントロールできる機能を追加すること。
よかったら、キャラクタを自由な形に変更して下さい。
完成したら、アップローダにUPしといてもらえば助かります。
よろしくお願いします。
0733>>728
2006/06/20(火) 23:13:40ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2115.txt
0734デフォルトの名無しさん
2006/06/20(火) 23:20:11初心者なので間違ってたらゴメリンコ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2116.txt
0735>>728
2006/06/20(火) 23:25:21else
{
cout << "残り";
if( ticketS > 0 )
cout << "S:" << ticketS << "枚";
if( ticketA > 0 ){
if( ticketS > 0 )cout << "、";
cout << "A:" << ticketA << "枚";
}
if( ticketB > 0 ){
if( ticketS > 0 || ticketA > 0 )cout << "、";
cout << "B:" << ticketB << "枚" ;
}
cout<< endl;
}
0736デフォルトの名無しさん
2006/06/20(火) 23:33:24[2] 問題文
次の処理を行うプログラムを作成せよ。
キーボードから文字列を入力し、char型の配列strに格納する。
格納された文字列の長さを数え、変数nに格納し、nの値を画面に出力する。
格納された文字列の真ん中に、空白(' ')を1つ挿入し、strを画面に出力する。
格納された文字列の最初の1文字を削除し、strを画面に出力する。
ただし、標準関数 string.h は利用しないものとする。
[3] 環境
[3.1] OS: (Windows xp
[3.2] visual studio2003
[3.3] C
4]期限: ([2006年6月21日12:00まで]
[5] 配列、ループ
0737デフォルトの名無しさん
2006/06/20(火) 23:45:46[2]問題文:○×ゲームを作成しなさい。3回試合をし、先に2勝した方を
勝ちとしなさい。
[3.1]Windows
[3.2]visual C++
[3.3]C
[4]2006年6月23日
うまく数字を○に変えることができなくて苦戦してます。
ご協力お願いします
0738デフォルトの名無しさん
2006/06/20(火) 23:50:36俺もやってみた
#include <stdio.h>
int main(void)
{
int score[5][9]={{0,0,0,0,0,2,0,0,0},{1,0,0,1,0,1,0,1,0}
,{0,1,0,5,0,0,0,1,1},{0,0,0,0,0,2,0,0,0},{0,0,0,0,0,0,0,0,0}},i,j,sum,max_average=0;
double average,average2[9]={0,0,0,0,0,0,0,0,0};
for (i=0,average=0.0;i<5;i++){
for (j=0,sum=0;j<9;j++){
sum+=score[i][j];
average+=score[i][j];
average2[j]+=score[i][j];
}
printf("第%d試合[%d]点\n",i+1,sum);
}
puts("------------------------------");
printf("平均---%.0f\n",average/5);
puts("------------------------------");
for (i=0;i<9;i++){
if (average2[i]/5 > average2[max_average]/5){
max_average=i;
}
printf("%dイニング平均---%.0f\n",i+1,average2[i]/5);
}
puts("------------------------------");
printf("最大イニング---%d回\n",max_average+1);
return 0;}
0739デフォルトの名無しさん
2006/06/21(水) 00:05:56入出力例があるとやりやすい
0740デフォルトの名無しさん
2006/06/21(水) 00:13:05いれたらいいのかわかんない。
とりあえず作ったよ。
#include<stdio.h>
int mylen(const char *s);
void insertspace(char *s);
void topdelete(char *s);
int main(void) {
char str[256];
int n;
scanf("%s", str);
n = mylen(str);
printf("%d\n", n);
insertspace(str);
printf("%s\n", str);
topdelete(str);
printf("%s\n", str);
return 0;
}
//続く
0741デフォルトの名無しさん
2006/06/21(水) 00:14:28int i;
for (i = 0; s[i] != '\0'; i++);
return i;
}
void insertspace(char *s) {
int i, n;
n = mylen(s);
for(i = n; i > 0; i--) {
s[i + 1] = s[i];
if (i < n / 2) {
s[i + 1] = ' ';
break;
}
}
}
void topdelete(char *s) {
int i;
for (i = 0; s[i] != '\0'; i++) {
s[i] = s[i + 1];
}
}
0742デフォルトの名無しさん
2006/06/21(水) 00:20:29これをどうしたらいいのか分からんかった
キーボードから入力したのを加工するのか、スペースを入れた奴を加工するのか・・・
0743デフォルトの名無しさん
2006/06/21(水) 00:22:25ありがとうございます。自分でチェックしてみたところ、63,64,67行が間違ってるとでます・・・自分じゃ何がおかしいのかわからないのでよかったら訂正お願いします。
0744デフォルトの名無しさん
2006/06/21(水) 00:38:14http://www.kumei.ne.jp/c_lang/intro/no_64.htm
の写真みたいなかんじでやりたいです…
なんとか○×まで表示できたのですが、勝敗条件が浮かんできません…
助けてください…
0745デフォルトの名無しさん
2006/06/21(水) 00:42:29[2] 問題文(含コード&リンク)
http://www.774.cc:8000/upload-micro/src/up0279.txt の構造体を使って(参考にして)
http://www.774.cc:8000/upload-micro/src/up0280.txt
を構造体を使って書き直す。ポイントは使わずにお願いします
[3] 環境
[3.1] OS: XP
[3.2] コンパイラ名とバージョン: boeland c
[3.3] 言語: C
[4] 期限: 今週中
[5] その他の制限: 初心者でも知っているような文法を使ってください。
0746>>744
2006/06/21(水) 01:00:01これをそれぞれのプレイヤーの置いた後に動かせばいいと思うけど……。
駄目ですかね?
int stone = 0;
int myID; //自分の置く石
int enemyID; //敵の置く石
for(int i=0; i<=x-1;i++){
for(int q=0;q<=y-1;q++){
if(array[i][q] == myID)
stone++;
else if( array[i][q] == enemyID )
stone--;
}
if(stone >= 3){
//勝ちの処理
}
else if( stone <= -3 ){
//負けの処理
}
stone = 0;
0747デフォルトの名無しさん
2006/06/21(水) 01:12:58何を解けばよいのかさっぱりわかりません。
初心者でもわかるように問題を書いてください。
0748>>746
2006/06/21(水) 01:13:25理解できなくてごめんなさい…
0749デフォルトの名無しさん
2006/06/21(水) 01:16:33○×ゲームの、縦(x)と横(y)のサイズのことだろう。
もっとも、それならi<=x-1 じゃなくて、
i < x とかいたほうがいいと思うけど。
>>746はできたところまでソースを晒してみては?
方向性は間違っていないと思うんですが。
0750745 他に何かあれば聞いてください
2006/06/21(水) 01:21:52大変申し訳ありませんでした。
下のURLをstatic struct personal data[4]
={{"国語の成績",29点},{"英語の成績",41点},{"数学の成績",22点},{"社会の成績",31点}};
みたいにして表示するプログラムです。
データは最初からプログラム内にあってscanfする必要はありません。
0751>>749
2006/06/21(水) 01:28:15どこを改善すべきでしょうか…
#include<stdio.h>
#define o 1;
#define x 2;
int main(void){
int i,j;
char a[3][3]={{'A','B','C'},{'D','E','F'},{'G','H','I'}};
int m,n;
printf("\n\n");
/*3*3表*/
printf("|%c|%c|%c|\n",a[0][0],a[0][1],a[0][2]);
printf("--------\n");
printf("|%c|%c|%c|\n",a[1][0],a[1][1],a[1][2]);
printf("--------\n");
printf("|%c|%c|%c|\n",a[2][0],a[2][1],a[2][2]);
i=0;
do{
printf("先手○の番です\n");
scanf("%d",&m);
0752>>748続き
2006/06/21(水) 01:30:05case 1:
a[2][0]='o';
printf("o",a[2][0]);
break;
case 2:
a[2][1]='o';
break;
case 3:
a[2][2]='o';
break;
case 4:
a[1][0]='o';
break;
case 5:
a[1][1]='o';
break;
case 6:
a[1][2]='o';
break;
case 7:
a[0][0]='o';
break;
case 8:
a[0][1]='o';
break;
case 9:
a[0][2]='o';
break;
}
0753>>748続き
2006/06/21(水) 01:31:05/*3*3表*/
printf("|%c|%c|%c|\n",a[0][0],a[0][1],a[0][2]);
printf(" ------------\n");
printf("|%c|%c|%c|\n",a[1][0],a[1][1],a[1][2]);
printf(" ------------\n");
printf("|%c|%c|%c|\n",a[2][0],a[2][1],a[2][2]);
0754>>748続き
2006/06/21(水) 01:32:59printf("\n\n");
scanf("%d",&n);
switch(n){
case 1:
a[2][0]="x";
break;
case 2:
a[2][1]='x';
break;
case 3:
a[2][2]='x';
break;
case 4:
a[1][0]='x';
break;
case 5:
a[1][1]='x';
break;
case 6:
a[1][2]='x';
break;
0755>>748続き
2006/06/21(水) 01:33:35a[0][0]='x';
break;
case 8:
a[0][1]='x';
break;
case 9:
a[0][2]='x';
break;
}
printf("%d\n",q);
/*3*3表*/
printf("|%c|%c|%c|\n",a[0][0],a[0][1],a[0][2]);
printf(" --------\n");
printf("|%c|%c|%c|\n",a[1][0],a[1][1],a[1][2]);
printf(" --------\n");
printf("|%c|%c|%c|\n",a[2][0],a[2][1],a[2][2]);
i++;
}while(i<9);
0756デフォルトの名無しさん
2006/06/21(水) 01:38:17http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm
ここにソースをうp汁
0757デフォルトの名無しさん
2006/06/21(水) 01:58:12#include<stdio.h>
int main(void){
char a[3][3]={{'A','B','C'},{'D','E','F'},{'G','H','I'}};
int m,n;
char man = 'o';
while(1) {
printf("|%c|%c|%c|\n",a[0][0],a[0][1],a[0][2]);
printf("--------\n");
printf("|%c|%c|%c|\n",a[1][0],a[1][1],a[1][2]);
printf("--------\n");
printf("|%c|%c|%c|\n",a[2][0],a[2][1],a[2][2]);
printf("%cの番です\n", man);
scanf("%d %d",&m, &n);
a[m][n] = man;
putchar('\n');
if(man == 'o') {
man = 'x';
}
else {
man = 'o';
}
}
return 0;
}
0758>>756
2006/06/21(水) 02:01:29おねがいします!!!
0759デフォルトの名無しさん
2006/06/21(水) 02:08:48うpしたらURLをここに貼ろうね
0760デフォルトの名無しさん
2006/06/21(水) 02:18:06[2] 問題文(含コード&リンク):
あらかじめ作成してある二つテキストファイルを読み込み一つのテキストファイルにまとめるプログラム
[3] 環境
[3.1] OS:Linux [3.2] コンパイラ gcc [3.3] 言語:C
[4] 期限: 6/23
一つにまとめることはできたのですが、txt内の文字が()内のものだとしたとき
in1.txt(
aa
bb)
in2.txt(
xx
yy)
out.txt(
aa
bbxx←
yy)
こんな感じでつながってしまうのですが、何を使えばいいでしょうか?
0761デフォルトの名無しさん
2006/06/21(水) 02:25:490762>>759
2006/06/21(水) 02:26:00ごめんなさい…上記アドレスです
0763749=757
2006/06/21(水) 02:32:16http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=2121
すまん、もとのソースが跡形も無くなったw
もとのソースを生かすには・・・どうしたらいいものか。
0764デフォルトの名無しさん
2006/06/21(水) 02:48:04txt形式で載せたほうがいいと思うよ
0765デフォルトの名無しさん
2006/06/21(水) 03:16:02テキストファイルって普通最後に改行が入るから、何もしなくていいよ。
まぁ完璧を期すなら最後のバイトが改行コードかどうか調べて、
改行コードを付加する必要があるが。
0766デフォルトの名無しさん
2006/06/21(水) 05:31:07[2] 問題文
次の処理を行うプログラムを作成せよ。
キーボードから文字列を入力し、char型の配列strに格納する。
格納された文字列の長さを数え、変数nに格納し、nの値を画面に出力する。
格納された文字列の真ん中に、空白(' ')を1つ挿入し、strを画面に出力する。
格納された文字列の最初の1文字を削除し、strを画面に出力する。
ただし、標準関数 string.h は利用しないものとする。
[3] 環境
[3.1] OS: (Windows xp
[3.2] visual studio2003
[3.3] C
4]期限: ([2006年6月21日12:00まで]
[5] 配列、ループ
お願いします
0767Javaはイイ
2006/06/21(水) 06:20:57Cって面倒 orz
C/C++はほぼ日常で使わないのでソース的には酷いものかも〜
一応動作してるのでうp
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=27950
0768>>763
2006/06/21(水) 08:26:12ほんと助かりました!!
0769デフォルトの名無しさん
2006/06/21(水) 08:57:31揚げ足取るようですまんが、strlenはstring.hの関数なんだが・・・。
>ただし、標準関数 string.h は利用しないものとする。
と書いてある。
strlenを使用しないとすれば
while(1)
{
if(str[count] == '\0' )
break;
count++;
}
みたいなルーチンにしてCountとcoutやprintfですればいいと思う。
0770>>763
2006/06/21(水) 09:11:53コレをメインメニューにしたいんですけど…うまく作っていただいたゲームに
移ることができないです…↓↓
度々すみません。力を貸してください
0771デフォルトの名無しさん
2006/06/21(水) 09:37:50[2] 問題文
次の表は、京都市の区ごとの人口と面積である。
区名 人口(人) 面積(平方キロメートル)
北区 123,874 94.92
上京区 83,285 7.11
左京区 169,365 246.88
中京区 102,085 7.38
東山区 42,137 7.46
山科区 136,292 28.78
下京区 75,907 6.82
南区 98,186 15.78
右京区 202,484 291.95
西京区 154,648 59.20
伏見区 285,392 61.62
以下の記述を参考に、コードを作成しなさい。
これらの情報を格納する構造体 struct division を宣言する。
struct division {
char name[20];
int count;
double area;
}
struct division型の配列 kyoto[11]を用意し、 初期値として表のデータを格納する。
入力した構造体の配列を使って、以下の情報を出力する。
人口が最大の区と最小の区の、名前と人口。
面積が最大の区と最小の区の、名前と面積。
人口密度が最大の区と最小の区の、名前と人口密度。
[3] 環境
[3.1] OS: (Windows xp [3.2] visual studio2003 [3.3] C
4]期限: ([2006年6月28日12:00まで]
[5] 配列、ループ,ポインタ
0772デフォルトの名無しさん
2006/06/21(水) 09:50:31[2] 1/nΣΣ(内積)の二乗 を計算せよ。
まずベクトルを読み込むのにsscanfを使用せよ
[3]
[3.1] Linuxfedora core4
[3.2] gcc
[3.3] 言語: (C
[4] 期限: 2006-6-23
0773デフォルトの名無しさん
2006/06/21(水) 10:06:35[2] 問題文
1、各データ型(char,int,float,double)の変数とポインタ変数をそれぞれ宣言し、各データ型変数のアドレスを同じデータ型の
ポインタ変数に代入した上で、各データ型変数とポインタ変数の内容と各変数アドレスを表示せよ。ただし、同じ値と思われる
ものを一行で表示する。
2、char a[9]={65,66,69,70,71,72,73,0},*p;と宣言し、p=&a[4];とすると、文字配列aの各要素のアドレスとポインタ変数pの内容
を表示し、また、++*p,(*p)++,--*p,(*p)--の値も表示せよ。この時、括弧をつけない場合の*p++,*p--の結果も表示して確認する。
3、int a[9]={10,15,20,25,30,35,40,45,50},*p;を宣言し、p=&a[4];文の後に、p++,++p,--p,p--の各実行文を実行した場合、*p
の結果を出力せよ。また、p=&a[0];文の後に、*(p+1),*(p+2),*(a+1),*(a+2)の値を出力せよ。
4、文字列の長さを求める標準ライブラリ関数strlen()の自作版関数int mystrlen(char *)を作成せよ。
[3] 環境
[3.1] OS: windowsXP
[3.2] cygwin
[3.3] C言語
[4]期限 今日の午後12時までです。よろしくお願いします。
0774デフォルトの名無しさん
2006/06/21(水) 10:19:43ゴメン、ゴメン
関数を修正
int deltadeg( double *r1, double *r2, double *r3, double x1, double y1, double x2, double y2, double x3, double y3 )
{
double a1, a2, a3;
if ( x1 == x2 && y1 == y2 ) return ( 0 );
if ( x2 == x3 && y2 == y3 ) return ( 0 );
if ( x3 == x1 && y3 == y1 ) return ( 0 );
a1 = ( x1 == x2 ? ( y2 < y1 ? -90.0 : +90.0 ) : atan( ( y2 - y1 ) / ( x2 - x1 ) ) * 360.0 / 2.0 / pi() ); if ( x2 < x1 ) a1 = a1 + 180.0;
a2 = ( x2 == x3 ? ( y3 < y2 ? -90.0 : +90.0 ) : atan( ( y3 - y2 ) / ( x3 - x2 ) ) * 360.0 / 2.0 / pi() ); if ( x3 < x2 ) a2 = a2 + 180.0;
a3 = ( x3 == x1 ? ( y1 < y3 ? -90.0 : +90.0 ) : atan( ( y1 - y3 ) / ( x1 - x3 ) ) * 360.0 / 2.0 / pi() ); if ( x1 < x3 ) a3 = a3 + 180.0;
*r1 = a3 - a1 - 180.0;
while ( *r1 < 0.0 ) *r1 = 360.0 + *r1;
if ( *r1 > 180.0 ) *r1 = 360.0 - *r1;
*r2 = a1 - a2 - 180.0;
while ( *r2 < 0.0 ) *r2 = 360.0 + *r2;
if ( *r2 > 180.0 ) *r2 = 360.0 - *r2;
*r3 = a2 - a3 - 180.0;
while ( *r3 < 0.0 ) *r3 = 360.0 + *r3;
if ( *r3 > 180.0 ) *r3 = 360.0 - *r3;
return ( 1 );
}
0775デフォルトの名無しさん
2006/06/21(水) 10:47:40int main( void )
{
struct division {
char name[ 20 ];
int count;
double area;
};
struct division kyoto[ 11 ] = { { "北区", 123874, 94.92 }, { "上京区", 83285, 7.11 }, { "左京区", 169365, 246.88 },
{ "中京区", 102085, 7.38 }, { "東山区", 42137, 7.46 }, { "山科区", 136292, 28.78 }, { "下京区", 75907, 6.82 },
{ "南区", 98186, 15.78 }, { "右京区", 202484, 291.95 }, { "西京区", 154648, 59.20 }, { "伏見区", 285392, 61.62 } };
struct division *max, *min; int i;
for ( max = min = kyoto, i = 1; i < 11; i++ ) {
if ( max->count < kyoto[ i ].count ) max = &kyoto[ i ];
if ( min->count > kyoto[ i ].count ) min = &kyoto[ i ];
}
printf( "count max: %s %d\n", max->name, max->count );
printf( "count min: %s %d\n", min->name, min->count );
for ( max = min = kyoto, i = 1; i < 11; i++ ) {
if ( max->area < kyoto[ i ].area ) max = &kyoto[ i ];
if ( min->area > kyoto[ i ].area ) min = &kyoto[ i ];
}
printf( "count max: %s %f\n", max->name, max->area );
printf( "count min: %s %f\n", min->name, min->area );
for ( max = min = kyoto, i = 1; i < 11; i++ ) {
if ( ( double )max->count / max->area < ( double )kyoto[ i ].count / kyoto[ i ].area ) max = &kyoto[ i ];
if ( ( double )min->count / min->area > ( double )kyoto[ i ].count / kyoto[ i ].area ) min = &kyoto[ i ];
}
printf( "count max: %s %f\n", max->name, ( double )max->count / max->area );
printf( "count min: %s %f\n", min->name, ( double )min->count / min->area );
return ( 0 ); }
0776デフォルトの名無しさん
2006/06/21(水) 10:53:28[2] 問題文
次の処理を行うプログラムを作成しなさい。
char型の配列strを用意し、キーボードから英数字の文字列を入力する。
格納された文字列に、アルファベットの大文字がある場合、すべて小文字に変換する。
文字列strを画面に出力する。
[3] 環境
[3.1] OS: (Windows xp [3.2] visual studio2003 [3.3] C
4]期限: ([2006年6月28日12:00まで]
[5] 配列、ループ,ポインタ
0777デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main(void){int i=0;char str[100];fgets(str,sizeof(str),stdin);
while(str[i]!='\0')str[i]=tolower(str[i]);printf("%s",str);return 0;}
0778デフォルトの名無しさん
2006/06/21(水) 12:39:21早速ですがお願いします。
10進の整数を入力し、これをn進(1<n<10)の整数に変換するプログラム。
例えば94を7進数に変換する場合、94,7 と入力すると163が出るようなやつです。
環境は C++ です。
どうやら94/7=13…3,13/7=1…6,・・・・・
と商が0になるまで続け、出てきたあまりを配列をつかって、逆順に表示できでば
良いらしいのですが、初心者にはつらいところです。よろしくお願いします。
0779デフォルトの名無しさん
2006/06/21(水) 12:52:24とりあえずテンプレ(>>1)を読んできなよ。
0780デフォルトの名無しさん
2006/06/21(水) 13:09:40[2] 問題文
円周率を求めるプログラムをwhile文、又はdo〜while文を用いて作成しなさい。
円周率の計算方法は次の式に基づきます。
tanπ/4=1 π=4arctan1
arctan1=1-1/3+1/5-1/7+・・=倍1/(2i-1)}(-1)のi+1乗
計算は無限に続くが、1/(2i+1)の値は次第に小さくなるので、この値が
プログラム中で指定した未満になったら計算を終了する。精度は#defineで
定数として定義してください。
[3.1] OS: windowsxp
[4]期限: 今日の午後6時まで。
0781デフォルトの名無しさん
NGNG#include<stdio.h>
#define EP 0.000000001
int main(void){double a,p=0.0;int i=0;
while((a=(1.0/(2.0*(double)i+1.0)))>EP){p+=a*((i&1)?-1.0:1.0);i++;}
printf("%f\n", p*4.0);return 0;}
0782デフォルトの名無しさん
NGNG#include<stdio.h>
#include<stdlib.h>
int main(void){char tmp[100],str[100];int n,b;fgets(tmp,sizeof(tmp),stdin);
sscanf(tmp,"%d,%d",&n,&b);itoa(n,str,b);printf("%s\n",str);return 0;}
0783デフォルトの名無しさん
2006/06/21(水) 15:19:35http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2125.cpp
0784デフォルトの名無しさん
2006/06/21(水) 15:24:36http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2126.cpp
0785デフォルトの名無しさん
2006/06/21(水) 16:23:580786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
2006/06/21(水) 16:58:530788デフォルトの名無しさん
2006/06/21(水) 18:50:08アルファベットであれば一文字アルファベット順を先にずらす。但し、zについては、aにする。
数字であれば、1つ先の数字にする。但し、9については0にする。
whileとifを使ったC言語のものを教えてください
0789デフォルトの名無しさん
2006/06/21(水) 19:06:12# include <stdio.h>
# include <string.h>
int main(void)
{
int c;
const char *lower = "abcdefghijklmnopqrstuvwxyza";
const char *upper = "ABCDEFGHIJKLMNOPQRSTUVWXYZA";
const char *digit = "01234567890";
while((c = getchar()) != EOF)
{
char *p;
if((p = strchr(lower, c)) || (p = strchr(upper, c)) || (p = strchr(digit, c)))
putchar(p[1]);
else
putchar(c);
}
return 0;
}
0790デフォルトの名無しさん
2006/06/21(水) 19:08:11のstdlib.hを使用したところ以下のようなエラーが発生しました。
エラー E2040 116行目:宣言が正しく終了していない.
警告 W8017 117行目:マクロ'abs'の重複定義
#else
int _RTLENTRY _EXPFUNC abs(int __x); ←116行目
# define abs(__x) __abs__(__x) ←117行目
#endif
解る方がいらっしゃればよろしくお願いします。
0791デフォルトの名無しさん
2006/06/21(水) 19:12:30どんなソースにそのヘッダを引用したの?
0792763
2006/06/21(水) 23:51:39昼間2ちゃんやってる暇ないからご指名されても困るがね・・・
今からでもいいならやってみるかな。int型のgame1、game2、
ていうのが意味不明だけどこれは関数かな?
0793763
2006/06/22(木) 00:40:02http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2130.txt
ネストが深いとか、はっきりいって美しくないプログラム
だけど勘弁してください。
微調整が必要なら他の人にお願いしてください。
もう寝ますんで。
0794>>763
2006/06/22(木) 01:22:45このソース完璧です!!僕の理想そのままです!!!
ありがとうございましたヽ(´▽`)/
ほんと助かりました!!!!!!
ホントありがとうございました!!!!!!!!
0795772
2006/06/22(木) 03:06:53sscanf,for ,ポインターの知識を使って作るようなのですが。
0796デフォルトの名無しさん
2006/06/22(木) 04:23:23あからさまに情報が足りてない、ってことは自分で分からない?
nは何なのか、2つのΣは何を動かして何を足すのか、内積を取るベクトルの次元はいくつか。
最低限これくらいは情報を出さないと。
0797よろしくお願いします
2006/06/22(木) 14:27:21変数x,y,zを使いscanfで各教科の点数を入力→
{{"数学",x}, {"国語",y}, {"英語",z}};
うえのx,y,zに値が入力され
{ printf("\n%s %d %d",matsu[i].name,matsu[i].kokugo,matsu[i].eigo); }
で表示されるプログラムです
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン: Borland c
[3.3] 言語: C
[4] 期限: 今週中
[5] その他の制限: 基本中の基本です
以下は、こんな感じでしてほしいと思い作りました。文法がだめだめですけど…
#include<stdio.h>
#include<conio.h>
int i;
struct seiseki
{ char *name;
int kokugo;
int eigo;
};
printf("%d人目のαの成績を入力\n",i+1);scanf("%f",&man[i].x);
printf("%d人目のβの成績を入力\n",i+1);scanf("%f",&man[i].y);
printf("%d人目のγの成績を入力\n",i+1);scanf("%f",&man[i].z);
void main(void)
{ static struct seiseki matsu[5]=
{{"数学",x},{"国語",y},{"英語",z}};
for(i=0;i<3;i++)
{ printf("\n%s %d %d",matsu[i].name,matsu[i].kokugo,matsu[i].eigo); }
getchar();
getchar();
}
0798デフォルトの名無しさん
2006/06/22(木) 14:27:38進数の変換は有名なサイトにあるね。初心者が仕組みを理解できるかはおいといて。
ttp://www.bohyoh.com/Books/CalgoA/EX/ALGOEX0204.html
0799デフォルトの名無しさん
2006/06/22(木) 14:59:19#include<stdio.h>
struct seiseki{
char name[20];
int sugaku;
int kokugo;
int eigo;
};
int main(void)
{
int i;
struct seiseki matsu[3];
for(i = 0; i < sizeof(matsu) / sizeof(matsu[0]); i++){
printf("%d人目の名前を入力\n", i + 1);scanf("%s", matsu[i].name);
printf("%d人目のαの成績を入力\n", i + 1);scanf("%d", &matsu[i].sugaku);
printf("%d人目のβの成績を入力\n", i + 1);scanf("%d", &matsu[i].kokugo);
printf("%d人目のγの成績を入力\n", i + 1);scanf("%d", &matsu[i].eigo);
}
for(i = 0; i < sizeof(matsu) / sizeof(matsu[0]); i++)
printf("%s %d %d %d\n", matsu[i].name, matsu[i].sugaku, matsu[i].kokugo, matsu[i].eigo);
}
想像で書いてみた
0800778
2006/06/22(木) 15:05:31テンプレも読まずに書き込んでしまい申し訳ありませんでした。
次回は気をつけます。
0801デフォルトの名無しさん
2006/06/22(木) 15:16:21[2] 問題文(含コード&リンク):
char alph[20];
で定義した配列に乱数を用いて作成した20個のでたらめなアルファベットを記入したとき、
alph[ ] の文字列と alph[ ] の各文字をアルファベット順に並べ替えた結果を表示せよ。文字は全て小文字とする。
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:できればすぐ!
[5] その他の制限:特にありません。
宜しくお願いします。
0802デフォルトの名無しさん
2006/06/22(木) 15:40:29#include <stdlib.h>
#include <time.h>
int cmp(const void *a, const void *b){
return (*(const char*)a - *(const char*)b);
}
int main(){
char alph[20];
int i;
srand((unsigned) time(NULL));
for(i = 0; i < 20; i++)
alph[i] = 'a' + rand() % 25;
for(i = 0; i < 20; i++)putchar(alph[i]);
puts("");
qsort(alph, 20, sizeof(char), cmp);
for(i = 0; i < 20; i++)putchar(alph[i]);
return 0;
}>>801
0803デフォルトの名無しさん
2006/06/22(木) 15:44:48>>802さんありがとうございます!
0805デフォルトの名無しさん
2006/06/22(木) 16:02:110806デフォルトの名無しさん
2006/06/22(木) 16:16:08いや、ごくろうごくろう
0807デフォルトの名無しさん
2006/06/22(木) 16:17:46そういうお前は専門学校から帰ってきた、回答者のソースも解析、理解できないクズだろ
0808デフォルトの名無しさん
2006/06/22(木) 16:21:39君>>802?精進しようね。
802.c: (in function cmp)
802.c:6:8: Return value type char does not match declared type int:
(*(const char *)a - *(const char *)b)
To make char and int types equivalent, use +charint.
802.c: (in function main)
802.c:14:11: Incompatible types for + (char, int): 'a' + rand() % 25
A character constant is used as an int. Use +charintliteral to allow
character constants to be used as ints. (This is safe since the actual type
of a char constant is int.)
802.c:15:24: Return value (type int) ignored: putchar(alph[i])
Result returned by function call is not used. If this is intended, can cast
result to (void) to eliminate message. (Use -retvalint to inhibit warning)
802.c:16:1: Return value (type int) ignored: puts("")
802.c:18:24: Return value (type int) ignored: putchar(alph[i])
802.c:5:5: Function exported but not used outside 802: cmp
A declaration is exported, but not used outside this module. Declaration can
use static qualifier. (Use -exportlocal to inhibit warning)
802.c:7:1: Definition of cmp
Finished checking --- 6 code warnings
0809デフォルトの名無しさん
2006/06/22(木) 16:27:40いや、俺は>>802じゃないけど・・・少なくとも
>>806は本当に専門学校生だったらしいw
0810デフォルトの名無しさん
2006/06/22(木) 16:29:17あとここ、まともなレスがもらえるスレじゃないからw
丸投げに対して即席で考えた生ぬるいソースを出す奴もいるよ?
少なくとも俺はそんなことしないし、俺はうpロダを使っているよ
0811デフォルトの名無しさん
2006/06/22(木) 16:32:29まぁ>>808の真意はわからないだろうなぁ。永遠に。
じゃ、頑張って解答してあげて。
0812デフォルトの名無しさん
2006/06/22(木) 16:34:04俺は指摘はしないよ。ただ、指摘した>>808だって修正したのを出してないんじゃ
コンパイラが出したエラーメッセージを分かってないんじゃ・・・
0813デフォルトの名無しさん
2006/06/22(木) 16:34:500814デフォルトの名無しさん
2006/06/22(木) 16:36:51問題点を指摘してやっただけなんだけどw
0815デフォルトの名無しさん
2006/06/22(木) 16:37:23もっと上を行ったソースを出せば?誰かさんみたく、口先だけで
相手を煽るだけ、結局「自分も」分かってないのがオチなんじゃね?
0816デフォルトの名無しさん
2006/06/22(木) 16:38:360817デフォルトの名無しさん
2006/06/22(木) 16:40:26少なくとも>>808の内容はわかるよな。まぁ、俺が言いたかったのはその先のことなんだが。
答えは教えないよ。自分で考えてね。じゃ。
0818デフォルトの名無しさん
2006/06/22(木) 16:50:340819デフォルトの名無しさん
2006/06/22(木) 17:19:33エラーメッセージが出たのを理由に、自分はよくわかっていなくても
エラーメッセージを突き出しただけで自分の方が優位だと勘違いしている
痛い低学歴 >>806=>>808 がいるよ
可愛いねぇ〜 (可愛いねぇ〜)
あっ、自分が指摘したエラーメッセージが何なのか理解しているか
修正したソースを出さないから、結局お前もわかってないじゃんと言われて
焦ってるね
可愛いねぇ〜 (可愛いねぇ〜)
0820デフォルトの名無しさん
2006/06/22(木) 17:21:05>答えは教えないよ。自分で考えてね。じゃ
いや、分かってるからこっちは教えてもらわなくても結構だよ?
少なくとも俺が書いたソースじゃないし。
何が言いたいの?結局、お前が何をしたら良いかわかってないんじゃん。
他人のソースをどうこう言うなら、目的を果たせるだけでも良いから
自分なりのできたソースを出してみろよ、専門学校生w
0821デフォルトの名無しさん
2006/06/22(木) 17:22:39このスレに限らず宿題スレの住人は、自分のコードの指摘を受けるのを怖がりすぎてる。
タダで指摘してくれる人なんてめったにいないぞ?
上のやり取りでも>>817が指摘しようとした内容は結局わからずじまい。成長するチャンスを一つ失ったわけだ。
俺にも>>817がいいたかったことがおぼろげながら分かるが、正解かどうかわからないので発表はしない・・・
0823デフォルトの名無しさん
2006/06/22(木) 17:27:570824デフォルトの名無しさん
2006/06/22(木) 17:35:11精進しようねと言うが、自分が指摘できない、あるいは理解して修正できないなら
他人に言われるまでもなくお前こそ精進すべき
そして今日も元気に低学歴でも学校に通ってりゃ
自分より格下だと思っているニートを叩きに精を出してるみたいだね。
いや、ごくろうごくろう
ニートって呼ばれる人の中には、知識、経験が豊富な人もいるから気をつけとけ
下手すりゃ能力も経済力もない奴が、社会的な地位だけででけぇ面して
相手を罵倒すると、しっぺ返しを食らうかもよ
現代の社会は労働の義務はあれど、しなくても生きられる経済的に余裕のある人もいるし
0825デフォルトの名無しさん
2006/06/22(木) 17:36:130826デフォルトの名無しさん
2006/06/22(木) 17:37:50>成長するチャンス
少なくともそれはソースを書いた奴であって
第三者にはどうでも良い。というか、こっちは不適切な箇所はわかっているんだけどね。
口ばっかりで訂正したソースを出さない
>>808は機械が指摘した箇所を提示しただけ。だからどのように書き直すか?
については答えられる能力があるとは限らない。
0827808
2006/06/22(木) 17:38:44#include <stdio.h>
#include <stdlib.h>
#include <time.h>
static int cmp(const void *a, const void *b){
return (int)(*(char*)a - *(char*)b);
}
int main(){
char alph[20];
int i;
srand((unsigned)time(NULL));
for(i = 0; i < 20; i++)
alph[i] = 'a' + (char)(rand() % 25);
for(i = 0; i < 20; i++)(void)putchar(alph[i]);
(void)puts("");
qsort(alph, 20, sizeof(char), cmp);
for(i = 0; i < 20; i++)(int)putchar(alph[i]);
return 0;
}
0828808
2006/06/22(木) 17:39:26#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int cmp(const void *a, const void *b){
return *(char*)a - *(char*)b;
}
int main(){
char alph[20];
int i;
srand(time(NULL));
for(i = 0; i < 20; i++)
alph[i] = 'a' + rand() % 25;
for(i = 0; i < 20; i++)putchar(alph[i]);
puts("");
qsort(alph, 20, sizeof(char), cmp);
for(i = 0; i < 20; i++)putchar(alph[i]);
return 0;
}
以上。
0829デフォルトの名無しさん
2006/06/22(木) 17:40:33少なくともこういうキモイソースは俺は書かないw
指摘する前に、よりマシなソースを書けよw
0830デフォルトの名無しさん
2006/06/22(木) 17:41:27for文の閉じ括弧から離したら?気持ち悪い。どうでも良いんだけどさw
0831デフォルトの名無しさん
NGNG0832デフォルトの名無しさん
2006/06/22(木) 17:42:150833808
2006/06/22(木) 17:42:41$ splint --version
Splint 3.1.1 --- 02 May 2003
Command Line: Unrecognized option: --version
A flag is not recognized or used in an incorrect way (Use -badflag to inhibit
warning)
Finished checking --- no code processed
0834デフォルトの名無しさん
2006/06/22(木) 17:43:400835808
2006/06/22(木) 17:44:51懇切丁寧に教える気0だから。
0836デフォルトの名無しさん
2006/06/22(木) 17:44:540837デフォルトの名無しさん
2006/06/22(木) 17:51:05tabじゃないの?まぁ俺も2chに書くとき以外では一行で書くようなキモイことやらんけど。
0838デフォルトの名無しさん
2006/06/22(木) 17:53:180839デフォルトの名無しさん
2006/06/22(木) 17:54:26スルーできないってことじゃね
0840デフォルトの名無しさん
2006/06/22(木) 17:54:34| 次でボケて!!! |
|________|
∧∧ ||
( ゚д゚) ||
/ づΦ
0841デフォルトの名無しさん
2006/06/22(木) 17:54:41ソースを書く奴の素性なんてどうでも良いんだよw
0842デフォルトの名無しさん
2006/06/22(木) 17:55:190843デフォルトの名無しさん
2006/06/22(木) 17:55:41┏┫┃┃┃ スレ違い雑談は┃┃┃┣┓
┃┃┃┃┣┓ ここまで.┏┫┃┃┃┃
┃ ┃┃┏━━━┓┃┃ ┃
┃スレ違い ┣┫ ・∀・ ┣┫ END ┃
┗━━━━┛┗┳━┳┛┗━━━━┛
┏┻┓┃
┏━┛ ┣┻┓
┗━━━┫ ┗━┓
┗━━━┛
0844デフォルトの名無しさん
2006/06/22(木) 17:56:40今日はたまたま昼間に書かなかっただけだがw
ニート叩きに反応せずとも、学歴に反応したところを見ると
トーマスはやはり専門(ry
0845デフォルトの名無しさん
2006/06/22(木) 17:56:57__,,/ _, ----`ヽ :.
:. / _ ___ 、\
/ / i \ \\ :.
:. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ
,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
:. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
|i .i l :N_, -弋 \弌弋ナ:}:.:}
:. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な…
.| :メヽ.', `ozZ} izN。ハ::{ なんなんですか?
:. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :. ここ、どこですか?
| :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんであなたたち
:. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:. 学歴に拘るんですか?
/ ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
:. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:.
/ / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ',
./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ',
{ /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ
ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧|
ヽ! )人 : : :人 : : : / \! :.
" ヽ : : : : :/イ{ :.ノ: : : :.\ :.
:. \__///: :\______/: : : : : : : ヽ
/ //: : :|;|: : : : : : i: : : __: : : : ',
:. / 、 {;{ |;| . : i/. : : : : : :|
/ `Y;{. . . .|;|. : : : /i: : : : : : : : :l
0846デフォルトの名無しさん
2006/06/22(木) 17:59:28第三者はどうでもいいなら絡むな馬鹿が
0847デフォルトの名無しさん
2006/06/22(木) 18:02:32お前ウザから、頼むから消えてくれよ
0848デフォルトの名無しさん
2006/06/22(木) 18:02:38ソースを書いていない第三者に絡んできた奴はお前だろ?
第一、>>826は正論を言ってるだけで、相手を煽るような絡みはしていない
何必死こいてんだ、お前?まぁ、そういうレスは本当に余裕のない
能力も経済力もない奴だという素性がバレるね
0849デフォルトの名無しさん
2006/06/22(木) 18:03:34お前ウザから、頼むから消えてくれよ
0850デフォルトの名無しさん
2006/06/22(木) 18:04:31お前いちいちレスしている以上はウザから、頼むから消えてくれよ
っつかお前が消えろ、その方が解決するだろ?
ここは他人のソースにケチをつけるスレじゃないって
既に結論は出てるのに、未だにケチをつけて
偉そうなことを言うわりには、まともなソースを出さないじゃん
一方、誰かさんは答えの分かりきった問題で
できた人間が技術力があるから偉いとか言い出すしw
このスレの趣旨をわかってなさすぎ
ここに来る前に、相手の素性が分からない場所で
無意味ないい合いをするくらいなら、2chに来ない方が良いよ?
0851デフォルトの名無しさん
2006/06/22(木) 18:05:20お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
お前らもウザから、頼むから消えてくれよ
っつか、ほんっとうにここって低学歴と低所得で生活だけでなく
精神面でも余裕のねぇ〜〜〜クズが多いんだなwwwwww
0852デフォルトの名無しさん
2006/06/22(木) 18:05:51お前ウザから、頼むから消えてくれよ
0853デフォルトの名無しさん
2006/06/22(木) 18:07:35お前いつもファビョるよなw
マジウザいよw
0854デフォルトの名無しさん
2006/06/22(木) 18:10:03↓何事も無かったように、宿題と解答をどうぞ。
0855デフォルトの名無しさん
2006/06/22(木) 18:12:03そういうレスしかできず、ソースも書かないお前らって
ほんっと知能が低いっつーか生活にも余裕がないんだな・・・
とりあえず
>>808は精神面で精進しようね。こいつに味方している奴は
確実に低学歴だけどニートになれずにバイトしているプロファイリングができますw
0856デフォルトの名無しさん
2006/06/22(木) 18:13:500857デフォルトの名無しさん
2006/06/22(木) 18:14:040858デフォルトの名無しさん
2006/06/22(木) 18:16:18いつまで第三者が書いたソースにケチ付けられたことに粘着するのやら。
0859デフォルトの名無しさん
2006/06/22(木) 18:17:250860デフォルトの名無しさん
2006/06/22(木) 18:17:450861デフォルトの名無しさん
2006/06/22(木) 18:19:53なるほど。最近のやりとりの中では、一番勉強になった。ありがとう。
0862デフォルトの名無しさん
2006/06/22(木) 18:20:030863デフォルトの名無しさん
2006/06/22(木) 18:23:57質問スレに来るから。これは他の板でもありがちなパターンだよ。
そして、煽り、罵倒をした奴が自分が至らない部分を指摘されて
指摘してきた相手の粗を必死に探そうとする・・・
0864デフォルトの名無しさん
2006/06/22(木) 18:27:18甘い。ただ一人の為に荒れるんだよ。こいつ他のスレも荒らしてるし。
0865デフォルトの名無しさん
2006/06/22(木) 18:29:590866デフォルトの名無しさん
2006/06/22(木) 18:30:440867デフォルトの名無しさん
2006/06/22(木) 18:36:300868デフォルトの名無しさん
2006/06/22(木) 18:37:25甘い。何がただ一人だよ?複数が書き込んでいるのはバレバレだろ?
一人だけってのは言い訳にもならない。自分が精進しろよ?
0869デフォルトの名無しさん
2006/06/22(木) 18:44:26いや一人ですから。
0870デフォルトの名無しさん
2006/06/22(木) 18:46:02過去ログ読めば分かる、結局、一人に責任を擦り付けて
自分はさも悪くないって言い逃れしたいタイプだろ?
お前とも言い合いはしない、少なくともお前は黙ってろ
0871デフォルトの名無しさん
2006/06/22(木) 18:59:14いや読んでますけど?
なんか俺が暴れてる奴みたいな書き方だけど、俺は暴れてないし。
0872デフォルトの名無しさん
2006/06/22(木) 19:20:590873772
2006/06/22(木) 20:20:44[1] 授業単元: C言語入門
[2] (v,w)=1/n ΣΣ(vi,wj)の二乗 を計算せよ。
Σの左側がi=1からnまで
Σの右側がj=1かb輓まで
m orthonormal vectors w1,w2, 、、、wm(mまで)
n orthonormal vectors v1v2,,,,,,,,,vn(nまで)
まずベクトルを読み込むのにsscanfを使用せよ
[3]
[3.1] Linux
[3.2] gcc
[3.3] 言語: (C
[4] 期限: 2006-6-23
0874デフォルトの名無しさん
2006/06/22(木) 20:59:24「の二乗」はどこからどこにかかるのか。
v,wがベクトルなのか、vi,wjがベクトルなのか。特に後者の場合、ベクトルの次元はいくつなのか。
sscanfで読み込むというベクトルの表記方法や順番はどうなっているのか
m,nの入力方法はどうするのか。
数式はどこからどこまでが分母なのか。
…ということでまだ足りてない。
0875772
2006/06/22(木) 21:25:20ΣΣ(Vi×Wj)の二乗
Σの左側がi=1からnまで
Σの右側がj=1からmまで
n次元です。
なかなか文でうまく説明できないのですが
読み込む課題はとりあえずおいておいて
ΣΣ()の計算をどういうふうに書くか教えてもらえないでしょうか
0876デフォルトの名無しさん
2006/06/22(木) 21:40:49それは分かるけど、Cのプログラムにできないのかを書くと印象が良くなるんだが。
まぁ、外積の総和だな。
0877772
2006/06/22(木) 22:06:29ΣΣふたつをどう数学的に計算していいかわからないし
そしてCのプログラムにもできそうにないです。
Σひとつの場合は
for(i=1;i<n;i++)
などとすればよさそうですが。。
0878デフォルトの名無しさん
2006/06/22(木) 22:07:520879772
2006/06/22(木) 22:09:08一応このサイトで数学の意味は少しはわかったような気はしていますが
プログラムがなんとも。。
0880デフォルトの名無しさん
2006/06/22(木) 22:10:350881772
2006/06/22(木) 22:14:550882デフォルトの名無しさん
2006/06/22(木) 22:25:58for (i = 1; i < n; i++)
for (j = 1; j < m; j++)
などとすればよい。
0883772
2006/06/22(木) 23:17:27matrices. The overlap of the subspace spanned by m orthonormal vectors w1, . . . ,wm with a
reference subspace spanned by n orthonormal vectors v1, . . . , vn
can be quantified as follows:
Σ(i=1からn)Σ(j=1からm)(Vi×Wi)2乗
以下のようなベクトルファイル一番上の左がx座標でその横y z そしてまたxyzxyzxyzと
続いていくベクトルをこのファイルからうまく抽出して
0.07949 0.05776 -0.09131 0.03649 0.00516 -0.05521 0.00819
-0.01256 0.00312 0.01077 -0.00219 0.00505 0.00577 -0.00316
0.00581 -0.00237 0.00261 0.00789 -0.00416 0.00103 0.01031
-0.00525 0.00048 0.01112 -0.00522 0.00078 0.00729 -0.00244
0.00014 0.00547 -0.00054 0.00690 -0.00341 0.00075 0.00087
-0.00409 0.00414 -0.00461 -0.00101 0.00778 -0.00664 -0.00494
0.00699 -0.00562 -0.00840 0.00451 -0.00236 -0.01554 0.00230
-0.00121 -0.01362 -0.00056 0.00043 -0.00850 -0.00117 0.00103
-0.00699 -0.00508 0.00398 -0.00615 -0.01055 0.00686 -0.00413
-0.01220 0.00796 -0.00478 -0.01340 0.00493 -0.00165 -0.01246
0.00076 0.00468 -0.01352 -0.00473 0.00792 -0.02160 -0.00644
0.01331 -0.02674 -0.00531 0.00965 -0.02702 -0.00121 0.00474
-0.02249 -0.00052 0.00117 -0.02183 0.00460 -0.00339 -0.02206
0.00733 -0.00734 -0.01673 0.00556 -0.00889 -0.01302 0.00619
0884772
2006/06/22(木) 23:18:54このわかりにくい文ですが
それをみて
大まかなプログラム作れませんか?
だいたいこんなのかなというプログラムを見て参考にしたいです。
0885デフォルトの名無しさん
2006/06/22(木) 23:19:26[2] 問題文(含コード&リンク):
1 整数型変数としてiを定義
2 iを1から10まで1ずつ増やしながら以下の事項を実行して終了
(a)変数iを10進法表示でi= の形で1行ずつ出力(表示)
(b)もしiが9だったらi=9に続けてCub!と表示して改行
(c)もしiが9だったらi=10に続けてFinished.と表示して改行
[3] 環境
[3.1] OS:/Linux
[3.2] コンパイラ名とバージョン: 分かりません
[3.3] 言語:どちらでも可 かなwW
[4] 期限: ([19年6月27日正午)
[5] その他の制限: なし
なんとかよろしくお願いします
0886デフォルトの名無しさん
2006/06/22(木) 23:56:26[3.2] コンパイラ名とバージョン: 分かりません
[3.3] 言語:どちらでも可 かなwW
[4] 期限: ([19年6月27日正午)
釣られてやるけど、かなりふざけてんな。
その程度の問題もできないのに学習してんの?
無駄な努力というよりも無駄に時間と労力を費やしてんな・・・
0887デフォルトの名無しさん
2006/06/23(金) 00:07:370888デフォルトの名無しさん
2006/06/23(金) 00:13:25英語でもいいから問題文は丸々写して。変に解釈してくれると逆に分からなくなるから。
0889デフォルトの名無しさん
2006/06/23(金) 00:30:34よく分からんけど、とりあえず計算式だけ見るなら
double sum = 0.0;
for( i = 0 ; i < n ; i++ ) {
for( j = 0 ; j < m ; j++ ) {
sum += v[i] * v[i] * w[j] * w[j];
}
}
sum /= m;
で、sumに結果が残ってるはず。
共分散行列の固有ベクトル(の一部)で貼られる小空間?何のことやらさっぱり。
0890デフォルトの名無しさん
NGNGなんでそんな授業取ったんだ?いますぐ進路変更した方がいいぞ。
0891772
2006/06/23(金) 00:36:19ありがとうございます。
まず計算式から考えてみます。
0892デフォルトの名無しさん
2006/06/23(金) 00:49:22http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2159.txt
どちらでも可とのことなので、C++で書きました。
0893デフォルトの名無しさん
2006/06/23(金) 00:52:15#include<stdio.h>
main(){
int i;
i = 1; printf("i=%d\n",i);
i = 2; printf("i=%d\n",i);
i = 3; printf("i=%d\n",i);
i = 4; printf("i=%d\n",i);
i = 5; printf("i=%d\n",i);
i = 6; printf("i=%d\n",i);
i = 7; printf("i=%d\n",i);
i = 8; printf("i=%d\n",i);
i = 9; printf("i=%d\n",i);
if(i == 9) printf("Cub!\n");
if(i == 9){
i = 10; printf("i=%d\n",i);
printf("Finished.\n");
}
}
こーゆーことか?
0894デフォルトの名無しさん
2006/06/23(金) 00:56:41腹いてぇ〜〜〜、っつか、君もようやるわw
0895デフォルトの名無しさん
2006/06/23(金) 00:57:040896デフォルトの名無しさん
2006/06/23(金) 01:02:07int main()
{
for (int i = 1; i <= 10; ++i) {
printf("i=%d\n", i);
if (i == 9) printf("i=9に続けてCub!\n");
if (i == 9) printf("i=10に続けてFinished.\n");
return 0;
}
0897896
2006/06/23(金) 01:02:390898デフォルトの名無しさん
2006/06/23(金) 01:17:110899デフォルトの名無しさん
2006/06/23(金) 01:25:24http://pc8.2ch.net/test/read.cgi/tech/1150273052/
0900デフォルトの名無しさん
2006/06/23(金) 01:31:04こういう基本的な部分にも目を通しておきたいところだな
0901デフォルトの名無しさん
2006/06/23(金) 01:46:49そこの資料、自分のコピーライトでCG紹介しているけど、他人の作ったものの引用なら拙くないかい?
#ってここに書いてもしょうがないか。
0902デフォルトの名無しさん
2006/06/23(金) 02:01:18う〜〜ん、それは大学側に問い合わせてみるとか?
まぁ、どーでも良いことだろうけど
0903デフォルトの名無しさん
2006/06/23(金) 04:13:04[2] 問題文(含コード&リンク):
課題内容:家族4人の貯金を管理するプログラムを作成せよ.入力は誰の貯金かを数字で指定し,その後金額を入れる.人の指定時に-1を入力するまで入力を受け付け,それまでの総計を出力する.入力の単位は円,金額の表示法はこれまで自分が作ったものを使え.
[実行結果]
だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):2
いくら?1280
だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):1
いくら?11800
(省略)
だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):4
いくら?55000
だれ?(婆さん:1、父さん:2、母さん:3、通信:4、入力終:-1):-1
現在の貯金額
婆さん:21,000円
父さん:2,350円
母さん:3,410円
通信:67,253円
合計:93,995円
[3] 環境
[3.1] OS:WindowsXP SP2
[3.3] 言語:C++
[4] 期限:(6月23日12:00)
[5] その他の制限:配列とポインタ変数、コンピュータのメモリの配置、配列、配列のデータを参照する、多次元の配列を主に使用して欲しい
入門C言語って教科書使ってて106ページまで習いました。
0904デフォルトの名無しさん
2006/06/23(金) 04:33:370905デフォルトの名無しさん
NGNG>これまで自分が作ったもの
を出せ
0906デフォルトの名無しさん
2006/06/23(金) 12:25:16まだC言語にはいってすぐなんです(泣
PCとか今までいじらなかったんで訳分かりません(泣
相当簡単だったみたいですね
ありがとうございました
0907デフォルトの名無しさん
2006/06/23(金) 15:15:570908デフォルトの名無しさん
2006/06/23(金) 22:44:24[2] 問題文(含コード&リンク):
コマンドライン引数で指定した入力ファイル中に含まれる文字数を表示するプログラムを作成しなさい。オプションの追加により別の数え方を追加表示できるようにすること。コマンドライン引数がない場合とオプション "-h" が指定された場合は使用法を表示する。
対応オプションは以下のとおり。複数オプションの同時指定にも対応すること。また、ファイルがない場合や未対応オプション指定時には警告を表示すること。
"-c" : 大文字のみを数えた結果を表示
"-s" : 小文字のみを数えた結果を表示
"-n" : 数字のみを数えた結果を表示
"-h" : 使用法を表示し、終了
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2006年06月28日まで
[5] その他の制限:標準ライブラリは入出力関数のみ使用可でお願いします
よろしくお願いします
0909デフォルトの名無しさん
2006/06/24(土) 05:57:58http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2169.txt
複数オプションの同時指定非対応バージョン。
そこそこコマンドっぽくなったと思う。
同時指定OKにするのは結構骨が折れそうだ。
strcmpを自作したが、もっとうまい方法はないかな?
0910909
2006/06/24(土) 06:00:40#include "stdafx.h"
は間違って書いたので無視してくれるとうれしい。
0911デフォルトの名無しさん
2006/06/24(土) 11:33:52getoptを使わないのなら、>>909より短くて複数オプションに
対応した方法がK&Rに載ってるよ。
0912デフォルトの名無しさん
2006/06/24(土) 11:46:14基礎的な問題なのですが、手こずってしまっています。。
どなたかお願いできないでしょうか。
0913908
2006/06/24(土) 12:24:20ありがとうございました
参考にさせていただきます
>>911
getoptは存在すら知らなかったので、使用できないと思います
K&Rの方も参考にして同時指定可のプログラムに挑戦してみます
0914デフォルトの名無しさん
2006/06/24(土) 15:27:41梃子摺ると言うからには多少はやってみたのかな?
テンプレ書かない罰として自分の書いたソースを晒して味噌。
0915デフォルトの名無しさん
2006/06/24(土) 15:31:29仕切るなアフォが。
お前はただ粛々と問題といてりゃいいんだよ
0916デフォルトの名無しさん
2006/06/24(土) 16:13:57ぬるぽ。
0917772
2006/06/24(土) 17:51:19xyzxyzxyzxyzxyzと延々と左から右へとずっと並んでるんですが、その規則性のあるファイルのxyz座標を読み込み、先日の内積計算へと
もちこみたいのですがどうすればいいでしょうか?
以下のファイルがベクトル1であとひとつのベクトルファイル2を用意して
内積計算へと持ち込みます。 (少しヒントらしきものをもらったのでのせます)
0918772 追加
2006/06/24(土) 17:53:51while(fgets(buf,BUFSIZ,VEC1)!=NULL){
if(buf[1]!='*'){
sscanf(buf, "%lf", vec1+(i++));
if((i)%(atomのnumber*3)!=0)
sscanf(buf+11, "%lf", vec1+(i++));
if((i)%(atomのnumber*3)!=0)
sscanf(buf+22, "%lf", vec1+(i++));
if((i)%(atomのnumber*3)!=0)
sscanf(buf+33, "%lf", vec1+(i++));(ヒントはここまでしかありません)
11.13642 46.57651 11.78757 10.85565 45.16160 13.56510 11.79662
44.96445 16.16222 15.03647 44.10112 17.64687 16.04173 40.77797
19.16648 17.24299 41.12352 22.77835 20.46682 39.37864 23.90952
23.15746 39.53033 26.67550 26.97254 39.27797 26.68635 28.90853
38.78521 29.96662 32.66750 38.79458 30.63201 34.91243 38.83600
33.73716 38.01074 41.06615 33.87775 40.80431 41.36232 36.46101
43.97936 43.57868 36.53159 46.16385 41.03266 34.68410 43.62163
38.69248 32.97922 40.24719 38.26314 31.19010 37.85413 35.25521
31.12784 36.48342 34.33027 27.66556 34.41254 31.41009 26.35950
34.44107 29.30857 23.17541 30.79630 29.79289 22.21776 28.49281
27.29159 20.46028 25.04667 28.78014 21.05261 23.46330 31.92716
19.71563 25.28298 35.06292 18.68012 29.08018 34.96435 18.53454
29.22944 31.19537 18.04975 32.16905 29.29601 16.52669 34.86163
31.55792 18.08194 36.10186 33.02285 21.39182 33.41676 35.34860
22.79776 31.59634 35.91553 26.11925 28.89758 34.12246 28.08728
25.14300 34.90411 28.04732 21.98410 34.64353 25.95630 18.24288
ここに文字でうまく説明できないですがこんなのかなぁと思ったプログラムを
見せていただくとありがたいです。
0919772 追加
2006/06/24(土) 17:57:22で以下そのようにx,y,zと続くベクトルファイルを読み込んで
内積計算に持ち込むんだと解釈はしたのですが
ヒントのプログラムの意味もわかりません。
0920デフォルトの名無しさん
2006/06/24(土) 18:04:55つーか、そのファイルをアップロードするのが一番話が早そうだ。
0921デフォルトの名無しさん
2006/06/24(土) 18:07:06#include <stdio.h>
#include <string.h>
int main(){
char buf[1024];
double v[256][3] = {0};
int i = 0, j = 0;
FILE *fp = fopen("VEC1.txt", "r");
if(!fp){return 1;}
while(fgets(buf, sizeof(buf), fp)){
char *p = strtok(buf," \t\n");
if(!p) break;
do{
sscanf(p, "%lf", &v[i][j++]);
if(j > 2){j = 0; i++;}
}while(p = strtok(NULL, " \t\n"));
}
fclose(fp);
/* データ読み込み終わり */
return 0;
}
0922デフォルトの名無しさん
2006/06/24(土) 18:09:19#include <stdio.h>
#include <string.h>
int main(){
char buf[1024];
double v[256][3] = {0};
int i = 0, j = 0;
FILE *fp = fopen("VEC1.txt", "r");
if(!fp){return 1;}
while(fgets(buf, sizeof(buf), fp)){
char *p = strtok(buf," \t\n");
while(p){
sscanf(p, "%lf", &v[i][j++]);
if(j > 2){j = 0; i++;}
p = strtok(NULL, " \t\n");
}
}
fclose(fp);
/* データ読み込み終わり */
return 0;
}
0923デフォルトの名無しさん
2006/06/24(土) 18:14:16そうです。
(11.13642, 46.57651, 11.78757)(10.85565 45.16160 13.56510)その横の数値がまた
x座標で2行目の最初がy座標となってます。
このようにxyzxyzxyzと並んでいるのでそれをうまくxだけとりだし
yだけとりだしzだけとりだして内積計算するようです。
ポインタというのを使いメモリを確保?するみたいですが
わかりません。
0924772
2006/06/24(土) 18:24:18keisan2=0;
for(k=0;k<n次元ベクトル;k++){
for(j=0;j<n次元ベクトル;j++){
keisan1=0;
for(i=0;i<atomnoNumber*3;i++)
keisan1 += (*(vec1+i+atomNonumber*3*j))*(*(vec2+i+Atomnonumber*3*k));
keisan2 += keisan1 * keisan1;
}
}
printf("%f\n", keisan2/n次元ベクトル);
となるようですが、
*(vec1+i+atomNonumber*3*j)ここの部分がよくわかっていません。
さきほどのベクトルを読み込んで×3というのが。。。
いろいろ質問してすいません。
>922さん
ありがとうございます。
0925デフォルトの名無しさん
2006/06/24(土) 19:46:24何度も聞いてることも含めて。
・nとmはどう与えられるの?
・xyzxyzと続くのはどうでもいいけど、どれがViを表すデータで、どれがWjを表すの?
・atomnoNumberとatomNonumberとAtomnonumberってバラバラ?全部どういう意味?
とりあえず上2つの答えが分かれば無理矢理でも作るから。
0926772
2006/06/24(土) 20:58:03さきほど書いたデータの一部がベクトル1で
このような内容のファイル2つ用意したときに
v w にそれぞれ代入し
計算したいのです。
0927772
2006/06/24(土) 21:24:26http://www.gromacs.org/gromacs/documentation/paper-manuals.html
ここの
pdfマニュアルのAnalyzeの項の
COVARIANCEのとこにでてくる
計算式のプログラムを作りたいのです。
0928デフォルトの名無しさん
2006/06/24(土) 22:10:20最初からそれを出しておけば話が早かったかもね。
こんな感じか。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2180.c
ベクトルの要素数をD、vの次元nをN、wの次元mをMとして#defineしている。
データは標準入力から読み込み、D*N個の数値に続いて
D*M個の数値が来ることを想定している。
始めのD*N個がv、続くD*M個がwを表す。
vとwが正規直交基底なら、overlapとやらが表示されるはず。
0929772
2006/06/24(土) 22:35:28すいませんでした。
ご丁寧に作っていただきありがとうございました。
これを使って解析するため作りたかったのですが
自分にはまだ基礎知識が乏しく悩んでいた状況でした。
0930デフォルトの名無しさん
2006/06/25(日) 14:45:36[2] 問題文(含コード&リンク):
二つのテキストファイル(名前は任意。英単語のみからなる)を読み込み
strcmp関数を使い順番を判定しながら一つのテキストファイルにまとめよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 6/28まで
[5] その他の制限:strcmpを使うこと
whileを二重に使ってみたのですが
ファイル位置表示子をうまく戻すことができません。
よろしくお願いします
0931デフォルトの名無しさん
2006/06/25(日) 15:48:150932デフォルトの名無しさん
2006/06/25(日) 15:50:110933デフォルトの名無しさん
2006/06/25(日) 16:03:33とりあえず 2つのテキストファイルA,Bがあるとして、
1行ずつ読み込みました、
テキストファイルA の後ろに テキストファイルB をくっつければいいのか?
テキストファイルB の後ろに テキストファイルA をくっつければいいのか?
その判定するルールはなんだ? strcmp(Aの行,Bの行)等として0,正負でどうかするのか?
0934デフォルトの名無しさん
2006/06/25(日) 16:25:00[2] 問題文(含コード&リンク):
成績を管理するプログラムを作成する.一人一人の学生には,学籍番号(整数)がつけられているので,学籍番号と成績(実数)の組みで管理することとする.
本問題で作成するプログラムは,4人の学生について,英語と数学の成績を入力すると,英語と数学の合計点で最高点を取った学生を出力するものとする.
成績を管理する構造体の名前をstudent_t(この名前はtypedefで定義した名前を指す)とし,構造体のメンバを,
1. 学籍番号はint型とし,名前をidとする
2. 英語の成績はdouble型とし,名前をengとする
3. 数学の成績はdouble型とし,名前をmathとする
とする.また,以下の関数を作成し,それを利用すること.
1. n人のデータを入力する関数:void InputData(student_t s[], int n)
* 第一引数は学生の配列
* 第二引数は学生の人数
* 関数自体は,何人でも扱えるように作成すること
課題実行においては以下の点に注意すること.
* 結果の表示は小数点以下3桁で表示すること.
* 各教科の得点は,正の数に限定してよい.
* 最高点が複数人いた場合は,最高点を取った中で最初に入力された人を表示すること.
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: 6月26日まで
よろしくお願いします。
0935デフォルトの名無しさん
2006/06/25(日) 16:31:300936デフォルトの名無しさん
2006/06/25(日) 16:35:06InputData()は確保された配列のサイズをどうやって知ればいいですか?
例えば、配列が4つしかないのにn=100とかで呼ばれた場合。
0937デフォルトの名無しさん
2006/06/25(日) 17:00:57#include <stdlib.h>
typedef struct {
int _id;
double _eng, _math;
}student_t;
int cmp(const void *s1, const void *s2){
double t1 = ((const student_t*)s1)->_eng + ((const student_t*)s1)->_math,
t2 = ((const student_t*)s2)->_eng + ((const student_t*)s2)->_math;
return int(t1 - t2);
}
void InputData(student_t *s, int n){
int i;
for(i = 0; i < n; i++, s++){
printf("学籍番号 : "); scanf("%d", &s->_id);
printf("英語の成績 : "); scanf("%lf", &s->_eng);
printf("数学の成績 : "); scanf("%lf", &s->_math);
}
}
int main(){
student_t s[4];
int n = sizeof(s) / sizeof(s[0]);
InputData(s, n);
qsort(s, n, sizeof(student_t), cmp);
printf("学籍番号 : %d\n英語の成績 : %.3f\n数学の成績 : %.3f", s[n - 1]._id, s[n - 1]._eng, s[n - 1]._math);
return 0;
}
0938930
2006/06/25(日) 17:17:35同じ物は無いと仮定してよい。
だそうです。写し忘れてました。すいません
0939デフォルトの名無しさん
2006/06/25(日) 17:20:38なぜわざわざソートする?
InputData()で最高点を取った香具師のインデックスを返すことにすればええやん
0940デフォルトの名無しさん
2006/06/25(日) 17:21:29他人のソースにけちをつけるくらいになら自分もソースを出すべし。
っつか、そのくらいのこと、 そ〜っと しておいてやってw
0941デフォルトの名無しさん
2006/06/25(日) 17:24:470942デフォルトの名無しさん
2006/06/25(日) 17:25:35だから 正負と A,B の出力順の関係を示せ、ってw
0943デフォルトの名無しさん
2006/06/25(日) 17:25:540944939
2006/06/25(日) 17:35:45void InputData(student_t s[], int n)
って指定されてたのね...
んじゃしょうがない
int maxPos=0; /* 0は仮 */
void InputData(student_t s[], int n)
{
int i;
for(i = 0; i < n; i++, s++){
printf("学籍番号 : "); scanf("%d", &s->id);
printf("英語の成績 : "); scanf("%lf", &s->eng);
printf("数学の成績 : "); scanf("%lf", &s->math);
if(s[maxPos].eng+s[maxPos].math<s[i].eng+s[i].math) maxPos=i;
}
printf("学籍番号 : %d\n英語の成績 : %.3f\n数学の成績 : %.3f", s[maxPos].id, s[maxPos].eng, s[maxPos].math);
こんな感じで。
0945デフォルトの名無しさん
2006/06/25(日) 17:38:000946デフォルトの名無しさん
2006/06/25(日) 17:41:25入力、評価、出力、各フェーズは混ぜるべきではない。
#まぁ、宿題だからどうでもいいと言えばいいけど、>944のアプローチは仕事ならやり直しだ。
0947デフォルトの名無しさん
2006/06/25(日) 17:46:48入力、評価、出力、を1つのクラスにまとめることはNGで別々のクラスにするのかい?
#まぁどうでもいいと言えばいいけど、そんなアプローチは仕事ならやり直しだ。
0948デフォルトの名無しさん
2006/06/25(日) 17:47:28んなこと言い出したら変数名からしてもうアウトだ。
0949デフォルトの名無しさん
2006/06/25(日) 17:48:33読解力の無い馬鹿
君のせいでいつもスレが余計に伸びてるのだが
0950934
2006/06/25(日) 17:54:19>944
ありがとうございます。今から自分で実行してみます。
助かりました!
0951デフォルトの名無しさん
2006/06/25(日) 17:58:20SeparateQueryfromModifier
0952デフォルトの名無しさん
2006/06/25(日) 17:59:36一つのクラスに纏めることと、処理を混ぜることは等価ではない。
#仕事で>944のようなコードを書いているとしたら、とんだシンドラーシンドロームだ。
0953デフォルトの名無しさん
2006/06/25(日) 18:19:24int FindMaxPos(student_t s[], int n)
{
#define SCORE(s,i) (s[i].eng+s[i].math)
int i,maxPos=0;
for(i = 1; i < n; i++) if(SCORE(s,maxPos)<SCORE(s,i)) maxPos=i;
return maxPos;
}
これで勘弁してくれぃ
0954デフォルトの名無しさん
2006/06/25(日) 18:22:520955デフォルトの名無しさん
2006/06/25(日) 18:26:490956デフォルトの名無しさん
2006/06/25(日) 18:39:19構造体のメンバがアンダーバーで始まっているのはちょっと問題かも。
でも、qsort()を使うこと自体は悪くはないんでない?
0957デフォルトの名無しさん
2006/06/25(日) 19:08:18どうせなら逆順ソートにして最初の要素を取り出すようにすれば綺麗なのに。
0958デフォルトの名無しさん
2006/06/25(日) 19:16:10粘着低学歴乙。これだから専門(ryは・・・
0959デフォルトの名無しさん
2006/06/25(日) 19:25:59O(N)で済む作業をわざわざO(NlogN)にせんでもええやろ。
0960デフォルトの名無しさん
2006/06/25(日) 20:33:130961930
2006/06/25(日) 20:59:20[2] 問題文(含コード&リンク):
二つのテキストファイル(名前は任意。英単語のみからなる)を読み込み
strcmp関数を使い順番を判定しながら一つのテキストファイルにまとめよ。
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語: C
[4] 期限: 6/28まで
[5] その他の制限:strcmpを使うこと
【参】strcmp(Aの行、Bの行)を使い、その返り値(正負)によって順番を判定し、一つにまとめていく。
よってstrcmp(A, B)の関数値が負ならばAの文字列を先に出力し、
正ならばBの文字列を先に出力すればよい。
先にどちらかのテキストファイルがなくなるので、残ったファイルの処理を忘れないこと。
度々無駄にレスしてしまってすいませんorz
原文丸写しですのでこれで間違いないと思います。
0962デフォルトの名無しさん
2006/06/25(日) 21:24:33[2] 問題文:・構造体を用いて次のような文字列を入力し(300*90+6-50/10=)結果表示できる最大4桁入力の計算機を作成しなさい。
・演算子は優先順位を考慮し、ゼロで割った場合はエラーになること。
・数字の間に空白が入力されるとエラーになること。
・数字、演算子、=、空白のみで、その他が入力されるとエラーになること。
・最初に*,/が入力されるとエラーのなること。
[3] 環境
[3.1] OS:WINDOWS
[3.2] コンパイラ名とバージョン:よくわかりません
[3.3] 言語:C
[4] 期限:2006年6月30日まで
[5] その他の制限:特になし
0963デフォルトの名無しさん
2006/06/26(月) 10:03:57こんな感じか。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2180.c
ベクトルの要素数をD、vの次元nをN、wの次元mをMとして#defineしている。
データは標準入力から読み込み、D*N個の数値に続いて
D*M個の数値が来ることを想定している。
始めのD*N個がv、続くD*M個がwを表す。
>
すいません。↑を参考に考えたのですが
D要素というのがよくわかりません。
3要素があるものを3次元ベクトル
N要素があるものがN次元ベクトルというものと思っていますが
要素がDというのはどういうことなのでしょうか?
N*Dというのが理解できていません。
少し解説していただくとありがたいです。
0964デフォルトの名無しさん
2006/06/26(月) 10:49:56#include<stdio.h>
#include<stdlib.h>
#include<setjmp.h>
#include<ctype.h>
jmp_buf buf;/* <- 構造体を用いた */
int parseAtom(char**s);
void skip(char**p){while(isspace(**p))++*p;}
int parseMul(char**s){int v = parseAtom(s);
for(;;)if(**s == '*')++*s,v*=parseAtom(s);
else if(**s=='/'){int v2;++*s;v2=parseAtom(s);
if(v2==0)longjmp(buf,1);v/=v2;}else return v;}
int parseAdd(char**s){int v = parseMul(s);
for(;;)if(**s == '+')++*s,v+=parseMul(s);
else if(**s=='-')++*s,v-=parseMul(s);else return v;}
int parseAtom(char**s){
int v;skip(s);if(**s=='('){*s+=1;v = parseMul(s);if(**s!=')')longjmp(buf,4);++*s;}
else{char*p=*s;v=strtol(p,s,0);if(p==*s)longjmp(buf,3);}skip(s);return v;}
int parse(char*s){int v = parseAdd(&s);if(*s != '=')longjmp(buf,2);return v;}
int main(){
char src[80],*errmsg[]={"ゼロ除算","=で式が終端していない","文法エラー",")の数が足りない"};
int err=setjmp(buf);if(err)printf("Error: %s\n",errmsg[err-1]);
else printf("%d\n",parse(gets(src)));return 0;}
0965デフォルトの名無しさん
2006/06/26(月) 12:03:49(1,2,3) → 3次元
(1,2,3) … 1要素
(2,3,4) … 2要素
(3,1,2) … 3要素
:
(5,6,2) … N要素
(2,3,5) … 1要素
(2,8,4) … 2要素
(3,4,6) … 3要素
:
(3,5,2) … M要素
OK?
0966デフォルトの名無しさん
2006/06/26(月) 12:46:37なんとなくわかったような・・・
これだと963に書いている
N次元がN要素で
Dが次元ですか??
0967デフォルトの名無しさん
2006/06/26(月) 13:03:350968デフォルトの名無しさん
2006/06/26(月) 14:34:10頭悪いのでもう少し教えてください。
0969デフォルトの名無しさん
2006/06/26(月) 14:39:34[2] 問題文 引数の階乗を計算するdouble型の関数を作り、1から10までの階乗を表示するプログラムを作ってください
[3] 環境
[3.1] OS:XPです。。
[3.2] コンパイラ名とバージョン:よくわからないんですけどgccだと思います。
[3.3] 言語:Cです
[4] 期限:できれば今日中で(>_<)
[5]最近プログラミングを始めた初心者なのですが
授業中居眠りをしたらまったく分からなくなってしまいましたo(;△;)o。。。
友達と一緒にがんばってたのですが解決できずにここに質問してしまいました(>へ<)、
どなたかお願いします(*^_^*)
0970デフォルトの名無しさん
2006/06/26(月) 15:21:46void kansuu(double hikisuu);
int main(void)
{kansuu(10.0);return 0;}
void kansuu(double hikisuu)
{int i;double kekka,temp,t;kekka=1;
for(i=1;i<=hikisuu;i++)
{kekka *= i;}printf("%f",kekka);}
なんでdouble型?
0971デフォルトの名無しさん
2006/06/26(月) 15:24:25#include <stdio.h>
double kaijo(double n) {
if(n<=1) return 1;
return n*kaijo(n-1);
}
main() {
int i;
for(i=10; i>0; i--) printf("%2d! = %lf \n",i,kaijo(i));
}
0972デフォルトの名無しさん
2006/06/26(月) 16:27:38#include <stdio.h>
double kaijo(double n) {
static double t=1;
return t*=(n++);}
main() {
int i;
for(i=1; i<=10; i++) printf("%2d! = %lf \n",i,kaijo(i));}
0973デフォルトの名無しさん
2006/06/26(月) 17:50:51#include<stdio.h>
#include<math.h>
double fact(double n){
return tgamma(n+1);
}
int main(){
int i;
for(i=1;i<=10;++i)
printf("%d! = %.0f\n",i,fact(i));
return 0;
}
0974デフォルトの名無しさん
2006/06/26(月) 22:06:12ありがとうございました。
でも、ちょっとむずかしい・・・
0975デフォルトの名無しさん
2006/06/26(月) 22:10:49要素数というのはC言語的な配列の要素数という意味で書いた。
次元は線型空間的な意味で、R^Dの部分空間の次元を意味している。
つまり、部分空間vを張る基底があったとき、その基底をなすベクトルの数がN。
Mについても同じ。
なので>>965の説明とは逆になってしまってる。
また、D,N,Mの関係はD>=NかつD>=Mになると思われる。
3次元がどこから出てきたのかわからないけど、D=3だと少ないような。
0976デフォルトの名無しさん
2006/06/26(月) 22:41:28[2]問題文:与えられたmain関数の中で呼び出される関数を完成させプログラムを実行させる。(別のファイルに適当な番号と名前、点数を3つで1つのセットをいくつか用意し、それをソートや二分探索して結果を表示する。)
struct student{
int num;
char name[10];
int score;
};
main(){
if((Num=read_file("ファイル名"))==0)
exit(0);
quick_sort(Student,0,Num-1);
while(1){
printf("番号を入力してください。");
if(scanf("%d",&key)==EOF)
break;
if((i=bi_search(key))!=-1)
prinf("番号=%d,名前=%s,点数=%d\n",Student[i].num,Student[i].name,Student[i].score);
else
printf("データがありません。\n");
}
}
[3]環境:
[3.1]OS:Linux
[3.2]コンパイラ名とバージョン:バージョンは分からないのですが、gccでお願いします。
[3.3]言語:Cでお願いします。
[4]期限:2006年7月4日でお願いします。
[5]その他の制限:Cはだいたい習ったのですが、今いち理解できてなくて(TωT)構造体やファイルのことなどがよく分からないので誰かお願いします\(。´□`・。\)
0977デフォルトの名無しさん
2006/06/26(月) 22:46:28・以下の関数を作成すると言うことか?
read_file()
quick_sort()
bi_search()
・これらの関数仕様は変更してはいけないのか?
・struct studentにはscoreしかないが、「点数を3つ」ということはこの構造体を変更すると言うことか?
・その「別のファイル」は用意できないのか? それくらいならできるだろ。
0978デフォルトの名無しさん
2006/06/26(月) 23:00:340979デフォルトの名無しさん
2006/06/26(月) 23:03:40本人じゃないけど「与えられたmain関数の中で呼び出される関数を完成させ」って
言ってるんだから、その仕様の関数を作る課題じゃないか?
0980デフォルトの名無しさん
2006/06/26(月) 23:23:36確かに、
int read_file(const char file_name, struct student **pstudent, int *num);
とかにしたいところではあるな。
0981980
2006/06/26(月) 23:24:160982デフォルトの名無しさん
2006/06/27(火) 02:31:45ありがとうございました。
もう少し考えて頭を整理してみます。
0983超初心者
2006/06/27(火) 10:57:44[2] 問題文:順列・組合せ
キーボードから2つの整数値nとmを入力し、n個の中から
m個取り出すときの順列と組合せを求める組合せを作成して
ください。ただし、nとmの入力処理は、処理可能な範囲の
範囲が入力されるまで繰り返すようなアルゴリズムにしてく
ださい。
[3] 環境
[3.1] OS:XP
[3.2] コンパイラ名とバージョン:よくわかりません。
[3.3] 言語:C
[4] 期限:28日水曜日午後5時
[5] その他の制限:最近defineやdo〜while文を習った。
0984デフォルトの名無しさん
2006/06/27(火) 13:14:10[2] 問題文
次の処理を行うプログラムを作成しなさい。
char型の配列strを用意し、キーボードから英数字の文字列を入力する。
格納された文字列に、アルファベットの大文字がある場合、すべて小文字に変換する。
文字列strを画面に出力する。
[3] 環境
[3.1] OS: (Windows xp [3.2] visual studio2003 [3.3] C
4]期限: ([2006年6月28日12:00まで]
[5] 配列、ループ,ポインタ
0985デフォルトの名無しさん
2006/06/27(火) 14:44:33int main(void){
char str[256], *p = str;
scanf("%s", str);
while(*p){
if (*p >= 'A' && *p <= 'Z'){
*p += 'a' - 'A';
}
p++;
}
printf("%s\n", str);
return 0;
}
0987デフォルトの名無しさん
2006/06/27(火) 15:04:170988デフォルトの名無しさん
2006/06/27(火) 16:18:33http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/2191.txt
0989988
2006/06/27(火) 16:21:34pos = (pos + num) / 2;
} else {
if (pos == 0) {
! return 0;
}
pos = pos / 2;
}
--- 85,91 ----
pos = (pos + num) / 2;
} else {
if (pos == 0) {
! return -1;
}
pos = pos / 2;
}
0990超初心者
2006/06/27(火) 18:08:19『順列と組合せを求めるプログラムを作成』です。
0991デフォルトの名無しさん
2006/06/27(火) 18:36:040992デフォルトの名無しさん
2006/06/27(火) 18:36:350993デフォルトの名無しさん
2006/06/27(火) 18:37:050994デフォルトの名無しさん
2006/06/27(火) 18:37:360995デフォルトの名無しさん
2006/06/27(火) 18:38:080996デフォルトの名無しさん
2006/06/27(火) 18:39:570997デフォルトの名無しさん
2006/06/27(火) 18:40:280998デフォルトの名無しさん
2006/06/27(火) 18:40:590999デフォルトの名無しさん
2006/06/27(火) 18:42:591000デフォルトの名無しさん
2006/06/27(火) 18:43:3410011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。