10/07/03 17:20:02
URLリンク(codepad.org)
コンパイルが上手く行ったので実行したらゴミができた
タイミングよく救急車のサイレンがきこえてきた 死にたいw
(gdb) run
Starting program: /cygdrive/c/works/1/rev/rev
[New thread 2376.0x258]
[New thread 2376.0xbf0]
6 [main] rev 2376 exception::handle: Exception: STATUS_ACCESS_VIOLATION
3713 [main] rev 2376 open_stackdumpfile: Dumping stack trace to rev.exe.stack
dump
Program received signal SIGSEGV, Segmentation fault.
0x611203f8 in _fread_r () from /usr/bin/cygwin1.dll
444:デフォルトの名無しさん
10/07/03 17:26:03
>>443
画像開く前から画像の幅と高さがわかるとかどんなエスパーだよバカ
445:デフォルトの名無しさん
10/07/03 17:29:08
ワロタ
446:デフォルトの名無しさん
10/07/03 19:06:49
>>426
ありがとうございます。
447:デフォルトの名無しさん
10/07/03 19:44:18
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
例を修正し、double型の配列変数に格納されている値の
平均値を求める関数aveを作成せよ。また、aveもdouble型とする。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日
448:デフォルトの名無しさん
10/07/03 19:46:04
>>447の例は以下の通りです。よろしくお願いします。
#include<stdio.h>
#define N 10
int sum(int num[])
{
int n, s=0;
for (n=0;n<N;n++)
s+=num[n];
return 0;
}
int main()
{
int aa[N], bb;
/* 配列変数aaに値を代入 */
bb = sum(aa);
printf(“sum=%d\n”,bb);
return 0;
}
449:デフォルトの名無しさん
10/07/03 20:06:46
>>447
#include<stdio.h>
#define N 10
double sum(double num[])
{
int n;
double s=0.0;
for (n=0;n<N;n++)
s+=num[n];
return s;
}
int main()
{
int i;
double aa[N], bb;
/* 配列変数aaに値を代入 値は適当*/
for (i=0;i<N;i++)
aa[i]=i*2.5;
bb = sum(aa);
printf("sum=%f\n", bb);
return 0;
}
450: ◆GmgU93SCyE
10/07/03 20:08:55
>>447
#include <stdio.h>
#define N 10
double ave( const double arr[] )
{
int i;
double total = 0;
for ( i=0; i<N; ++i )
total += arr[i];
return total/N;
}
int main()
{
const double arr[N] = { 1.23, 9.87, 5.94, 0.157, 7.2, 1.23, 9.87, 5.94, 0.157, 7.2 };
printf( "average = %f", ave(arr) );
return 0;
}
451:デフォルトの名無しさん
10/07/03 20:47:22
>>408
ありがとうございます!
452:デフォルトの名無しさん
10/07/03 20:52:37
[1] c言語活用:
[2] 例を改造して、ガウス関数に関する折れ線グラフにしなさい。
URLリンク(codepad.org)
[3] 環境
[3.1] OS : Linux
[3.2] コンバイラ名 : gcc
[3.3] 言語 : C
[4] 期限: 7月 5日まで
例をガウス関数で定義するところまでは自力でできましたが、
グラフが点集合でしか表せません。
現在のX座標の点と隣のX座標の点を直線で結ぶために2組の座標の組
(x1, y1, disp_x1, disp_y1),
(x2, y2, disp_x2, disp_y2) を用意するとうまくいくそうですが
どうしてもわかりませんでした。
御助力お願いします。
453:デフォルトの名無しさん
10/07/03 21:42:14
>>452
handy.h とはなんでしょうか?
あと、X Window ?
454:デフォルトの名無しさん
10/07/03 22:01:38
>>390
誰かコレの演習2お願いしますっ
455: ◆QZaw55cn4c
10/07/03 22:35:14
>>390
>>454
URLリンク(kansai2channeler.hp.infoseek.co.jp)
>>431
宿題しにきていますが、なにか?
>>432
べつに当たり前のことをいってるだけですけどね。でも、当時話題になったが fgetc() ではなくて getchar() マクロや EOF だっただなんて、よくご存知ですね。やっぱり当事者だったんですね。つれた、つれた。
>>434
そういいながらも sage で投稿できないところなんか、末期的としかいわざるを得ないでしょうね。一度 sage で投稿してごらんなさい?
まあ一匹の自意識障害者をあぶりだすことができたようで、満足しています。
456: ◆QZaw55cn4c
10/07/04 00:21:30
>>390
>>454
訂正します。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
457:デフォルトの名無しさん
10/07/04 00:31:44
[1] 授業単元:プログラム演習
[2] 問題文(含コード&リンク):
以下のプログラムに、下に示す二つの関数を実装し、組み込みなさい。
ファイル中に保存するデータはアスキー形式でも、バイナリ形式でもどちらでも構わないものとする。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
・構造体Employee型のデータが順に保存されているファイルからデータを読み込む関数。
・作成したデータをファイルに書き出す関数。
例えば、構造体Employeeを下に示すものと同じ定義にしたとする。
この構造体に従ったASCII形式のデータベースファイルを読み込み、社員の追加や、給与の変更をした後、同様なデータベースファイルとして保存できるようにしなさい(もちろん、バイナリ形式のファイルにしても構わない)。
[構造体Employeeの例]
typedef struct {
char name[16];
int age;
int salary;
} Employee;
[データベースファイルの例]
TANAKA 32 620
SUZUKI 25 500
CHIBA 35 650
NAKAMURA 50 1000
IIDA 45 800
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月5日まで
[5] その他の制限:特にありません。よろしくお願いします。
458:457
10/07/04 00:43:11
>>459
ありがとうございます。
459:デフォルトの名無しさん
10/07/04 00:50:36
どういたしまして
460:デフォルトの名無しさん
10/07/04 01:02:03
>>456
ありがとうございます、助かりました
461:デフォルトの名無しさん
10/07/04 01:03:27
1] 授業単元: プログラミング実験
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:
[3.3] 言語: C言語
[4] 期限: ([2010年07月05日22:00まで]
[5] その他の制限: よろしくお願いします!
462:デフォルトの名無しさん
10/07/04 01:03:42
>>455
精神障害者だろ、お前?いつまでも昔の(自分の勘違いのせいで起こった論争)を引き摺るとか。
気持ち悪い。このスレ、お前のオナニースレじゃないんだが?周りを見ろよ。
日頃、現実世界でまともに相手にされていないのがバレバレだぞ。
463:デフォルトの名無しさん
10/07/04 01:05:26
>>1
> 気に入らない質問やその他の発言はスルーの方向で。
最初の1行も読めないとか、日本人かも疑わしいわ。
ageられているのはお前みたいなキモイ奴を晒しageされていると気づけよ。
このスレにsageルールはないけど?
464:デフォルトの名無しさん
10/07/04 01:15:35
ID希望
465:精神障害者アスペ君の恥ずかしいレス
10/07/04 01:15:35
368 名前: ◆QZaw55cn4c 投稿日:2010/06/30(水) 23:23:11
>>344
fgetc() の戻り値は int 型であることを、そろそろ理解していただきたいのですが。
どうですか?成長しましたか?
466:デフォルトの名無しさん
10/07/04 01:23:04
どなたか教えてください。ずっと考えてたけど、答えがわかりませんorz。
<標準関数>文字列と削除文字列を入力し、文字列中から削除文字列を削除しなさい。
※配列の使用は2つだけ。
例) 文字列入力→ABCDEFAABCDABC
削除文字列→ABC
結果文字列→DEFAD
どなたか教えてください、お願いします。
467:デフォルトの名無しさん
10/07/04 01:35:50
IDが表示されない、だから相手が特定できないから自分にレスした奴を
虱潰しに煽る事で炙り出そうって魂胆だろ。一生見えない敵と戦うぞ、こいつw
468:デフォルトの名無しさん
10/07/04 02:00:45
>>467
今来産業の俺にもう少し分かりやすく
469:デフォルトの名無しさん
10/07/04 02:05:50
>>466
#include <stdio.h>
#include <string.h>
int main(void)
{
char source[] = "ABCDEFAABCDABC";
char target[] = "ABC";
size_t l = strlen(target);
char *p;
puts(source);
puts(target);
while (p = strstr(source, target)) {
while (p[0] = p[l]) {
p++;
}
}
puts(source);
return 0;
}
470:デフォルトの名無しさん
10/07/04 02:06:11
麻呂のクソースを超えるクソースは出てこない、間違いない
471:デフォルトの名無しさん
10/07/04 02:21:25
>>469
※配列の使用は2つだけ。
って言われてるけど
472:デフォルトの名無しさん
10/07/04 02:35:20
>>471
はあ?確保してる配列は2つだけだろうが
脳みそヒヨコかよ
473:デフォルトの名無しさん
10/07/04 11:33:13
>>449
「ave」という文字がないのですがこれでいいんですかね?
474:デフォルトの名無しさん
10/07/04 14:29:58
>>453
handy.h はHandyGraphic という
グラフィックスライブラリを使うことを意味しています。
また学校のパソコンなのでわかりませんがおそらく
X Windowかと思われます。いいかげんですみません。
明日提出なのでよろしければ、どなたかよろしくお願いします。
475:デフォルトの名無しさん
10/07/04 14:41:34
[1] 授業単元:プログラミング
[2]問題文:
ファイルseiseki.txt から氏名と点数を読み込んで、成績順に並べ替え、結果を画
面に表示するプログラムを作成せよ。
・氏名は2次元配列、点数は1次元配列に格納する。
・ データの並べ替えには単純挿入法、単純選択法またはバブルソートを使用する。
・ 文字列 x[]と文字列y[]の入れ替えは、文字列操作関数strcpy を用いて行う。
strcpy(z,x); strcpy(x,y); strcpy(y,z);
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限: ([2010年07月06日0:00まで]
この問題が解ける方はいらっしゃいますでしょうか。
476: ◆QZaw55cn4c
10/07/04 15:11:12
>>475
URLリンク(codepad.org)
>>463
>>1 を読めないのはおまえさんも同じ。私?いちおう宿題といてますけどね。
なによりこれだけの過剰反応を示していること自体が、つれた、つれた、と判断されてもしかたのないことでは?
さらしあげ?専用ブラウザを使っている私にはなんのことだか。
>>467
それはおまえさんのことですがな。
477:デフォルトの名無しさん
10/07/04 15:21:19
>>469
よみにくいから段下げをつけてくれ
478:デフォルトの名無しさん
10/07/04 15:24:06
>>473
>>450
479:デフォルトの名無しさん
10/07/04 15:36:07
>>477
ついてるよ
メモ帳にコピペしてみ
480:デフォルトの名無しさん
10/07/04 15:41:04
>>457もお願いします。
481:デフォルトの名無しさん
10/07/04 16:04:42
[1] 授業単元:方程式の解
[2] 問題文(含コード&リンク):方程式exp(-x^2/2)=0.5の解を求める
[3] 環境
[3.1] OS:Windows Vista
[3.2] コンパイラ名とバージョン:Cygwin
[3.3] 言語:C
[4] 期限:7/9
[5] その他の制限:
double f(double x);
int main(void){
double x,min_f,solution;
min_f=1e100;
for(x=0;x<=3;x+=dx){
printf("%e,%e\n",f,min_f);
if(fabs(f(x))<min_f){
solution=x;
min_f=fabs(f(x));
}}
printf("f(%e)=%e\n",solution,min_f);
return 0; }
double f(double x){
double y;
y=exp(-x*x/2)-0.5;
return y; }
と組んで実行できたんですが、なぜmin_fを最初に10^100とするのでしょうか?
なんか私の感覚的には10^-100な気がするのですが・・・
この部分の解説お願いします。
482:デフォルトの名無しさん
10/07/04 16:20:47
>>479
確かにソースをみるとついてますな。
483:デフォルトの名無しさん
10/07/04 16:44:30
>>481
範囲をdx刻みで分割して、|f(x)|が最小となるxを求める。
min_fは暫定の最小。もしあるxで|f(x)|<min_fなら、min_fを更新する。
dxに対してmin_fを小さくしすぎると、|f(x)|<min_fなxがない可能性がある。
484:デフォルトの名無しさん
10/07/04 20:06:11
>>476
うわっ、お前マジキモイ・・・そのままトリップを付けたまま書き込めよ。
必死に自分の不満、苛立ちを露にする長文を書くしバカ丸出しw
485:デフォルトの名無しさん
10/07/04 20:06:54
>>476
> それはおまえさんのことですがな。
いや、お前のことだよ。第一、お前はトリップを付けているが
お前にレスした奴が特定の一人とは限らないだろ?
486:デフォルトの名無しさん
10/07/04 20:07:19
>>476
見えない敵と戦う必死な戦士、かっちょわりぃ~w
487:デフォルトの名無しさん
10/07/04 20:08:06
>>476
>>1
>あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他の発言はスルーの方向で。
読めませんか?相手をいちいち自分の勘違いで挑発するお前が一番幼稚
488:デフォルトの名無しさん
10/07/04 20:08:28
>>476 日本語でおk
489:デフォルトの名無しさん
10/07/04 20:09:12
>>476
自分はさっぱり分かりません、みたいなしらばっくれた書き込みをして
自分がした 勘違い を認めないとか、頭おかしいぞw
自覚が無いなら責任が問われる社会では通用しません。
490:デフォルトの名無しさん
10/07/04 20:09:55
>>476
最後の1行がみっともないです ><;
早くこのスレから出て行くか、大人になって下さい ><;
ねぇ、まだ社会に出て働いた事の無いお子ちゃまw
491:デフォルトの名無しさん
10/07/04 20:10:37
>>476
やっぱりお前が>>1の注意書きを読めてないじゃんw
492:デフォルトの名無しさん
10/07/04 20:11:40
>>476
そろそろ、自分の苛立ちを見えない敵にぶつけないで良いよ。
今後無駄なレスをしても、スルーされるだけだからw
で、お前は俺を麻呂と思っているんだろ?麻呂があれから
騙りもあり、しばらく来ていなかったことも知らないとは・・・
そうやって見えない敵に噛み付いてなさいw
493:デフォルトの名無しさん
10/07/04 20:14:39
>>476 の書き込み全てが恥ずかしい。このスレに何しに来てんですか?
他人にお前こそと言う前に、議論するスレは他にありますので、そちらでやって下さい。
トリップ付けてまでバカ晒すなよ、ガキw
494:デフォルトの名無しさん
10/07/04 20:16:42
>>493
お前はコテハンかトリップつけろクズ
495:デフォルトの名無しさん
10/07/04 20:28:46
>>469
解答ありがとうございます。もしよろしかったら、使用する標準関数は、strncmp(),strcpy(),strlen()で書いてもらえないでしょうか?
496:デフォルトの名無しさん
10/07/04 20:47:34
少しも勉強しないんだな。それでいいのか若者
497:デフォルトの名無しさん
10/07/04 20:56:45
>>476
ありがとうございます。助かりました。
498:デフォルトの名無しさん
10/07/04 21:23:46
>>495
URLリンク(codepad.org)
499:481
10/07/04 21:37:31
>>483
どうもありがとうございます。納得できました。
ifの条件文に引っかからなくなる直前のxがsolutionとなる、という認識で大丈夫ですか?
500:デフォルトの名無しさん
10/07/04 23:15:12
>>478
ありがとうございます。
501:デフォルトの名無しさん
10/07/04 23:29:02
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
次式の値を返す関数を作成せよ。
f(x)=e^{-x} cos(2πx)
その関数を用いて0≦x≦3の間で0.1刻みで計算し、結果をリダイレクトで
ファイルに記録せよ。その結果をgnuplotでグラフにして示せ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月6日
よろしくお願いします。
502:デフォルトの名無しさん
10/07/05 00:35:56
だれか>>440お願いします。
503:デフォルトの名無しさん
10/07/05 04:14:21
>>440
【1】 (1) return ; (2) shift_down(heap, s, 2*s, n);
【2】 (2) swap(&heap[1], &heap[i]); (2) shift_down(heap, 1, 2, i-1);
酷いコードだ。
教育だからこそ、スマートなコードにしてくれることを切に願う。
504:デフォルトの名無しさん
10/07/05 05:16:09
[1]授業単元:プログラミング演習
[2]問題文;離散探索木(26進)と外部ハッシュ法の比較(探索関数)
キー: 文字列
使用ファイル: wordE100KR.dat
上記ファイルを読み込み、通常の配列に格納する。
この配列から要素を読み込み、分離連鎖法および離散探索木(26進)を生成する。
格納された要素と同一の要素集合すなわち、配列に格納された用語集合に対して、1万語毎に探索を行い、照合回数、および探索時間を測定する。
結果として、照合回数について20個のデータ(2×10)、同様に探索時間について20個のデータ(2×10)が得られる。
これらのデータをExcelに格納し、表、グラフを作成し、分析せよ。
[3]環境
[3.1]OS;windowsXP
[3.2]コンパイラ名とバージョン:gcc
[3.3] 言語:C/C++どちらでも可
[4]期限;7月8日
使用ファイルはURLリンク(rg550.hp.infoseek.co.jp)にあります。
丸投げで申し訳ありません。よろしくお願いします。
505:デフォルトの名無しさん
10/07/05 06:49:51
すみません、>>457もお願いします。
506:デフォルトの名無しさん
10/07/05 12:32:23
[1] 授業単元: C言語プログラミング
[2] 問題文メモリや実行時間の許容範囲内の、最大完全数、最大友愛数、および最大婚約数を算出プログラムを作成
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Microsoft Visualstadio 2003
[3.3] C言語・C++
[4] 期限: ([2010年7月6日12:00まで
よろしくお願いします。
507:デフォルトの名無しさん
10/07/05 16:52:56
>>461おねがいします
508:デフォルトの名無しさん
10/07/05 17:01:57
>>507
zipはめんどくさいので放置。
できれば1レス、最低でもWEBだけで確認できる様に書きなおせ。
509:デフォルトの名無しさん
10/07/05 17:03:46
>>506
> 許容範囲内
とは誰が許容する範囲内なんだ。
具体的に書きなおせ。
510:デフォルトの名無しさん
10/07/05 17:50:36
最大友愛数、最大婚約数…
511: ◆QZaw55cn4c
10/07/05 18:29:52
>>501
URLリンク(codepad.org)
512:デフォルトの名無しさん
10/07/05 20:24:06
>>507
問題文の
確率指定 p
って何?>
513:デフォルトの名無しさん
10/07/05 20:28:32
あれだけISOの標準スタイルについて述べられていたのに未だに
int main() 笑 の奴がいるとかw
514: ◆QZaw55cn4c
10/07/05 20:28:45
>>457
>>505
URLリンク(codepad.org)
515: ◆QZaw55cn4c
10/07/05 20:34:19
>>513
スレリンク(tech板:101番) で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
516:デフォルトの名無しさん
10/07/05 20:36:40
>>513
void main()でも別に構わんぞ
コンパイル通ればいいんだよ
517:デフォルトの名無しさん
10/07/05 20:45:25
>>516
これには異論があり。
個人的には、int main() でコンパイルできる環境で、main() が引数をかえさない、という main() 側の都合で void main() と宣言するのには疑問がある。
518:デフォルトの名無しさん
10/07/05 20:51:48
ま~たこの話題かw
ちょっと前にもどっかのスレで泥沼化してただろう?
だれか過去ログはっておやり。
519:デフォルトの名無しさん
10/07/05 20:53:34
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク): 四則演算と平方根を求める事が出来る電卓プログラムを作成せよ.
[3] 環境
[3.1] OS: Windows xp
[3.2] コンパイラ名とバージョン:visual C++ 2008
[3.3] 言語: C++
[4] 期限: 2010年7月7日22:00頃まで
[5] その他の制限: 数学関数等は利用不可,関数ライブラリは標準入出力ライブラリ stdio.h のみを利用可
URLリンク(kansai2channeler.hp.infoseek.co.jp)
math.h等の利用が出来ないため平方根はニュートン法により求めるプログラムを使用したいと思っています.
URLに記載した二つのプログラムを組み合わせて上記の条件を満たすような電卓プログラムを作りたいのですが,
私なりに見よう見まねで組み合わせて見たのですが,知識が足りず平方根を求める動作が働きません.
根本的に間違っている可能性もありますが,どなたか修正点を教えて頂けると幸いです.
よろしくお願いいたします.
520:デフォルトの名無しさん
10/07/05 20:55:25
あのな、isoだかなんだか知らんが、そんなもんただの標準だろ。
守らなきゃいけないルールじゃない。
単にコンパイラやソースが標準に沿っていますということを表明できるだけの意味しかないんだよ。
この世にはmainが存在しないプログラムをCで書くケースだって腐るほどあるし、
エントリ関数がWinMain()になっている世界で最も普及したコンパイラだってあるんだぞ。
521:デフォルトの名無しさん
10/07/05 20:58:04
>>518
このスレの先々代(135)、3月~4月にかけて宿題が欠乏し宿題解き人が暇になったために泥沼化した。
結論としては、規格の上では void main() も int main() も合法だったかと。
522:デフォルトの名無しさん
10/07/05 21:01:57
>>521
情報トンクス! ていうかこのスレだったかw
523:デフォルトの名無しさん
10/07/05 21:30:58
[1] 授業単元: Visual Studio 入門
[2] 問題文 3問ほどあるのでリンクを
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Windowsvista
[3.2] Microsoft Visual Studio 2008
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
問題が多いのですがひとつお助けください
524:デフォルトの名無しさん
10/07/05 22:14:53
>>523
gccでの確認になりますが。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
525:デフォルトの名無しさん
10/07/05 22:23:17
x(1)、 x(2)、・・・とaは2000次元ベクトルとします。
N
Σ || x(n)-a || / N || ・|| はノルム。
を高速に計算する方法わかりますか。
526: ◆QZaw55cn4c
10/07/05 22:30:05
>>523
URLリンク(codepad.org)
URLリンク(codepad.org)
URLリンク(codepad.org)
527:デフォルトの名無しさん
10/07/05 22:32:14
X=(x, y) Y=(z, w) A=(a ,b) とすると、
||X-A|| + ||Y-A|| = SQRT( (x-a)^2 + (y-b)^2 ) + SQRT( (z-a)^2 + (w-b)^2 )
を高速で計算したいという訳なんです。
2000次元だと、かけ算とSQRTが相当あって時間掛かりますが。
短縮する方法ありますか。
528:527
10/07/05 22:35:42
面倒なので、
||X-A|| = |x-a| + |y-b| と定義してしまうか。
すると、 |x-a| + |y-b| + |z-a| + |w-b| を求めるだけで簡単。
529: ◆QZaw55cn4c
10/07/05 23:23:14
>>519
URLリンク(codepad.org)
キー入力の具合はこれでいいですか?
530:デフォルトの名無しさん
10/07/05 23:24:23
◆QZaw55cn4c はもりもりがんばってるなぁ。
定期的に叩かれるみたいだけどがんばれ。
531:デフォルトの名無しさん
10/07/05 23:29:13
やってることは怠け者の成績を上げてやることだけどなw
532:デフォルトの名無しさん
10/07/05 23:31:38
>>530
叩いてもらえる、というのは、コードをみてくださっている、というありがたい反応ですから、ウェルカムです。
ちょっと前の、あいかわらず頭の変な奴にかかわってしまったのは失敗ですが、スルーすることにしました。
でも今日はおやすみなさいです。
533:デフォルトの名無しさん
10/07/05 23:51:43
>>532
じゃあたまにのぞいて気になるとこあったらレスすることにするよ。
っても地力ぼちぼちありそうに見えるんで、重箱の隅ぐらいしか突っ込めないかも。
534:デフォルトの名無しさん
10/07/05 23:53:45
[1] 授業単元: Visual Studio 入門
[2] 問題 半乱順列の関数作成
[3] 環境 指定なし
[3.1] OS:Windowsvista
[3.3] 言語:c言語
[4] 期限:なし
[5] 制限:なし
半乱順列の関数を作ってください!お願いします!!
535:デフォルトの名無しさん
10/07/05 23:54:08
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):data.txtに書かれている氏名と成績を読み込み、氏名を2次元配列、成績を1次元配列に格納せよ。
[3] 環境
[3.1] OS:Ubuntu 10.4
[3.2] コンパイラ名とバージョン: gcc 3.4
[3.3] 言語: C
[4] 期限:7/7まで
[5] その他の制限:
data.txtの中身は
aoyama 36
oomura 42
sugiyama 50
morita 14
となっております。
536:デフォルトの名無しさん
10/07/06 00:06:46
>>535
>>476 は読み込んだあとソートしていますが、そのソート部分を削ればご所望のコードになるかと。
537:535
10/07/06 00:18:01
>>536
似た問題があったのですね。ありがとうございました。
538:デフォルトの名無しさん
10/07/06 16:11:53
>>529
お答え頂きありがとうございます。
動作は申し分無いのですがこのプログラムだとstdio.h以外にmath.h等の関数ライブラリが見られます。
すみませんがstdio .h のみで動作することを前提でお願いしたいと思います。
また、授業では本当に基礎的な内容のみしか扱っておらず、ネットや本を見て勉強している段階ですので、なるべく基本的な分かりやすい形でプログラムを組んでいただけたら幸いです。
539:デフォルトの名無しさん
10/07/06 16:15:25
このとき、穏やかな表情の>>529の脳裏に、
慇懃無礼、という言葉が頭をよぎったという。
540:デフォルトの名無しさん
10/07/06 16:17:37
>>538
せっかく答えてくれた人に喧嘩売るのはやめようね
541:デフォルトの名無しさん
10/07/06 16:48:46
>>538
ソースよく読めよ
542:デフォルトの名無しさん
10/07/06 16:53:32
はいはい、もう答えなくて結構です
543:デフォルトの名無しさん
10/07/06 17:44:44
int main() 笑 なんて使う奴はスルーしてヨシ!
544:デフォルトの名無しさん
10/07/06 18:04:56
538です。
せっかく解答をして下さったにも関わらず、不快感を与える表現をしてしまいすみませんでした。
if 0とend ifの意味を理解していませんでした。
こちらの理解不足で本当に失礼しました。
545:デフォルトの名無しさん
10/07/06 18:17:15
◆QZaw55cn4c は古い人間でしょ?コードの書き方でバレバレ
546:デフォルトの名無しさん
10/07/06 18:26:10
>>545
どの辺が古いの?
547:デフォルトの名無しさん
10/07/06 18:54:59
>>546
無理しないで良いよ、爺ちゃん。
548:デフォルトの名無しさん
10/07/06 19:01:50
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
#include <stdio.h>typedef struct { char *fname, *mname, *lname; int byear, dyear;
} writer_t;
writer_t writers[] = { {"Edward", "Elmer", "Smith", 1890, 1965},
{"Robert", "Anson", "Heinlein", 1907, 1988},
{"Arthur", "Charles", "Clarke", 1917, 2008},
{"Isaac", " ", "Asimov", 1920, 1992},
{"Raymond", "Douglas", "Bradbury", 1920, 0}};
int main(void){ int i; char s[10];
for (i = 0 ; i < sizeof(writers)/sizeof(writer_t) ; i++){
printf("%c. ", writers[i].fname);
if (writers[i].mname[0] != "\0") {
printf("%c. %-10s", writers[i].mname[0], writers[i].lname); }
else { printf("%-13s", writers[i].lname); }
printf("%4s - ", writers[i].byear);
if (dyear > 0){ printf("%4s", writers[i].dyear); } printf("\n"); } return 0;}
上記のエラープログラムを正しく直す。
[3] 環境
[3.1] OS: UNIX
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限: ([2010年7月28日20:00まで
[5] その他の制限: なるべく簡潔に(新しい変数を定義したり)お願いします。見づらいですが改行が多いと怒られるので・・
549:デフォルトの名無しさん
10/07/06 19:09:55
お・に・い・ちゃ・ん、じゃなくて、お・じ・い・ちゃ・ん ♥
550: ◆QZaw55cn4c
10/07/06 19:11:24
>>538
#if 0
から
#endif
までの間を削除してください。
わかりやすさについては、これが限界です。
551:デフォルトの名無しさん
10/07/06 19:12:43
>>543
スレリンク(tech板:101番) で述べられ済み。
ISO/IEC 9899TC2
6.7.5.3 Function declarators (including prototypes)
14
An identifier list declares only the identifiers of the parameters of the function. An empty
list in a function declarator that is part of a definition of that function specifies that the
function has no parameters.
とあり、関数の定義のときには、空のリストは no parameters である。
すなわち引数が void の場合と等価であり、int main() は int main(void) と同じ。
552:デフォルトの名無しさん
10/07/06 19:15:17
>>545
確かに古いといわれたらそうかもしれません。
func(a, b)
int a;
char *b;
{
...
return 0;
}
と書いていたころもありました。
setq とか car とか cdr とかを乱発していたこともあります。
553:デフォルトの名無しさん
10/07/06 19:17:21
>>494
お前がコテハンかトリップつけろ塵
554: ◆QZaw55cn4c
10/07/06 19:18:17
>>544
いえいえ、全然。
555:デフォルトの名無しさん
10/07/06 19:22:15
>>553-554
コテハン付けたり、外したり大変だなw
556:デフォルトの名無しさん
10/07/06 19:24:57
>>555
専用ブラウザを使っていますから、簡単ですよ。
557:デフォルトの名無しさん
10/07/06 19:31:06
>>547
>setq とか car とか cdr とかを乱発していたこともあります。
横レスだけど、そのネタはww
[H|T] -> とか言い出さないようにw>>552
まあ、コード書けない煽りは無視で行きましょう。
558: ◆GmgU93SCyE
10/07/06 19:34:15
>>548
URLリンク(codepad.org)
559:デフォルトの名無しさん
10/07/06 19:35:47
>>552
その頃は
return (0);
と書いてたりしないか?
560:デフォルトの名無しさん
10/07/06 19:37:06
>>557
処理系をCで書く、という解説本を集めているんです。でも、いまんところ2冊しかみつかっていません。
やっぱり、そんな本は売れないんですかね。おもしろいんですけれどね。
561:デフォルトの名無しさん
10/07/06 19:38:44
>>559
しまった!
562:デフォルトの名無しさん
10/07/06 19:39:30
>>560
訳されてない本が沢山あるよ
563:デフォルトの名無しさん
10/07/06 19:51:18
>>560,562
Cに限らず、技術資料とかサンプルは英語の方が多いよね。
Google codeもよく使ったなあ。
564:デフォルトの名無しさん
10/07/06 19:51:18
お爺ちゃんお口くちゃ~い、クソースなんて書くなよw
565:デフォルトの名無しさん
10/07/06 19:53:06
>>562
洋書まではあさる実力がない‥‥‥。でもながめてみたいもの。
著者名でよければ教えてください。
566:デフォルトの名無しさん
10/07/06 20:06:48
>>558
ありがとうございました~
567:523
10/07/06 20:42:03
>>526
>>524
回答ありがとうございます。
まさか一日かからずに終わらせてくれるとは思いませんでした。
568:デフォルトの名無しさん
10/07/06 21:09:00
C言語と関係無いじゃん。
OSやコンパイラを作るって事だろ。
569:デフォルトの名無しさん
10/07/06 22:11:38
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラム。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
入力された金額が負の場合は、「Error」を出力するようにします。
そこで、下のようなプログラムを書いたのですが、うまく起動しません。
このプログラムを、上の出力例のように出力してくれるように書きなおしてくれませんか??
下のプログラムでは合計枚数を出力する部分しか書いてません。
ちなみに、再帰を使ってプログラミングお願いします。
570:デフォルトの名無しさん
10/07/06 22:14:36
569質問者のプログラム(続き)
#include<stdio.h>
int coinfunc(int *C, int k, int M){
/* *C・・・コインの種類の配列(小さい順にソートされているとする)
M・・・支払う金額/
k・・・コインの種類の数 */
if(M == 0){ return(0); }
else if(M < 0){ return(Error); }
else{
int min = 100000;
int i;
for(i = 0; i <= k - 1; i++){
int tmp = coinfunc(C, k, M - C[i]);
if(tmp < min){ min = tmp; }
}
return(min + 1);
}
}
int main(){
int C[5] = {1,5,8,10,15};
int k = 5;
int M;
printf("支払う金額M=");
scanf("%d",&M);
printf("%d\n",coinfunc(C, k, M));
}
571: ◆QZaw55cn4c
10/07/06 22:36:25
>>506
URLリンク(codepad.org)
許容範囲云々は考えていません。
572:デフォルトの名無しさん
10/07/06 22:38:55
明日までにある宿題あるんですけど頼めますかね?
すぐ貼ります
573:デフォルトの名無しさん
10/07/06 22:40:44
頼めます
574:デフォルトの名無しさん
10/07/06 22:42:55
>>572
ここまでは作った
#include<stdio.h>
int main(void)
{
return 0;
}
575:デフォルトの名無しさん
10/07/06 22:54:22
[1] 授業単元:プログラミング演習
[2] 問題文:このプログラムを拡張して、個人ごと平均点と科目ごとの平均点を小数点以下1桁まで
表示できるプログラムを作成せよ。
#include <stdio.h>
main()
{
int score[4][3]:
int total[4]:
int i , j ;
for (i = 0; i < 4; i++) {
total[i] = 0 ;
printf("No . %d\n" , i + 1);
for( j = 0 ; j < 3; j++) {
printf("score %d : " , j + 1) ;
scanf("%d", &score[i][j]);
total[i] += score[i][j];
}
}
printf("\n");
printf("No . | s1 s2 s3 | total\n");
printf("---+----------+------\n");
for ( i = 0; i < 4; i++) {
printf("%2d | " , i + 1) ;
for( j = 0; j < 3; j++) {
printf("%3d " , score[i][j]);
}
printf("| %4d\n" , total[i]) ;
}
}
576:デフォルトの名無しさん
10/07/06 22:56:36
連投すみません
[3]環境
Windows、VC6.0、C
[4]期限
7月7日
[5]配列まで
よろしくお願いします。
577:デフォルトの名無しさん
10/07/06 23:36:32
>>570 再帰は駄目だな、100円でいっぱいいっぱいだw
#include<stdio.h>
#include <limits.h>
int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}
int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}
578:デフォルトの名無しさん
10/07/06 23:38:48
低額は計算済みにしておいて、再帰使えば。
579:デフォルトの名無しさん
10/07/06 23:45:42
結局イタチごっこだろ
じゃあ非再帰ならいいのかと思って試したら、100000000円くらいが限界だった(メモリ確保できず)
割り算で出来る貨幣制度にしろってこった
580:デフォルトの名無しさん
10/07/06 23:50:38
コインに関する問題への解答ありがとうございます。
>>577さんありがとうございます。
>>579さん、非再帰の場合のプログラムをのせてください。お願いします。
581:デフォルトの名無しさん
10/07/06 23:53:49
>>580
URLリンク(kansai2channeler.hp.infoseek.co.jp)
582:デフォルトの名無しさん
10/07/06 23:56:49
最終的には、低額の計算だけにできるだろ。
基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。
583:デフォルトの名無しさん
10/07/06 23:59:29
予想では、コインの最小公倍数になるまでは最大値のコインで支払って
最小公倍数を下回る所になったら、組み合わせを考慮する。
584:デフォルトの名無しさん
10/07/07 00:01:27
<<579さん、ありがとうございます。
ここで、第2問↓↓
今も上で議論されていますが、このプログラム(<<577)の効率の解析をしてください。
「ある重要な演算1つに注目し、その実行回数(最悪の入力時における)を、入力
サイズを表すパラメータの関数として表す。最終的にはT(n,...)=O(n^2×・・・)
のような評価式を求めてください。」できれば、その式を求める過程をお願いします。
585:デフォルトの名無しさん
10/07/07 00:06:30
>>568
ええ、lisp 用として。
586:デフォルトの名無しさん
10/07/07 00:07:51
O(1)だろ。
587:デフォルトの名無しさん
10/07/07 00:08:29
>>582
確かにそれで大分削れそうだな
588:デフォルトの名無しさん
10/07/07 00:08:29
>>575
分かる人これも頼みます
589:デフォルトの名無しさん
10/07/07 00:26:32
>>583
#include<stdio.h>
#include<stdlib.h>
int gcd(int a, int b){ int c; while((c=a%b)) a=b, b=c; return b; }
int lcm(int a, int b){ return a/gcd(a, b)*b; }
void coin_func_r(int *result, int c[], int m, int n){
int i;
if(m<0 || c[0]<0 || (*result>0 && n>=*result)) return;
if(m==0){
if(*result<0 || *result>n) *result=n;
return;
}
for(i=0;c[i]>0;i++) coin_func_r(result, c+i, m-c[i], n+1);
}
int coin_func(int c[], int amount){
int i, lcm_all=1, result=-1, rest, c_max=1;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
rest=amount%lcm_all;
coin_func_r(&result, c, rest, 0);
return result+(amount-rest)/c_max;
}
int main(int argc, char *argv[]){
int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
if(argc==2) x=atoi(argv[1]);
result=coin_func(c, x);
printf("%d\n", result);
return 0;
}
590:デフォルトの名無しさん
10/07/07 00:36:26
>>589
とてもいい感じだが、コインの最小公倍数の大きさに極めて依存
- int c[]={15, 10, 8, 5, 1, -1}, x=100, result=-1;
+ int c[]={777, 128, 100, 15, 10, 8, 5, 1, -1}, x=100, result=-1; // tekitou
として 100000をコマンドライン引数で与えると帰ってこねえ
最小公倍数よりも範囲を狭くする方法はありそうだけどなぁ
591: ◆QZaw55cn4c
10/07/07 00:37:41
>>575
URLリンク(codepad.org)
表示具合の微調整はお願いいたします。
592:デフォルトの名無しさん
10/07/07 00:40:32
>>591
ありがとうございます!
本当に助かりました。
593:デフォルトの名無しさん
10/07/07 01:07:22
>>503
ありがとうございました!
594:デフォルトの名無しさん
10/07/07 01:58:42
>>551
そこでも述べられているがそれTC2
595:デフォルトの名無しさん
10/07/07 02:06:02
[1] 授業単元:プログラミング演習
[2]Q1. 問題文:4つの整数を入力し、それらを要素とする行列を求め、その値を以下のような
形式で表示するプログラムを作成せよ。
例 100 20 30 40と入力すれば
| 100 20 | =3400
| 30 40 | と表示される
Q.2ディスカウントストアでどの商品でも5個以上買えば1割引、10個以上で2割引、20個以上で
4割引となっていた。キーボードから買う商品の単価と個数を入力し、合計金額を計算するプログラミングを
作成せよ。
[3]環境
Windows、VC6.0、C
[4]期限
7月8日
[5]配列よりちょっと前
Q.1に関してはできそうだったのですが、バーが表示されないために却下となってまいました。
皆さんにとっては大変簡単だと思いますがよろしくお願いします。
初心者ですみません。
596:デフォルトの名無しさん
10/07/07 02:10:06
>>551
ちがう。そういうことじゃない。ISO、ANSI準拠はプログラムの開始、主体となる関数を
mainとし、引数がある時と無い時でどう記述するか、標準スタイルを提唱している。
ただし、それはあくまでも 標準スタイル であり、各自の環境によって準拠しなくても構わない。
597:デフォルトの名無しさん
10/07/07 02:12:37
また、main関数の戻り値はint型とする。これは散々既出だから議論する必要なし。
自分はどうこうすると、根拠も無く意味も分からないスタイルを用いると
他者とコードをやり取りする場合は、弊害が起こるかもしれないが。
そもそも、ここでは個人的なやり取り、スタイルが通用するが
C言語は何も個人が私用で使うだけでなく、世界に通じて商業用としても
普通に用いられている。それは工業規格も同じ事。だから少しでも
幅広く通用するスタイル、規格というのが必要になる。
ちなみに、CDやDVDなどもISO準拠で世界で通用する方式、規格が使われている。
598:デフォルトの名無しさん
10/07/07 02:25:18
さらに、C++では引数が無い場合は int main() としている。
あくまでも ANSI、ISO準拠の標準スタイルの話。個人的なスタイルには言及せず。
599:デフォルトの名無しさん
10/07/07 05:44:31
>>590
最大のコインを選ぶか選ばないかのときだけやればいい。
777円が最大なら 777*2-1以上までは777円を選んでおいてokのはず。
一枚選べる最大価格は777*2-1円だからこの辺から調べる。
600:デフォルトの名無しさん
10/07/07 06:08:18
コインが100円と99円としたとき。
297円 = 99*3円で100円を選ぶと失敗するから
599は間違えだな。
やっぱどのコインの倍数でもある最小公倍数がよさげか。
601:デフォルトの名無しさん
10/07/07 12:20:52
>>582
>最終的には、低額の計算だけにできるだろ。
>基本は、一番高いコインで、埋めていき、最後(低額)だけ考慮する。
>>11を改造させてもらいました。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
602:デフォルトの名無しさん
10/07/07 13:24:29
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: C
[4] 期限: ([2010年07月10日22:00まで]
[5] その他の制限: よろしくおねがいします!
603:デフォルトの名無しさん
10/07/07 15:23:20
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
10人の成績を入力し、その順位を成績と共に表示したい。以下の考えに基づいたプログラムを作成せよ。
1. 2次元配列s[10][2]を用意する。
2. i=0~9のfor文を用いて、s[i][0]に成績入力する。
3. s[0][0]とs[j][0], j=0~9を比較し、s[0][0]より大きい数値の個数nを考える。
その個数+1が成績順位になるので、s[0][1]にn+1を代入する。
4. 同様の操作をs[i][0]にi=0~9に対して行えば、その成績順位がs[i][1]として求められるので、
あとは成績と共に表示すればいい。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン: (VC 6.0)
[3.3] 言語: C
[4] 期限: ([2010年07月9日15:00まで]
[5] その他の制限: 初心者で申し訳ないですが頼みます。
604:デフォルトの名無しさん
10/07/07 15:25:25
>>603
>>421,427
605:デフォルトの名無しさん
10/07/07 15:28:54
>>604
おお同じ人がいたとはw
ありがとうございます!
606:デフォルトの名無しさん
10/07/07 17:49:16
>>604
これC++用だからできなかったorz
607:デフォルトの名無しさん
10/07/07 18:00:51
>>606
URLリンク(codepad.org)
608:デフォルトの名無しさん
10/07/07 18:15:29
>>607
ありがとうございます。
感謝感謝です。
609:デフォルトの名無しさん
10/07/07 18:20:35
>>595
暇ならでいいんでこれも頼みます
610:デフォルトの名無しさん
10/07/07 18:35:12
>>609
Q2.
URLリンク(codepad.org)
611:デフォルトの名無しさん
10/07/07 18:42:57
>>610
ありがとうございます。
612:デフォルトの名無しさん
10/07/07 19:14:20
>>609
Q1
URLリンク(codepad.org)
613:デフォルトの名無しさん
10/07/07 19:26:52
>>550
ありがとうございました。
プログラムをしっかり理解出来るようもっと知識を深めたいと思います!
614:デフォルトの名無しさん
10/07/07 19:29:25
>>612
ありがとうございます!
助かりました。
615:デフォルトの名無しさん
10/07/07 20:57:40
>>612
重くて開かないですね
616:デフォルトの名無しさん
10/07/07 21:24:39
見れました!
617:デフォルトの名無しさん
10/07/07 21:58:05
独自のライブラリも悪くは無いが 標準ライブラリ で済むならそれでおk
618:デフォルトの名無しさん
10/07/07 22:39:34
【質問テンプレ】
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
円形テンプレートマッチングのプログラムを作成せよ。
白い楕円が複数書いてあるBMP画像を読み込み(適当にペイントで作成)画像左下からラスタ走査し、円形テンプレートマッチングをするプログラムを作成せよ。
円形テンプレートはサイズA~Bまで変化させ、一致率(円形テンプレートの円周上に一致する白画素と一致している数/円形テンプレート円周のプロット数、円形テンプレート内の黒画素に一致している黒画素数/円形テンプレート内の黒画素数)
上位5つを色を変えて描画せよ。
また、一致率上位5つの半径、一致率、座標(画像の左下をx=0、y=0とする)をdos窓上に標示せよ。
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:VC
[3.3] 言語:C++
[4] 期限:2010年7月10日まで
[5] その他の制限:
よろしくお願いします
619:デフォルトの名無しさん
10/07/07 23:37:51
[1] 授業単元:Cプログラミング演習
[2] 問題文(含コード&リンク):
問題1. 10進数1234を2進数で表示するプログラムを作成せよ。
問題2. 変数の下位16ビット中の1のビット数を数える関数 int bit_count(int x) を作成せよ
[3] 環境
[3.1] OS: Windows
[3.2] コンパイラ名とバージョン:Visual Stduio 2008
[3.3] 言語:C
[4] 期限:2010年7月9日まで
[5] その他の制限:無
よろしくお願いします
620:デフォルトの名無しさん
10/07/07 23:53:18
#include <stdio.h>
int main()
{
int a, b, c, d;
scanf( "%d", &a );
scanf( "%d", &b );
scanf( "%d", &c );
scanf( "%d", &d );
int value= a*d - b*c;
printf( "| %d %d | =%d\n", a, b);
printf( "| %d %d |\n", c, d );
return 0;
}
エラー
z:\プログラミング演習\sample\sample\sample01c.c(12) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
cl.exe の実行エラー
どこを直せば良いのですか?
621:デフォルトの名無しさん
10/07/07 23:54:42
#include <stdio.h>
int main()
{
int unit_price; // 単価
int num; // 個数
printf( "買う商品の単価: " );
scanf( "%d", &unit_price );
printf( "個数: " );
scanf( "%d", &num );
int total_price = unit_price * num;
// 小数を使うと誤差がでるので使わない
if ( num >= 20 )
total_price = total_price*6/10;
else if ( num >= 10 )
total_price = total_price*8/10;
else if ( num >= 5 )
total_price = total_price*9/10;
printf( "合計金額: %d", total_price );
}
エラー
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(14) : error C2143: 構文エラー : ';' が 'type' の前に必要です。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(18) : error C2065: 'total_price' : 定義されていない識別子です。
cl.exe の実行エラー
これもお願いします。
622:デフォルトの名無しさん
10/07/07 23:58:40
>>621
変数の宣言場所をブロックの先頭に移動
623:デフォルトの名無しさん
10/07/07 23:59:05
#include <stdio.h>
const int n = 10;
int main()
{
int i, j;
int s[n][2];
for (i = 0; i < n; i++) {
printf( "%d: ", i );
scanf( "%d", &s[i][0] );
}
for (i = 0; i < n; i++) {
s[i][1] = 0;
for (j = 0; j < n; j++) {
if (s[i][0] < s[j][0])
s[i][1]++;
}
s[i][1]++;
}
for (i = 0; i < n; i++)
printf( "s[%d]: %d\n", i, s[i][1] );
return 0;
}
/* end */
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2057: 定数式が必要です。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2466: サイズが 0 の配列を割当てまたは宣言しようとしました。
Z:\プログラミング演習\sample\sample33\ensyu33.c(7) : error C2133: 's' : サイズが不明です。
cl.exe の実行エラー
すみませんこれも駄目でした。
お願いします。
624:デフォルトの名無しさん
10/07/08 00:01:53
>>622
ありがとうございます。
しかし警告が出てしまいました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'unit_price' に対して参照が行われました。
Z:\プログラミング演習\sample\ensyu8\ensyu8.c(7) : warning C4700: 値が割り当てられていないローカルな変数 'num' に対して参照が行われました。
625:デフォルトの名無しさん
10/07/08 00:18:06
もしかして↓みたいな感じにしてない?
int unit_price; // 単価
int num; // 個数
int total_price = unit_price * num;
626:デフォルトの名無しさん
10/07/08 00:19:39
>>625
なってます。
初心者ですみません。
正しいやり方教えてください。
627:デフォルトの名無しさん
10/07/08 00:27:29
int unit_price; // 単価
int num; // 個数
int total_price;
printf( "買う商品の単価: " );
scanf( "%d", &unit_price );
printf( "個数: " );
scanf( "%d", &num );
total_price = unit_price * num;
628:デフォルトの名無しさん
10/07/08 00:30:08
>>627
できました!
どうもありがとうございました。
629:デフォルトの名無しさん
10/07/08 00:34:44
>>620
自己解決できました。
630:デフォルトの名無しさん
10/07/08 02:22:04
[1] 授業単元:Cプログラミング
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows)
[3.2] コンパイラ名とバージョン: (visual stadio 2008)
[3.3] 言語: (C)
[4] 期限: [2010年07月08日13:00まで]
[5] その他の制限:ほんの入門級なので、if,for,whileぐらいしか使えません
あと配列は禁止
概要:数値を1つ(2~9の数字)入力し、その個数分の"*"を1辺とする
完成図(*=★、空白=☆):
3を入力した場合
★★★
☆☆★
★★★
9を入力した場合
★★★★★★★★★
☆☆☆☆☆☆☆☆★
★★★★★★★☆★
★☆☆☆☆☆★☆★
★☆★★★☆★☆★
★☆★☆☆☆★☆★
★☆★★★★★☆★
★☆☆☆☆☆☆☆★
★★★★★★★★★
ーーーーーーーーーーーーーーーー
自分の考え方で進んでみましたが、ifの条件式の部分が分からなくて
助力を求めます
631:デフォルトの名無しさん
10/07/08 07:27:39
>>630
URLリンク(kansai2channeler.hp.infoseek.co.jp)
奇数のみ出力できるモノで良ければ
632:デフォルトの名無しさん
10/07/08 10:01:13
[1] 授業単元:C・プログラミング
[2] 問題文(含コード&リンク):
下記のGPA計算のプログラムを読み込んだ数値を入れる配列を指すポインタを用いて書き換えよ.ただし,配列は1次元配列を用い,また関数を使う必要はない.
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] Windows 7
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:2010年7月10日迄
よろしくお願いします。
633:デフォルトの名無しさん
10/07/08 10:51:09
>>632
void input(int sei[][N2], int n);
↓↓↓↓
void input(int (*sei)[N2], int n);
for(i=0; i<n; i++){
↓↓↓↓
int (*p)[N2];
for (p = sei; p < sei + n; p++) {
sei[i][2]= 0;
↓↓↓↓
(*p)[2]= 0;
634:デフォルトの名無しさん
10/07/08 11:18:09
C言語プログラミング(再帰)について質問です。
コインの種類(例えば、1円、5円、8円、10円、15円)に対して、金額を入力すると
その金額を払うのに最も枚数が少なくて済むコインの出し方を出力してくれる
プログラムを書こうと思っています。
例えば、23円と入力すると、「10円1枚・8円1枚・5円1枚の計3枚」と出力できるプログラムです。
ただし、「10円2枚・1円3枚の計5枚」は「最小」ではないため、上の出力を優先します。
そこで、下のようなプログラムを書いたのですが、合計枚数を出すまでしかできませんでした。
これを、それぞれのコインが何枚必要か出力するように書き換えてください!お願いします。
ソースコードは次の書き込みで。
635:デフォルトの名無しさん
10/07/08 11:19:16
#include<stdio.h>
#include<limits.h>
int coinfunc(int *c, int k, int m)
{
int i, tmp, min = INT_MAX;
if (m == 0)
return 0;
else if (m < 0)
return -1;
for (i = 0; i < k; i++) {
tmp = coinfunc(c, k, m - c[i]);
if (tmp < 0)
continue;
else if (tmp < min)
min = tmp;
}
return min + 1;
}
int main(void)
{
int m, c[] = {1, 5, 8, 10, 15};
printf("m=?\n");
while (scanf("%d", &m) != 1)
scanf("%*[^\n]");
printf("%d\n", coinfunc(c, sizeof(c)/sizeof(*c), m));
return 0;
}
636:デフォルトの名無しさん
10/07/08 11:21:49
23円は15と8じゃダメですか? ><;
637:デフォルトの名無しさん
10/07/08 11:28:10
>>636
すいません!!23円のときは15と8が最小ですね。。
638:デフォルトの名無しさん
10/07/08 11:57:17
>>634
URLリンク(codepad.org)
639:デフォルトの名無しさん
10/07/08 12:01:39
性帝トーマス△
640:デフォルトの名無しさん
10/07/08 12:17:43
>>638
33円 -> 15円1枚、10円1枚、8円1枚 が最小。
641:デフォルトの名無しさん
10/07/08 12:26:46
1 #include<stdio.h>
2 #include<string.h>
3 typedef struct K{
4 char* name;
5 int tensuu;
6 }K;
7 int main(void)
8 {
9 FILE *fp;
10 char str[256];
11 char *p1,*p2;
12 int i,j,n;
13 double d,e,f;
14 int a[250];
15 char b[250][250];
16 int x;
17
18 if((fp=fopen("seiseki.txt","r"))==NULL){
19 printf("ファイルがありません\n");
20 return -1;
21 }else{
22 /*while(fgets(str,256,fp)!=NULL){
23 p1=strtok(str," ");
24 p2=strtok(NULL," ");
25 a.name=p1;
26 a.tensuu=atoi(p2);*/
27 i=0;
28 while(fscanf(fp,"%s %d",&b[i],&a[i])!=EOF){
29 i=i+1;
642:デフォルトの名無しさん
10/07/08 12:28:08
30 }
31 n=i;
32 printf("----------入力データ------------\n");
33 for(i=0;i<n;i++){
34 printf("%s %d\n",b[i],a[i]);
35 }
36 for( j=0; j<n; j++){ /* 未処理データの先頭 */
37 for( i=1; i < n-j; i++){
38 if( a[i-1] < a[i] ){ /* 隣り合うデータの交換*/
39 x = a[i-1];
40 a[i-1] = a[i];
41 a[i] = x;
42
43 strcpy(str,b[i-1]);
44 strcpy(b[i-1],b[i]);
45 strcpy(b[i],str);
49 }
50 }
51 }
52
53 }
54 printf("----------出力データ------------\n");
55 for(i=0;i<n;i++){
56 printf("%s %d\n",b[i],a[i]);
57 }
58 fclose(fp);
59 return 1;
60 }
61
643:デフォルトの名無しさん
10/07/08 12:29:05
ファイル処理の応用
switch 文を使用して
1. データファイルの新規作成
2. データファイルの追加作成
3. データファイルの読み込みと表示
4. 終了
をメニュー形式で処理するプログラムを作成せよ。
ファイル名はキーボードから入力する。
1~4の処理はユーザ関数として定義すること。
void data_write(void)
void data_append(void)
void data_read(void)
void the_end(void)
1~4以外の数値が入力されたら再入力させること。
switch 文については教科書 56 ページを参照すること。
644:デフォルトの名無しさん
10/07/08 12:31:22
1. 新規作成の実行例
********** 成績処理 ********* ← メニューの表示
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
← データ入力の誤り
処理番号を入力して下さい(1~4):9
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):1
← ファイル名の入力
Input file name= abc.txt
name=?oota
tensuu=?10
oota 10
name=?yamada
tensuu=?50
yamada 50
name=? ← 入力の終了 Ctrl + D
645:デフォルトの名無しさん
10/07/08 12:33:27
2. 追加作成の実行例
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):2
name=?isida
tensuu=?90
isida 90
name=?torii
tensuu=?70
torii 70
name=? ← 入力の終了 Ctrl + D
3. 読み込みと表示の実行例
********** 成績処理 *********
ファイルの新規作成・・・・・1
ファイルの追加作成・・・・・2
ファイルの読み込みと表示・・3
終了・・・・・・・・・・・・4
処理番号を入力して下さい(1~4):3
Input file name= abc.txt
oota 10
yamada 50
isida 90
torii 70
646:デフォルトの名無しさん
10/07/08 18:25:35
>>633
ありがとうございます。助かりました。
647:デフォルトの名無しさん
10/07/08 18:25:53
>>641-645
>>1
648:デフォルトの名無しさん
10/07/08 18:29:13
[1] 授業単元:
[2] 問題文(含コード&リンク):
2~9の数字を入力その数字に応じて図形を表示させる関数を作る
正方形 三角形 六角形 菱形 星 渦巻き
星と渦巻き以外できたからこの2つについて知りたい
例 7を入力したとき 左:渦 右:星
******* * * *
* * * *
***** * ***
* * * *******
* *** * ***
* * * * *
******* * * *
[3] 環境
[3.1] OS: Windows7
[3.2] コンパイラ名とバージョン: よくわからない 申し訳ないVS2008使ってる
[3.3] 言語: C
[4] 期限: 2010年7月13日
[5] その他の制限: 配列は禁止
649:デフォルトの名無しさん
10/07/08 18:44:06
>>648
ほー。配列は禁止。
printf("******* * * * \n");
printf(" * * * * \n");
printf("***** * *** \n");
printf("* * * ******* \n");
printf("* *** * *** \n");
printf("* * * * * \n");
printf("******* * * * \n");
は禁止?
650:デフォルトの名無しさん
10/07/08 18:51:34
面白いと思ってやってんの?
651:デフォルトの名無しさん
10/07/08 19:11:07
>>648
渦巻きの偶数パターンが分かればコードが書けるんだが
652:デフォルトの名無しさん
10/07/08 22:56:04
>634
ってさ、たとえば 36 のときみたいに解が複数あるときはどうすんの?
15,15,5,1 の4枚と、10,10,8,8 の4枚。
653:デフォルトの名無しさん
10/07/08 23:06:15
>>630
ありがとうございます
助かりました
654:デフォルトの名無しさん
10/07/08 23:20:25
>>653
いえいえ
655:デフォルトの名無しさん
10/07/08 23:32:53
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下の仕様に従って,分数の四則演算を行うプログラムを作成せよ。
[仕様1] 以下のような構造体を定義し,分数のデータ構造に利用すること。
struct fraction{
int parent; /* 分母(denominator) */
int child; /* 分子(numerator) */
};
[仕様2] 以下の実行結果となるようなプログラムを作成せよ。
プログラムの実行結果↓
1つ目の分数を入力して下さい。
3/4 ←キーボードより入力
2つ目の分数を入力して下さい。
1/4 ←キーボードより入力
演算方法(1.加算,2.減算,3.乗算,4.除算)を入力して下さい。
2 ←キーボードより入力
3/4 - 1/4 = 1/2
計算結果は約分をして表示
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C言語
[4] 期限: 7月9日
[5] その他の制限:ポインタ変数、データ構造まで習いました
よろしくお願いします
656:デフォルトの名無しさん
10/07/08 23:41:48
>>651
特に指示はないからこっちに任せただと思う
だから左上からスタートで
********
*
****** *
* * *
* * * *
* **** *
* *
********
>>649
ifかswitchでそれをつくろうかと思ったがさすがにふざけてると思われそうなのでやめた
657:デフォルトの名無しさん
10/07/08 23:51:27
>>656
日本語でおk。偶数パターンを出力してからものを言え
658:デフォルトの名無しさん
10/07/09 00:02:35
>>657
すまなかった 6 4 2の順で
******
*
**** *
* * *
* *
******
****
*
* *
****
2は正方形でも右の形でもどっちでもいい
** **
** *
659:デフォルトの名無しさん
10/07/09 00:34:07
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(yonex1.cis.ibaraki.ac.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc 4.3.4
[3.3] 言語:C
[4] 期限:2010年7月11日
[5] その他の制限:
よろしくお願いします。
660:デフォルトの名無しさん
10/07/09 01:28:45
次のプログラムを、分かりやすく疑似コードに直してください!!
分かり易ければOKです!
static int coin[] = {1, 5, 8, 10, 15};
int main(void){
int *nr, *hist, money, c, n, new;
printf("input money : ");
while (scanf("%d", &money) != 1) {
scanf("%*[^\n]");
printf("input money again : "); }
scanf("%*[^\n]");
nr = (int *)malloc((money + 1)*sizeof(*nr));
if (nr == 0) {
perror("calloc");
return 1; }
hist = (int *)calloc(money + 1, sizeof(*hist));
if (hist == NULL) {
perror("calloc");
goto err; }
for (n = 0; n <= money; n++)
nr[n] = n;
for (c = 0; c < sizeof(coin)/sizeof(*coin); c++)
for (n = coin[c]; n <= money; n++) {
new = nr[n - coin[c]] + 1;
if (new < nr[n]) { nr[n] = new; hist[n] = c;}
}
printf("total number : %d\n", nr[money]);
printf("coins : ");
for (n = money; n > 0; n -= coin[hist[n]])
printf("%d ", coin[hist[n]]); printf("\n");
free(nr); free(hist); return 0; err:
free(nr); return 1; }
661:デフォルトの名無しさん
10/07/09 02:34:47
>>648
> 2~9の数字を入力
2はどうなのよ、2の時は?
662:デフォルトの名無しさん
10/07/09 04:46:59
>>602お願いします!!
663:デフォルトの名無しさん
10/07/09 07:59:57
>>655
URLリンク(kansai2channeler.hp.infoseek.co.jp)
664:デフォルトの名無しさん
10/07/09 16:09:48
>>661
星は正方形で
渦巻きは>>658でおねがいします
665:デフォルトの名無しさん
10/07/09 20:03:15
URLリンク(codepad.org)
666:デフォルトの名無しさん
10/07/09 20:21:22
> URLリンク(codepad.org)
↑便利だ。
コンパイルまでしてくれる必要は無いんだけど、
もっと色々な言語(Pascalとかverilogとか)貼り付けて、
整形して表示してくれるアプローダ無いかな?
667:デフォルトの名無しさん
10/07/09 20:26:18
ideone.comは?整形して表示の意味がよく分からないけど
668:デフォルトの名無しさん
10/07/09 20:40:12
>>667
ありがとう。これでいいです。
こんなんとかPascal似の言語とか貼り付けたかったのです。
URLリンク(ideone.com)
669: ◆QZaw55cn4c
10/07/09 22:04:40
ideone.com は対応している言語が多いけれども、コンパイルエラーの表示に難があるからなあ。
URLリンク(ideone.com)
正解は、
transform(radians.begin(), radians.end(), sines.begin(), (double (*)(double))sin);
670:デフォルトの名無しさん
10/07/09 22:41:13
整数を入力:18
1
2
3!?
(中略)
13!?
14
15!?
16
17
18!?
こんなプログラムはどうやって書くんですか?
671:デフォルトの名無しさん
10/07/09 22:48:40
さぁ、世界のナベアツ先生に聞いてちょっ
672:デフォルトの名無しさん
10/07/09 22:49:53
誘導されてきたんだなぁ。ってか宿題だったのか。
次は>>1を読もう。
673:デフォルトの名無しさん
10/07/09 22:57:56
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):3の付く数字と3の倍数の時にアホになりなさい。
[3] 環境
[3.1] OS: (Windows/Linux/等々)windows
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)Borland C++ 5.5.1
[3.3] 言語: (C/C++/どちらでも可 のいずれか) C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか) 20日(火)
674:デフォルトの名無しさん
10/07/09 23:19:04
>>673
URLリンク(kansai2channeler.hp.infoseek.co.jp)
675:デフォルトの名無しさん
10/07/09 23:27:09
>>674
こうすれば文字列操作が不要になるんでは。
int isAho(int n)
{
if (n % 3 == 0) return 1;
while (n)
{
if (n % 10 == 3) return 1;
n /= 10;
}
}
676:デフォルトの名無しさん
10/07/09 23:28:12
>>675
最後にreturn 0;するの忘れてた。
677:デフォルトの名無しさん
10/07/09 23:45:55
30台もどうかとは思うが300、3000台にもなるとアホばかりで疲れるわ・・・
678:デフォルトの名無しさん
10/07/10 00:17:05
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):
以下の機能を持つプログラムを作ること。
-1から100の数字の中から素数を抽出する (配列に直接数字を指定することは不
可)
-抽出した素数を大きい順(降順)にソートする
-ソートした素数を1行につき5個表示する(6個目以降は次の行に表示する)
但し、以下の4つの機能を使ったプログラムにすること。
-サブ関数
-配列
-if文
-for文
以下の点に関して工夫をした場合は加点の対象とする
-素数の計算時間の低減
-見つけた素数の数のカウント
-ソートのアルゴリズム高速化
-実行時間の表示
作成したプログラムの特徴を提出時のコメントに記入すること
(素数の見つけ方、ソートの仕方、表示方法での工夫など)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010/07/23
初心者ですがよろしくお願いします。
679:デフォルトの名無しさん
10/07/10 02:06:24
>>678
URLリンク(kansai2channeler.hp.infoseek.co.jp)
680:名無しさん@そうだ選挙に行こう
10/07/10 09:13:45
ソートはなんならクイッ クソート があるでおじゃる
681:618
10/07/10 09:33:45
その他制限はありません。一通り学びましたが初心者です。
よろしくおねがいします
682:名無しさん@そうだ選挙に行こう
10/07/10 10:10:43
>>589
該当する関数をこれに置き換えると早くなる
int coin_func_r(int result[], int c[], int m, int n){
int i, num;
if(m<0 || result[m]==0) return -1;
if(result[m]>0) return result[m];
for(i=0;c[i]>0;i++){
num=coin_func_r(result, c, m-c[i], n+1);
if(num>0 && (result[m]<0 || result[m]>num+1)) result[m]=num+1;
}
if(result[m]<0) result[m]=0;
return result[m];
}
int coin_func(int c[], int amount){
int i, lcm_all=1, rest, c_max=1, *result, ret;
for(i=0;c[i]>0;i++){
lcm_all=lcm(lcm_all, c[i]);
if(c_max<c[i]) c_max=c[i];
}
result=calloc(lcm_all, sizeof(int));
for(i=0;i<lcm_all;i++) result[i]=-1;
for(i=0;c[i]>0;i++) result[c[i]]=1;
rest=amount%lcm_all;
coin_func_r(result, c, rest, 0);
ret=result[rest]+(amount-rest)/c_max;
free(result);
return ret;
}
683:名無しさん@そうだ選挙に行こう
10/07/10 10:24:32
>>511
ありがとうございます!
684:名無しさん@そうだ選挙に行こう
10/07/10 10:28:20
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
int i_minof(int x, int y){ /* ... */}
を作成せよ。
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
685:名無しさん@そうだ選挙に行こう
10/07/10 10:40:05
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
下に示すように、整数値を読み込んで、その値を0までカウントダウン
しながら表示するプログラムを作成せよ。なお、負の値を読み込んだ時は
何も表示しない(改行も表示せず終了する)ようにせよ。
=====
整数を入力してください:9
9 8 7 6 5 4 3 2 1 0
=====
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
686:名無しさん@そうだ選挙に行こう
10/07/10 10:41:38
>>684
int i_minof(int x, int y){ return rand()&1?x:y; }
687:名無しさん@そうだ選挙に行こう
10/07/10 11:41:06
>>684の訂正です。
[1] 授業単元:C言語入門
[2] 問題文(含コード&リンク):
二つのint型整数の小さい方の値を返す関数
int i_minof(int x, int y){ /* ... */}
を作成せよ。
=====
二つの整数を入力してください。
整数1:49
整数2:92
小さい方の値は17です。
=====
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日まで
よろしくお願いします。
688:名無しさん@そうだ選挙に行こう
10/07/10 11:42:32
>>687
×小さい方の値は17です。
○小さいほうの値は49です。
何度も訂正すいません。
689:名無しさん@そうだ選挙に行こう
10/07/10 12:21:49
>>687
int i_minof(int x, int y){
if(x<y){
return x;
}
else{
return y;
}
}
690:689
10/07/10 12:24:03
補足すると
条件演算子を使えばもっと簡単になる
参考
URLリンク(www5c.biglobe.ne.jp)
691:名無しさん@そうだ選挙に行こう
10/07/10 14:55:54
>>685
URLリンク(kansai2channeler.hp.infoseek.co.jp)
692:名無しさん@そうだ選挙に行こう
10/07/10 17:55:41
>>691
ありがとうございます。
693:名無しさん@そうだ選挙に行こう
10/07/10 18:01:33
【質問テンプレ】
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS: Linux
[3.2] コンパイラ名とバージョン: gcc
[3.3] 言語: C
[4] 期限:[無期限]
お願いします。
694:名無しさん@そうだ選挙に行こう
10/07/10 23:01:52
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
バイナリ形式で保存されたWindows Bitmap形式の画像ファイルを読み込み、3つの色成分(Blue, Green, Red)に分離し、
それぞれを異なるファイルに保存するプログラムを実装しなさい。
プログラム中でやることは以下のことである。
1.ヘッダ部分を適切に読み込む
2.読み込んだヘッダ部分(ファイルヘッダ、情報ヘッダ)を用いて、適切なバイト数(画素数×1画素あたりのバイト数)を読んでくる。
3.分離したい色成分以外を0に書き換え、ヘッダ部分と色情報をファイルに書き込む。
ただし、以下のような構造体を使用する。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:2010年7月12日
[5] その他の制限:特にありません。よろしくお願いします。
695:名無しさん@そうだ選挙に行こう
10/07/11 02:36:18
クイックソートのソースをとりわけ、クイックソースと言うでおじゃる
696:名無しさん@そうだ選挙に行こう
10/07/11 10:40:06
【質問テンプレ】
[1] 授業単元:Visual C++ でのプログラミング演習
[2] 問題文(含コード&リンク):課題4.3.bをお願いします。URLリンク(www.dotup.org)
[3] 環境
[3.1] OS:Windows
[3.2] コンパイラ名とバージョン:Visual C++ 200
[3.3] 言語:C++
[4] 期限:[無期限]
697:名無しさん@そうだ選挙に行こう
10/07/11 11:07:13
>>696
URLリンク(kansai2channeler.hp.infoseek.co.jp)
動作例から推測するに、恐らく最小の整数ではなく最小の自然数を出力するのだろう。
(1+1/n)^n は n>0 で単調減少だから、二分探索で解を求める。
698:697
10/07/11 11:12:36
単調減少ではなく、単調増加でした
699:名無しさん@そうだ選挙に行こう
10/07/11 11:14:30
> while 型繰り返し
> #include <stdio.h>
ん~~~
700:名無しさん@そうだ選挙に行こう
10/07/11 11:26:33
>>696
C言語でかいた
#include<stdio.h>
#include<math.h>
int main(void){
int n = 0;
double fn;
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
printf("n = %d\n", n);
return (0);
}
701:名無しさん@そうだ選挙に行こう
10/07/11 11:41:33
math.hを使うことを宣言し マス! って言ってみたかった
702:名無しさん@そうだ選挙に行こう
10/07/11 11:53:54
>>697 さま
>>700 さま
有難うございました。無事解決できました。
また質問で申し訳ないのですが
while((fn=pow(1+1.0/n, n))<=2.71 || 2.72<=fn) n++;
↓
while((fn=pow((double)(1+1/n), n))<=2.71 || 2.72<=fn) n++;
のようにdouble型にキャストをすると実行中にエラーが出るのですが何故でしょうか?
703:700
10/07/11 11:56:42
>>702
ごめん
0 除算エラーだね
n の初期値を 0 から 1 に変更してちょ
704:名無しさん@そうだ選挙に行こう
10/07/11 11:59:42
>>702
n>=2 のとき
(double)(1+1/n)
は常に 1.0 になってしまうぞ
705:名無しさん@そうだ選挙に行こう
10/07/11 12:11:50
>>703
n=0→1でエラーはでなくなりました!
>>704
Googleさんで調べても分からなかったのですが
キャストするとなぜだめ(1.0になる)なのでしょうか・・・?
706:名無しさん@そうだ選挙に行こう
10/07/11 12:13:47
除数をキャストしてごらん。あるいはnをdouble型にする
707:名無しさん@そうだ選挙に行こう
10/07/11 12:33:26
>>706
割り算は整数だけではだめなのですね・・・。
最初から最後までご教授いただきありがとうございました。
#include <stdio.h>
double a = (double)1/2;
double b = 1/(double)3;
double c = 1/4;
printf("%f\n%f\n%f\n",a,b,c);
実行結果
0.500000
0.333333
0.000000
708:名無しさん@そうだ選挙に行こう
10/07/11 16:02:06
インチをセンチに変換するプログラムを作れという課題が出たのですが、わかりません!
明日の1限までに仕上げなければならないので、大至急お願いします!
下のところまでは書けたのですが、???のところがわかりません。
定数を掛けるというところまでは想像出来るのですが、何を掛けたらいいのか全然想像付きません。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
double to_cm(double in)
{
return in * ???;
}
int main(int argc, char *argv[])
{
double in;
char str[32];
if (argc > 1)
{
strncpy(str, argv[1], 31);
}
else
{
printf("input inch: ");
fgets(str, 31, stdin);
}
in = atof(str);
printf("%f [in] = %f [cm].\n", in, to_cm(in));
return 0;
}
709: ◆QZaw55cn4c
10/07/11 16:05:01
>>708
return in * 2.56
あと、
fgets(str, 31, stdin);
は
fgets(str, 32, stdin);
でいい。
710:名無しさん@そうだ選挙に行こう
10/07/11 16:07:24
>>709
出来ましたああああ!!!!!!!!111
先週出た課題でずっと悩んでたんですがこれで提出できそうです!
あとプログラムの問題点まで指摘してくださってありがとうございました。
それから、次からはちゃんとテンプレを守ります。すみませんでした。
711:709
10/07/11 16:08:05
>>708
失礼、
return in * 2.54;
だった。1 inch = 2.54 cm。
712:名無しさん@そうだ選挙に行こう
10/07/11 16:43:25
ちなみに、12インチ=1フィート=30.48cm、3フィート=1ヤード=91.44cm
これ豆知識な。マイルの計算もしっかり出来ないと、参るぜ?
713:名無しさん@そうだ選挙に行こう
10/07/11 16:45:13
∧_∧∩))
( ・∀・)彡 パーン!
((⊂彡☆∩ _, ,_
⊂(⌒⌒(;`Д´)
`ヽ_つ ⊂ノ ←>>712
714:名無しさん@そうだ選挙に行こう
10/07/11 16:50:16
>>713
まぁそうフィートアップするなよ
715:名無しさん@そうだ選挙に行こう
10/07/11 17:11:59
パンパンパーン
∧_∧ ∩
( ・∀・)彡☆
⊂彡☆))Д´) >>714
☆
716:名無しさん@そうだ選挙に行こう
10/07/11 18:26:12
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): URLリンク(imepita.jp)
画像のプログラムを下のEOFを探して処理を行う方法に書き換えてプログラムを実行せよ
また、input.dataの中身を10行未満にしても正常に動く事を確かめてみよ。
int counter=0;
while (!input_file.eof()){
input_file>>data[counter];
counter++
}
for(i=0;i<counter;i++)
output_file << data[i]*2 << '\n';
[3] 環境
[3.1] OS: linux
[3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。
717:名無しさん@そうだ選挙に行こう
10/07/11 18:29:40
[1] 授業単元: プログラム
[2] 問題文(含コード&リンク): URLリンク(imepita.jp)
画像のプログラムの九九表を以下の様に書き換えよ
1 画面に表示してた部分(coutの部分)をファイルに書き出す様にする
2 一番目のcoutにある''を','に変更する
3 出力ファイル名を"output.csv"とする。
この九九表が入っているファイルをExcelで読み込んで、九九表を見ることができるか確かめてみよ
[3] 環境
[3.1] OS: linux
[3.3] 言語: C++
[4] 期限: ([2010年7月11日22時まで]
[5] その他の制限:
なるべく簡単にしてください。お願いします。
718:名無しさん@そうだ選挙に行こう
10/07/11 19:19:51
>>693
URLリンク(kansai2channeler.hp.infoseek.co.jp)
719:名無しさん@そうだ選挙に行こう
10/07/11 22:01:05
>>717
URLリンク(kansai2channeler.hp.infoseek.co.jp)
720:名無しさん@そうだ選挙に行こう
10/07/11 22:46:43
[1]授業単元:プログラミング基礎
[2] 課題文:URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境:指定無し 言語C(なるべく)
[4] 9/1迄(夏期課題)
[5]意味がよくわからないので丸投げします
721:名無しさん@そうだ選挙に行こう
10/07/11 23:08:44
>>719
ありがとうございます。でも、このプログラムをコンパイルしても、
続行するには何かキーを押してください
で終わってしまいます
722:名無しさん@そうだ選挙に行こう
10/07/11 23:13:01
>>721
実行ファイルと同じところに、なにか新しいcsv ファイルが作成されていませんか?
723:名無しさん@そうだ選挙に行こう
10/07/11 23:15:40
>>20 といい >>720 といい、変な傾向の宿題が出るようになったものですね。
724:名無しさん@そうだ選挙に行こう
10/07/11 23:20:59
別に変でもないよ。処理の内面的な部分を知る課題だろ。
725:名無しさん@そうだ選挙に行こう
10/07/11 23:25:41
仕様をもとにプログラムを作成する、というのがまっとうだと思うんですが。
判じ物の問題は、「プログラム基礎」とか「暗号理論」という単元名とは全然違うのでは。
726:デフォルトの名無しさん
10/07/11 23:37:13
>>722
プログラムのコンパイルした時にExcelを開いておけばいいって事ですか
727:名無しさん@もう選挙は終わってるんで
10/07/11 23:37:20
>>725
それいうなら結局誰も答えなかったみたいだけど
>>234とかがある意味最もC言語の宿題っぽいw(けど学校の宿題としては
やはり不適なんだろなw)
728:デフォルトの名無しさん
10/07/12 00:04:27
>>722
実行ファイルと同じところに、Excelで保存したものがはいっているんですが、もしかしてそれですか
729:デフォルトの名無しさん
10/07/12 00:14:16
誰か716の問を助けてください
730:デフォルトの名無しさん
10/07/12 01:27:34
>>679
亀レスですみません
ありがとうございました
731: ◆QZaw55cn4c
10/07/12 02:39:35
>>716
単に指示通りにプログラムを入力しただけです。
URLリンク(codepad.org)
732:デフォルトの名無しさん
10/07/12 02:58:38
>>725
何が言いたいのかさっぱり分からんが、プログラムを動かしている電子機器の
基本的な仕組みも知らないでコードを書くとか・・・どれも基本は同じだし。
IFや数値を扱うにしても、もう既に実装されているコンピュータの仕組みが
大きく関与しているし。
733:デフォルトの名無しさん
10/07/12 03:01:15
>>732
>>20 >>720 のような出題を批判しているだけです。
734:デフォルトの名無しさん
10/07/12 03:02:17
>>720
っつか、学んだ内容が分かればヒントが得られるかもしれないが・・・
法則が分からん。511までで何か数字を弄れば気づくかもしれんが。
735:デフォルトの名無しさん
10/07/12 06:29:39
2進数にしたときに1の数が順番に増えていくのだけはわかった。
ソートの条件はさっぱりだが。
736:デフォルトの名無しさん
10/07/12 07:07:43
>>694お願いします。。。
737:デフォルトの名無しさん
10/07/12 08:16:55
順応性を高めなさい!そしてあるがままを受け止めなさい。
738:デフォルトの名無しさん
10/07/12 10:12:44
実験(数値実験、確認、解析)
システムプログラミング(アプリケーション実装)
マネジメント(ネットワーク構築 etc)
開発(OS,言語、処理系、ライブラリの整備)
教育(カルチャーの紹介)
....まだあるかも
ことコンピュータの世界(実世界に非ず)の教育を
単一言語で行うことには相当無理があるよな
739:デフォルトの名無しさん
10/07/12 10:34:43
そんなのだいたいCでやってるという現実。
740:デフォルトの名無しさん
10/07/12 11:02:57
まアセンブラを言語と考えるのならこれ以上に万能な
言語は無いな
741:デフォルトの名無しさん
10/07/12 11:03:01
だからCみたいな面倒な言語を経験しておけば他のスクリプト言語も
簡単に使えるという意図なんだろう
742:デフォルトの名無しさん
10/07/12 11:05:00
お前らのCに対する意見、気持ちはよーく分かった。だから早く
初めてのCもしてこい、なっ!
743:デフォルトの名無しさん
10/07/12 11:21:10
>>735
当たり前だろwww
744:デフォルトの名無しさん
10/07/12 11:34:36
>>738
Cが他の言語に対して圧倒的に強いのは
開発
だろな
教育できるような世界じゃないだろうけど
745:デフォルトの名無しさん
10/07/12 11:37:42
はい、Cなら色々と開発できます!
746:デフォルトの名無しさん
10/07/12 11:40:07
Cは非プログラミング言語で言うと英語みたいなもんだよ。
言語設計が優れてるか否かというよりも(まぁ優れてはいるんだろうが)、
みんなが使って、長い間使ったから、デカイ顔できるし信頼も置ける。
747:デフォルトの名無しさん
10/07/12 12:54:06
>>720
1 になっている bit の数を x とすると
x に対して昇順にするのが大前提
x%3==0 のとき数値で昇順
x%3==1 のとき数値で降順
x%3==2 のときが分からない
数値を昇順にソートし大きい方から使う
x=2 の場合だと逆順に見て
8 ? 7 ? 6 ? 5 ? 4 ? 3 ? 2 ? 1
こんな感じ
x=5 の場合だと逆順に見て
5 ? 4 ? 3 ? 2 ? 1 ? ? ? 4 ? 3 ? 2 ? 1 ? ? ? 3 ? 2 ? 1 ? ? ? 2 ? 1 ? ? ? 1 ? ? ?
こんな感じ
748:デフォルトの名無しさん
10/07/12 13:18:12
>>720 >>747 の条件分岐 x%3==0 と x%3==1 のときだけ実装
#include<stdio.h>
#include<stdlib.h>
int bit_count(int value){
int ret=0;
while(value>0){
ret+=value&1;
value>>=1;
}
return ret;
}
int num_cmp(const int *a, const int *b){
int a_bits, b_bits, ret=0;
a_bits=bit_count(*a);
b_bits=bit_count(*b);
if(a_bits<b_bits) return -1;
if(a_bits>b_bits) return 1;
if(*a<*b) ret=-1;
if(*a>*b) ret=1;
if(a_bits%3==1) ret=-ret;
return ret;
}
int main(void){
int num[4096], i;
for(i=0;i<4096;i++) num[i]=i;
qsort(num, 4096, sizeof(int), num_cmp);
for(i=0;i<4096;i++){
if(bit_count(num[i])%3!=2) printf("%d:%d\n", i, num[i]);
else printf("%d:???\n", i); // よく分からないので数値を出力しない
}
return 0;
}
749:デフォルトの名無しさん
10/07/12 13:40:45
1
乱数を使って計算機とじゃんけんをするゲームを作成せよ。
人間の入力はグーは0、チョ基は1、パーは2とし、勝ち、負け、引き分けの判定をすること。
乱数の初期設定のために srand((unsigned int)time(NULL)); を使うこと。
2
1を改良して0,1,2以外の値が入力されるまで繰り返し勝負を続けるものを作成せよ。
よろしくお願いします。
750:デフォルトの名無しさん
10/07/12 17:20:04
>>749
URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
751:デフォルトの名無しさん
10/07/12 18:47:31
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名:gcc
[3.3] 言語:C
[4] 期限:7月14日まで
[5] その他の制限:
お手数をおかけしますが、よろしくお願いします。
752:デフォルトの名無しさん
10/07/12 18:53:30
>>751(1)
i = left - 1; //(1)________
j = right + 1; //(2)________
753:デフォルトの名無しさん
10/07/12 18:57:22
>>751(2)
return a->height - b->height; // (1)______ /*高さで比較*/
qsort(a, N, sizeof(person_t), (int (*)(const void *, const void *))compare); // (2)___________________________);