ぼるじょあがC/C++の宿題を片づけますYO! 67代目
1 :
ぼるじょあ ◆yBEncckFOU :
2006/12/10(日) 11:33:41 (・3・)エェー ぼるじょあですYO!
わからない宿題を片づけますYO!
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
【質問者へ】
回答者の便宜のため、質問の際は以下を行うことを推奨します。
・質問は【質問テンプレ】を利用してください。
・問題文は、出題されたまま全文を書いてください。
・計算問題は数式をあげ、どのような計算をするのか詳しく説明してください。
・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
・後から問題に付け足しするのはやめましょう。付け足しは作業を無駄にしがちです。
・なりすましを防ぐため、トリップを使ってください。名前欄に、「#」に続けて任意の文字列を入力して
投稿すると、その文字列を知らない他人に騙られることを防ぐことができます。
【質問テンプレ】
[1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
[3.1] OS: (Windows/Linux/等々)
[3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
[3.3] 言語: (C/C++/どちらでも可 のいずれか)
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.htm 【C 関数検索 man on WWW】
http://www.linux.or.jp/JM/index.html 【前スレ】
ぼるじょあがC/C++の宿題を片づけますYO! 66代目
http://pc8.2ch.net/test/read.cgi/tech/1149349035/
(・3・) エェー 追加 【質問者へ】 ・満足のゆく解答がないまま依頼が埋もれてしまったときは、そのレスを示して注意を喚起しても構いません。 それでもだめならあきらめましょう。 ・ここに来る前にググりましょう。 ・C/C++がある程度使えるようになったらぼるじょあになって回答してください。 ・ぼるじょあを増やしましょう。
結局作ったのかよ。 どうしようもないやつだな。
(・3・) エェー キミも今日からぼるじょあだYO っ【ぼるじょあ#ぶるじょあ】
(・3・) アルェ〜次スレいらないって言ってたのに立てたのかYO!
6 :
ぼるじょあ ◆yBEncckFOU :2006/12/10(日) 12:52:47
(・3・) アルェ〜削除依頼も出さない人間にスレをどうこう言う資格は無いYO!
しょうがない。 こうなったら有意義なスレにしようじゃないか。
ぼる君おつかれ
ぼるじょあがんばれよ 応援してるぜ
(・3・) エェー あなじょあをどうにかすればまともなスレになるお
まともな話がしたい人はまともなスレへ移動して下さい ここを荒らすのは勝手だがまともな話は場違いです
(・3・) エェーまともなスレなんてあるのかYO! (・3・) ネタの話もいいよNE!
(・3・) エェー 宿題に答えてあげればいいだけですYO!
自分も参加してる某スレはまともなスレだと自負しています。 たまにちゃかしに来る人も居ますけどみんなスルーできてますね。 そこのみんなは或る共通意識(?)を持ってる気がします。
>>10 (;-3-) エェー もいらのせいにするのはいかがかと・・・
ちゃんと回答できずに名無しにまかせてる奴が偉そうなこと言うなお
w
(・3・) エェー まともに回答せずにケツの話しかしないキティガイが来たYO
前スレ 1000 :ぼるじょあ ◆yBEncckFOU :2006/12/09(土) 19:23:39 (・3・) エェー 100げっとずざー ゲットできなくて残念だったね。
20 :
デフォルトの名無しさん :2006/12/11(月) 17:38:54
[1] 授業単元:情報処理演習 [2] 問題文(含コード&リンク): 最後はワードでプログラム・実行結果をまとめます。 1、フィボナッチ数列の第N項を求めるプログラムを作れ(Nは代入) 2、x*x+x+1のグラフをプログラムを用いて作れ。 (ところどころの値を出してエクセルでグラフをつくるようです すいません ) [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:bcc32 (秀丸で作ります) [3.3] 言語: C [4] 期限:[12月13日3:00まで] [5] その他の制限:繰り返し(forとか)、配列、関数までやりました。
(・3・) アルェ〜空気読めYO!
>>19 (^3^) エェー もいらが1000もらっちゃったお
1000 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2006/12/10(日) 01:21:31
1000
>>20 #include<stdio.h>
#include<stdlib.h>
#define N 10
int func(int n);
int main(void){
printf("%d\n", func(N));
return EXIT_SUCCESS;
}
int func(int n){
if(n== 1 || n== 2)return 1;
return func(n-1) + func(n-2);
}
#include<stdio.h>
#include<stdlib.h>
#define MIN 0.0
#define MAX 10.0
#define SPAN 0.1
int main(void){
double cnt;
for(cnt=MIN; cnt<MAX; cnt+=SPAN){
double ans;
ans = cnt*cnt+cnt+1.0;
printf("x = %f y = %f\n",cnt, ans);
}
return EXIT_SUCCESS;
}
24 :
19 :2006/12/11(月) 21:33:55
>>24 (・3・) エェー それももいらだお、1000のつもりが100と書いてしまったお
ぷータンとゆうこりんと大沢あかねたんをアナ○調教して4Pやりたいお
一応最高はノンストップ4回戦まではがんばれるし一人1回は満足させられるお
でもさすがに4回戦はたれるしおてぃんぽが麻痺してくるし
20時間くらいベッドから起きられなかったお
(トイレの時に移動するくらいで)
>>23 (・3・) エェー Cを昔から触ってる頭の硬いじじいみたいにEXIT_SUCCESS使ってんじゃねーお豚
せいぜい使ってもEXIT_FAILUREくらいだお
(・3・) エェー あとわざわざfor文のループ変数をcntとご丁寧に意味づけしてるところもかわいいね まあ一番ひどいforLoopCounterみたいにやたら長い名前をつけるやつよりはいいけどお
(;^3^) エェー まああまりつっこみたくないけどループを小数で回すというのもまたすごいおw 使い方によっては誤差が生じるということも忘れずに、だお
確かに誤差は出るかも 高校の時に数値計算か何かの実習で習ったけど理由は忘れたな・・・
>>30 #include <stdio.h>
#include <string.h>
int main( void )
{
double a, b;
char c;
char* ptr = " +-*/";
int t;
while( 1 ) {
printf( "0:無指定 1:加算 2:減算 3:乗算 4:除算 5:終了-> " ); scanf( "%d", &t );
if( t == 5 ) break;
printf( "式入れれ\n" ); scanf( "%lf%c%lf", &a, &c, &b );
if( ! t )t = strchr( ptr, c ) - ptr;
if( t < 1 && t > 4 || ptr[t] != c ) {
printf( "却下\n" );
continue;
}
switch( t ) {
case 1: printf( "%lf + %lf = %lf\n", a, b, a + b ); break;
case 2: printf( "%lf - %lf = %lf\n", a, b, a - b ); break;
case 3: printf( "%lf * %lf = %lf\n", a, b, a * b ); break;
default: printf( "%lf / %lf = %lf\n", a, b, a / b ); break;
}
}
return 0;
}
33 :
31 :2006/12/12(火) 02:00:37
>>32 今答えを書いたばかりなのだが...
ソース読んでも理解できないのなら、何が疑問か書くように。
ちなみに例題に倣って書いたのだが、
scanf( "%lf%c%lf", &a, &c, &b );
の様な用法は問題が多い。例えば 10.0 + 20.0 の様にスペースを空けただけで求める入力が
得られない。
34 :
30 :2006/12/12(火) 02:17:55
>>31 ありがとうございます
疑問があるのは四則演算を選択するときに文字での判別はできないのか、ということと
書いていただいたソースで終了の5を入力して確認してみたところ
抜け出さないのですがどうしたら処理を抜け出す終了判定にできますでしょうか?
35 :
30 :2006/12/12(火) 02:31:13
すみません 自分の間違いでした 5での抜け出し処理は大丈夫でした 最大の疑問は四則演算を選択するときに数字ではなく文字での判定はできないのでしょうか?
マルチポストの投稿間隔が1分半ってのもすごいな 最初からマルチする気満々じゃねーか
37 :
31 :2006/12/12(火) 03:37:35
>>30 文字から数字に変換するなら以下みたいな感じ。
int func( char* str, char c )
{
char* ptr;
ptr = strchr( str, c );
if( ! ptr ) return -1; // Error
return ptr - str;
}
呼び出し側
int t;
char c;
scanf( "%c", &c );
t = func( "?abcdq", c );
これで ?abcdq に対応して 0 〜 5 が t に代入される。
何処に組み込めば良いかくらいは解るよね。
if( ! ptr )はやめようぜ
じゃあ、 if(ptr != '\0') で
strchr()の返却値ってchar型だったっけ?
41 :
37 :2006/12/13(水) 01:55:50
>>38 何故?久しく "== 0" って書いたことないお。
>>40 char* だと記憶するが何か?
面倒だからよく!ptrを使う 使っちゃいけない理由解説してくれ
>>39 NULLが偽じゃない可能性を考えてるの?
C/C++ユーザーはデータは全てビットパターンだと考えているから、 記述を省略できるなら意味論など気にしないってスタンスが目立つ。 でも、本当にそれでいいの?
ぜんぜん宿題こねえええええ ぼるじょあさんの腕がなまってしまわないか心配だ
>>26 (・3・) エェー それ好きなのにお
>>27 (・3・) エェー iとか1文字は秋田んだお
>>28 (・3・) エェー これはリアルに忘れてたYO
ごめんYO
フィボナッチで再帰使うなよ
>>49 (・3・) エェー 宿題ならいいではないKA
あんまり大きい数字は入れないでねってことで
51 :
デフォルトの名無しさん :2006/12/13(水) 22:18:39
>>45 だから ptr は char* で宣言してるだろ。
俺のブラウザと違う見え方してるのか?
>>45 >char*と分かっていながら(ry
略せずに全部書いてくれない?
何が言いたいのか自分もわからないし気になる。
char*とcharを比較してるってこと?
55 :
デフォルトの名無しさん :2006/12/14(木) 12:16:37
[1] 授業単元:コンピュータ・サイエンス [2] 問題文(含コード&リンク): テキストファイル「myfile.txt」を読み込み、文末にcinで入力した文字列を書き足すプログラムを作成せよ [3] 環境 [3.1] OS:Windowsxp [3.2] コンパイラ名とバージョン:BCC [3.3] 言語: C++優先だがどちらでもOK [4] 期限: 2006年12月16日 [5] その他の制限:なし
>>53 char* ptr に対して if( ! ptr ) が気に食わんのかなぁ。
だとすると
>>40 が意味不明なんだが。
『NULLが非0の可能性も有る』って書いてくれれば『そんな環境は今のところは無い』って
答えるんだけど。
そもそもNULLを非0にするご利益が浮かばないんだよなぁ...
>>54 char* と char を比較してる?
>>55 読み込む必要無いんじゃない?
fopen( path, "at" ) で開いて入力した文字列を書き込めば良いだけだと思うけど。
58 :
デフォルトの名無しさん :2006/12/14(木) 13:19:18
>>57 ofstreamを使用しても同じことはできますか?
>>55 #include <iostream>
#include <fstream>
#include <string>
int main()
{
using namespace std;
const char* file_name = "myfile.txt";
//追加書き込みモード+シーク可能状態でファイルオープン
ofstream out(file_name, ios_base::out | ios_base::ate);
if (!out.is_open()) {
out.open(file_name); //ファイルが見当たらない場合は新規作成
if (!out.is_open()) {
cerr << "Can't open txt file¥n";
return 1;
}
}
string s;
cin >> s;
out << s;
return 0;
}
ぼるじょあさんがんばれ
60 :
デフォルトの名無しさん :2006/12/14(木) 17:49:34
>>56 みんなが突っ込んでるのは、
>>39 だと思うよ。
ptr !='\0'
↑
これ、ptrがcharじゃなきゃ成り立たなくない?
ptr[0]ならわかるけど。
61 :
デフォルトの名無しさん :2006/12/14(木) 18:13:55
>>39 もしかして'\0'とNULLって必ず同じなの?
>>60 自分もそう思ったけど・・。
'\0' = ナル文字 = すべてのビットが0のバイト
「ゼロと評価される汎整数定数式を空ポインタ定数と呼ぶ。」 (JIS X 3014:2003 4.10) X 3010:2003 6.3.2.3にもほぼ同じような規定がある。 ただしこちらはそれをvoid*にキャストした式も空ポインタ定数に含めている。 '\0'はCではint、C++ではcharになるが共に整数型であることに変わりはなく、 ptr !='\0'はptrがポインタ型でもptrがヌルポインタか比較する有効な式になる。
ナルポど
>>60 >>37 に対するレスだと思ってた。
>>39 俺じゃねぇし...
そもそも if( ! ptr ) を if( ptr != '\0' ) じゃ動作が反対じゃん。
ちゃんとアンカー付けなよ。話が噛み合わない。
つまり、プログラムも2chのレスも紛らわしい書き方はやめよう、ということだな。
68 :
60 :2006/12/15(金) 02:48:19
>>63 一つ賢くなった。ありがとう。
ポインターと'\0'の比較って、出来るんだね。
>>65 そんな愚痴、俺に言われても困るがな(´・ω・`)
二度目以降の書き込みから、名前欄に最初のレス番入れときゃ済んだ話でしょ。
突っ込み入れてんのも、一人じゃないだろうしさ。
俺も、60がここでの初書き込み。
>>39-40 の流れは、どうみても40は39へのレスでしょ。どの書き込みへのレスだと、思い込んだの?
結局!ptrはスタイルの違いだけかよ わかりずらいような箇所はコメントつけてるつーの
70 :
デフォルトの名無しさん :2006/12/15(金) 11:05:11
[1]授業単元:プログラミング演習 [2] 問題文(含コード&リンク) 1)直線回帰の式を導出せよ。 2)決定係数の式を導出せよ。 3)1)の式を用いて「汎用性の高い直線回帰を行うプログラム」を開発せよ。 4)3)で開発したプログラムに2)の決定係数を算出する式を加えよ。 [3.1] OS: XP [3.2] コンパイラ名とバージョン: gcc3.4 [3.3] 言語:C [4] 期限: 2006.12.18 [5] その他の制限: とくになし お手数かもしれませんが、よろしくお願いします・・・!
>>69 Lvの低い厨房が他人を見下したくて因縁つけてるんだ。
だから、気にするな。
72 :
◆jrVK/pjl0Q :2006/12/15(金) 11:41:31
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):√xの定積分(積分範囲0〜1)をモンテカルロ法を用いて 計算せよ。ただし、生成点数が10万点と1千万点の場合について計算する。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 2.96 [3.3] 言語: C [4] 期限: 2006年12月18日 [5] その他の制限: とくにありません よろしくお願いいたします。
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 宝くじの抽選番号のあたり調べをし結果を表示するプログラムを作成 最初に当選番号を入力し、買った宝くじの番号を入力しあたりかはずれか表示する [3] 環境 [3.1] OS: Windows [3.3] 言語: C [4] 期限: 来週の月曜日 [5] その他の制限: ・バラ・連番より選択可にする ・連番の場合先頭の番号を入力するだけにする ・枚数チェック、文字チェックを行う。数字以外は入力できないようにする ・上位の等が当たったら下位の等は当たらない ・繰り返し入力できるように何かキーを入力したら終了できるようにする ・買った宝くじは何度でも入力できるようにする
>>48 (・3・) エェー さすがhomoじょあ氏、大人の対応だお
ちなみにもいらはガキみたいにいろいろ文句行ってみたお
>>49 何で?
(・3・) エェー ところで再帰の使い方(使い道)を知らない、または 使えないプログラマは多いみたいだね ・・・まじですか
(・3・) エェー 漸近式をまんまプログラムに起こせるから普通に使うけどね まあ家庭狂死していたころに数学教えていた合間の休憩で 自称学生プログラマにソース見せたら悩んでいたおw というか再帰使わないで漸近式をコンピュータプログラムにした方が わかりにくいと思うお
>75 >あんまり大きい数字は入れないでね 75≠76だよな? じゃなきゃ76の発言は冗談にしかならんぞ。
(・3・) エェー はっきり家よぼけ
(・3・) エェー ああ、理解した そりゃまああまり大きな数字はだめなのは当然のことだお 文句言うならはっきり言おうね〜ぼくぅ 何て煽ってみたりするわけですが
(・3・) エェー 新しい部下(といっても派遣社員だが)が入ってきたお ぷータン似で顔だけでなく勝ち気な性格も似てるお 横顔(というよりちょっと正面向きの)がとてもかわいく 口が少女のようにぷっくりふくらんでいて首に巻いたスカーフが 愛らしいお
失礼、レスする場所を間違えたお
ぼるじょあ語とVIP語が混ざりすぎだろ
フィボナッチは再帰を使うべきでないかなり有名な事例だと思ったけど、そうでもないのか? >79 使うべき所とそうでない所がわかってないと、再帰の使い方がわかってるとは言えない。 それぐらいなら全く使わない方がまし。
〃∩∧_∧ ⊂⌒( ・3・) はいはいフィボナッチ博士フィボナッチ博士 `ヽ_っ⌒/⌒c ⌒ ⌒ ∧_∧ ⊂(# ・3・) うざいしみんなの迷惑だから他所でやれお!! / ノ∪ し―-J |l| | 人ペシッ!! __
フィボなんかどうでもいい はい、次の質問どうぞ
87 :
デフォルトの名無しさん :2006/12/16(土) 16:20:30
(●・3・●) エェー 吐くのはあんまり体に良くないYO
(・3・) エェー おたふく風邪かお
(・3・) エェー ちょっと気に入っちゃっただけですお
93 :
デフォルトの名無しさん :2006/12/16(土) 21:03:12
(・3・) エェー もいらに例はなしかお ふざけんな
95 :
デフォルトの名無しさん :2006/12/16(土) 21:30:43
(・3・) カンマ編集は?もいら風邪ひいた...
int comma_format(long value, char *buf) { long value_abs, value_div; value_abs=abs(value); for(value_div=1;value_abs/value_div>=1000;value_div*=1000) ; sprintf(buf, "%ld", value/value_div); for(value_div/=1000;value_div>0;value_div/=1000) sprintf(buf, "%s,%03ld", buf, (value_abs/value_div)%1000); return 1; }
┐(´3`)┌ エェー
>>97 きみの混乱具合が伺えるお
もう少しシンプルにできんかね、これはキミへの課題だお
明日の20時頃に股来るからそれまでにちゃんと第2版作っておけお
もいらは彼女の看護で疲れたから美少女便器2でも見ながら寝るお
>>94 ごめんなさい。もちろん
>>95 さんにも感謝してます。
アンカーつけ忘れorz
(・3・) エェー 100
int comma_format(long value, char *buf) { char temp[20]; int i, temp_len; if(value<0) *buf++='-'; sprintf(temp, "%ld", labs(value)); temp_len=strlen(temp); for(i=0;i<temp_len;i++) { *buf++=temp[i]; if((temp_len-i)%3==1) *buf++=','; } buf[-1]='\0'; return 1; }
>>100 あ、今度は100ゲトしてる。おめでとう。
(・3・) エェー 100だけじゃなく次も1000狙うお
>>101 きみの混乱具合が伺えるお
*(buf-1)に'\0'を入れる理由を答えろお
comma_format()呼び出し元に特殊な引数渡しを要求する仕様かお?
もう少しわかりやすい仕様で作り直すよう希望するお
int main(void){ char buf[20]; comma_format(1000, buf); printf("%s\n", buf); return 0; }
#include <stdio.h> #include <string.h> #include <stdlib.h> char * addStringFromIntWithComma(char * buf, int val) { char * p; if (val < 0) { p = strchr(buf, '\0'); p[0] = '-'; p[1] = '\0'; return addStringFromIntWithComma(buf, -val); } if (val >= 1000) { p = addStringFromIntWithComma(buf, val / 1000); return p + sprintf(p, ",%03d", val % 1000); } p = strchr(buf, '\0'); return p + sprintf(p, "%d", val); } void putStringFromIntWithComma(char * buf, int val) { buf[0] = '\0'; addStringFromIntWithComma(buf, val); } int main(int argc, char **argv) { if (argc > 1) { char buf[100]; putStringFromIntWithComma(buf, atoi(argv[1])); puts(buf); } return 0; }
106 :
デフォルトの名無しさん :2006/12/17(日) 18:11:11
[1] 授業単元: プログラミング [2] (1) 0 が入力されるまで正整数を読み込み、最大値、(最後の0 を除いた)最小値、全入力数値の平均(最 後の0 を含めず) を出力するプログラムを作りなさい。 (2) 正整数を入力し、それをローマ数字で表示するプログラムを作りなさい。 例: 1 I 3 III 4 IIII (またはIV) 5 V 12 XII 46 XXXXVI 73 LXXIII 111 CXI 378 CCCLXXVIII 521 DXXI 1001 MI [3] 環境 [3.1] OS: Windows [3.3] 言語: C [4] 期限: 月曜日 [5] その他の制限:できるだけ簡単で理解できるやつをおねがいします。
>>107 (2)番だけ
#include<stdio.h>
typedef struct tag_roman_number{
char *symbol;
int value;
}roman_number;
void print_roman_number(int value){
roman_number num_list[]={
{"M", 1000},
{"D", 500},
{"C", 100},
{"L", 50},
{"X", 10},
{"V", 5},
{"I", 1},
};
int i;
for(i=0;i<(sizeof(num_list)/sizeof(num_list[0]));i++){
while(value>=num_list[i].value){
printf("%s", num_list[i].symbol);
value-=num_list[i].value;
}
}
}
int main(int argc, char *argv[]){
int i;
for(i=1;i<argc;i++)
print_roman_number(atoi(argv[i])),printf("\n");
return 0;
}
110 :
109 :2006/12/17(日) 19:31:55
>>107 >>109 を下のとおり変更してね
{"V", 5},
{"I", 1},
↓
{"V", 5},
{"IV", 4},
{"I", 1},
>>109 ぼるじょあになってみては?
スレタイもそうなってるし
お前モナ
>>109 難しいです
簡単なやつじゃないとわかりません
王
割り込まれた王(^ω^;)
117 :
109 :2006/12/17(日) 19:58:09
分かりやすく書いたつもりだったのに…orz どこが分からないのか教えて
>>117 ほんとにほとんどわかりません、、、
出来れば説明を右につけてください、、
119 :
109 :2006/12/17(日) 21:41:44
構造体を使ったのがマズかった 気が向いたら別解でも考えるよ
(・3・) エェー
>>109 くんがわかりにくいと言われているのは
for文の条件や関数の引数のなかでごちゃごちゃ計算したり
さらには冗長な変数名が拍車をかけているんだお
そこんところをちゃんと理解してね
(・3・) エェー 例を挙げるとこことかね for(i=0;i<(sizeof(num_list)/sizeof(num_list[0]));i++){ print_roman_number(atoi(argv[i])),printf("\n"); 特にfor文の条件で変化しないと分かっているのであれば sizeof()はあらかじめ計算してメモリにおいておくべきだお 何で毎回計算する必要があるの? 処理速度云々言うつもりはないけど毎回計算する必要はあるの? わかりにくいよ よって3点
(・3・) エェー もいらが回答してやれそうな問題けっこうあったみたいだけど homoじょあ氏と名無し氏が回答してくれたみたいでまたまた もいらの出番が無かったお そろそろ風呂入ってアナル破壊3でも見ながら寝るお
>>119 ぜっ是非おねがいします
留年がかかってます(笑
留年がかかってるのか。 そりゃぁいい。 留年してしまえ。
>>107 (1)番
#include<stdio.h>
int main(void){
int number, maximum, minimum, count, total=0;
for(count=0;;count++){
printf("自然数を入力してください (0で終了):");
scanf("%d", &number);
if(number<=0) break;
if(count==0){
maximum=number;
minimum=number;
}
if(number>maximum) maximum=number;
if(number<minimum) minimum=number;
total+=number;
}
if(count==0) return 1;
printf("最大値:%d\n", maximum);
printf("最小値:%d\n", minimum);
printf("平均値:%f\n", (double)total/count);
return 0;
}
if(number>maximum) maximum=number; if(number<minimum) minimum=number; total+=number; } if(count==0) return 1; この辺をご説明ねがえませんでしょうか? あと printf("平均値:%f\n", (double)total/count) は何を表しているのでしょうか?
>>128 >if(number>maximum) maximum=number;
numberがmaximumよりも大きければnumberをmaximumに代入。
つまり最大値を得る。
>if(number<minimum) minimum=number;
これは最小値を得る。
>total+=number;
totalにnumberを加算する。つまり入力された数の合計を求める。
>if(count==0) return 1;
正数が全然入力されずにいきなり0が入力されたら
最大値も最小値も平均も求められないのでプログラムを終了する。
>printf("平均値:%f\n", (double)total/count)
画面に平均値を表示する。
%fはこの部分を平均値の数字(小数)で置き換えるって意味。
>(double)total/count
これはtotal(整数しか扱えない型)を小数を扱える型に変換して入力された数の個数で割る。
if(number>maximum) maximum=number; ←入力した数値が今までの最大値よりも大きいとき最大値を更新する if(number<minimum) minimum=number; ←入力した数値が今までの最小値よりも小さいとき最小値を更新する total+=number; ←入力した数値の総和を計算する } if(count==0) return 1; ←自然数が一回も入力されていなかったら途中で終了する count は自然数を入力した回数 (平均)=(数値の総和) / (数値の個数) あと、留年は避けられないかも
>>129 >>130 ありがとうございます
留年は避けられないかも
その一言かなりくらいました
二問目わかりやすくおねがいします、、、
>131 これならわかるか? #include <stdio.h> int main(void) { int i, j, n; char roman[7] = {'M','D','C','L','X','V','I'}; int num[7] = {1000, 500, 100, 50, 10, 5, 1}; scanf("%d", &n); for(i=0; n; i++) { for(j=0; j<n/num[i]; j++) putchar(roman[i]); n %= num[i]; } return 0; }
>>132 一応横に説明つけてもらえませんか^^;
>>133 まず自分でつけてみてよ。
間違ってれば教えてあげるからさ。
>>134 すみません
やってみます
#include <stdio.h> おまじない
int main(void) void?
{
int i, j, n; 箱を用意する
char roman[7] = {'M','D','C','L','X','V','I'}; ローマ字を用意する?
int num[7] = {1000, 500, 100, 50, 10, 5, 1}; num?七つの数字を用意する?
scanf("%d", &n); nを読み込む
for(i=0; n; i++) { iを0から1ずつふやして
for(j=0; j<n/num[i]; j++) putchar(roman[i]); その時jを1つずつ増やして、、putcharがわかりません
n %= num[i]; nをnum[i]で割った余りをまた戻す?
}
return 0;
}
ローマ数字の 9 って IX って書かない?
139 :
デフォルトの名無しさん :2006/12/18(月) 15:05:27
[1]プログラミング演習 [2]次に示すデータに関して以下の計算を行え 一次式に当てはめてその式を示す。同時に2乗累積誤差Eを求める。 二次式に当てはめ上と同じことを行う。 [3.1]Windows [3.2]bcc32 [3.3]どちらでも可 [4]2006年12月22日 [5]ガウスジョルダン法を用いて計算する。 x -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6 y 13.4, 7.2, 2.7, 1.2, 0.6, 3.1, 6.9, 12.5, 20.8, 31.7, 44.0
(・3・) エェー 両方とも意味がわからないからできないYO 最大経路の意味がわからないYO xとyの数値をどう1次式、2次式にするのかわからないYO
>>140 >>70 も同じ内容の要件だ。最小二乗法は 70 レスおきに発生するのか?
>>73 で書いたけどそれ大変だからここでは回答を得られないと思うぞ。
ここ見てる暇があったらググれ。サンプルソースも見つかると思うぞ。
143 :
デフォルトの名無しさん :2006/12/18(月) 23:30:53
>>107 (1)番
#include <stdio.h>
なんとなくif文とbreak文削ったの作ってみた。
他意はない。
int main(void)
{
int i=0,min=0,max=0,count=-1;
double sum=0;
do{
sum += i;/*sum=sum+iと同じ sumには入力された整数の合計を入れておく*/
if(i<min) min=i; /*もし、minよりもiが小さかったら、minにiの値を代入 */
if(i>max) max=i;/* 上の逆版 */
scanf("%d",&i);/*数値を読み込む*/
count++;/*count = count+1と同じ 何回目の入力かを数えておく(平均値を出すため)*/
}while(i);/*読み込んだ値が0でなければ続ける */
printf("最大値=%d 最小値=%d 平均値=%lf\n",max,min,sum/count);
return 0;
}
144 :
シロート :2006/12/18(月) 23:36:08
すみません、板違いかも知れませんが分かる方教えてください。 私、最近仕事でpicを多少触るようになったのですが、 書き込み済みのデータをプロテクトだけする方法ってございますか? 仕事上1日何百という基板を検査し、 出荷しておりますが、その基板のpicにプロテクトをかけて 出荷しなければなりません。が、オペレータが聞き込みの際に プロテクトなしで書き込みを行ってしまって動作検査へ進んでしまいました。 今からプロテクトありで書き込んでいたら動作検査手番上出荷に間に合いません。 中データはそのままにプロテクトだけ書き込む事は不可能でしょうか? データをそのままにプロテクトだけかける事が出来れば、再動作検査は 免れます。同一データをプロテクトありで書き込むのが一番簡単な方法 かもしれませんが、データを書き込んだら書き込み不良を防ぐため、 必ずべリファイで確認し、その後動作検査をしなくてはなりません。 どなたか助けてください。
146 :
デフォルトの名無しさん :2006/12/19(火) 00:18:24
っぽいね アセンブラスレか、ハード板のほうが良いような気もするが。
1] 授業単元:プログラム演習 [2] 問題文(含コード&リンク):ラプラシアンフィルターを実現させる関数laplacianを作成せよ void laplacian (int data[][Y_SIZE][3],int width,int height); また、3点を与えると三角形を描く関数riangleを作成せよ。y1<y2<y3と仮定してよい void triangle(int data[][Y_SIZE][3],int x1,int y1,int x2,int y2,int x3,int y3); main関数を以下のようにせよ void main{ int image [X_SIZE][Y_SIZE][3]; init_image(image,X_SIZE,Y_SIZE); triangle(int image[][Y_SIZE][3],64,5,120,30,20,100); save_bmp("temp1.bmp",image,X_SIZE,Y_SIZE); laplacian(image,X_SIZE,Y_SIZE); save_bmp("test2.bmp",image,X_SIZE,Y_SIZE); } [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:12月22日
149 :
139 :2006/12/19(火) 14:25:49
>>最大経路の意味がわからないYO 一番得点が高くなる経路です(迎撃可能→迎撃可能な道を通って) ”最大の得点が得られる経路”ですね、すみません まだ不明な点があったらご指摘お願いします
150 :
45 :2006/12/19(火) 14:38:16
シェーカーソートで昇順に並べるプログラムをおねがいします。後移動回数もわかるやつでお願いします。
>>144 (・3・) エェー もうおそいかもしれんけど
無理に決まってるお
ちゃんとプロテクトビットはデフォルトONで書き込むようにと
馬鹿オペレータを躾けようね
(・3・) エェー
>>147 読みやすいようにちゃんと折り返し付けてくれないと答えてやれないお
72文字で折り返ししろとは言わないけど80文字くらいでちゃんと改行コード
入れてくれお、こういう気遣いができない奴は大抵答えだけ聞いて感謝の気持ちモナしに
礼もせずおさらばするのは目に見えているので答えてやらないお
>>148 ラプラシアンフィルタっていうと画像処理のエッジ検出でつかうやつかお?
作ったことあるけどその問題のプロトタイプともいらがイメージするラプラシアンフィルタの
プロトタイプがいまいち一致しなくて回答できないお、すまんお
>>150 (・3・) エェー はじめてきいたソートアルゴリズムだお
つーかソートなんてわざわざコード組むのなんてまんどくさいし
はっきりいって回答する気にもなれんお
大学の教授はなんでいつもつまらん馬鹿課題しかださんのだろうね
誰か面白い課題を頼むお
>>149 (・3・) エェー 波動砲は縦方向に一直線かお?
それともナナメOKかお?
ナナメありだとしたら考えるのは前方180度だけ?
それとも全方位?
156 :
139 :2006/12/19(火) 21:07:01
>>155 波動砲考えると難しくなるのでまずは自機無敵で体当たりのみで倒す方法にしました
後、敵もまっすぐ落ちてくるだけで弾は打ってきません
157 :
147 :2006/12/19(火) 21:36:30
>>156 (・3・) エェー 体当たりの方法は?
どうとでも動いていいのか・・直線のみか・・・ナナメもOKか
159 :
139 :2006/12/19(火) 22:07:49
>>158 どう動いてもいいです。自機も敵も今のところ点で考えてますので
点が重なったら体当たり成功ということで
つまり迎撃範囲が円錐状に広がっていくってことでFAですよね?
160 :
t_n :2006/12/19(火) 23:22:10
[1] 授業単元: プログラミング [2] 問題文:ある打撃点から目標に向かって的狙いを行い、命中させるゲームプログラムを作成せよ。 打撃点から目標までの距離、障害までの距離、障害の幅と高さ、および風速を初期設定条 件とし、ゲームを行う者には、目標までの距離と風速のみが知らされる。打撃点からの玉 の発射角、初速を設定すると、玉到達距離を計算し、目標点との差を表示する。 到達距離は x=(Vocosθ+W)t=Vxt y=Votsinθ -gtA/2=Vgt-4.9tA A=二乗の事です。 障害を越えること、そして、障害を越えたときの打撃距離を計算し、目標との差を表示する ようにする。障害を越えなければ、障害激突などと表示するようにする。 です。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: VC 6.0 [3.3] 言語:C++ [4] 期限:できるだけ早めでお願いします。 [5] その他の制限:ありません。
>>159 (・3・) エェー とりあえず近いところ狙えばいいのかNA?
明日、会社で考えとくYO
162 :
139 :2006/12/20(水) 01:14:48
>>161 ありがとうございます!
どうやってもいいからとりあえず最大得点を得られる経路が
見つかればいいです>< お願いします!!!
163 :
t_n :2006/12/20(水) 09:39:51
>>161 近くでもいいです。
よろしくお願いします。
164 :
139 :2006/12/20(水) 10:03:01
↑???
>>163 ≠139です^^
139=159より
165 :
t_n :2006/12/20(水) 10:08:39
166 :
デフォルトの名無しさん :2006/12/20(水) 10:13:56
1] 授業単元:プログラム演習 [2] 問題文(含コード&リンク):ラプラシアンフィルターを実現させる関数laplacianを作成せよ void laplacian (int data[][Y_SIZE][3],int width,int height); また、3点を与えると三角形を描く関数riangleを作成せよ。y1<y2<y3と仮定してよい void triangle(int data[][Y_SIZE][3],int x1,int y1,int x2,int y2,int x3,int y3); main関数を以下のようにせよ void main{ int image [X_SIZE][Y_SIZE][3]; init_image(image,X_SIZE,Y_SIZE); triangle(int image[][Y_SIZE][3],64,5,120,30,20,100); save_bmp("temp1.bmp",image,X_SIZE,Y_SIZE); laplacian(image,X_SIZE,Y_SIZE); save_bmp("test2.bmp",image,X_SIZE,Y_SIZE); } [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:12月22日
167 :
デフォルトの名無しさん :2006/12/20(水) 10:21:03
>>166 の期限12月22日と書きましたが12月24までにお願いします
169 :
デフォルトの名無しさん :2006/12/20(水) 10:28:39
マルチメディア系の処理かってこと。
171 :
デフォルトの名無しさん :2006/12/20(水) 11:10:31
マルチメディア系の処理ではないです
東鳩の(テラナツカシスw
173 :
デフォルトの名無しさん :2006/12/20(水) 15:45:17
1] 授業単元:プログラム演習 [2] 問題文(含コード&リンク):ラプラシアンフィルターを実現させる関数laplacianを作成せよ void laplacian (int data[][Y_SIZE][3],int width,int height); また、3点を与えると三角形を描く関数riangleを作成せよ。y1<y2<y3と仮定してよい void triangle(int data[][Y_SIZE][3],int x1,int y1,int x2,int y2,int x3,int y3); main関数を以下のようにせよ void main{ int image [X_SIZE][Y_SIZE][3]; init_image(image,X_SIZE,Y_SIZE); triangle(int image[][Y_SIZE][3],64,5,120,30,20,100); save_bmp("temp1.bmp",image,X_SIZE,Y_SIZE); laplacian(image,X_SIZE,Y_SIZE); save_bmp("test2.bmp",image,X_SIZE,Y_SIZE); } [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:12月24日
来た。同じスレでマルチ。
175 :
デフォルトの名無しさん :2006/12/20(水) 19:17:13
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):文字列操作 data[1][256] = {"abc def,,,,,ghi", " qwert, , , , ,yuiop "}; char finder = ','; //検索用文字 をstrchr()とmemset()とmemcpy()を用いて ,をのぞいた文字列数と結合文字列(abcde f g)を出力させたいです。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Virtual C++6.0 [3.3] 言語: C++ [4] 期限: 12月26日 [5] その他の制限: strchr(),memset(),memcpy()を必ず使用する
制限がなければすぐ解ける問題なのに残念
>>164 (・3・) エェー 結局仕事忙しくてどっちにしろ近く狙うしか考えてないんだけどお
・・・・迎撃可不可の条件がいまいちわかんないんですがYO
(・3・) エェー もしかして自機は自由に動けるけど 敵さんはZ軸方向に落ちてくるだけで 自機と敵のスピードは同じってことかNA?
>>180 (・3・) エェー OKそれでやるYO
面倒&時間無いから敵の位置とか初期化しちゃうYO
183 :
デフォルトの名無しさん :2006/12/21(木) 18:16:39
1] 授業単元:プログラム演習 [2] 問題文(含コード&リンク):ラプラシアンフィルターを実現させる関数laplacianを作成せよ void laplacian (int data[][Y_SIZE][3],int width,int height); また、3点を与えると三角形を描く関数riangleを作成せよ。y1<y2<y3と仮定してよい void triangle(int data[][Y_SIZE][3],int x1,int y1,int x2,int y2,int x3,int y3); main関数を以下のようにせよ void main{ int image [X_SIZE][Y_SIZE][3]; init_image(image,X_SIZE,Y_SIZE); triangle(int image[][Y_SIZE][3],64,5,120,30,20,100); save_bmp("temp1.bmp",image,X_SIZE,Y_SIZE); laplacian(image,X_SIZE,Y_SIZE); save_bmp("test2.bmp",image,X_SIZE,Y_SIZE); } [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:VC [3.3] 言語:C++ [4] 期限:12月24日
またラプラシアンか
誤爆だそうです
ここに貼っておきますね
686 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2006/12/21(木) 21:30:41
(・3・) エェー 大沢あかねたんととアナ○セックスしたいなあ・・・切実だお
最低で250万までなら余裕で出せるお
肛○のなかに発射してしばらく挿入したままで余韻を味わって
最後に中に放尿して引き抜いたそれをあかねたんの口できれいに
掃除して貰いたいお・・・はあ・・・。
688 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2006/12/21(木) 21:32:01
(・3・) エェー
>>686 誤爆だお、すまんお
>>685 パーズw
187 :
139 :2006/12/22(金) 04:22:23
どなたか182改良していただける方いませんでしょうか?
>>182 (;・3・;) エェー ・・・こういう課題まんどくせ
homo氏に打ち返すお、
というわけでヨロ
190 :
190 :2006/12/22(金) 12:35:48
すいません教えてください いきなりですが学校の課題で年賀状のあたり番号をチェックするという プログラムを作っています。 そこで当選番号の数字を数字を入力するという作業が必要になるのでそのプログラムを 作成しようとしているのですが作れませんOTL 具体的に言うと 1等は6桁の数字なんですが文字も打てるようになってしまっています 文字を打つとはじくようにしたいです。 あと6桁という限定が上手くいかないですOTL 5桁でも通過してしまうし・・・・
191 :
190 :2006/12/22(金) 12:36:53
変数が何かはいちいち説明するのは面倒なので書きませんが当選番号を入力する ところだけ書き出しておきますのでどこが悪いか見ていただけると幸いです /*年賀状の当選番号を入力*/ for(i=0;i<=3;i++){ printf("%d等の年賀状当選番号を入力してください。\n",i+1); if(i<3) printf("%d等は%d桁です。\n",i+1,6-i); if(i==3) printf("4等は2桁です。\n"); while(rank==0){ scanf("%ld",&tousen[i]); if(tousen[i]<=999999 && i==0 && tousen[i]>=100000)/*1等の当選番号を入力(*指定されるべきである*/ rank=1; else if(tousen[i]<=99999 && i==1 && tousen[i]>=10000)/*2等の当選番号を入力*/ rank=1; else if(tousen[i]<=9999 && i==2 && tousen[i]>=1000)/*3等の当選番号を入力*/ rank=1; else if(tousen[i]<=99 && i==3 && tousen[i]>=10)/*4等の当選番号を入力*/ rank=1; else printf("桁数が違いますねぇ\n");/*桁数が違った時ははじくようにする*/ } rank=0; }
>>191 (・3・) エェー とりあえずヒントになりそうなコードを作ったから
改造して作ってみろお
<conio.h>を忘れずにな、だお
お礼は大沢あかねたんのエロい画像でいいお、コラも大歓迎
(・3・) エェー そろそろお出かけするべ クリスマスプレゼントなんてめんどくせーお、まったく あとは肥満児homoじょあ氏にまかせるべ
195 :
デフォルトの名無しさん :2006/12/22(金) 15:25:29
>>191 >変数が何かはいちいち説明するのは面倒なので書きませんが
人に教えてもらうくせに、面倒だから書かないって…
死ねば?
この程度なら書く必要性はなし
>>196 そんなことはどうでもいい。
「面倒だから書かない」という発想が問題だと言っているんだよ。
>190 当選番号は、先頭が0のものも含むの普通。
>>198 言い返せなくなったら「黙っとけ」かよw
どこの小学生だ?
「面倒だから書かない」という発想が問題という事すらおかしいのにね
泥棒にも美学があるってようなもんでしょう。
つまらんことでもめるなw ソフトなんだから頭もソフトにね♪ いや、冗談抜きに
>>203 言い返せなくなったら「黙っとけ」かよw
どこの小学生だ?
( ´・3・) ・・・
スルーできない
>>207 言い返せなくなったら「黙っとけ」かよw
どこの小学生だ?
>>208 207は、黙っとけどころか、むしろ
「一言じゃ宿題内容わからないから、もっと書け」
と読めるのだが…
(・3・) エェー クリスマスプレゼント買ってきたお なんだと思う? 23時頃に股来るから回答頼むお
>なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため >なぜなら自分の無能さを隠すため
なんだアナルビーズか
>>193 CPUパワーを活用するための kbhit() ですか?
1.プログラミング技術 2.キーボードから一文字入力し入力された文字によって表示内容を変更する。 入力文字がaなら優、bなら良、cなら可、それ以外は不と表示する。 3.1 Linux 3.2 gcc 3.4 3.3 C言語 4. 12月24日まで 5. できるだけ簡単に理解できるのでお願いします。
>5. できるだけ簡単に理解できるのでお願いします。 これが一番難しい
ぼるじょあ のスペックが気になる どのレベルの宿題までおkなんだろうか…
219 :
216 :2006/12/23(土) 14:01:05
すみませんです。そこは一応書いておいた程度なので 気にせずお願いします。
#include<stdio.h> int main(void) { int moji; char *print_string="不"; printf("キーボードから一文字入力して下さい\n"); moji=getchar(); /* #include<conio.h> moji=getche(); */ switch(moji) { case 'a': print_string="優"; break; case 'b': print_string="良"; break; case 'c': print_string="可"; break; } printf("\n%s\n", print_string); return 0; }
ありがとうございました。
(・3・) エェー ずっと名無しだったけどぼるじょあに転身だお コテハンって面倒だからまたすぐ名無しになるかもだお
(・3・) アルェ〜 トリップが違うNE!
(・3・) エェー 流れ的に一緒にされたくないYO!
>>225 (・3・) エェー スレタイの為に おいらはぼるじょあになったんだお
回答できるのは簡単な問題だけだけどNA!
>>226 ぼるじょあ ◆yBEncckFOU がぼるじょあだ
それ以外は認められない
回答したいなら他のスレ行け
(・3・) ブッチュー
>>223 ぼるじょあ ◆hZ8e4Wjqvwがぼるじょあだ
それ以外は認められない
>>175 (・3・) エェー 問題文の意味がいまいち分からないYO!
実行例を書いて欲しいYO!
関数呼出
hoge("a,b, cdefg hij", ",");
出力
ab cdefg hij
でいいのかNA?
単語数の数え方も書いてNE
荒らしはあなじょあという馬鹿一人で十分
232 :
190 :2006/12/25(月) 15:30:57
先日書き込んだ
>>190 です。
ヒントを頼りにやったらなんとか作成することが出来ました。
まずは、ありがとうございます。
しかし今日提出をしようとしたら
>>199 さんの言っていたことを教授に突っ込まれて
しまいましたOTL
今、必死に直していますがわかりません、お願いします・・・・
>>232 (・3・) エェー ソースうpしろYO!
234 :
デフォルトの名無しさん :2006/12/25(月) 17:22:06
Cの問題が2つあるので、よろしくお願いします。 (1)文字列のリストをファイルから文字列の2次元配列に読み込み、 キーボードから読み込んだ文字列を逐次探索するプログラムを作成する。 (2)2次元の配列とポインタの配列を使って文字列のソートを行う プログラムを作成する。ただしデータはファイルから入力し結果は ファイルに出力するものとする。またアルゴリズムは単純選択法を 使うこと。2次元配列に読み込んだ文字列は移動せず、ポインタを 付け替えることによりソートを行うこと。
>>234 (・3・) エェー Cで二次元配列にするなら最大単語長と最大単語数が必要だYO!
strchrを使いたいなら l = strchr(a,c)-a; for(i=0; i<=l; i++) putchar(a[i]); 使わないなら for(i=0;;i++) { putchar(a[i]); if(a[i]==c) break; }
>>237 char * str = "abcdefg";
char * p = strchr(str, 'd');
printf("%.*s", p - str, str);
>239 それだとdが表示されなくね?
>>240 特定文字も出すのかな。
それならp - strをp - str + 1に。
>>187 (・3・) エェー 来年になってもいいなら・・・
243 :
デフォルトの名無しさん :2006/12/26(火) 21:00:18
[1] 授業単元:プログラミング言語初級 [2] 問題文(含コード&リンク):半角文字10文字を打って(数字含む)10文字なら真、 10文字以外なら偽と出力するプログラムを作成せよ [3] 環境 [3.1] Windows [3.3] 言語:C
(・3・) エェー こんなのでいいのかお? #include<stdio.h> #include<string.h> int main(void) { char buf[100]=""; printf("文字列を入力して下さい:"); fgets(buf, sizeof(buf), stdin); if(buf[strlen(buf)-1]=='\n') buf[strlen(buf)-1]='\0'; if(strlen(buf)==10) printf("真\n"); else printf("偽\n"); return 0; }
247 :
245 :2006/12/28(木) 10:34:14
ありがとうございます。助かりました
248 :
デフォルトの名無しさん :2006/12/28(木) 13:07:43
すいません。初めての書き込みです。プログラム初心者、というか何も勉強していないのですが、 このような問題を解決しなければならなくなってしまいました。どうか教えてください。課題を教えてくださるスレッド(?)が書き込みできなくなっていたので、 こちらに書き込ませていただきました。 【質問テンプレ】 [1] 授業単元:基礎情報処理 [2] 問題文:縦100横100のマス目(点)に分けられた紙の各点が、白と黒に塗り分けられたものを考える。この中に、下にある様な黒い点で囲まれた図形が1つだけある。図形は必ず、黒い点で囲まれており、 内部は白い点で埋め尽くされている。この「囲まれている」とは、各黒い点の上下左右および8つの点のどれかが黒い点となっているものと考えよう。 □□□□□□□□□□ □□■■■■■■□□ □■□□□□■□□□ □□■□□□□■□□ □□■□□□□■□□ □□■■■■■■□□ □□□□□□□□□□ □□□□□□□□□□ □□□□□□□□□□ □□□□□□□□□□ この図形は整数値の2次元配列(例えばC言語ならa[y,x])で表されている。x軸は左から右、y軸は上からしたとするので、a[1,1]は一番左上の点になる。この配列はプログラムに入る前に何らかの方法で、白い点は0、黒い点は1になっているものとする。 さて、図形の面積、つまり黒い点で囲まれた内部の「白い点」の数を数えるプログラムを考えよう。ただし図形は必ず紙の上に1つだけ存在し、また必ず紙の端から点1つ以上ずつ少し離れた位置にあるとする(つまり黒い点は紙の上下左右の端には存在しない)。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: すみません、よくわかりません [3.3] 言語: なんでもかまいません。 [4] 期限: 2007年1月5日0時まで [5] その他の制限:まだ何も習っていません。具体的に回答を提示してくれると助かります。
251 :
デフォルトの名無しさん :2006/12/28(木) 14:06:58
>249、250 すみません。 どこに書くのが一番適正なのかよくわからなくて・ ここのような宿題を教えてくださるスレッド(?)も多くて、 最初に見つけたのがこちらでしたので・・すみません。
1月6日にパス公開とか
ここからは
>>250 のパスを解析するスレになりました
(・3・) エェー パス解析する暇があるなら自分で問題解けYO!
255 :
デフォルトの名無しさん :2006/12/28(木) 14:52:33
すみません。 質問者と253は別人です。 このスレッドのルールというかモラルを違反したことはとても反省しています。 ですから気が向いていただけないでしょうか・・
つまらん事かもしれんけど printf("%p %p", a, &a); の違いが分からん
つまらん事かもしれんけど >256が何と何の違いが判らんのか 分からん
ちょっとエスパー駆使すると int a[10]; みたいに a が配列の時の話だろ?
パス解析・・・時間がかかるだけで努力は必要ない。
自分で問題を解く・・・時間がかかる上に努力が必要。
よって
>>254 の指摘は的を得ていない。
的をgetしても困るな。
>>261 (void *)NULL と (void **)NULL の違いみたいに
値は一緒で意味が違う。
うまく説明できない orz
263 :
デフォルトの名無しさん :2006/12/28(木) 15:57:00
>>248 #include <iostream> #include <cstring> #include <cstdlib> #include <ctime>
using namespace std;const unsigned int N = 100;void get_randam(int block[N][N]);
void paint(int block[N][N], int x, int y);void make_ans(int block[N][N]);int main(){
int block[N][N], *p, i = 1;srand(static_cast<unsigned int>(time(NULL)));get_randam(block);
for(p = &block[0][0]; p <= &block[N-1][N-1]; p++, i++){ switch(*p){case 0: cout << " □"; break;
case 1: cout << " ■"; break; case 2: cout << " *"; break; default:cout << " E"; break; }if(i % N == 0) cout << '\n';
} cout << '\n';make_ans(block);for(p = &block[0][0]; p <= &block[N-1][N-1]; p++, i++){
switch(*p){case 0: cout << " *"; break; case 1: cout << " ■"; break; case 2: cout << " □"; break;
default:cout << " E"; break; }if(i % N == 0) cout << '\n'; }unsigned j = 0;for(p = &block[0][0]; p <= &block[N-1][N-1]; p++, i++)
if(*p == 0) j++;printf("面積 %d \n",j);return 0;}
void get_randam(int block[N][N]){ int *p;for(p = &block[0][0]; p <= &block[N-1][N-1]; p++)
*p = rand() % 2; } void paint(int block[N][N], int x, int y){ if( x<0 || y<0 || x>=N || y>=N || block[y][x] != 0) return;
block[y][x] = 2; paint(block, x+1, y);paint(block, x-1, y);paint(block, x, y+1);paint(block, x, y-1); }
void make_ans(int block[N][N]){ int i; for(i = 0; i < N; i++){ paint(block, 0,i);paint(block, N-1,i);
paint(block, i,0);paint(block, i,N-1); } }
これをC言語に直して(それくらいは出来るだろ)。あと図形なんかいちいち作ってられんから
ランダムにした。あとコンソール出力さしてるけど、必要ないなら消して。
>>254 これだけ短かったらPikaZipとかでランダムに当たっても
すぐ解けると思うなぁ
>>264 ツール名は出さずに、総当たりプログラムを組んでうpしてあげるのが粋なやり方
パス付でうpな
>>255 (・3・) エェー 立派なソースコードじゃないし、書こうと思ってももいらには無理だお
こんなものにパス解析の手間をかけるくらいなら自分でやれってことだったんだYO!
このネタで引っ張られるのも面白くないし、お客さんがいてこそだからパス公開。
(・3・)
ぼるじょあの顔文字だYO! (文字コードはSJISで全角5文字10byte)
むきになって正直すまんかった m(__)m
267 :
デフォルトの名無しさん :2006/12/28(木) 23:38:23
anyway, sorry and thank you.
全角パスは最強だと俺は思うんだ とりあえず、中国語とかぶっこんどけばまず解けないだろう
269 :
デフォルトの名無しさん :2006/12/29(金) 01:46:37
686 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2006/12/21(木) 21:30:41 (・3・) エェー 大沢あかねたんととアナ○セックスしたいなあ・・・切実だお 最低で250万までなら余裕で出せるお 肛○のなかに発射してしばらく挿入したままで余韻を味わって 最後に中に放尿して引き抜いたそれをあかねたんの口できれいに 掃除して貰いたいお・・・はあ・・・。
それはどうでも良いんだが、K&Rマンセーレスが気になる。 ぼるじょあってK&R信者なの?
>248 言語: なんでもかまいません てwwwwww これじゃできてもできなくても同じじゃね?w
(・3・) エェー え? 使用言語を問わない課題はぼくも経験したYO
もしかして
>>248 さんと同じ大学か先生だったりしてYO
>>272 (・3・)つ[ぼるじょあ#ぶるじょあ]
>>160 (・3・) エェー 期限過ぎちゃったかNA?
とりあえず質問だYO!
1.x-y 平面だけで考えればいいの?
2.障害の数は?
3.障害の向きはすべて y軸 と同じ?
4.風速は場所にかかわらず一定?
5.風の向きは x軸 方向のみ?
6.的の座標は?
275 :
234 :2006/12/29(金) 13:40:22
276 :
デフォルトの名無しさん :2006/12/29(金) 19:44:34
>271,272 なんかプログラムぜんぜん教えてもらってないのに、 いきなり書けとか言われたんすよw 教養課程の授業なんでみなさんみたいに技術者になるとこじゃないんです。 大学は熱狂的な政治活動をして、しばしば批判を浴びる、 関西のあの大学です。
外周は必ず白なので、外側を黒で塗りつぶし、そのあと残った白を数える。
(・3・) エェー スレ止まっちゃったけど、もいらがCの宿題のみ頑張って解くYO! ダメっぽいときはすぐにギブアップするけどNE!
だが今日はもう眠いので寝る。
10日経って新年初カキコですかww
(・3・) あるぇー やっぱりもいらがこないと盛り上がらないな それとも冬休み中で課題がないから盛り上がってないだけかお?
ろくに宿題も片付けられないぼるじょあなんて、邪魔以外の何者でもない。
(・3・) エェー どこぞのC言語なら俺に聞けのおばかさん回答者の皆様方よりはましだとおもうお w
285 :
175 :2007/01/13(土) 18:25:10
>>229 ぼるじょあ様、お返事が遅くなり申し訳ありません。
以下に指摘されているとおりの出力結果を求めたいのです。
書き込みしてから反応もなかったので諦めていましたが、反応していただけて
いたみたいで嬉しいです。今更ですが、お願いできますか?
229 :ぼるじょあ ◆hZ8e4Wjqvw :2006/12/24(日) 09:32:05
>>175 (・3・) エェー 問題文の意味がいまいち分からないYO!
実行例を書いて欲しいYO!
関数呼出
hoge("a,b, cdefg hij", ",");
出力
ab cdefg hij
でいいのかNA?
[1] 授業単元:プログラミング基礎 [2] 問題文(含コード&リンク): テキストファイルを読み込み、文字列を配列に代入せよ [3] 環境 [3.1] OS:Windowsxp [3.2] コンパイラ名とバージョン:.NET ver1.1 [3.3] 言語: C [4] 期限: 2007年1月14日 [5] その他の制限:ファイルポインタ程度まで習っていますよろしく願いします
↑ すみません。出力も追加してください
>>285 (・3・) エェー 無理矢理 strchr memset memcpy を使うのは難しいYO!
実をいうと ◆hZ8e4Wjqvw はC++は分からないんだYO! ごめんNE!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void hoge(const char *src, int remove_char){
char *dest_top, *dest, *remove_char_addr;
int copy_length;
dest_top=dest=strdup(src);
memset(dest_top, '\0', strlen(src));
while(1){
remove_char_addr=strchr(src, remove_char);
if(remove_char_addr==NULL)
break;
copy_length=remove_char_addr-src;
memcpy(dest, src, copy_length);
src+=copy_length+1;
dest+=copy_length;
}
strcpy(dest, src);
printf("%s", dest_top);
free(dest_top);
}
int main(void){
hoge("a,b, cdefg ,,,hij", ',');
return 0;
}
>>286 (・3・) エェー とりあえず単語一つ分だけ配列に代入して、出力するYO!
多分やりたいこととは違うと思うけどNE!
#include<stdio.h>
int main(void)
{
char *filename="テキストファイル";
char word[1024];
FILE *fp;
fp=fopen(filename, "r");
if(fp==NULL)
{
fprintf(stderr, "\nError: %s file cannot open.\n", filename);
return 1;
}
fscanf(fp, "%1023s", word);
printf("%s\n", word);
fclose(fp);
return 0;
}
291 :
デフォルトの名無しさん :2007/01/15(月) 22:45:59
[1] 授業単元:Cプログラミング演習 [2] 問題文:学籍番号(5桁の英数文字列)、英、数、国の得点(各100点満点)を 次々に読み込んで、各人の総得点を計算の上、@読み込んだ順に 各人のデータを、A各人の平均と標準偏差を次の形に出力する cプログラムを作成せよ。 但し、プログラム作成においては ・学生の人数は100人以下で不定とする。(100人以下なら何人でも、 プログラムを修正せずにうまく対処しなければならない) ・学生一人のデータは構造体としてまとめて、それにStudentという データ型名をつけること。 ・Student型を要素とする配列を用意してプログラムを組むこと。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: Cのみ [4] 期限: 2007年1月10日12:00まで その他:得点データはファイルから読み込みます。./a.out<ファイル名 といった風に
292 :
デフォルトの名無しさん :2007/01/15(月) 22:47:15
以下のような形で出力してください Id-No Eng Math Jap Total ----- --- ---- --- ----- G0342 44 65 51 160 G0343 83 100 84 267 G0344 58 30 57 145 . . . G3621 85 80 90 255 G3622 74 100 65 239 ------------------------------ Ave 72.5 75.8 68.1 216.4 Dev 15.3 19.6 12.4 33.3
294 :
デフォルトの名無しさん :2007/01/15(月) 23:30:31
296 :
デフォルトの名無しさん :2007/01/15(月) 23:47:39
いえ、まだ大丈夫です。すみません。
298 :
デフォルトの名無しさん :2007/01/16(火) 16:11:26
[1] 授業単元:情報 [2] 問題文(含コード&リンク): ・25個の値をrand関数(乱数)によって発生させ、一旦5×5の2次元配列に格納する(値は1から100の範囲) ・入力された値が配列内に存在するか探索する。 *存在する場合その値が格納されている配列の添え字を表示すること *存在しない場合は、その旨を表示する ・値の一覧もあわせて表示し、これらの結果をすべてファイルに出力する。 ・レポートの実行結果には、出力したテキストファイルの内容も記載すること。 ・必ず自作関数を使ったプログラムにすること ・繰り返しは何度でも探索できるようにする。その際、必ず終了する場合の入力値を示せ。 [3] 環境 [3.1] OS: (Windows等々) [3.2] コンパイラ名とバージョン: ( VC ++6.0) [3.3] 言語: C++ [4] 期限: ([2007年1月16日23:30まで] [5] その他の制限: C言語の初歩は習いました。 もしできるかたがいましたら、お願いします
299 :
デフォルトの名無しさん :2007/01/16(火) 19:36:42
授業単元: C言語 [2] 問題文(含コード&リンク):"in_file"という名前のファイルの中に多数の整数データが空白や 改行コードで区切られて並んでいることを仮定した上で、このファイルの中のデータを 1行に5個ずつきれいに並べて"out_file"という名前のファイルに出力するcプログラムを作成せよ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C [4] 期限:1月29日 例えば、入力ファイル"in_file"の内容が 11111111 3333333 44444 32 35 34 24 53 242 254 35 532 5235 3452 3545 34 63 54 の時には、このプログラムは次のような出力ファイル"out_file"に書き出す。 11111111 33333333 44444 32 35 34 24 53 242 254 35 532 5235 3452 3545 34 63 54
300 :
299 :2007/01/16(火) 19:37:38
出力の形は、一の位がそろっていて、一行に五個ずつ並んでいるように 見てください。書き方が下手でスミマセン
301 :
◆3NOHgX5ZKI :2007/01/16(火) 19:57:01
問題は:toupperを使って単語の最初の文字だけ大文字にするという問題です。 toupper use good programu これを大文字にする問題です ↓ Toupper Use Good Programu にしたいんですが、、、わかりますでしょうか? よろしくお願いします<(_"_)>
void lineupper(char *ss) { char *p = ss; while(*p!='\0'){ //空白を読み飛ばす while(*p==' '&&*p!='\0'))p++; *p = toupper(*p); while(*p!=' '&&*p!='\0'))p++; if(*p == '\0')break; } }
aa
>302 何の冗談?
>>301 (・3・) エェー
>>1 の質問テンプレを活用してくれYO!
#include<stdio.h>
#include<ctype.h>
void word_top_upper(char *str){
int is_word_top=1;
for(;*str;str++){
if(is_word_top) *str=toupper(*str);
if(isspace(*str)) is_word_top=1;
else is_word_top=0;
}
}
int main(void){
char buf[]="toupper use good programu";
printf("%s\n", buf);
word_top_upper(buf);
printf("%s\n", buf);
return 0;
}
ぼるじょあさんこんにちわ
>>306 (・3・) エェー、こんばんはだYo。 デフォルトの名無しさん
ぼるじょあさんのお仕事はなんなの??
310 :
309 :2007/01/17(水) 00:59:05
ぼるじょあさんいつもご苦労様です もしかしてぼるじょあさんって一人じゃなかったりするんですか??複数いたり!?
>>291 (・3・) エェー
>>297 間違ってたYO!
double x_sum[SUBJECT_TOTAL], x2_sum[SUBJECT_TOTAL];
double ave[SUBJECT_TOTAL], dev[SUBJECT_TOTAL];
↓
double x_sum[SUBJECT_NUM], x2_sum[SUBJECT_NUM];
double ave[SUBJECT_NUM], dev[SUBJECT_NUM];
>>310 (・3・) アルェー ぼるじょあはほるじょあだYo
ぼるじょあの中に色んなペルソナが居るけど、
みんなぼるじょあだYo
だけど
>>311 は偽ぼるじょあだYo
313 :
デフォルトの名無しさん :2007/01/17(水) 19:11:34
#include <iostream> using namespace std; int main(void) { unsigned char x,y; cout << "2つの値を入力してください。\n"; cin >> x >> y; x -= '0'; y -= '0'; int a = x + y; int b = x * y; printf("x = %d, y = %d, x + y = %d, x * y = %d",x,y,a,b); return 0; } これで出力したら10以上の数値が出ないんですが、 どうしたら出るようになるか教えてください。
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): 入力したグレースケール(白黒)画像[256×256画素、8ビット256階調]を 8枚のビットプレーンに分解し、それぞれのプレーンを出力するプログ ラムを作成せよ。 [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc ) [3.3] 言語: (C) [4] 期限:1/18 9:00 [5] その他の制限: 入力ファイルはnotファイルです。出力はnotファイル8枚作れればいいです。
>>315 (・3・) エェー notファイルのフォーマットについて解説してくれYO!
解説しているサイトの URL でもいいYO!
317 :
315 :2007/01/17(水) 19:58:38
>>316 自分も今回初めてnotファイルの存在を知ったので正直詳しくないですが、
256×256画素、8ビット256階調の場合、256×256個の画素値が書かれた
ファイルです。画像として再現させる場合はSusieというプログラムを通
して画像を出します。
とこんな感じしか分からないです。すみません
>>315 (・3・) エェー ファイルサイズは 256*256=65536 byte でいいのかNA?
319 :
315 :2007/01/17(水) 20:09:49
はい、そうです。
>>317 _, ,_
(・3・) エェー 「分からない」じゃなくて先生が考えた独自フォーマットだろ?
notファイルって何だよw
で、ビットプレーンは1画素当たり1バイト(つまり256x256x1バイトのビットプレーンが
8枚)で出力すればいいのかお?
たとえば入力画像の1画素の値が0xAFだった場合、
ビットプレーン0 0x80
ビットプレーン1 0x00
ビットプレーン2 0x20
ビットプレーン3 0x00
ビットプレーン4 0x08
ビットプレーン5 0x04
ビットプレーン6 0x02
ビットプレーン7 0x01
のようにバイナリで記録していけばいいのかお?ということだお
それとも詰めて(つまり256x256/8バイトのビットプレーンが8枚)出力すれば
いいのかお?
(・3・) あるぇー
>>320 すごいお
ビットプレーンは256x256x1バイトだったんだね
ぼるじょあさん、いつもありがとう 最近偽者が多いみたいですね。残念です。
>>315 (・3・) アルェー 出力フォーマットは 256×256画素、1ビット2階調なのかお?
>>324 (・3・) エェー ビットプレーンってそういうものなんじゃないのかお?
??ぼるじょあさんやっぱりふたりいるよー??
327 :
315 :2007/01/17(水) 20:55:12
>>320 ぼるじょあさん、ありがとうございます。
ずっと悩んでた問題なのにこんなにあっさりできちゃうなんてびっくりです。
>>324 はい、2階調のが8個できればそれぞれのビットプレーンから256階調の画像に
戻すこともできるので大丈夫です。
(;3;) あるぇー もいらは無視かお・・・悲しいから今日は落ちるお
329 :
315 :2007/01/17(水) 21:00:29
>>328 すみません、そんなつもりじゃなかったんですけど・・・
とにかく皆さんのおかげで助かりました。ありがとうございます。
330 :
315 :2007/01/17(水) 21:02:48
>>328 すみません、そんなつもりじゃなかったんですけど・・・
とにかく皆さんのおかげで助かりました。ありがとうございます。
332 :
315 :2007/01/17(水) 21:41:17
>>331 よく分からないですけど320ので上手くいきましたよ。っていうか修正版だと
テレビのノイズ状態みたいな画面になっちゃいますよ。
(・3・) エェー notファイルのフォーマットがよく分からないけど結果オーライだお
334 :
315 :2007/01/17(水) 21:56:51
>>333 はい、結果オーライです。・・・それでさっきの問題続きがあって、
8ビットプレーンのうち、いずれかのプレーンを指定して透かし画像(@ランダム画像、Aロゴ画像)
と置き換えた透かし埋め込み画像を出力するプログラムを書く。また、それぞれの画像を表示した
結果を示す
って問題なんですけどよかったら続きも見ていただけませんか?
(・3・) エェー
>>320 で分解して、ビットプレーンを一枚差し替えてから
256階調の画像に戻せばいいと思うYO!
336 :
315 :2007/01/17(水) 22:14:45
はい、やってみます。
ぼるじょあさんこんばんわ。 ぼるじょあさんってプログラム詳しいみたいだけど どんなお仕事してる人なの?それともまだ学生??
>>337 (・3・) エェー プログラムに詳しかったり詳しくなかったりするYo!
色んな仕事してるYo!
339 :
315 :2007/01/18(木) 00:16:02
334に書いた問題がやっぱり自分では解けません。 ぼるじょあさん、助けてもらえませんか?
341 :
デフォルトの名無しさん :2007/01/18(木) 10:36:54
305 できませんよ。。エラーでてw
>>341 ・エラーは、その詳細と発生した行を書きましょう。エラーメッセージはコピペしてください。
343 :
デフォルトの名無しさん :2007/01/18(木) 10:59:11
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): コピー プログラムを書いてください。 次のように、 第 1 引数をコピー元、第 2 引数をコピー先ファイル 名として扱ってください。 % ./a.out コピー元ファイル名 コピー先ファイル名 [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (どちらでも可) [4] 期限: 明日まで [5] その他の制限: ありません
344 :
デフォルトの名無しさん :2007/01/18(木) 11:20:15
345 :
デフォルトの名無しさん :2007/01/18(木) 11:20:46
>>343 (・3・) エェー 低速版できたYO!
#include<stdio.h>
int main(int argc, char *argv[]){
char *fname_in, *fname_out;
FILE *fp_in, *fp_out;
int moji;
if(argc!=3){
fprintf(stderr, "\nUsage: %s filename1 filename2\n", argv[0]);
return 1;
}
fname_in=argv[1];
fname_out=argv[2];
fp_in=fopen(fname_in, "rb");
if(fp_in==NULL){
fprintf(stderr, "\nError: %s file cannot open.\n", fname_in);
return 1;
}
fp_out=fopen(fname_out, "wb");
if(fp_out==NULL){
fprintf(stderr, "\nError: %s file cannot open.\n", fname_out);
fclose(fp_in);
return 1;
}
while((moji=fgetc(fp_in))!=EOF)
fputc(moji, fp_out);
fclose(fp_in);
fclose(fp_out);
return 0;
}
347 :
デフォルトの名無しさん :2007/01/18(木) 11:34:54
この前違うスレで問題書いて答えてもらったんですが toupper()を使っての問題を教えてもらったんですが 実行してもできませんでした 全部の文字を大文字という問題わかりますか?
348 :
デフォルトの名無しさん :2007/01/18(木) 11:35:37
>>345 です。
読み込むテキストファイルは
one two three four
five six seven
eight nine ten
をテスト用に使おうとしてましたがそこまでいかず・・・。
よろしくお願いします。
>>347 (・3・) エェー リダイレクトを使ってファイル入力してNE!
例: a.out < a.c
#include<stdio.h>
#include<ctype.h>
int main(void)
{
int moji;
while((moji=getchar())!=EOF)
putchar(toupper(moji));
return 0;
}
>>341 (・3・) エェー 全角空白はタブに置き換えて欲しいお
それともインデントつけない方がいいのかお?
351 :
デフォルトの名無しさん :2007/01/18(木) 13:16:12
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 配列{1,3,5,7,9,0,2,4,6,8}があるとき、insert関数とdel関数を使って、4番目の要素を削除し、7番目に10を挿入せよ。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: visual studio.net [3.3] 言語: C [4]期限 1月19日 お願いします。
352 :
デフォルトの名無しさん :2007/01/18(木) 13:17:40
インデントよろしくです
353 :
デフォルトの名無しさん :2007/01/18(木) 13:21:44
先頭だけ大文字とかはできますか?
355 :
デフォルトの名無しさん :2007/01/18(木) 15:25:50
346ありがとうございました。うまくできました☆
356 :
初心者 :2007/01/18(木) 15:29:07
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): 引数に渡された文字列 s を保持するのにぴったりの長さのメモリ領域を割り当て、その領域に文字列 s をコピーし、そのアドレスを返す関数 str_dup を完成させてください。 割り当てに失敗した場合は、NULLを返してください。文字列のコピーには strcpy を使用します。 #include <string.h> /* strlen 関数と strcpy 関数 */ char *str_dup(char *s){ char *p = NULL; [ 空欄 1 ] return p; } 空欄をうめてください。 [3] 環境 [3.1] OS: Windowsです [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C) [4] 期限: 明後日です [5] その他の制限:ないです
>>345 (・3・) エェー 題意を満たせないものしかできなかったYO! 本物と名無しさんが頼りだYO!
#include<stdio.h>
#include<string.h>
#define ONE_LINE_MAX 1024
int main(int argc, char *argv[]){
char *filename, one_line[ONE_LINE_MAX], word[ONE_LINE_MAX];
long line_count;
int is_word_found;
FILE *fp;
filename=argv[1];
fp=fopen(filename, "r");
if(fp==NULL){
fprintf(stderr, "\nError: %s file cannot open.\n", filename);
return 1;
}
while(1){
printf("検索する文字列を入力して下さい :");
scanf("%s", word);
fseek(fp, 0L, SEEK_SET);
line_count=0;is_word_found=0;
while(fgets(one_line, sizeof(one_line), fp)!=NULL){
line_count++;
if(strstr(one_line, word)!=NULL){
printf("%s は %ld 行目にあります\n", word, line_count);
is_word_found=1;
}
}
if(!is_word_found) printf("%s は見つかりませんでした\n", word);
}
fclose(fp);
return 0;
}
>>356 if((p=malloc(strlen(s)))){strcpy(p,s);}
>>351 (・3・) エェー insert関数とdel関数は適当に作ったYO!
#include<stdio.h>
#define NITEM(array) (sizeof(array)/sizeof(array[0]))
void insert(int array[], int array_size, int index, int value){
int i;
for(i=array_size-2;i>=index;i--)
array[i+1]=array[i];
array[index]=value;
}
void del(int array[], int array_size, int index){
int i;
for(i=index;i<array_size-1;i++)
array[i]=array[i+1];
array[i]=0;
}
void disp(int array[], int array_size){
int i;
for(i=0;i<array_size;i++)
printf(" %d", array[i]);
printf("\n");
}
int main(void){
int data[]={1,3,5,7,9,0,2,4,6,8};
disp(data, NITEM(data));
del(data, NITEM(data), 4-1);
disp(data, NITEM(data));
insert(data, NITEM(data), 7-1, 10);
disp(data, NITEM(data));
return 0;
}
>>358 (・3・) エェー 一文字分足りてないYO!
2次元配列でそれぞれの要素に文字列をもたせてあります 2次元配列の中の文字列をクリアするにはどうすればいいんでしょうか?
OK if((p=malloc(strlen(s)+1))){strcpy(p,s);}
363 :
デフォルトの名無しさん :2007/01/18(木) 17:21:20
ピリオドで改行するプログラムを教えてください
ジャパン語で
>363 if(ch=='.') putchar('\n');
(・3・) エェー みんなの質問適度に待ってるYO
偽者が多くて頼みたくないです さようなら
(・3・) エェー もいら画像処理やMPEGに関してその筋じゃ有名人なんだけど hZ8e4Wjqvw氏が全部回答してくれたから出番なしだったお いや嫌味を言ってるんじゃなくてhZ8e4Wjqvw氏も幅広い知識を持った なかなか賢い人だと感じたお
(・3・) エェー
>>331 本物ってもいらのことかお?
もいらはhomoじょあとかアナルじょあと呼ばれてるからたぶん本物じゃないお
(・3・) エェー 大沢あかねたんとおしりのあなに頭を入れて24時間くんくんしたいくらい 大沢あかねたんが好きだお 大沢あかねたんと結婚または愛人になってくれるなら 全財産なげうっていいお
(・3・) エェー 大沢あかねたんと1週間アナ○三昧できるだけでもいいお 3日間アナ○三昧なら500万までなら出せるお
372 :
デフォルトの名無しさん :2007/01/19(金) 00:28:22
>>357 ありがとうございます!!
あと実行時に、何語で検索するか→1語ならそのまま検索、1語以上ならand検索かor検索か
とか言う流れにしたいのですが・・・
374 :
デフォルトの名無しさん :2007/01/19(金) 14:47:58
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): UNIX システムコールを利用して、以下の仕様を満たすプログラムを書いてください。 コマンドライン引数がない場合は、標準入力を標準出力へコピー コマンドライン引数が 1 つある場合は、第 1 引数のファイルの内容を標準出力へコピー コマンドライン引数が 2 つある場合は、第 1 引数のファイルの内容を第 2 引数のファイルにコピー [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: (gcc) [3.3] 言語: (C++) [4] 期限: 明後日 [5] その他の制限:
>>374 #include<stdio.h>
int main(int argc,char* argv[]){FILE* src=stdin;FILE* dst=stdout;int c;
if(argc>=2)src=fopen(argv[1],"r");if(argc==3)dst=fopen(argv[2],"w");
if(argc<4)while((c=fgetc(src))!=EOF)fputc(c,dst);return 0;}
376 :
デフォルトの名無しさん :2007/01/19(金) 16:10:37
[1] 授業単元: プログラミング [2] 問題文(含コード&リンク):アルゴリズムの説明をせよ #include<stdio.h> #include<stdlib.h> //int main(int argc, char **argv){ //argvはコマンドライン引数のこと int main(void){ int i,j,m,n,k1,k2; int blank; int hint[4]; int total; [3] 環境 [3.1] OS: (Windows/Linux/等々) linux [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等) gcc [3.3] 言語: C言語 [4] 期限: ([yyyy年mm月dd日hh:mmまで] 2007年1月23日まで [5] その他の制限:なしです。お願いします
377 :
376 :2007/01/19(金) 16:12:55
FILE *data; int initial[4][4]; if((data = fopen("prob4-1.txt", "r"))==NULL) { printf("ファイルを開くことはできません\n"); exit(1);} for(i=0;i<4;i++){ for(j=0;j<4;j++){ fscanf(data,"%d",&initial[i][j]);} blank=0; } for(i=0;i<4;i++){ for(j=0;j<4;j++) printf("%4d",initial[i][j]); printf("\n");} printf("\n"); for(i=0;i<4;i++){ for(j=0;j<4;j++){ if(initial[i][j]==0) blank++;}} printf("initial\n"); for(i=0;i<4;i++){ for(j=0;j<4;j++) { printf("%2d" ,initial[i][j]);} printf("\n");}
378 :
376 :2007/01/19(金) 16:15:59
while(blank!=0){ for(i=0;i<4;i++) for(j=0;j<4;j++) if(initial[i][j]==0){ for(m=0;m<5;m++) hint[m]=0; for(n=0;n<4;n++){ if(initial[i][n]!=0) hint[initial[i][n]]=1;} for(n=0;n<4;n++){ if(initial[n][j]!=0) hint[initial[n][j]]=1;} k1=i/2; k1*=2; k2=j/2; k2*=2; for(m=k1;m<k1+2;m++) for(n=k2;n<k2+2;n++){ if(initial[m][n]!=0) hint[initial[m][n]]=1;} total=(hint[1]+hint[2]+hint[3]+hint[4]); for(m=1;m<5;m++) if(total==3&&hint[m]==0){ initial[i][j]=m; blank--;}}} printf("result\n"); for(i=0;i<4;i++){ for(j=0;j<4;j++) printf("%4d",initial[i][j]); printf("\n"); } fclose(data); return 0;}書ききれなかったので追加します。すみません
379 :
デフォルトの名無しさん :2007/01/19(金) 16:27:03
380 :
ニケ :2007/01/19(金) 17:05:48
[1] 授業単元:計算機数学U [2] 問題文(含コード&リンク): banana melon orange appleなどと代入して、 辞書式のリスト構造を作り、それを出力する プログラムを作りなさい [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC 6.0 [3.3] 言語:C++ [4] 期限:できれば今日中がいいです。 [5] 2分探索木を最後に習いました。 ぼるじょあさん留年がかかってるのでお願いします。
(・3・) エェー 自分が単位もらうわけじゃないし単位落としてもいいYO!
>>375 UNIXのシステムコールを使っとらんがな
384 :
デフォルトの名無しさん :2007/01/19(金) 17:25:35
383さんへ 申し訳ないです…用事で出かけてました。 でも、ありがとうございました!!!
385 :
ニケ :2007/01/19(金) 17:40:22
えぇ〜(><) そう言わずにお願いしますYO! ぼるじょあさぁん!!
386 :
ミケ :2007/01/19(金) 17:59:56
留年した方がニケの為になるのでは?
387 :
ニケ :2007/01/19(金) 18:04:44
ミケめ!! 留年なんて言わなきゃ良かった…。 ホントに誰かお願いします!
>>388 (・3・) あらためて
>>380 を読み返すとユーザーに入力させるんじゃなくて代入なのかYO!
しかも辞書式のリスト構造ってなんだYO!
とりあえず
>>388 は2分木だYO!
390 :
デフォルトの名無しさん :2007/01/19(金) 23:25:32
[1] 授業単元:プログラミング [2] 適当な英文ファイルを読み込んで, アルファベット a 〜 z の各文字の出現回数をファイル frequency.txt に出力するプログラムを作成せよ. ただし, 大文字と小文字は区別しないものとする. ※ fgets で文字列にデータを一行づつ読み込み, 文字列中の文字を一文字づつ調べて出現回数を配列に記録することにより数えよ. 例えば, 配列を int count[26] とすると, 'a' の個数を count[0] で, 'b' の個数を count[1] で, …, 'z' の個数を count[25] で数えるようにすればよい. [3] 環境 [3.1] windows [3.2] cygwin [3.3] C [4] 期限: 2007/1/21 [5] なるべく問題文に忠実に、難しすぎる書き方無しでお願いします。
>>390 (・3・) エェー isalpha tolower は使ってもいいのかNA?
#include<stdio.h>
#include<ctype.h>
int main(void){
char *filename_in="適当な英文ファイル";
char *filename_out="frequency.txt";
FILE *fp_in, *fp_out;
char buf[256];
int i, count[26]={};
fp_in=fopen(filename_in, "r");
if(fp_in==NULL){
fprintf(stderr, "\nError: %s file cannot open.\n", filename_in);
return 1;
}
while(fgets(buf, sizeof(buf), fp_in)!=NULL){
for(i=0;buf[i]!='\0';i++)
if(isalpha(buf[i]))
count[tolower(buf[i])-'a']++;
}
fclose(fp_in);
fp_out=fopen(filename_out, "w");
if(fp_out==NULL){
fprintf(stderr, "\nError: %s file cannot open.\n", filename_out);
return 1;
}
for(i=0;i<26;i++)
fprintf(fp_out, "%c:%d\n", 'a'+i, count[i]);
fclose(fp_out);
return 0;
}
392 :
ニケ :2007/01/19(金) 23:47:32
ぼるじょあさん! バイトで返事できなくてすみません。 ユーザーに打ってもらうのでこれで 大丈夫です。 ありがとうございました!
>>391 ありがとうございます。使っていいのかどうか分かりませんけど
手伝ってもらったって感じで出すからそれでおkです。
どこの誰とも知れない若者を留年の窮地から救ったぼるじょあ氏の優しさに感動
(・3・)b エェー ぼくたちぼるじょあにかかれば宿題なんていちころなりYO
ぼるじょあさんすごいです〜(><)
void sub(void){ static int abc = 0; abc++; printf("%d,",abc); } 呼び出した時にabcは 毎回ゼロ初期化されるのでしょうか? それとも1,2,3,4,5・・・となるのでしょうか?
>>397 (・3・) エェー 自分で試してみればいいYO!
399 :
デフォルトの名無しさん :2007/01/20(土) 11:22:56
[1] 授業単元: C言語 [2] 問題文(含コード&リンク): 次のような構造体 node と変数 head があり、head は連結リストの先頭を指しています。 この関数 average は、ノードがない場合は 0 を返すものとします。 /* node 構造体と変数 head */ struct node { char name[32]; /* 名前 */ int height; /* 身長 */ struct node *next; /* 次のノードへのポインタ */ }; struct node *head; /* 常に連結リストの先頭を指す変数 */ 変数 head から順にすべてのノードを調べ、平均身長を返す関数 average を完成させてください。 int average(void){ [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C) [4] 期限: [無期限] [5] その他の制限: お願いいたします
>>399 (・3・) エェー これでいいかNA?
int average(void){
struct node *member;
long height_sum=0L;
int node_num, ret=0;
member=head;
for(node_num=0;member!=NULL;node_num++){
height_sum+=member->height;
member=member->next;
}
if(node_num>0) ret=height_sum/node_num;
return ret;
}
二人のボルジョアさん、こんにちわ。
どうしてもボルジョアさんのお仕事や経歴が知りたいNA!
>>402 (・3・) エェー ぼるじょあは自身をぼるじょあと認識した存在の総称だからぼるじょあの中には無数のペルソナがあって特定のお仕事や履歴ってものは無いんだYO!
強いて言えば宿題を片付けるのがお仕事だYO!
(・3・) エェー もいらはアナ○について詳しい
(・3・) アルェー C/C++よりもSchemeとかJavaScriptとかHaskellの方が得意なぼるじょあもいるYO!
>>404 アナゴさんについて詳しく教えて下さい!!><
>>402 (・3・) エェー 本当に知りたいなら自分がどういう立場で、どういう理由で知りたいかを
真実っぽく書けば教えてくれるかも知れないYO!
多分君が期待していると思われる回答が返ってくると思うYO!
事実ではなくて欲しい答えが…
>>406 (・3・) エェー くちぼるの厚さは最大部分で13.4_、色はどどめ色、下唇の中央からちょい右に小さいほくろがあるお
臭いは腐った下痢便のにおいがするお
て、ちゃうわボケ!もいらは○ナルに詳しいんだお
大人の事情で1文字だけ伏せさせて貰ってるお
410 :
ノリ :2007/01/21(日) 00:16:43
悪かったのぅ うちはボケ専門だ
>>398 未定義だったり処理系定義だったりする場合があるから、その答えはまずい。
今回の例では問題ないけど。
412 :
デフォルトの名無しさん :2007/01/21(日) 12:54:33
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): buildheap 関数を参考にして、親 >= 子を満たすヒープ構造 (根に最大値を持つヒープ構造)を構成する buildheap2 関数を作ってください。 /* 親の位置 p、配列の要素数 n、配列 heap を引数に取り、 p から下のヒープ構造を構成する関数 buildheap2 */ void buildheap2(int p, int n, int heap[]){ [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (どちらでも可) [4] 期限: (無期限) [5] その他の制限:
[1] 授業単元: プログラミング技術 [2] 問題文(含コード&リンク):キーボードから3つの線分(整数)を入力し、 その3つの線分で三角形を描くことができるなら"CAN MAKE A TRIANGLE" 描けないなら"CAN'T MAKE A TRIANGLE"と表示する。 [3] 環境 [3.1] OS: (Linux) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C言語) [4] 期限: (無期限) [5] その他の制限: (制御構造、論理演算子)
>>413 (・3・) エェー 「3つの線分(整数)を入力し、」の部分があやしいけど
これでいいのかお?
#include<stdio.h>
int main(void){
int a, b, c;
printf("三角形の三辺の長さを入力して下さい :");
scanf("%d %d %d", &a, &b, &c);
if(a>0 && b>0 && c>0 && (-a+b+c)*(a-b+c)*(a+b-c)>0)
printf("\"CAN MAKE A TRIANGLE\"");
else
printf("\"CAN'T MAKE A TRIANGLE\"");
return 0;
}
ぼるじょあさんへ 僕は大学の一年で、応用化学を専攻しています。教養の科目でプログラミングを取りました。 コンピュータの素晴らしさや、プログラミングの面白さを知りました。 そんな、プログラミングを軽々やっちゃうぼるじょあさんのことが知りたいので いろいろ聞きました。ぼるじょあさん達のこと教えてください。 いつもありがとう
/ ̄ ̄\ / ヽ_ .\ ( ●)( ●) | ____ (__人__) | / \ l` ⌒´ | / ─ ─ \ . { |/ (●) ( ●) \ { / | (__人__) | ,-、 ヽ ノ、\ ` ⌒´ ,/_ / ノ/ ̄/ ` ー ─ '/>< ` ー─ ' ┌、 ヽ ヽ, / L_  ̄ / _l__( { r-、 .ト _,,二) / ・ ・ 〔― ‐} Ll | l) ) >_,フ / }二 コ\ Li‐' __,,,i‐ノ l × └―イ ヽ | l i ヽl
[1] 授業単元: C言語 [2] 問題文(含コード&リンク):画面に「*」を用いて底辺が6文字分の長さ を持つ直角三角形を表示する。for文を使用すること 実行イメージ * ** *** **** ***** ****** [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: C言語 [4] 期限: 無期限 [5] その他の制限:お願いします
>>417 int main(void){
char*p="\0******" + 6;
for(;*p;--p){
puts(p);
}
return 0;
}
>>417 #include <stdio.h>
int main(void) {
static const int n = 6;
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < i + 1; j++)
printf("*");
printf("\n");
}
return 0;
}
420 :
デフォルトの名無しさん :2007/01/21(日) 17:58:51
412お願いします。
>>420 ま、いいや。どちらでも可ってことだし、とりあえずC++で。
#include <algorithm>
void buildheap2(int p, int n, int heap[]) {
std::make_heap(heap + p, heap + p + n);
}
423 :
デフォルトの名無しさん :2007/01/21(日) 20:25:40
[1] 授業単元: 数値解析 [2] 問題文(含コード&リンク): 整数a,bを与えた時、a,bの 最大公約数(a,b),及びax+by=(a,b)を満たすx,y∈Z を一組求めるプログラムを作れ。 (Zは整数全体の集合とする) [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: gcc 3.4 [3.3] 言語: どちらでも可 [4] 期限: 2007年1月22日 [5] その他の制限: 問題に、実行結果をいくつか添付することと書いて あります。 お願いします。
424 :
デフォルトの名無しさん :2007/01/21(日) 20:39:36
言語:C よろしくお願いします。 n 個のデータをキーボードから入力し,その平均と標準偏差を求めるプ ログラムを作成せよ。データの個数n もキーボードから入力できるようにす ること。 ※例えば,5個のデータ50,60,70,80,90 の平均は70, 標準偏差は15.8である。 (テストデータとして入力し,結果を確認せよ)
>>423 #include <stdio.h>
void extended_gcd(int a, int b, int *x, int *y, int *g) {
int tx = 0, lastx = 1, ty = 1, lasty = 0, temp, quotient;
while (b != 0) {
temp = b; quotient = a / b; b = a % b; a = temp;
temp = tx; tx = lastx - quotient * tx; lastx = temp;
temp = ty; ty = lasty - quotient * ty; lasty = temp;
}
*x = lastx; *y = lasty; *g = a;
}
int main(void) {
int i, a[] = {88, 84, 87, 84, 92, 78, 28, 90, 96, 54}, b[] = {70, 86, 81, 74, 96, 63, 50, 35, 14, 69}, x, y, g;
for (i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
extended_gcd(a[i], b[i], &x, &y, &g);
printf("%d*%d+%d*%d=%d\n", a[i], x, b[i], y, g);
}
return 0;
}
【実行例】
88*4+70*-5=2
84*-1+86*1=2
87*-13+81*14=3
84*15+74*-17=2
92*-1+96*1=4
78*-4+63*5=3
28*9+50*-5=2
90*2+35*-5=5
96*-1+14*7=2
54*9+69*-7=3
>>424 #include <stdio.h>
#include <math.h>
int main()
{
float input_data[99], heikin, hensa, sum_heikin=0, sum_hensa=0;
int i, n;
scanf("%d", &n);
for (i=0 ; i<n ; i++)
{
scanf("%f", &input_data[i]);
sum_heikin+=input_data[i];
printf("%f\n", sum_heikin);
}
heikin=(float)sum_heikin/n;
for (i=0 ; i<n ; i++)
{
sum_hensa= sum_hensa+(input_data[i]-heikin)*(input_data[i]-heikin);
}
hensa=sqrtf(sum_hensa/n);
printf("%f\n%f\n", heikin, hensa);
return 0;
}
427 :
423 :2007/01/21(日) 21:03:56
>>425 ありがとうございます!本当に助かりました!!
428 :
デフォルトの名無しさん :2007/01/21(日) 21:09:10
>426 下のを自分で作ったのですが、標準偏差の計算部分は合っていますでしょうか? #include<stdio.h> #include<math.h> int main(void){ double sum,input,heikin,hensa,sum2; int n; printf("入力されたデータの平均と標準偏差を求めます。\n"); printf("入力を終わらせたい時は000と入力して下さい。\n\n"); printf("データを入力して下さい\n"); n=0; sum=0; sum2=0; while(input!=000){ n++; printf("%d番目のデータ:",n); scanf("%lf",&input); sum=sum+input; sum2=sum2+input*input; } heikin=sum/(n-1); hensa=sqrt((sum2/n-1)-(heikin*heikin)); printf("平均:%lf\n",heikin); printf("標準偏差:%lf\n",hensa); return(0); }
>>428 (・3・) エェー n-1を括弧で括ってないから間違ってるYO!
あと、質問テンプレの標準偏差の数値は不偏分散の二乗根みたいだYO!
[1] 授業単元: [2] 問題文(含コード&リンク):相手にメールを送り、受け取った人がそれを開くと 自動的にドレミファソラシドの音を繰り返すプログラムを作成せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語: C/C++どちらでも可 [4] 期限:2007/2/4 [5] その他の制限:音階は特に気にしなくていいです
それなんてウイルス?
授業単元:プログラミング演習 です。書き忘れ。
>>430 >自動的にドレミファソラシドの音を繰り返す
この部分はメーラー依存になるな
VBSでいいのか?
>>433 おっけいです 題意を満たせば問題ないです
435 :
デフォルトの名無しさん :2007/01/22(月) 10:10:38
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): 中心の要素は a[(left+right)/2] で求めることができます。 この要素を左側の要素と交換すれば、同じプログラムを利用できます。 クイックソートの軸として、中心の要素の値を使うことが一般的です。 quicksort 関数を変更してください。 [3] 環境 [3.1] OS: (Windows) [3.2] コンパイラ名とバージョン: (gcc 3.4) [3.3] 言語: (C) [4] 期限: (明後日) [5] その他の制限:
>>435 (・3・) エェー 変更元になる quicksort 関数の書き込みはまだかお?
(・3・)(・ε・)
>>430 (・3・) エェー もいらはギブアップだYO! 他のぼるじょあさんと名無しさんが頼りだNE!
ちなみに、メールを受信した側のPCで音を鳴らすの?
それとも、メール送信した側で開封通知メールの機能を使って送信した側で音を鳴らすの?
送信した側です
441 :
440 :2007/01/22(月) 20:52:43
ちがいます!すみません受信した側のpcで鳴らすよう言われました。
難しい
あははのは
>>444 できるけど今は他のやってるから。
終わったらやろうか?
ぜひお願いします!
447 :
デフォルトの名無しさん :2007/01/23(火) 19:08:36
[1] 授業単元:c言語 [2] 問題文 #include <stdio.h> #include <string.h> #include <ctype.h> int main(int argc, char *argv[]){ int c; FILE *src; /* 読み出し側 */ FILE *dst; /* 書き込み側 */ char ifilename[128]; /* 読み出しファイル名 */ char ofilename[128]; /* 書き込みファイル名 */ if(argc != 2){ [ 空欄 1 ](stderr, "利用方法: %s filename\n", argv[0]); return 1; } /* ifilename に argv[1] をコピー */ [ 空欄 2 ](ifilename, argv[1]); /* ofilename に ifilename に .tmp を付けたものを出力 */ [ 空欄 3 ](ofilename, "%s.tmp", ifilename src = [ 空欄 4 ](ifilename, "r"); if(src == NULL) { printf("ファイル%sのオープンに失敗しました\n", ifilename); return 1; } dst = [ 空欄 4 ](ofilename, "w"); if(dst == NULL) { printf("ファイル%sのオープンに失敗しました\n", ofilename); return 1; } /* EOF でないかぎり、src から 1 文字読み出し */ while((c = fgetc(src)) != EOF){ if(isupper(c))
448 :
デフォルトの名無しさん :2007/01/23(火) 19:09:16
c = [ 空欄 5 ](c); /* 大文字は小文字に変換 */ else if([ 空欄 6 ](c)) c = toupper(c); /* 小文字は大文字に変換 */ /* dst に 1 文字書き込み */ [ 空欄 7 ](c, dst); } /* ファイルを閉じる */ [ 空欄 8 ](src); [ 空欄 8 ](dst); /* ifilename を削除 */ if([ 空欄 9 ](ifilename) != 0){ [ 空欄1 ](stderr, "ファイル%sを削除できませんでした。\n", ifilename); return 1; } /* 出力したファイルの名前を、ofilename から ifilename に変更 */ if([ 空欄 10 ](ofilename, ifilename) != 0){ [ 空欄 1 ](stderr, "ファイル%sの名前を変更できませんでした\n", ofilename); return 1; } return 0; }
449 :
デフォルトの名無しさん :2007/01/23(火) 19:09:59
すいません。447と448つなげておねがいします。。
450 :
デフォルトの名無しさん :2007/01/23(火) 19:11:15
問題文です。 コマンドの引数としてコマンドラインに指定されたファイル名のファイルを開き、 その内容についてアルファベットの小文字を大文字に、大文字を小文字に変換し (それ以外はそのまま)、いったん別名のファイルに出力します。最後に元の ファイルを削除して、仮に出力したファイルの名前を、元のファイル名(引数のファイル名) に変更します。
>>1 のボルジョアさんが出てこないなぁ・・・
>>430 やってくれてるのかなぁ・・・
(・3・) エェー linuxはよくわからんけど linuxはどんなメーラーでも受け取ったメールが音を鳴らす仕組みがあるのかお? もしかして安易に実行可能ファイルを実行できたりもするのかお? てそんなわけないか
454 :
デフォルトの名無しさん :2007/01/23(火) 21:57:03
[1] 授業単元:プログラミングT [2] 問題文(含コード&リンク): 一単語一行の入力テキストを、指定された桁数(70)以内で、 できるだけ少ない行数に納まるように調整して出力する。 ただし、単語の途中で改行してはいけない。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: わかりませんが、Visual Studio 2005 を使っています [3.3] 言語:C++ [4] 期限:1月25日 [5] その他の制限: 特に指定されていません。 よろしくお願いします。
メールの定義が曖昧
>>455 つまりそういうメールソフトを作りたいってこと?
例えばメールにスクリプトが書かれていたらその部分を
メールソフトでデコードして音にして出すとか?
>>447-448 [ 空欄 1 ]printf
[ 空欄 2 ]fopen
[ 空欄 3 ]strcat
[ 空欄 4 ]fopen
[ 空欄 4 ]fopen
[ 空欄 5 ]tolower
[ 空欄 6 ]islower
[ 空欄 7 ]fputc
[ 空欄 8 ]fclose
[ 空欄 8 ]fclose
[ 空欄 9 ]unlink
[ 空欄10 ]rename
悲鳴メールとか流行りそうでやだなw
悲鳴ーる
どうみても質問の仕方が悪い システムを分かってなさ過ぎ
466 :
デフォルトの名無しさん :2007/01/24(水) 00:07:28
すいません 454をお願いします
荒れてきたよー 釣りかもよーw
_, ,_ (・3・) エェー ぼるじょあはいないのかYO
エェー 自演失敗シタ
>>447 (・3・) エェー 結構作りこんである教材だNE!
満遍なくいろんな関数を織り込んであるところがいいYO!
1.fprintf
2.strcpy
3.sprintf
4.fopen
5.tolower
6.islower
7.fputc
8.fclose
9.remove
10.rename
>メールソフト C#では簡単に作れたんだが・・ Cでは作ったこと無いなぁ
473 :
デフォルトの名無しさん :2007/01/24(水) 08:55:39
[1] 授業単元:情報工学実験
[2] 問題文(含コード&リンク):
ttp://www.geocities.jp/sweety_lemonade の「基地局プログラムの開発の進め方」にある1〜6の機能を持つプログラムの作成をお願いいたします。
[3] 環境
[3.1] OS:redhat9 & fedoracore6
[3.2] コンパイラ名とバージョン:gcc3.4
[3.3] 言語:Cのみ
[4] 期限:できれば今週中。
[5] その他の制限: 特にありません。
必要な呼制御メッセージやその役割は「参考スライド」に書いてあります。
よろしくお願いいたします。
>>473 もうあきらめろよ
このスレ見てる人は別のスレも見てるから
レスがないってことはみんな出来ないんだよ
>>473 USBで携帯端末と通信と書いてあるが、携帯端末の実物も無ければ仕様も不明。
中央サーバーに接続してって書いてあるがIP隠されて接続試験も出来ない。
これで電話の基地局作れってんだから笑わせる。
476 :
デフォルトの名無しさん :2007/01/24(水) 16:45:26
436ぼるじょあさん。元になるというか void quicksort(int a[], int left, int right) から始まる関数です。
>>473 (・3・) エェー おもしろそうだけどそろそろ風呂入って寝るから回答できないお
土曜日までやってくれる人がいなさそうならもいらが回答してやるお
忘れっぽいから土曜日にゆうこりん似のアナ○画像か大沢あかねたんのコラ
(アナ○見せてると尚可)をうpして気づかしてくれお
補足: コラじゃなくても大沢あかねたんの激似のエロ画像(ア○ルが見えてると最高なんだけど・・・) でもいいお
479 :
デフォルトの名無しさん :2007/01/25(木) 04:04:32
何がぼじょるあや ションベンの音やんけ
ぼるじょあさん、がんば!!
このスレは終わったのですか?
482 :
デフォルトの名無しさん :2007/02/02(金) 00:09:26
まだだ!まだ終わらんよ!
ふはははは、ぼるじょあは滅びぬ。何度でもよみがえるさ。
484 :
チンコ :2007/02/02(金) 03:09:32
マンコ
485 :
あっこ :2007/02/02(金) 04:45:08
>>1 #include <iostream>
#include <iomanip>
int main()
{
int (*a)[9] = new int[9][9];
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
a[i][j] = (i + 1) * (j + 1);
std::cout << std::setw(3) << std::right << a[i][j];
}
std::cout << std::endl;
}
delete[] a;
}
489 :
あっこ :2007/02/02(金) 19:58:44
みなさんありがとうございます。
490 :
あっこ :2007/02/02(金) 20:25:07
492 :
あっこ :2007/02/02(金) 22:00:03
>ぼるじょあさん 助かります。 2,3もよろしくお願いします。
495 :
あっこ :2007/02/02(金) 23:37:47
(・3・) エェー 追加の質問は受け付けないYO! (・3・) 誰かやってあげなYO!
ぼるじょあは逃げ出した! ぼるじょあは逃げ切れない!!
だが敵が恐れをなして逃げていった
あっこおまかせしすぎだろw
ぼるじょあじーはやればできる子
>>495 (・3・) エェー C++は大嫌いだし回答してやらないお
C++はオブジェクト指向黎明期の言語で
時代について行こうとごてごてと拡張を繰り返し
そんな言語を使ってでソースを書いた結果、汚くわかりにくい
暗号のようなソースができあがる
やっぱ古くさくても基本がしっかりしているCに限るお
もいらがWinアプリを作るときはWin32API&Cの組み合わせしか信用しないお
>>477 か
>>478 を解決してくれたら回答してやってもいいお
>>495 (・3・) エェー デザパタで言うと何の形で設計すればいいのかNA!
[問題]C言語 2つの値を入力してunsigned char型の変数x,yに代入してください。 また、a = x + y,b = x * yの計算をし表示してください。 ※a及びbは、オーバーフローを考慮しえプログラムを作成すること printf関数で出力。
で今こうゆうの書いてますが、aとbにunsigned charが入れれなく困ってます。 #include <stdio.h> struct hensu{ int a; int b; unsigned char x[10]; unsigned char y[10]; }test; void data_input() { printf("2つの値を入力してください。\n"); scanf("%s",&test.x); scanf("%s",&test.y); } void data_output() { printf("x = %s, y = %s, x + y = %d, x * y = %d",test.x,test.y,test.a,test.b); } int main(int *, unsigned char *) { data_input(); data_output(); return 0; }
>>504 (・3・) エェー それってcharに入れた値を文字としてでなく数値として計算せYO
ってことじゃないのかYO
文字列で入力するならatoiとかstrtolで数値に変換しないとYO
10個の任意の数字を昇順(小さい数から大きい数)に並び替えるプログラムを作成しなさい
(・3・) エェー テンプラに従ってYO 命令すんなYO
ボルジョアさん復活してる〜!!! これからもよろしくね!!!
>>506 (・3・) エェー とりあえず並び替えだけやってみたお
#include<stdio.h>
#include<stdlib.h>
int main(void){
longnum[10] = {47, 38, 74, 19, 93, 48, 12, 92, 90, 21};
longi, k;
for(i= 0; i< 10-1; i++){
for(k= i+1; k<10; k++){
if(num[i] > num[k]){
longswap = num[i];
num[i] = num[k];
num[k] = swap;
}
}
}
return EXIT_SUCCESS;
}
(・3・) エェー 僕、homoじょあ 稀にしか来ないクソコテですYO
homoじょあさん、こんにちわ
homoじょあさん、こんばんは
>>512 (・3・) エェー
>>1 じゃないけどなんだお? もいらは仕事上、画像処理専門だお
jpegデコーダ作ってとかあんまり無謀で巨大な課題以外なら答えてやるお
ちなみにjpegデコーダくらいならinterlaceのみだったら作ったことはあるお
ハードウェアデコーダ(LSI)を使ったものなら全サポートでドライバ作ったことあるけどお
(・3・) エェー ただしCでしか答えてやらないお さてと、風呂入って寝るべ、また明日
ほるじょあさん、おやすみなさい
PC初心者でぼるじょあのスレみつけたんだけど このぼるじょあさんは変態なの? 80 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2007/02/03(土) 09:04:06 ID:??? (・3・) エェー さすがに疲れてアナ○したい、なんて気力もないお でも大沢あかねたんだけは別腹だお 81 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2007/02/03(土) 09:06:29 ID:??? (・3・) エェー 大沢あかねたんが両手で尻を思いっきりひろげて 仰向けにねてるもいらの顔の上に覆い被さってきてくれたら きっと安眠できるだろうなあ・・・はぁ 82 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2007/02/03(土) 09:08:13 ID:??? (・3・) エェー 大沢あかねたんのお尻を24時間なめ続けたいお・・・はぁ 人間の舌って何で短いんだろうね、もっと長ければ 大沢あかねたんの尻に舌を差し込んでもっと深く彼女を愛せるのに・・・はぁ 83 名前:ぼるじょあ ◆yBEncckFOU [sage] 投稿日:2007/02/03(土) 09:09:28 ID:??? (・3・) エェー 疲れてるにも関わらずぽこたんがエレクトしてきたお さてとそろそろベッドインするべ
>>512 です
課題学校に忘れてきたので思い出したときに書きます
そのときはよろしくお願いします
アナルやらせてくれるのかお?
[1] 授業単元: [2] 問題文:2値画像をランレングス符号化法により圧縮符号化するプログラムをつくり、原画像と 圧縮後のデータを比較せよ [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:ぼるじょあさんのやりやすいもので [4] 期限:無期限 [5] その他:よろしくお願いします
無期限とは書いたものの・・・ できるだけ早くお願いします 一応課題なので・・・
(・3・) エェー
>>522 ランレングス符号化といわれても大雑把すぎるお
貴様の先生が提示したランレングス符号化のアルゴリズムもちゃんと書けお
それと2値画像の形式はなんだお、1bit/pixelかそれとも1byte/pixelか
1と0が書かれたテキストファイルなのかちゃんと書けお
524 :
デフォルトの名無しさん :2007/02/06(火) 23:27:52
[1] 授業単元: プログラミング言語 [2] 問題文(含コード&リンク): 数学の点数のデータが入った1次元配列のアドレスと人数を受け取り、 それらの最大点、最小点、平均点を求めて返す関数を作成せよ。 但し、main関数では、最初に、点数のデータを初期値代入し、関数を呼び出した後は、 最大点、最少点、平均点の値を出力せよ。 [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ:Visual C++ 6.0 [3.3] 言語: C++ [4] 期限: 期限はないです よろしくお願いします
C++はダメだったのか・・・orz 学校生活オワタ\(^o^)/
>>522 (・3・) エェー 勉強しながらでいいならやるYO
出来る保障ないけどYO
>>524 (・3・) エェー 表面以外全部CでいいならやるYO
もう寝るけどYO
528 :
524 :2007/02/06(火) 23:58:03
できればC++がいいのですがCでも構いません;;よろしくお願いします・・。
>>528 C++もおkなぼるじょあもいると思われ
(・3・) エェー
>>522 の課題はhomoじょあ氏がやってくれるらしいお
結局もいらの出る幕ではなかったな
そんなこんなでまだ1問しか回答したことないし
ここはもいらが出る幕もなく優秀な回答者が揃ってるなという感じだお
(・3・) エェー まあランレングスで作れと言われても 白ランと黒ランを「白が5画素」「黒が10画素」というように 記録していくわけだけど「」の部分をどうやって符号にするかは 何パターンかあるしどういうパターンで符号化してほしいのか (または特に規定されてないのか) 入力画像の形式を書いてくれないと仕様が違うからやり直しってことに なりかねんしなあ
(・3・) エェー しかしもいらのpcじゃvista糞重すぎて使い物にならんお まあ春くらいに新しいpcを購入する予定だけどお 久々にタワー買ってみるつもりだお、今はノートpc ディスプレイはハイビジョンTVをhdmiで使う予定 会社ではhdmiで60Vのディスプレイにpcの画面を映して いるのをよく見るだけに最近pcの小さい画面じゃ満足できなくなってきたお まあ2ちゃんやるかアプリ作るくらいしかpc使わないんだけどね 新しいpc買ったらエミュレータでゲームでも動かしてみるつもりだお
ぼるじょあさんの仕事を教えてください 僕は情報系の大学院卒業予定で就職について考えてます プログラマーになれれば幸いです
windowsを使ってたのですがLinuxも入れてみました。emacsもxemacsも使えないのですが 何かしなきゃならないのでしょうか?素人でゴメンナサイ
>>536 (・3・) アルェー プログラマは体力的に超過酷な商売だYo!
趣味でやるにかぎるYo
ぼるじょあの方々、体に気をつけて長生きしてください
(・3・) エェー
>>537 さっさとアンインストールしろお
仕事以外でLinux使うのは偏屈人間か変態か馬鹿だけだお
emacsはうんこだお
(・3・) エェー PS1のFF4/5/6を見つけたお ただいまだうんこ中♥
(^3^) エェー だうんこ終了 エμでふつうにプレイできたお、懐かしいね この頃のスクエアはほんとよいゲームを出していたお
>>541 ぼるじょあさんは仕事中にここの宿題を片付けているのですか?
emacs以外にプログラミングできるのって何があるんですか?
素人ですみません・・・
(・3・) アルェー emacsをうんこ呼ばわりなぼるじょあもいるのかYo! Lisp系言語だとemacsかviは必須だけどC/C++だと IDEの方が便利な場面もあるから理解できなくはないけど、 カスタマイズ性が超強力な分だけなれるとemacsの方がいいYo!
>>545 のぼるじょあさんへ
Turbo Linuxの無料のやつをインストールしたのですがemacsエディタがありません
どうすればいいのか教えてください
>>545 (・3・) エェー lisp使ってる人は一部のマニアで単なる自己満足だお
emacsにしろviにしろ所詮一部だけのもの、そんなによければ
ユーザが増えるだろうに
・・・というもいらはemacs派だお、というかemacsでtexとcの統合環境を
作ってるし今更はなれられんお
>>546 フルインストールを選択しろお、それでもなければだうんこした
イメージの中をあさってみろお
もしくはここだお
ftp://ftp.turbolinux.co.jp/pub/TurboLinux/ xemacsだったらおいてあると思うお
>>547 ありがとう!これからそのサイトいってみます
ちなみにxemacsもはいってませんでした
普通に買えばいいのかな・・・
すみません、これをどうすればいいのでしょうか・・・
Server10用だけどインスコできるはず・・・
Turbolinux FUJI のトライアル版をインストールしたんですが・・・ まぁまず見てみます
すみません まぁインストールしてやったところxemacsはできました コンパイルができないのはなぜですか?ほんとに素人ですみません
ccコマンドがないのですが・・・ 板違いも甚だしいとは思いつつレスを期待しいています。 製品版を買えば全部解決するのでしょうかね。
ライセンスが取得できねー どうなってるんだー
(・3・) エェー もいらturbolinux 8の製品版持ってるけど MSのwindows updateみたいな自動アップデートやら windowsとほぼ同じguiを導入したりしていたんだけど 思った以上に使い物にならなかったお 自動アップデートは数百件のパッチがリストアップされて いざインストールと思ってもパッチを当てる順番があるらしく 失敗しまくっていたお、結局10個単位でインストールしたんだけど 最後の方になると「パッチを当ててください」とダイアログが出るにもかかわらず 「インストールに失敗しました」と出るw サポートセンターも不親切で全く役に立たないし ライブドア時代の話だお、今は少しはまともになってるんだろうか turbolinux FUJIも最悪の出来らしいしお 唯一製品版はATOK使えたのがよかったお
(・3・) エェー そんなこんなでもいらはVineLinuxを使っているお、
というと
>>541 のもいらのレスと矛盾するけど
偏屈人間だから無問題だお
ぼるじょあさんありがとう gccのRPMファイル見つけたんでインストールしようと思ったけど インストールできないですw 「インストール」ってボタンがなくてw もうわけわからん 確かにいろんなところでTurboLinuxは叩かれてますね・・・ Vineっての見てみます
SUSEはどんなかんじ?
お金を払わず、ってならDebianを推してみる
(・3・) エェー じゃあ画像はそのうちやるぽ
(・3・) エェー
>>564 やるって言ったんだからさっさとやってあげろお
>>561 個人で使うには一番扱いやすいと思うお、日本仕様だしお
ただ更新がとてつもなく遅くで最近ようやっとkernelのバージョンをあげて
もいらのPCでも動くようになったお
(*・3・*) エェー 大沢あかねたんかわいいなあ・・・みんなランキン見てるのかな あの変な帽子がまたたまらん・・・
(・3・) エェー 筋弛緩剤入りのローションを大沢あかねたんのシリアナに執拗に練り込み ぱっくり開いたそのシリアナにたっぷり牛乳とコーヒーを入れてシャッフルした後 おなかを思いっきりパンチしてシリアナからはき出されたミックスコーヒーを 大沢あかねたんに飲ませたいお
(・3・) エェー つーかあまりに大沢あかねたんがかわいすぎてあたまがおかしくなってしまいそうだお
そんなあなたがうらやましい
(・3・) エェー 肛門野郎が命令すんなボケ
571 :
ぼるじょあ ◆yBEncckFOU :2007/02/11(日) 21:41:37
(・3・) エェー アナルしたいお
(・3・) エェー アナル気持ちイイお
自分のチンコをアナルに突っこんどけ
>>521 (・3・) エェー 質問だYO
2値画像がどんなんかはわかったけど、どうも保存の形式によって
記録のされかたが違うYO
どれでやるんだYO
ついでにsample画像ちょーらいYO
とみんな聞いてるんだけどこの質問者 答えないんだよ。事故って死んだんじゃ?
(・3・) エェー 事故死ですかYO 仕方ないですがむっしっしですNE
課題をぼるじょあに押しつけて三連休遊んでるだけじゃないのかな
578 :
デフォルトの名無しさん :2007/02/12(月) 13:33:33
(・3・) エェー
_, ,_ (・3・) エェー ぼくの顔勝手に使わないでYO
580 :
ぼるじょあ ◆yBEncckFOU :2007/02/12(月) 14:16:10
(・3・) アルェー 悪かったYO
581 :
デフォルトの名無しさん :2007/02/12(月) 15:30:21
[1] 授業単元: プログラミング演習3 [2] 問題文(含コード&リンク): 下 [3] 環境 :OS(Solalis)/コンパイラ(SunWorkShopC++6.0) [4] 期限 :2007/02/28 何度か見せにいったのですが、#if 0とかが入れ子になってたり、/*が途中で含んでいたりだとうまくいかなくて、 現状はめちゃくちゃ長くなっていてるんですが一応貼っておきます
583 :
デフォルトの名無しさん :2007/02/12(月) 15:31:19
一度も授業うけてないんでよろしくっす C++のソースコードから全てのコメントを取り除くプログラムを書け。レポートの評価は以下の通りとする 1.//を取り除く、/* */を取り除く(60点可) 2.#if 0〜#endif、#if0〜#else〜#endif等の削除(70点良〜95点) 3.指定#ifdef、#ifndef等の削除(70点良〜100点) 今まで講義を無受講、レポートを出していなくても、 2.の出来が優秀ならば単位取得に神風が起こるであろう。(ただし60点可とする) 神風を狙う場合は何度も見せにくるのが望ましい。 例
584 :
デフォルトの名無しさん :2007/02/12(月) 15:32:14
----------------------------------------------- #include <stdio.h>//標準ヘッダ int main() { /* 文字を表示してみる */ #if 0 printf( "Good Morning\n" ); #else // /*夜*/printf( "Good Knight\n" ); /*夜*/printf( "Good Night\n" ); #endif return 0; } ----------------------------------------------- ↓ ----------------------------------------------- #include <stdio.h> int main() { printf( "Good Night\n" ); return 0; } -----------------------------------------------
585 :
デフォルトの名無しさん :2007/02/12(月) 15:37:06
>>1 のロダは
このページにアクセスできません。(403 Forbidden)
ってなるぶ・・・
586 :
デフォルトの名無しさん :2007/02/12(月) 16:11:48
アドレス欄に貼り付けてアクセスすれば大丈夫。
神風特攻隊 チン☆⌒ 凵\(\・3・) まだぁ?
(・3・) エェー つーか本当に言語はC++なのかYO
_, ,_ (・3・) エェー ちゃんと入れ子にも対応しろお
(・3・) エェー
>>570 ホモの男好きに肛門野郎と罵られるとはw おもしろいお
(・3・) エェー
>>571 >>572 それ本気でいってるのかお?本スレでは批判するやつばっかりなんだお、
もしそれを本気で言ってるなら本スレにきて盛り上げてほしいお
欧米や欧州じゃ性行為経験者の90%以上の男、70%の女が
アナ○経験者で日本人の男の60%はアナ○に興味持ってるのに
ぼるスレの住民なんかおかしいお
(・3・) エェー
>>574 それもいらがちょっと前に聞いてるじゃん、もうあきらめたんでねーかお?
(・3・) エェー
>>589 にもの申すと/* ここを #if 対応部分に書きかえればいいYO! */
とコメントしてるけどそう単純ではないお
(・3・) エェー 仕事で作ったいふでふとコメントを削除するプログラムが今手元にあるけど
>>583 の「一度も授業うけてないんでよろしくっす」というのを読んだらとたんに
うpする気が失せたお
まあ
>>589 で60点で落第は免れるだろうしよかったんじゃないかお
(・3・) エェー
>>594 に質問だYO!
#ifdef に対応するって事は #include されたファイルを読みにいくのかNA?
(・3・) エェー
>>597 そこまでしないお、削りたいキーワードはだいたい決まってるだろうしお
ちなみにいふでふといってるのは#if, #ifdef, #ifndef, #elif, #else, defined, など
すべて含むお
(;3;) エェー ぷーたん来ないし寝るお ・゚・(ノД`)・゚・
>>599 (・3・) エェー すごいYO! もいらはここでギブアップだYO!
602 :
デフォルトの名無しさん :2007/02/13(火) 13:00:06
604 :
C :2007/02/13(火) 18:13:51
うっす。お前らC言語いまだにやってんの? 今はC++の時代だから(微笑) うふふ。
(・3・) エェー C++なんて中途半端な言語は流行らないお、まあClassと 多態性とシングル継承まではよかったけど その後にごてごてとtemplateやら多重継承(単体継承で十分だし 多重させる人は頭が悪い)、節操のない言語拡張・・・、 はっきり言ってうんこ
(・3・) エェー 簡単にまとめるとOOLが有る程度体系立ってきて それについて行こうとごてごて拡張した結果、駄目言語に様変わりしたってことだお 大沢あかねたんがかわいすぎるお、口がえろい
(・3・) エェー もいら女の口を見たらその人のアナ○の形が分かるお 大沢あかねたんは肌色に近いピンク色できれいな菊の門をしていて 興奮するとしわが取れてぱっくり開くはずだお
(*´3`*) エェー そのぱっくり開いた穴に舌を3時間差し込み大沢あかねたんを感じたいお・・・はぁ
609 :
デフォルトの名無しさん :2007/02/15(木) 07:29:20
氏ね
610 :
デフォルトの名無しさん :2007/02/15(木) 14:10:05
[1]プログラミング基礎 [2]問題文:9桁以下の2つの正整数 m,n を入力して、 m/nの小数部を四捨五入して得られる整数値 を出力するプログラムを作成せよ。 [3]環境 [3.1]linux [3.3]C [4]2007年2月15日15:00まで よろしくお願いします。
(int)((double)m / n + 0.5)
612 :
ぼるじょあ ◆yBEncckFOU :2007/02/15(木) 17:56:14
(・3・) エェー アナル、アナル、アナル、ぼるじょあ、アナル大好きお アナル、アナル、大好きお、いいお
>>610 (・3・) エェー 期限短すぎるYO!
試験かYO!
(m*2+n)/(n*2)
(・3・) エェー みんなの宿題ぼるじょあが待ってるYO
[1]C言語 [2]問題文:ぼろじょあって誰? [3]環境 [3.1]Windows XP [3.3]C [4]2007年2月20日24:00まで
>>615 (・3・) エェー 期限過ぎてるけど回答するYO!
このスレに『ぼろじょあ』はいないYO!
617 :
デフォルトの名無しさん :2007/02/27(火) 20:28:20
#include <stdio.h> int main( void ) { for(;;) { printf( "Hung up\t\b\b\b\b\b\b" ); } return 0; } テンプレめんどいから直接聞きます これ実行するとどうなるの? 無礼極まりないのは解ってます
>> 617 Hung up という文字で画面生めながらBEEPがなりまくる。 何時までたっても終わらない…
>>617 自分でやってみれば?
コンパイラにもよるけど Ctrl+C で止まるだろうし
ジョークソフトだから
620 :
521 :2007/02/27(火) 20:36:06
パソコン修理に出してました皆さんかまってくれてありがとう 皆さんのやりやすいようにやってください 宿題じゃないんですがそれっぽいのを作ってもらえるとうれしいです そこからは自分で発展させます 細かい理由は聞かないでください やりたくなかったらやらなくて結構です 事故死ではありません
>>618 俺の人生経験上\bはバックスペースだと思うんだよね。
622 :
デフォルトの名無しさん :2007/02/27(火) 22:42:54
>>621 そういうのもあるね そうじゃないのもあるね
623 :
デフォルトの名無しさん :2007/02/27(火) 23:01:16
全くの初心者です。。。 今日中の提出なのですがまだ出来てない状況です。 Cファイルxxx.cを読んでコードの行、コメントの行、空白の行をカウントアップ するプログラムです。 仕様は ・起動パラメータにC言語のソースファイルを指定する。 ・ファイル内のコード行、コメント行、空白行をそれぞれカウントし出力する。 ・コードの後ろにあるコメントは、コメント行にはカウントしない。 ・コメントは // と /* ~ */ を許容すること。 ・入れ子になっているコメントは許容しないこと。(/* /* ~ */ */) ・エラー処理等の細かい仕様は、独自の判断において作成すること。 ・#ifdef等は、考慮しなくてよい。が、できるなら考慮する。 です。 カウント部分は while(fgets(buf,256,fp) != NULL) { } の中で作成するようです。Cファイルから読みます 宜しく御願いしますm(__)m
624 :
デフォルトの名無しさん :2007/02/27(火) 23:11:13
623です すいません焦ってしまってテンプレ貼り忘れました。。。 [1] 授業単元: プログラミング演習 [2] 問題文 上記の仕様です [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C [4] 期限: 今日 です
>>623 (・3・) エェー 期限過ぎちゃってるけど、やったほうがいいのかNA?
627 :
デフォルトの名無しさん :2007/02/28(水) 00:36:20
623です。 はい!朝まで自分も考える所は考えて提出したいと思います。 宜しく御願いします。
校門好きのぼる公来なくなったな 一過性だったか
>>623 (・3・) エェー
>>629 は間違えてたYO!
160行目 argv[1] を argv[i] に変えておいてくれYO!
631 :
デフォルトの名無しさん :2007/02/28(水) 02:07:28
ありがとうございました!!! 早速実行してみたいと思います。感謝しますTT
>>620 (・3・) エェー
>>625 の数値リテラル 255 は ((1<<CHAR_BIT)-1) に置き換えてくれYO!
今度こそおやすみだYO!
634 :
ぼるじょあ ◆yBEncckFOU :2007/02/28(水) 06:35:15
(・3・) エェー やりすぎて、けつの穴いたいYO
635 :
デフォルトの名無しさん :2007/02/28(水) 20:16:40
623です。
昨日はぼるじょわさんありがとうございました。
提出したのですが、、プログラムソースが高度だった
為、簡単なコードでやりなおしてこいと教授につきかえされました。。。
せっかく作成して頂いたのに申し訳ありませんでした。TT
今日、自分で途中まで作成しましたソースがあるのですが
見てもらえませんでしょうか?
main.c内だけの修正となります。
xxx.cとyyy.cとyyy.hという形の3ファイルで実行を行いますので
フォルダに入れて圧縮させて頂きました。ウイルス検索はしましたが、
念の為開ける前にチェック御願いします。
明日の朝提出までに期限のばしてもらったので、どうぞ宜しく御願いします。
追加質問みたいになっちゃいましたが、ぼるじょわさん
もう一度お力をお貸しください。。申し訳ありません。m(__)m
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/3716.zip
>>635 int comment_flag = 0;
while(fgets(buf,256,fp) != NULL){
if (comment_flag){
numcomment++;
if (strstr(buf, "*/") != NULL){
comment_flag = 0;
}
}else{
i = 0;
// タブ、スペース削除
while (buf[i] == '\t' || buf[i] == ' '){
i++;
}
if(buf[i] == '\n'){ // fopen() は "rt"モードで
numspace++;
}else if(buf[i] == '/'){
if(buf[i + 1] == '/'){
numcomment++;
continue;
}else if(buf[i + 1] == '*'){
numcomment++;
comment_flag = 1;
}
}else{
num++;
}
}
}
printf("コード行は%d行です\n",num);
printf("コメント行は%d行です\n",numcomment);
printf("空白行は%d行です\n",numspace);
637 :
636 :2007/02/28(水) 21:53:20
途中に/*が入るとだめだけどめんどくさいので
よく考えたら/* */が1行で終わるとだめだわ
640 :
デフォルトの名無しさん :2007/02/28(水) 23:30:37
632です。 >636さん >639さんありがとうございました。 3717.cで実行したのですが Microsoft Visual C++ Debug Library Debug Assertion Failed! Program: … File: istype.c Line: 56 Expression: (unsigned)(c + 1) <= 256 For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts. というエラーが出まして、掲示板で色々調べてみたら ライブラリーの問題とか fgetsの返値の問題とかが出てきました。 意味がワカリマセンでした。。
(・3・) エェー
>>628 なんだお?2〜3日にいっぺんは様子を見てるお
>>634 ほもかお?きしょいお
ホモ出入り禁止だお
642 :
デフォルトの名無しさん :2007/03/01(木) 00:13:55
windowsでcプログラムができるフリーのソフトウェアを教えてください Microsoft Visual C++ 2005 Express Editionってのはc++しかできないのですか?? ぼるじょあさんはやさしいと聞いてここに来ました
>>642 すべてのC++はCもコンパイルできるYO
VC++以外ならBorlandのBCCとかcygwinでgccとか
全てとはまた大きく出たなぁ。例外は一つもないと思っているんだろうか。
>>644 C++ってそういう規格、仕様じゃないの(Cの記述がそのまま使える)
ANSI CはC++のサブセットだが、C99はC++と互換性ない
C89ですら互換性の無い部分はある。
K&Rスタイルの関数宣言、構造体の中に入れ子となった構造体の宣言、
型安全性の強化(特にvoid*から他のポインタ型への変換)など。
>>645 VC++、BCC、GCCはCとC++両方のコンパイラを内蔵しているとでもいうべき。
いずれもソースファイルの拡張子やコンパイラオプションなどで、
CとC++のどちらとしてコンパイルするかが切り替えられるようになっている。
しかし全てのC++コンパイラはCコンパイラとしても使えるように
なっていなければならないという決まりはどこにもないので、
そのような機能を持たない純粋なC++コンパイラがあったっていい。
そういうコンパイラでもCのソースをコンパイルしたら、
勿論C++がCのサブセットを内包しているため基本的にはコンパイルできるだろうが、
コンパイラからすれば所詮C++のソースをコンパイルしているとしか認識されない。
648 :
デフォルトの名無しさん :2007/03/01(木) 18:26:37
誰か教えてください・・・
649 :
デフォルトの名無しさん :2007/03/02(金) 01:13:10
ここは過疎が激しいね
651 :
デフォルトの名無しさん :2007/03/02(金) 02:37:44
Visual C++ でc言語のコンパイルができません どうやるのか教えてください
>>651 C言語ならBorlandC++とCPad for bccでも使ってなはれ
>>651 ここは宿題を片づけるスレだよ
コンパイルできないならエラーとか出てるでしょ
654 :
デフォルトの名無しさん :2007/03/02(金) 13:21:29
(・3・) エェー ちょっと暇だから宿題待ってるYO
(・3・) エェー もいらも宿題待ってるお 片っ端から宿題解きたくてうずうずしてるお
(#・3・) エェー 待ってるのにこないし まあ卒業のシーズンだしそもそも学生はみんな春休みか 質問来なくてもしかたないな
(・3・) エェー 宿題来ないから age ちゃうYO! (あと、一週間くらい様子見てからNE)
もう一つの宿題スレでお願いした課題に動きがないのですが こちらに貼ってもよろしいのでしょうか
おk カモン
>>661 こんなん出ました
p = s % size[i];
newvalue = s / size[i] + value[p];
----------------------
value[s] = newvalue;
item[s] = i;
>>663 (・3・) エェー 久しぶりの書き込みがギブアップってのもあれだけど
◆hZ8e4Wjqvw はとりあえずギブアップしとくYO!
俺もぼるじょあになれるのかっ!?
保守
保守
668 :
homoじょあ ◆5OLf4yFnuM :2007/04/07(土) 21:35:38
(・3・) エェー ほっしゅっしゅ
やぁ!homoじょあさん!
(・3・)やぁ・・・なんで僕はこんな時間に仕事やねん
Linuxをパソコンに入れていろいろ勉強したいんですがどれがオヌヌメですか? 企業はWindowsを避けてLinux化するところが増えてるようですがそういうことに対応したいので聞いています 僕は学生です 素人ですが教えてください すれ違いって言われるかもですがまぁ宿題の依頼も少ないようなので教えてください、ぼるじょあさん。
すれ違い→スレ違い
(・3・) エェー Vineでいいんジャマイカ 仕事終わった寝る〜♪
おやすみ
Redhatはどうだろう?前学校Redhatだったんだけど今はなぜかTurboにしちゃったんだよね はいはい Linuxスレに行ってきますよ。。。
RedHatは高いからお勧めできない。 取り敢えずCygwinでも入れておけば充分だろ。
(´・3・`)
(・3・) エェー じゃあFedoraでいいじゃん
[1] 授業単元:プログラミング [2] 問題文(含コード&リンク): int型配列をソートする関数dsortを作成せよ。dsort関数の戻り値は、 ソートする配列が10数値以下ならば正常終了(0)11数値以上ならばエラー(−1)とする。 dsortを起動するmain関数は、文字列を手操作により入力し、 それをint型配列に格納し、それをdsortに引数として渡す。 [3] 環境 [3.1] OS:WinXP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:明日まで よろしくお願いします
「ソートする配列が10数値以下」ってどういうこと?
>>679 (・3・) エェー ようわからんのでdsortだけ作ったお
int dsort(int num[], int n){
int i, k, swap;
if(n > 10) return -1;
for(i=0; i<n-1; i++){
for(k=i+1; k<n; k++){
if(num[i] > num[k]){
swap = num[i];
num[i] = num[k];
num[k] = swap;
}
}
}
return 0;
}
682 :
デフォルトの名無しさん :2007/04/11(水) 00:24:01
683 :
デフォルトの名無しさん :2007/04/11(水) 02:29:23
[1] 授業単元:C++プログラミング [2] 問題文(含コード&リンク):矩形転置暗号を用いて、平文を暗号文に変換するプログラムを作成せよ。 (テキストファイルを読み込んで実行する) 暗号鍵(矩形の行数と列数)は適当な定数で与える。 ファイル末尾に到達した場合は矩形の残りの部分にスペースが入った状態にして 暗号文をとりだして終了する。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン:VC++ 2005 [3.3] 言語:C++ [4] 期限:4月12日(木),PM5:00まで,2007年 [5] その他の制限:文字型(char)の2次元配列を用いる よろしくお願いします
684 :
679 :2007/04/11(水) 09:24:23
「ソートする配列が10数値以下」ですがコピペミスです。 配列の中身が10個以下という意味です。。。 すみませんです
685 :
デフォルトなしの名無しさん :2007/04/11(水) 13:45:21
[1] 授業単元:Cプログラミング演習 [2] 問題文(含コード&リンク):gets()関数によりキーボードからchar型配列buff[256]に文字列を読み込み、 それをputs()関数により画面に出力し、これをEOFが読み込まれるまで続ける。 [3] 環境 [3.1] OS: WindowsXP [3.2] コンパイラ名とバージョン: VisualBasic [3.3] 言語: C言語 [4] 期限:本日14時30分 [5] その他の制限: 緊急で申し訳ないですがよろしくおねがいします^^;
686 :
デフォルトの名無しさん :2007/04/11(水) 16:26:25
getsはあかんやろぉ〜、どこの学校だ!?通報しちゃる!
687 :
デフォルトの名無しさん :2007/04/11(水) 18:43:59
[3.2] コンパイラ名とバージョン: VisualBasic [3.3] 言語: C言語 どういうこと?
>>684 (・3・) エェー こんなん?
#include <stdio.h>
#include <string.h>
int dsort(int[], int);
int main(void){
int num[100], i;
for(i=0; i<100; i++){
char buf[64], *err;
fgets(buf, sizeof(buf), stdin);
err = NULL;
num[i] = strtol(buf, &err, 10);
strtok(buf, "\n");
if(strcmp(err, "") != 0)break;
}
dsort(num, i);
return 0;
}
cのプログラムができるとなんかいいことあるんですか? 僕は専攻が法学なんでまったく関係ないんですが面白いので勉強してます
>>689 > なんかいいこと
面白く思えること
人生楽しい時間は多いほうがいいじゃん
693 :
デフォルトの名無しさん :2007/04/16(月) 00:55:29
>>693 #include <stdio.h>
int checkLeapYear(int year){
if( (year%4==0 && year%100!=0) || year%400==0 )
return 1;
else return 0;
}
int main(void)
{
int x;
printf("Input year > ");
scanf("%d",&x);
if( checkLeapYear(x) )
printf("%d年は閏年\n",x);
else printf("%d年は平年\n");
return 0;
}
695 :
デフォルトの名無しさん :2007/04/18(水) 13:18:26
696 :
デフォルトの名無しさん :2007/04/18(水) 21:10:14
[1] 授業単元:情報処理 [2] 問題文(含コード&リンク): numを2,3,...,num/2のいずれでも割り切れないときnumは素数である。numが素数なら戻り値を1、非素数なら戻り値を0とする。numが1以下の数なら戻り値を0とする。 [3] 環境 [3.1] OS: Windows [3.2] コンパイラ名とバージョン: bcc [3.3] 言語: C [4] 期限: [2007年4月19日00:00まで] [5] その他の制限: なし お願いします(´;ω;')
>>696 (・3・) エェー こんなのでいいのかYO!
久しぶりに答えられたYO!
int is_prime(int num){
int i;
if(num<2) return 0;
for(i=2;i<=num/2;i++)
if(num%i==0) return 0;
return 1;
}
698 :
デフォルトの名無しさん :2007/04/18(水) 23:11:41
699 :
デフォルトの名無しさん :2007/04/19(木) 00:00:20
>>696 ですが、さっき教えて頂いたものを実行してみたら
'isprime'値を返さないコントロールパスがあります。
と、出てきたのですが原因はなんでしょう??
>>699 それ、どの行で警告が出た?
>>695 >西暦年が、4で割り切れる年のうち、100で割り切れる年は平年とする。
こういう頭の悪い文章なら、確かに間違いようがないね。
>700 宿題スレ見ればわかるけど、自分で変にコードブロック化してるせい。 理解できないならそのまま写せばいいのに、なんで余計なことしたがるんだろうね。
保守 画像処理専門のぼるじょあさんはどこいったんだ。。。
703 :
デフォルトの名無しさん :2007/04/22(日) 15:05:37
えー、私は某大学のTAですが、ここで晒されている解答と全く同じものが複数の学生から提出されているので、注意を促したいと思います。 お前ら、教授にちくられたくなかったら自分で解答しろ
そういうときは教授にばれないようこっそり0点にしておくのがやさしさ
705 :
デフォルトの名無しさん :2007/04/22(日) 17:31:22
WindowsXPのコマンドラインプロンプトで動く、エディターをC言語で作成したいのですが、 ネットや書籍などで参考になる資料などありませんか? C言語の文法などは一応、入門書籍などでやって一通りマスターしたのですが、 こういった実用的なプログラムを作成しようとするとフリーズしてしまいます。 どうしたらいいのでしょうか?
706 :
デフォルトの名無しさん :2007/04/22(日) 17:33:05
>>702 HDレコーダー等の動画関係の処理に関するプログラムを作成しているぼるじょあならば
穴じょあと名乗って、PC初心者板でうとまれているYO
そいつのこと?
>>705 スレ違い。
「ソフトウェア作法」なんかはエディタを作るという点で参考になると思う。
詳しくは書籍スレで。
708 :
デフォルトの名無しさん :2007/04/24(火) 00:12:34
[1] 授業単元:初級プログラミング講座 [2] 問題文(含コード&リンク): 元旦からの日数を入力して、何月何日かを出力する。うるう年ではない年として計算してよい。 [3] 環境 [3.1] OS:Win2000 [3.2] コンパイラ名とバージョン:bcc [3.3] 言語:C [4] 期限:25日
709 :
デフォルトの名無しさん :2007/04/24(火) 01:08:37
710 :
デフォルトの名無しさん :2007/04/24(火) 01:23:34
キーボードからの入力は、なぜバッファつきで読み込むのか。
711 :
デフォルトの名無しさん :2007/04/24(火) 01:49:28
C言語を使って f(x)=sin(x) (0<x<2π) の導関数を差分近似によって計算する方法 を教えてください。
>>708 こうですか?分かりません ><;
#include <stdio.h>
int main(void)
{
int md[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int i,days,n;
printf("Input > ");
scanf("%d",&n);
if(n>365) return 1;
for(days=n,i=0; days>md[i]; days-=md[i],i++);
printf("%d日目は%2d月%2d日\n",n,i+1,days);
return 0;
}
713 :
デフォルトの名無しさん :2007/04/25(水) 18:25:23
714 :
デフォルトの名無しさん :2007/04/25(水) 20:06:53
凄い初心者丸出しな質問で申し訳ない 例えば #include <stdio.h> int func_hoge(); int main(int argc, char* argv[]) { func_hoge(); } というCのコードtest.cをC++のコードにして実行したくて hogeクラスのhoge.cppとhoge.hに書いて test.cでインクルードして コンパイルしても通りません どなたかCのコードをC++化する方法を教えて下さい
715 :
デフォルトの名無しさん :2007/04/25(水) 20:09:51
あ、func_hogeの内容は書き忘れましたが 何らかの処理してtrue falseを返すと思って下さい
立て続けに連書き込みで申し訳有りません 環境はcygwinです
717 :
デフォルトの名無しさん :2007/04/25(水) 20:25:47 BE:108696487-2BP(222)
test.cをtest.cppにリネームしてコンパイルすりゃいいだろ。
hoge.cppとhoge.hをさらせよ
719 :
デフォルトの名無しさん :2007/04/25(水) 20:29:18
>>717 C言語のソースファイルの拡張子をcppにすりゃC++のソースになっちゃうという人の考えでつね?(・∀・)ニヤニヤ
720 :
デフォルトの名無しさん :2007/04/25(水) 20:31:45
>>717 > test.cをtest.cppにリネームしてコンパイルすりゃいいだろ。
はい、それだとコンパイルも通りますし
実行も出来ますが
モジュール化?(クラス化?カプセル化?っていうんでしょうか?)したいんです
721 :
デフォルトの名無しさん :2007/04/25(水) 20:44:48
>>718 > hoge.cppとhoge.hをさらせよ
はい
まずhoge.h
#ifndef HOGE_H
class Hoge
{
public:
int func_hoge();
};
#endif
続いてhoge.cpp
#include <stdio.h>
その他インクルード
#include <hoge.h>
int func_hoge()
{
int modori;
なんかの処理
return modori;
}
って感じです
>>721 まずここ。
>続いてhoge.cpp
int hoge::func_hoge()
{
>test.cpp
int main(int argc, char* argv[])
{
hoge h;
h.func_hoge();
hoge::func_hogeはstaticにしてもいいかもね。
723 :
デフォルトの名無しさん :2007/04/25(水) 20:53:04
724 :
デフォルトの名無しさん :2007/04/25(水) 21:44:02
>>722 ありがとうございます
大幅にコンパイルエラーが減りました
>>722 >>723 現在のコンパイルエラーです
実行したコマンド
gcc -Wall -g -o TEST test.cpp
エラー
/cygdrive/c/DOCUME~1/ADMIN~1/LOCALS~1/Temp/ccA1IpLH.o: In function `main':
/home/Administrator/workspace/Test/test.cpp:12 undefined reference to `hoge::func_hoge()'
collect2: Id returned exit status
725 :
デフォルトの名無しさん :2007/04/25(水) 23:11:37
あ、因みに2行目の.oファイルはコンパイルする度変わります
>>724 これでどう?
g++ -Wall -g -o TEST test.cpp hoge.cpp
(・3・) エェー やっちまったYO!
(・3・) アルェ〜俺の偽物かYO!
(・3・) アルェ〜俺も偽物だYO!
730 :
デフォルトの名無しさん :2007/04/26(木) 10:36:49
>>729 ぼるじょあはゆとり世代中卒ニート旋盤工
731 :
デフォルトの名無しさん :2007/04/26(木) 11:23:16
こんにちは、はじめまして! C初心者です。 最近、授業の課題で 「適当なソースファイルを読み込んでステップ数を数えて表示」 という宿題が出されたのですが、 C言語にステップ数を数える関数とかあるんですか? それか、実行ステップ数だけ何か計算で数えるものなのでしょうか? 教えていただけたら助かります。よろしくお願いいたします。
改行文字を数える
733 :
デフォルトの名無しさん :2007/04/26(木) 14:15:20
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク):fftを作成することです。 [3] 環境 [3.1] OS:Linux [3.2] gcc [3.3] 言語:C [4] 期限: 5月1日くらいまでに教えていただけたら幸いです。 [5] その他の制限:以下のソースを使って作るように指示されました。 #include<stdio.h> #include<stdlib.h> #include <math.h> #include "fft.h"
734 :
733 :2007/04/26(木) 14:16:34
static int ibitr(int, int); int fft(double *xreal, double *ximag, int n, int nu) { int n2, nu1; int l, i, p; int k, k1, k1n2; double arg, c, s; double treal, timag; xreal--; /* 配列の添え字を1からにする */ ximag--; n2 = n / 2; nu1 = nu - 1; k = 0; for(l = 1; l <= nu; l++) { loop: ;
735 :
733 :2007/04/26(木) 14:18:09
for(i = 1; i <= n2; i++) { p = ibitr((int)(k / pow(2, nu1)), nu); /* printf("%d, %d\n", p, k); */ arg = 2 * PAI * p / (double) n; c = cos(arg); s = sin(arg); k1 = k + 1; k1n2 = k1 + n2; treal = xreal[k1n2] * c + ximag[k1n2] * s; timag = ximag[k1n2] * c - xreal[k1n2] * s; xreal[k1n2] = xreal[k1] - treal; ximag[k1n2] = ximag[k1] - timag; xreal[k1] += treal; ximag[k1] += timag; k++; }
736 :
733 :2007/04/26(木) 14:19:04
k += n2; if (k < n) goto loop; k = 0; nu1--; n2 /= 2; } for(k = 1; k <= n; k++) { i = ibitr(k-1, nu) + 1; if ( i <= k) continue; treal = xreal[k]; timag = ximag[k]; xreal[k] = xreal[i]; ximag[k] = ximag[i]; xreal[i] = treal; ximag[i] = timag; } return 0; }
737 :
733 :2007/04/26(木) 14:19:40
static int ibitr(int j, int nu) { int i; int j1, j2, r; j1 = j; r = 0; for ( i = 1; i <= nu; i++) { j2 = j1 / 2; r *= 2; r += j1 - 2 * j2; j1 = j2; } return r; } すみませんが、お願いします。
738 :
デフォルトの名無しさん :2007/04/26(木) 19:11:52
>>726 >
>>724 > これでどう?
> g++ -Wall -g -o TEST test.cpp hoge.cpp
遅レスですいません
ありがとうございました
g++ではなくgccでコンパイル通って実行出来ました
739 :
デフォルトの名無しさん :2007/04/27(金) 11:30:29
>>732 様
ありがとうございます、やはり改行文字を数えるんですね。
でも、それがちょっとわからなくて…\nを数えるということでしょうか?
改行文字が他にあるのですか?
>>739 バッファを長めにとって、fgets()を何回呼べるかで代用するのが簡単だよ。
741 :
デフォルトの名無しさん :2007/04/27(金) 14:48:23 BE:48525555-2BP(222)
>>740 char buf[1024];
int count=0;
while(fgets(buf,1024,stdin)!=EOF){if(buf[1023]=='\n'){count++;}}
結局改行を数えることになる。
742 :
740 :2007/04/27(金) 14:54:50
>>741 それだと、最終行に改行が無いときに困る。
#その点では単純にfgetc()で改行文字を数えても同様。
1行が1023文字以内ならば、>741のif文を省略できるという魂胆。
つーか、エディタでラップアラウンドした表示行を数えるイメージだがね。
訂正 fgetsを使う場合 #include<stdio.h> #include<string.h> int main(){char buf[1024];int len,count=0; while(fgets(buf,1024,stdin)!=NULL){if(buf[strlen(buf)-1]=='\n'){count++;}}return 0;} 使わない場合 #include<stdio.h> int main(){int c,count=0;while((c=fgetc(stdin))!=EOF){if(c=='\n'){count++;}}return 0;} どう見てもfgets使わない方が簡単です。
>>742 fgetsを使う場合
#include<stdio.h>
#include<string.h>
int main(){char buf[1024];int len,count=0;
while(fgets(buf,1024,stdin)!=NULL){if((len=strlen(buf))<1023){count++}else{
if(buf[strlen(buf)-1]=='\n'){count++;}}}return 0;}
使わない場合
#include<stdio.h>
int main(){int c,count=0,l=0;while((c=fgetc(stdin))!=EOF){l++;if(c=='\n'){count++;l=0;}}
if(l){count++;}return 0;}
やっぱりfgets使わない方が簡単です。
745 :
740 :2007/04/27(金) 15:24:54
>>744 自説に固執して本質を見失っている。
fgets()版は最低限これだけ。
char buf[1024];
int count = 0;
while (fgets(buf, sizeof(buf), stdin) != NULL) ++count;
fgetc()版だとこうなる。
int ch;
int count = 0;
while ((ch = fgetc(stdin)) != EOF) if (ch == '\n') ++count;
この状態で、fgets()版は長い行の扱いの問題があり、fgetc()版は最終行の問題がある。
どちらの方がましかということで、後はもう、ケースバイケースでしょう。
>>745 >fgets()版は最低限これだけ。
仕様を満たしていないので論外。
>この状態で、fgets()版は長い行の扱いの問題があり、fgetc()版は最終行の問題がある。
等価でないコードを比べて何をしようってんだ?
>>744 で挙げたコードにはどちらの問題も存在しない。もちろん完全に等価なコードだ。
747 :
740 :2007/04/27(金) 15:52:35
仕様をでっち上げておいて満たすも何も無いもんだが…… まぁいいや、宿題スレ常駐のあんたに反論した私が悪かった。 少なくともfgets()版はfgetc()版ほど簡単じゃないと言うことで。
仕様は何でもいいんだけどさ。比較対象同士で一致していれば。 同じ入力に対して出力が違うものをふたつ並べて、どっちが簡単かなんて言っても 全然意味無いだろ。
749 :
依頼者 :2007/04/27(金) 18:19:42
[1] 授業単元:Cプログラミング演習 [2] 問題文(含コード&リンク): (1)30個の要素を持つ配列に小数をキーボードから代入し それらを小さい順にソートし、その結果をモニターに 出力するプログラムの作成。 (2)1から100までの整数のうち素数を求めるプログラムの作成。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio.net [3.3] 言語: C [4] 期限: 4月30日まで。 素人でも書けそうなプログラムでよろしくお願いします。
>>749 (2)
#include<stdio.h>
int prime[]={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,};
int main(){for(int i=0;i<(sizeof(prime)/sizeof(int));i++){printf("%i\n",prime[i]);}return 0;}
>>750 "%i"って辺りが素人では有り得ない。
それはそうと、定数配列如きでグローバルな名前空間を汚して欲しくないなぁ。素人っぽくていいけど。
>>749 (2)をエラトステネスのふるいで
#include <stdio.h>
#define MAX 101 // MAX-1まで求める
int main(void)
{
int a[MAX]={0},i,j;
for(i=1; i<MAX; i+=2)
a[i]=1;
for(i=4; i<MAX; i+=2)
a[0]=0;
for(i=3; i<MAX; i+=2) {
if(a[i]==1) {
for(j=i*2; j<MAX; j+=i)
a[j]=0;
}
}
for(i=1; i<MAX; i++)
if(a[i]==1) printf("%*d ",3,i);
return 0;
}
MAX-1まで求めるって妙な仕様の定数を使う辺りが素人っぽくていいね。
>>753 そこは素人でも何でもなくただの補足だぞw
if(a[i]==1) printf("%*d ",3,i); %3dじゃなくて %*d の * の部分を後ろの引数で引用しているところは?
>>754 いやさ、なんで#define MAX 100にしてi <= MAXにしないのかな、と。
#意味からいけば、「100までの」なのだから……
>>755 %*dを使う辺りは素人っぽくないような、定数の3を剥き身で置いている辺りが素人っぽいような……
757 :
デフォルトの名無しさん :2007/04/27(金) 19:32:37
>>756 a[101]にしたとき、a[0]〜a[100]までなんだが?その[]の中の値100まで求めるってのが理解できなかった?
ってか、お前エラトステネスのふるいの概要について理解していないだろ?
>>752 に1が入っちゃっていることに突っ込みは無しか?w
for(i=1; i<MAX; i++) は for(i=3; i<MAX; i+=2) だなw
ああ、あとa[2]=1;も忘れてるガナ。そういうところに突っ込まなきゃw
>>749 (1)
#include<stdio.h>
int main(void){
double data[30];
int n,i,t;
double temp;
for(n=0;n<30;n=n+1){
printf("%d個目の数値を入力してください\n",n+1);
scanf("%lf",&data[n]);
}
for (n=0;n<30;n=n+1){
t=n;
for(i=n+1;i<30;i=i+1){
if (data[t]>data[i]){
t=i;
}
}
temp=data[n];
data[n]=data[t];
data[t]=temp;
}
for(n=0;n<30;n=n+1){
printf("%f\n",data[n]);
}
return 0;
}
それって、どのミスも素人っぽさに関係ないからどうでもよかったw
>>757 Cの配列を1オリジンで使う辺り。
>>761 エラトステネスのふるいについて理解してないことをカミングアウトしなくて良いから
リアル素人は黙ってろw
>>761 だから配列の要素の値の数値が素数かどうかでその要素に1か0を入れるアルゴリズムなんだが?
0も1オリジンも無関係だぞw
>for(i=4; i<MAX; i+=2) >a[0]=0; 何がしたいの?
1を素数にするし2を素数から除外するし、素数の意味を分かってない馬鹿が無理すんなw
ちと訂正しとくか。 配列の要素の値 > 配列の要素を参照する値
>>764 2以上の偶数は素数じゃないから素数じゃないという0を入れているじゃん
実際のところ、最初の初期化でそれも不要だけどね
っと、失礼。2以上じゃなくて2より上の偶数ね。以上じゃ2も含むから。a[2]=1;を入れ忘れているが。
あと素人で突っ込むってなら、100の正の平方根の値以下の値で十分な部分があるのだがw
#include <stdio.h> #include <math.h> #define MAX 101 int main(void) { int a[MAX]={0},i,j,LMT=(int)sqrt(MAX); a[2]=1; for(i=3; i<MAX; i+=2) a[i]=1; for(i=3; i<=LMT; i+=2) { if(a[i]==1) { for(j=i*2; j<MAX; j+=i) a[j]=0; } } printf("%*d ",3,2); for(i=3; i<MAX; i+=2) if(a[i]==1) printf("%*d ",3,i); return 0; }
【質問テンプレ】 [1] 授業単元:C言語1 [2] 実行結果:男子学生:1394、女子学生:128、全学生数:1477、女子学生割合:8.67% [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2005 [3.3] 言語: C言語 [4] 期限:速攻 ソース #include <stdio.h> int main (void) { int a, b; printf("男子学生数="); scanf("%d", &a); printf("女子学生数="); scanf("%d", &b); printf("全体学生数=%d\n", a + b); printf("女子学生数割合=%0.1f%\n", (b / (a + b)) * 100); return(0); } 女子学生割合がちゃんとでません。orz
>767 a[0]にしか0入れてないのに偶数の除外とか盲目なの?
>771 (b / (a + b)) * 100 → (double)b / (a + b) * 100
774 :
デフォルトの名無しさん :2007/04/29(日) 12:46:16
>>749 (2)
---
#include <stdio.h>
int main(void)
{
int i, j;
int checklist[101];
for(i = 2; i <= 100; i++) {
checklist[i] = 0;
}
for(i = 2; i <= 100; i++) {
if(checklist[i] == 0) {
for(j = i+1; j <= 100 ; j++) {
if(j % i == 0) {
checklist[j] = 1;
}
}
}
}
for(i = 2; i <= 100; i++) {
if(checklist[i] == 0) {
printf("%d\n", i);
}
}
return 0;
}
---
>>774 何がしたいねんて?w 無駄な部分が多すぎ。
776 :
774 :2007/04/29(日) 13:11:50
ダサイことを書いてしまった。 > for(j = i+1; j <= 100 ; j++) { 修正する。 for(j = i*2; j <= 100 ; j+=i) {
>>775 無駄のないコードを書いてくれ。
依頼主の最後のコメントを意識した上で。
int checklist[101]; for(i = 2; i <= 100; i++) { checklist[i] = 0; } ↓ int checklist[101]={0}; で可 以下、素数かそうでないかを示す配列を使っているのに わざわざ数値を除算して割り切れたら素数ではないと求めるよりも 前から順番に素数だと分かっている数値でそれ以上〜求める値まで 素数の倍数に該当するものを排除すれば素数かどうかをチェックする配列を有効活用できると思うのだが。
>>777 > 依頼主の最後のコメントを意識した上で。
無駄なものを入れるのが素人とは思えんが。そういう屁理屈を言い出したらキリがない。
自分の未熟さを出題者の言葉でごまかすのは良くない。あと、素数を求めるソースは既出。
>>778 それやってると配列の大きさが小さいうちはいいが、大きくなると
BBS領域がふくれあがって実行ファイルが巨大になるぞ。
double d[1000000]; とかやってみれ。
×BBS ○BSS
DATA領域じゃないの?
783 :
777 :2007/04/29(日) 13:45:22
こういうことだな。
for(j = i*2; j <= MAX ; j+=i) {
checklist[j] = 1;
}
この辺はなんかがオカシイと思っていたのだが、惰性で書いてた。
ご指摘の通りです。
>int checklist[101]={0}; で可
これは忘れていたか、知らなかったか分からない。
10年くらい前にCの本で読んだ気もするが。
>>779 >自分の未熟さを出題者の言葉でごまかすのは良くない。
俺は未熟だが、依頼主の要望に応えられないのでは価値が無いだろ?
784 :
デフォルトの名無しさん :2007/04/29(日) 14:03:15
>>765 は配列の要素の参照について理解していない負け犬決定かw
785 :
デフォルトの名無しさん :2007/04/29(日) 14:29:00
>784 752を実行すると1 3 5……って表示されてくことを馬鹿にしてんだろ? 要素の参照とか全然関係ないじゃん。
787 :
デフォルトの名無しさん :2007/04/29(日) 16:26:02
>>786 だからそれについてはその後に突っ込まれてんだが?w
既出事項で後でどうこう言う奴って、分かりきっていることを言っただけだから
何か言おう言おうとして結局自分では言い返せなかった負け犬の最後の悪あがきだろw
>>765 =
>>761 ってことね。この際、素数には0も1も含まれないから、配列の要素の参照が
0か1で始まるかについては本当にナンセンスだからw
それでもa[101]とした場合、[]の中で有効的に使えるのは100までというのは
扱っている人なら分かっているだろ。それについて理解していなかったのを露呈されて
最後に苦し紛れにすでに突っ込まれた1と2を持ち出したに過ぎないだろw
>for(i=4; i<MAX; i+=2) >a[0]=0; こんなコード書く奴が何言っても負け犬の遠吠えだな、確かにw
>>780 BSSが大きくなっても実行ファイルは大きくならんだろう。
たいていの環境では。
791 :
デフォルトの名無しさん :2007/04/30(月) 04:10:00
>>789 それについては不要なコードだったってことで、実際に動作には影響していないw
それよか、その程度のことを敢えて突っ込んでバカにしようとする態度をとるお前がキモイ。
気持ち悪い顔してストレスためてんだよね・・・負け犬社会のクズがw
792 :
デフォルトの名無しさん :2007/04/30(月) 11:21:27
>>791 許してあげなよ
50にもなって平社員で今日も会社で失敗して年下の主任に怒られてその腹いせに揚げ足とっていじめてやろうとしているだけなんだからさ。
責めたらかわいそうだろ?
ハイハイ自演乙です
794 :
デフォルトの名無しさん :2007/04/30(月) 21:10:09
[1] 授業単元:プログラミング言語 [2] 問題文(含コード&リンク):1000個までの整数あるいは少数を打ち込んで、その平均と標準偏差を表示することのできるプログラムを作成せよ。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン:gcc [3.3] 言語:C [4] 期限:なるべく早めにお願いします。 [5] その他の制限:素人でも作成できるレベルでお願いします。
797 :
794 :2007/04/30(月) 22:51:05
>>746 45行のM_PIが定義されていない!?…となりエラーが出ます。
ど素人なので、どうしていいのかわかりません。
よろしくお願いします。
>>797 #define N 1000 の下の行に,
#define M_PI 3.14159265358979323846
を追加すればコンパイル通るはず.
gcc だと
>>796 のままでコンパイル通ったけど,Visual C++ かなんかでコンパイルしてんの?
M_PIなんか使うのかと思ったらわざわざ乱数関数自作したのか
>>799 じゃなくてこれは正規分布の乱数の関数だから
プログラムが正しく動作しているのを確認しただけじゃないの?
M_PIとかはCでは標準、C++では非標準なんだっけ?
803 :
デフォルトの名無しさん :2007/05/01(火) 11:18:28
質問です コアラのマーチのファンはいませんか?
>>706 ちがうお 白ランとか黒ランとかいうぼるじょあさんだお
ランレングス符号化の問題やってくれるお
806 :
デフォルトの名無しさん :2007/05/09(水) 17:20:44
配列で、 a[0]=8 a[1]=50 a[3]=72 a[4]=20 a[5]=10 って出力したいんですけど、a[2]がとんでるじゃないですか?if文をつかってとばすってきいたんですけど…わかりません。ソースコード教えてください。C言語です。
807 :
デフォルトの名無しさん :2007/05/09(水) 17:22:24
配列で、 a[0]=8 a[1]=50 a[3]=72 a[4]=20 a[5]=10 って出力したいんですけど、a[2]がとんでるじゃないですか?if文をつかってとばすってきいたんですけど…わかりません。ソースコード教えてください。C言語です。
>>806 つcontinue
#include<stdio.h>
int main(void)
{
int n;
int a[]={8,50,801,72,20,10)};
for(n=0;n<=5;n++){
if(n==2) continue;
printf("a[%d]=%d\n",n,a[n]);
return 0;
}
間違っててもオラしらねえだ。
809 :
依頼者 :2007/05/10(木) 21:02:35
[1] 授業単元:Cプログラミング演習 [2] 問題文(含コード&リンク): (1)関数mainにおいてキーボードから2つの文字を入力し アルファベットの順序に並べ替えてモニタに出力するプログラムの作成。 (2)キーボードから30個の配列に小数を代入し、それらを小さい順に 並び替え、その結果をモニタに出力するプログラムを作成せよ。このソート の問題は、バブルソートで実施し、連続する2数の交換main以外の関数swap で実施せよ。 プログラムの作成。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio.net [3.3] 言語: C [4] 期限: 5月12日まで。 簡単なプログラムでお願いします。
810 :
デフォルトの名無しさん :2007/05/11(金) 17:11:28
811 :
C初心者 :2007/05/11(金) 21:59:24
問題文 以下の(a)~(d)の方法で、 1/1-1/2+1/3-1/4+…+1/n を求める関数を作成してください。これらの関数は、 int n; double ansa,ansb,ansc,ansd; double suma(int),sumb(int),sumc(int),sumd(int); : : ansa=suma(n); snsb=sumb(n); ansc=sumc(n); ansd=sumd(n); といった形式で使うものとします。n>0に限定してもいいですが、関数suma,sumb,sumc,sumdの中身 を書き換えることなく、任意のnについて計算できるように注意してください。作成した4つの関数 を用いて、n=10000で計算した結果を比較し、違っているならばなぜ違うかを考察してください。 (a)suma:順次左(1/1)から加えていく方法 (b)sumb:順次右(1/n)から加えていく方法 (c)sumc:正負の項を別々に、順次左から加えていく方法 (d)sumd:正負の項を別々に、順次右から加えていく方法 環境 OS:Linux コンパイラ名とバージョン:gcc 言語: C 期限: 2007/5/18まで おねがいします。
812 :
C初心者 :2007/05/11(金) 22:13:06
追加です。 問題文 配列に格納された実数を大きさの順に並べ替える関数を作成してください。この関数は以下 のように使うものとします。n=1000は例であって、データ数は1000とは限りません(ただし、 プログラムの都合上1000以下とします)。 -------------------------------------------------------------------- double a[1000]; void sort(double*,int); : : n=1000; /*(ここでa[0]からa[999]をファイルから読み込む)*/ sort(a,n); /*(ここでa[0]からa[999]をプリントし、結果を確認する)*/ ------------------------------------------------------------------- 環境 OS:Linux コンパイラ名とバージョン:gcc 言語: C 期限: 2007/5/18まで
813 :
C初心者 :2007/05/11(金) 22:25:14
すみませんまた追加です。 問題文 自然対数の底eを1000桁求めるプログラムを作成してください。e^xをマクローリン展開 した e^x=1+x/1!+x^2/2!+…+x^n/n!+… において、x=1とおいた式を計算するとよいでしょう。 環境 OS:Linux コンパイラ名とバージョン:gcc 言語: C 期限: 2007/5/18まで
814 :
デフォルトの名無しさん :2007/05/12(土) 02:54:07
printf("%s/n","Hello World"); 上のprintf文の%sでどのように"Hello World"を処理しているのか分かりません。 どなたかご教授して下さい。
>811 メインは省略 double suma(int n) { int i; double sum = 0; for(i=1; i<=n; i++) { if(i%2) sum += (double)1 / i; else sum -= (double)1 / i; } return sum; } double sumb(int n) { int i; double sum = 0; for(i=n; i > 0; i--) { if(i%2) sum += (double)1 / i; else sum -= (double)1 / i; } return sum; } double sumc(int n) { int i; double sum = 0; for(i=1; i<=n; i+=2) sum += (double)1 / i; for(i=2; i<=n; i+=2) sum -= (double)1 / i; return sum; } double sumd(int n) { int i; double sum = 0; for(i=n; i > 0; i-=2) sum += (double)1 / i; for(i=n-1; i > 0; i-=2) sum -=(double)1 / i; return n % 2 ? sum : -sum; }
816 :
C初心者 :2007/05/12(土) 16:18:11
>>815 ありがとうございます。とりあえず関数sumaについてプログラムを作ってみたのですが
メインの部分はこれで良いのでしょうか?みていただけると幸いです。
#include <stdio.h>
double suma(int n) {
int i;
double sum = 0;
for(i=1; i<=n; i++) {
if(i%2) sum += (double)1 / i;
else sum -= (double)1 / i; }
return sum;
}
int main(void)
{
int n;
double ansa;
double suma(int);
printf("nを入力してください:"); scanf("%f",&n);
ansa = suma(n);
printf("計算結果は%fです。\n",ansa);
return(0);
}
名前欄に初心者と書く奴は死んでしまえ今すぐに
818 :
デフォルトの名無しさん :2007/05/12(土) 16:27:50
> (double)1 なんというキモさ
1.0でいいのにね
820 :
依頼者 :2007/05/12(土) 20:13:41
[1] 授業単元:Cプログラミング演習 [2] 問題文(含コード&リンク): (1)関数mainにおいてキーボードから2つの文字を入力し アルファベットの順序に並べ替えてモニタに出力するプログラムの作成。 (2)キーボードから30個の配列に小数を代入し、それらを小さい順に 並び替え、その結果をモニタに出力するプログラムを作成せよ。このソート の問題は、バブルソートで実施し、連続する2数の交換main以外の関数swap で実施せよ。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio.net [3.3] 言語: C [4] 期限: 5月14日まで。 全然わかりません、よろしくお願いします。
>>820 (・3・) エェー (2)だけやっといたYO!
#include<stdio.h>
#define DATA_NUM 30
void swap(double *a, double *b){
double c;
c=*a;
*a=*b;
*b=c;
}
int main(void){
double data[DATA_NUM];
int i, j;
for(i=0;i<DATA_NUM;i++){
printf("実数を入力して下さい");
scanf("%lf", &data[i]);
}
for(i=0;i+1<DATA_NUM;i++){
for(j=i+1;j<DATA_NUM;j++){
if(data[i]>data[j]){
swap(&data[i], &data[j]);
}
}
}
for(i=0;i<DATA_NUM;i++)
printf("%f\n", data[i]);
return 0;
}
822 :
依頼者 :2007/05/13(日) 15:21:27
>>821さんありがとうございます。 あとどなたか(1)のほうもお願いします。
>>822 簡単だから自分でやって見れ
まずはCの復習、ここがお勧め→
ttp://effy.ldw.jp/c/index.html 考え方はと言うか疑似コード?は
0.骨格を作る(#includeやmain(){})。
ぼるじょあ氏のswap関数を組み込む(main関数の前にコピペ)
1.char型の変数、a,bを宣言
2.文字をscanf("%c",&a)かなにかでキーボードからを入力して変数aに文字を入れる。
3.同じ様に文字を入力して変数bに入れる。
4.もし、aがbより大きければ(アルファベット順じゃないなら)入れ替える。if(a>b) swap(&a,&b);文字も数値として扱われるから大きさを比べられる。
5.a,bを出力
6.終わり
実はぼるじょあの中の人は、女もいるという噂
ぼるじょあうざい
[1] 授業単元: プログラミング基礎T [2] 問題文: はじめに人数を入力。その人数分、交通費を入力。 するとお金の種類ごと(一万円、五千円、千円、五百円、百円、五十円、十円、五円、一円)に何枚用意する必要があるか表示してくれるプログラムを作成せよ。 以下の三つが課題達成条件です。 ・人数として0もしくは負の数を入力された場合は、「正しい人数を入力してください」と、表示し終了する。 ・枚数が0枚の場合は硬貨の種類は表示しない。 ・正しい硬貨と枚数が表示される。 [3] 環境 [3.1] OS:Windows XP [3.2] コンパイラ名とバージョン: Visual C++ 2005 [3.3] 言語: C [4] 期限: 5月15日まで [5] その他の制限: do,while,for文まで習いました。 よろしくお願いします。
>>826 #include <stdio.h>
int main(void){
int sum = 0, num, cnt, tmp;
int money[] = {10000, 5000, 1000, 500, 100, 50, 10, 5, 1};
printf("人数:");
scanf("%d", &num);
if(num <= 0){
printf("正しい人数を入力して下さい\n");
return -1;
}
for(cnt=0; cnt<num; cnt++){
printf("%d人目の交通費:", cnt+1);
scanf("%d", &tmp);
sum += tmp;
}
for(cnt=0; cnt<9; cnt++){
tmp = sum / money[cnt];
if(tmp != 0){
printf("%d円:%d枚\n", money[cnt], tmp);
sum -= tmp * money[cnt];
}
}
return 0;
}
>>826 (・3・) エェー おいらもやってみたYO!
#include<stdio.h>
void money_num_calc(const int money_kind[], int money_kind_num, int money_num[], int value){
int i;
if(value<0) value=0;
for(i=0;i<money_kind_num;i++){
money_num[i]=value/money_kind[i];
value%=money_kind[i];
}
}
int main(void){
const int money_kind[]={10000,5000,1000,500,100,50,10,5,1};
int money_num_total[sizeof(money_kind)/sizeof(money_kind[0])]={0};
int money_num[sizeof(money_kind)/sizeof(money_kind[0])];
int human_num, human_index, i, value;
printf("人数を入力して下さい ");
scanf("%d", &human_num);
if(human_num<=0){printf("\n正しい人数を入力してください\n");return 1;}
for(human_index=0;human_index<human_num;human_index++){
printf("%d 人目の交通費を入力してください ", human_index+1);
scanf("%d", &value);
money_num_calc(money_kind, sizeof(money_kind)/sizeof(money_kind[0]), money_num, value);
for(i=0;i<sizeof(money_kind)/sizeof(money_kind[0]);i++)
money_num_total[i]+=money_num[i];
}
for(i=0;i<sizeof(money_kind)/sizeof(money_kind[0]);i++)
if(money_num_total[i]>0)
printf("%5d 円 : %d 枚\n", money_kind[i], money_num_total[i]);
return 0;
}
>>826 (・3・) エェー 関数使うのやめてみたYO! あと交通費が負数のときは 0円換算するYO!
#include<stdio.h>
int main(void){
const int money_kind[]={10000,5000,1000,500,100,50,10,5,1};
int money_num[9]={0};
int human_num, human_index, i, value;
printf("人数を入力して下さい ");
scanf("%d", &human_num);
if(human_num<=0){
printf("\n正しい人数を入力してください\n");
return 1;
}
for(human_index=0;human_index<human_num;human_index++){
printf("%d 人目の交通費を入力してください ", human_index+1);
scanf("%d", &value);
if(value<0) value=0;
for(i=0;i<9;i++){
money_num[i]+=value/money_kind[i];
value%=money_kind[i];
}
}
for(i=0;i<9;i++)
if(money_num[i]>0)
printf("%5d 円 : %d 枚\n", money_kind[i], money_num[i]);
return 0;
}
831 :
デフォルトの名無しさん :2007/05/15(火) 03:28:30
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): 1.英文を入力するとその暗号文が出力されるプログラムの作成 入力:文字列(英文) 出力:文字列(数字) 2.暗号文を元の英文に戻すプログラムの作成 入力:文字列(数字) 出力:文字列(英文) 暗号は換字暗号でよい。[アルファベット(a〜z)、スペースを数字(00〜26)、スペースを対応させる]例a⇔23、b⇔09、c⇔17… [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン: gcc [3.3] 言語: C [4] 期限: 火曜日の夕方、もしくは水曜日の朝まで [5] その他の制限: ループ(forやwhile)、配列を使って作成する ぼるじょあさん、よろしくおねがいします。
>>831 (・3・) エェー マルチポストすんなYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(int *a, int *b){
int c; c=*a;*a=*b;*b=c;
}
int main(void){ // 1.
char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr;
int i, moji, num[sizeof(symbol)-1];
for(i=0;i<sizeof(symbol)-1;i++) num[i]=i;
for(i=0;i<sizeof(symbol)-1;i++) swap(&num[i], &num[rand()%(sizeof(symbol)-1)]);
while((moji=getchar())!=EOF){
ptr=strchr(symbol, moji);
if(ptr!=NULL)
; // ここにある処理を書けYO!
}
return 0;
}
int main(void){ // 2.
char symbol[]="abcdefghijklmnopqrstuvwxyz ";
int i, moji, num[sizeof(symbol)-1];
for(i=0;i<sizeof(symbol)-1;i++) num[i]=i;
for(i=0;i<sizeof(symbol)-1;i++) swap(&num[i], &num[rand()%(sizeof(symbol)-1)]);
while(scanf("%02d", &moji)>0){
for(i=0;i<sizeof(symbol)-1;i++)
if(moji==num[i])
; // ここにある処理を書けYO!
}
return 0;
}
>>831 (・3・) エェー 少し短くしたYO!
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void swap(char *a, char *b){
char c; c=*a;*a=*b;*b=c;
}
int main(void){ // 1.
char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr;
int i, moji;
for(i=0;i<sizeof(symbol)-1;i++)
swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]);
while((moji=getchar())!=EOF){
ptr=strchr(symbol, moji);
if(ptr!=NULL)
; // ここにある処理を書けYO!
}
return 0;
}
int main(void){ // 2.
char symbol[]="abcdefghijklmnopqrstuvwxyz ";
int i, moji;
for(i=0;i<sizeof(symbol)-1;i++)
swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]);
while(scanf("%02d", &moji)>0){
if(moji>=0 && moji<sizeof(symbol)-1)
; // ここにある処理を書けYO!
}
return 0;
}
834 :
831 :2007/05/15(火) 17:42:22
ぼるじょあさん、ご返答ありがとうございます。 コンパイラがgccではなく、borlandでした。すいません。 あと一つ目のプログラムを実行したら以下のようなエラーが出てしまいます。 #include<stdio.h> #include<stdlib.h> #include<string.h> void swap(char *a, char *b) { char c; c=*a;*a=*b;*b=c; } int main(void){ char symbol[]="abcdefghijklmnopqrstuvwxyz ", *ptr; int i, moji; for(i=0;i<sizeof(symbol)-1;i++) swap(&symbol[i], &symbol[rand()%(sizeof(symbol)-1)]); while((moji=getchar())!=EOF){ ptr=strchr(symbol, moji); if(ptr!=NULL);} return 0; } >bcc32 bo1.c Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland bo1.c: 警告 W8019 bo1.c 17: コードは効果を持たない(関数 main ) Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland なにか解決策は無いでしょうか?
835 :
831 :2007/05/15(火) 17:44:47
もしくは #include <stdio.h> int main(void){ int i; char a[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int b[]={'01','10','11','02','20','22','03','30','33','04','40','44','05','50','55','06','60','66','07','70','77','08','80','88','09','90'}; printf(); scanf(); while(){ } printf(); return 0; } このプログラムを改良してもらえないでしょうか? 無理を言ってすいません。
>>834 いつから「警告」のことを「エラー」と言うようになったのでしょう。
>>835 そのプログラムを改良したくても、間違いだらけでコンパイルの通しようもありませんが。
838 :
835 :2007/05/15(火) 18:12:47
#include <stdio.h>
int main(void){
int; i;
char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
int b[26]={'01','10','11','02','20','22','03','30','33','04','40','44','05','50','55','06','60','66','07','70','77','08','80','88','09','90'};
printf("01から90までの数字を入力してください:");
scanf("%s", &a);
while(){
}
printf("%s\n", a);
return 0;
}
申し訳ありません。
自力で出来るのがこの程度なのです。
while文のなかの構造や配列の使い方がよくわかりません。
何度もすいません。
>>834 警告とエラーは違うのですね。すいません。
>>838 試しに、bの全要素を出力して味噌。ほんとにその数値でいいの?
>>834 (・3・) エェー マルチは嫌いだから
穴埋め問題にしておいただけだYO!
でも、レス見る限り解けなさそうだからヒントやるYO!
ヒント
1 の main の穴埋め部分
printf("%02d", ???-???)
2 の main の穴埋め部分
putchar(symbol[???])
???の部分に適当な変数名を当てはめていけばいつか答えにあたるYO!
841 :
838 :2007/05/15(火) 19:05:53
>>839 はい。bの要素の数値は何でもいいです。
英文字と1対1で対応していればいいです。
>>840 アドバイスありがとうございます。
自分で作ったプログラムもいろいろ考えてみます。
>>841 御託並べずに出力してみろ。想定した(自分で書いた積もりの)数値が出力されるか?
>暗号は換字暗号でよい。[アルファベット(a〜z)、スペースを数字(00〜26)、スペースを対応させる]例a⇔23、b⇔09、c⇔17… これは問題文そのまま?
844 :
838 :2007/05/16(水) 00:33:20
>>843 問題文は
「暗号は最も簡単な暗号:換字暗号でよい。」
です。
「アルファベット(a〜z)、スペースを数字(00〜26)、スペースを対応させる」の部分は
勝手に付け足しました…
>>842 うまくできませんね…。
配列の要素とscanf、printfのなかも変えてやってみます。
845 :
デフォルトの名無しさん :2007/05/16(水) 01:14:47
【質問テンプレ】 [1] 授業単元:C言語実習 [2] 問題文(含コード&リンク): パソコンに設定されている日付を読み込んで(<time.h>とかかな?) キーボードから入力される日付と合致しているかしていないかの判断を行う [3] 環境 [3.1] OS:WindowsXP [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5 [3.3] 言語: C [4] 期限: 2007年05月17日まで [5] その他の制限 : 入力されてくる日付はYYYYMMDD方式でも 年月日個別でもどちらのパターンでも構いません
>>845 不要なものも入っているから不要なら消しておいて
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
int main(void) {
struct tm *date;
time_t now;
int year, month, day;
int hour, minute, second;
int iy,im,id; // 入力で受け付ける年月日
char buf[10];
printf("年月日を入力\n");
printf("年 > ");
scanf("%s",buf);
iy=atoi(buf);
printf("月 > ");
scanf("%s",buf);
im=atoi(buf);
printf("年 > ");
scanf("%s",buf);
id=atoi(buf);
/* 現在の日時を取得 */ time(&now); date = localtime(&now); year = date->tm_year + 1900; month = date->tm_mon + 1; day = date->tm_mday; hour = date->tm_hour; minute = date->tm_min; second = date->tm_sec; printf("入力された年月日 : %d / %d / %d \n",iy,im,id); printf("現在 : %d / %d / %d \n",year,month,day); printf("%2d : %2d : %2d \n",hour,minute,second); if(iy==year && im==month && id==day) printf("一致\n"); else printf("不一致\n"); return 0; }
848 :
844 :2007/05/16(水) 01:44:39
#include <stdio.h> int main(void){ int a,b; char eigo[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; int suuji[26]={1,10,11,2,20,22,3,30,33,4,40,44,5,50,55,6,60,66,7,70,77,8,80,88,9,90}; for( a=0; a<26; a++ ) { printf("test0[%d] = %c\n", a, eigo[a]); } for( b=0; b<26; b++ ) { printf("test1[%d] = %d\n", b, suuji[b]); } return 0; } -------------------------- これで思うような出力が出来たのですが、 これを1対1で対応させて暗号とするにはどうしたらよいのでしょうか? アドバイスください。ぼるじょあさんのは難しくて理解できませんでした。 せっかく答えていただいたのに申し訳ありません。
換字式暗号だと、配列は1つでいいだろ。
851 :
デフォルトの名無しさん :2007/05/16(水) 12:27:03
10個の整数データを木構造に保存し、 キーボードから前順,中順,後順を選択すると、 その順で木をなぞる再起プログラミングを作成せよ. プログラミング。 C言語です。 5月21日まで。 OSはwindowsです。 よろしくお願いいたします。
>前順,中順,後順 意味が分からない。
853 :
デフォルトの名無しさん :2007/05/16(水) 13:26:13
C言語で核ミサイルを着弾誤差50メートルの 範囲内で制御するルーチンを作りなさい アメリカ陵軍情報局研修3 OSはWINDOWS3000 期限となる日時は機密条項に抵触するため、 可能な限り早くお願いする 頼んだつもりは無いが、未来は諸君の腕にかかっている
キモチワルイ
!(ΦyΦ+){ぼるじょあッ}
>アメリカ陵軍 新2ch語誕生の予感。
>>853 >WINDOWS3000
とりあえず俺の手元にはテスト環境が見あたらないな。
うpきぼんぬ。
858 :
デフォルトの名無しさん :2007/05/16(水) 16:34:20
>>852 10個の整数データを木構造に保存し、
順に木をなぞる再起プログラミングを作成せよ.
これなら分かりますか??
再起プログラミングが、よく分からないんです。
教えていただけないでしょうか?
木構造つったって色んな木があるでしょ。 何の木?
861 :
デフォルトの名無しさん :2007/05/16(水) 17:11:37
>>859 根付き木です。
ポインタにより木を実現し,データを保存せよって書いてあるんですが
自分は意味が分かりません。
お願いします。
>>860 課題をそのままコピーしただけなので、
よくわかんないですけど、色々調べたのですが深さ優先探索での
前順、中順、後順の事だと思います。すいません。
(・3・)エェー ゴミじょあ
>>861 >ポインタにより木を実現し,データを保存せよって書いてあるんですが
どういう基準で入力値を構造化するのか定義しろ。
>前順、中順、後順
そんな言葉は存在しねえので、それぞれが何を表してるのか定義しろ。
>>864 いや、存在はしてるみたい。
マイナーな言葉で通じる人が少ないかもしらんけど。
[1] 授業単元: ぼるじょあがC/C++の宿題を片づけますYO! 67代目 [2] 問題文(含コード&リンク): 問題が分かりません。 [3] 環境 [3.1] OS: 2 ちゃんねる [3.2] コンパイラ名とバージョン: Docomo2.0 [3.3] 言語: C [4] 期限: 無期限 [5] その他の制限: printf() 系関数は使用不可。
2 ちゃんねる というOSはどこで手に入りまつか?それがないと答えようがありません ><;
870 :
依頼者 :2007/05/17(木) 22:32:13
[1] 授業単元:Cプログラミング演習 [2] 問題文(含コード&リンク): キーボードより文字列aと文字列bを入力し、比較する(どちらが辞書並びで先かを表示)プログラムの作成。 但し、strcmp関数を用いてはならない。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio.net [3.3] 言語: C [4] 期限: 5月19日まで。
つstrncmp
>>870 #include<stdio.h>
int main(void)
{
char a[50],b[50],n;
printf("文字列a:");scanf("%s",a);
printf("文字列b:");scanf("%s",b);
for(n=0;n<50;n++){
if(a[n]!=b[n]){
if(a[n]=='\0')printf("文字列aが辞書並びで先");
else if(b[n]=='\0')printf("文字列bが辞書並びで先");
else if(a[n]<b[n]) printf("文字列aが辞書並びで先");
else printf("文字列bが辞書並びで先");
break;
}else if(a[n]=='\0' && b[n]=='\0'){
printf("文字列は同じ");
break;
}
}
return 0;
}
>>870 ターゲットのロケールとコードページを。
874 :
C初心者 :2007/05/18(金) 15:01:26
812お願いします(o*。_。)o
>>812 (・3・) エェー バブルソートでやってみたYO!
void sort(double *data, int data_num){
int i, j;
double tmp;
if(data==NULL || data_num<1) return;
for(i=0;i+1<data_num;i++){
for(j=i+1;j<data_num;j++){
if(data[i]>data[j]){
tmp=data[i];
data[i]=data[j];
data[j]=tmp;
}
}
}
}
1授業単元:プログラミング実習 2問題文:配列を用いてn個までの値を入力し、その最大値、最小値、及び 全体の平均点を出すプログラムを作成せよ。 3環境:Linux3.2 gcc C 4 2007年5月22日17時 5 ifやwhile、そして今日配列まで習いました。 よろしくお願いします!!
877 :
依頼者 :2007/05/18(金) 20:44:49
>>872さん。ありがとうございました。
878 :
C初心者 :2007/05/18(金) 21:46:07
>>875 ありがとうございます<(_ _)>月曜にならないと操作できないので、また後で実効してみます。
1] 授業単元: 情報処理演習 [2] 問題文(含コード&リンク): Gauss消去法のプログラムを変更することにより、Gauss-Jordan法のプログラムを作成せよ。 任意のn×n行列Aとn×m行列Bを与えて、AX=Bいの解行列Xを(完全ピポット選択でなく部分ピボット選択のGauss-Jordan法 により)求めるプログラムを作成せよ。このとき、n,mや行列A,Bは標準入力から入力し、また、実際に行列A,Xの積を計算することで、 得られた解が正しいかどうかをチェックする機能も実装せよ。またこのプログラムを用いて、線形連立方程式の解や、逆行列を 求めた例も示せ。 [3] 環境 [3.1] OS: Linux [3.2] コンパイラ名とバージョン:不明 [3.3] 言語: C [4] 期限: 5月22日 [5] その他の制限: 問題文長いですが・・・よろしくお願いします!!
>>812 (・3・) エェー
>>875 はバブルソートと違うYO!今度こそバブルソートだYO!
void sort(double *data, int data_num){
int i, j;
double tmp;
if(data==NULL || data_num<1) return;
for(i=0;i+1<data_num;i++){
for(j=i;j+1<data_num;j++){
if(data[j]>data[j+1]){
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
>>879さん、ありがとうございました!!! 月曜日に学校にいって早速実行してみたいとおもいます。 こんなに難しいのになんでスラスラできるのか不思議でたまりません。
お礼を言うのはいいことだけど、あまりヘタなことは言わん方が
なんで家のパソコンにコンパイラを入れようとしないかな。
[1] 授業単元:C言語 [2] キーボードから0〜9の数字dと,正の整数nを読み込み,n以下の整数xで, xとxの2乗の10進数表示の両方にdを含むものをすべて出力するプログラムをつくりなさい。ただし,次のプロトタイプ宣言で示すように,整数xとdを仮引数として,xとxの2乗の10進数表示の両方にdを含む場合に1,そうでない場合に0を返す関数hit_digitを作成しなさい。 int hit_digit(int x, int d); ▼出力例 0〜9の数字dを入力して下さい:7? 正の整数nを入力して下さい:100? 該当するものは次の通り: 27 74 76 87 全部で4個ありました [3] 環境[3.1] OS: Windows [3.2] コンパイラ名とバージョン:VC++ [3.3] 言語:C 力業でやればできそうなのですが、スマートな方法がなかなか思いつかなくて・・・よろしくお願いします
>>884 2chで宿題丸投げするような連中はたかが知れてるさw
887 :
885 :2007/05/20(日) 20:24:27
休憩を挟んだらあっさりと解けてしまいました ご迷惑おかけしましたー
889 :
デフォルトの名無しさん :2007/05/20(日) 21:19:14
>>887 まるで全て自力で解いたかのような口ぶりだな
893 :
889 :2007/05/20(日) 22:26:16
上記の通り、指定の関数を使い 文字列"12345"(固定です)を数値の12345に変換するプログラムです。 宜しくお願いします
おいおい・・・・・・・・・・・・・・・・・・・・
atoi()と同じ動作をする関数を作る課題かと思ってたら・・ 関数を使うだけ!?!????????
896 :
889 :2007/05/20(日) 22:37:58
atoi()と同じ動作をする関数を作る課題です。 全く初心者なものでごめんなさい。文章が少なすぎました><
int myatoi(char *p) { int ret = 0; while(*p) ret = ret * 10 + *p++ - '0'; return ret; }
898 :
デフォルトの名無しさん :2007/05/20(日) 23:00:12
intは2147483647も表せないだろ。
いまどきintが4バイトじゃない環境の方が少なくない?
平気でそういう宿題出す教官がいるってのは悲しいがな。
君ならどういう宿題を出すのかね
最大値を65,535か32,767にする。
学校で使ってる環境がint4バイトなだけだろ。 なんでそんなとこに突っ込み入るのかわからん。
Visual Studio 2005ってかいてあるんだから別に不都合ないだろ
何か突っ込み入れたかったんだろ。 考えの浅さを暴露しただけだったが。
906 :
デフォルトの名無しさん :2007/05/21(月) 00:04:13
3つの整数を入力させて、3角形になるなら面積を表示するっていう宿題なんですけど、 数値計算がうまくいてません。助けてください #include <math.h> #include <stdio.h> int main() { float S, s, x, y, z; s = (x + y + z) / 2; S = sqrt( s * (s-x) * (s-y) * (s-z) ); printf("三辺は?\n"); scanf("%lf %lf %lf",&x ,&y ,&z); if( x+y>z && y+z>x && z+x>y ) { printf("面積は%lfです\n",sqrt(S)); } else { printf("三角形ではありません\n"); } }
907 :
デフォルトの名無しさん :2007/05/21(月) 00:06:50
三つの整数とは?
>906 floatをdoubleにするか、scanfで%lfじゃなく%fにする。 sとSの計算はscanfの後ろに置く
910 :
デフォルトの名無しさん :2007/05/21(月) 01:15:54
C言語です(>_<) 多次元配列a[3][2]の中に数字をランダムに入れて、それを大きい順にまたa[3][2]に入れるにはどうしたらいいんですか?(for文を用いて)
911 :
デフォルトの名無しさん :2007/05/21(月) 01:55:10
>909 たすかりました!ありがとうございます。
912 :
デフォルトの名無しさん :2007/05/22(火) 11:46:07
>>853 ICBM/SLBMの着弾誤差50メートル?www
Mt級の戦略核だったら50メートルと500メートルでも大した差はねぇぞ
>>910 (・3・) エェー 問題の意味が分からなかったYO!
ってことでエスパー回答だYO!
#include<stdio.h>
#include<stdlib.h>
int main(void){
int a[3][2], *p_max, temp;
int i, j, k, l;
for(i=0;i<3;i++)
for(j=0;j<2;j++)
a[i][j]=rand();
for(i=0;i<3;i++){
for(j=0;j<3;j++){
p_max=&a[i][j];
for(k=i,l=j;k<3;k++){
for(;l<2;l++){
if(*p_max<a[k][l])
p_max=&a[k][l];
}
l=0;
}
temp=a[i][j];
a[i][j]=*p_max;
*p_max=temp;
}
}
return 0;
}
>>910 (・3・) エェー
>>913 訂正だYO!
for(j=0;j<3;j++){
↓
for(j=0;j<2;j++){
C++っす 各タブを\tに、各バックスペースを\bに、各バックスラッシュを\\に置き換えながら、 入力を出力に複写するプログラムを書きたいです すみませんがお願いします
>>915 -=・=- -=・=-
同じ問題がプログラミング言語Cのアンサーブックに答えが書かれてたな。
>876ですが、コンパイルしたところ bash-2.05b$ gcc repo05.c /usr/lib/gcc-lib/i386-vine-linux/3.3.2/../../../crt1.o(.text+0x18): In function`_start': : undefined reference to `main' collect2: ld はステータス 1 で終了しました とエラーがでてしまいます。今日提出日なのでなるべく早く返事ください!! 急ですみませんがよろしくお願いします(><)
>>907 (・3・) エェー 行数制限厳しいYO!
#include <stdio.h>
#include <math.h>
int main(void){
int price=100, num=1;
printf("リンゴの数を入力して下さい : ");
scanf("%d", &num);
if(num<=0) price=0;
if(num>=10) price=95;
if(num>=20) price=90;
printf("値段 %d 円\n", price*num);
return 0;
}
int main(void){
int year;
printf("西暦年を入力して下さい : ");
scanf("%d", &year);
if(year%400==0 || (year%100!=0 && year%4==0)) printf("閏年です\n");
else printf("閏年ではありません\n");
return 0;
}
int main(void){
double a, b, c, s;
printf("三角形の三辺の長さを入力して下さい : ");
scanf("%lf %lf %lf", &a, &b, &c);
if(a+b<=c || b+c<=a || c+a<=b){printf("三角形ではありません\n");return 0;}
s=(a+b+c)/2;
printf("%f\n", sqrt(s*(s-a)*(s-b)*(s-c)));
return 0;
}
>>918です できました!!!!! ただたんに僕が入力ミスしてただけでした… どうもありがとうございました!!!!!
922 :
デフォルトの名無しさん :2007/05/23(水) 00:07:06
>>880 880と同じ問題に苦戦している俺ワロタ
阪大www
924 :
デフォルトの名無しさん :2007/05/23(水) 18:57:21
>>923 アリガトウ!
でも924と同じく、間に合いませんでした・・・
課題1と3だけやって提出した・・・・
926 :
デフォルトの名無しさん :2007/05/23(水) 22:58:13
>>910 の改訂です(>_<)
2行3列の2次元配列に自然数をランダムに選ぶ。ただし,58はどこかに入れる。その時以下のプログラムを作れ。
配列に入れられた数値を
@降順に出力
A昇順に出力
B数値58の行番号、列番号を出力
if、for、while、do文習いました。バブルソートを使います。
お願いしますm(_ _)m
num1,num5 == 58
929 :
デフォルトの名無しさん :2007/05/24(木) 19:02:32
930 :
依頼者 :2007/05/24(木) 22:21:13
[1] 授業単元:Cプログラミング基礎演習 [2] 問題文(含コード&リンク): x[6]を宣言してx[0]に5、x[1]に8、x[2]に6、x[3]に4、x[4]に1、x[5]に3を代入した後、ポインタを使って、x[0]、x[2]、x[4]の和と x[1]、x[3]、x[5]の積を求めるプログラムを作成せよ。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio [3.3] 言語: C [4] 期限: 5月28日迄 よろしくお願いします。
>>930 #include<stdio.h>
int main(){
int i,j=0,k=1,x[6]={5,8,6,4,1,3};
for(i=0;i<6;i++)if(i%2)k*=*(x+i);else j+=*(x+i);
printf("和%d 積%d\n",j,k);
return 0;
}
933 :
依頼者 :2007/05/24(木) 23:06:45
>>932さん ありがとうございます。助かりました。
934 :
依頼者 :2007/05/24(木) 23:19:52
[1] 授業単元:Cプログラミング基礎演習 [2] 問題文(含コード&リンク): 与えられた文字数分だけ文字を一文字ずつ順に表示するprint関数を作成せよ。 引数として文字列stringと整数nを用入ること。ここでstringは文字列型ポインタ配列の先頭アドレスを、nは表示する文字数を意味する。 [3] 環境: [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio [3.3] 言語: C [4] 期限: 5月28日迄 すいません、もう一つお願いします
>>934 #include<stdio.h>
void print(char *string, int n){while(n-- && *string)putchar(*string++);}
int main(){
print("bakasyoujiki",4);
return 0;
}
937 :
依頼者 :2007/05/24(木) 23:43:50
>>935さん ありがとうございました
>>936 (^3^) <これでいいかYo!?
int main() {
int flag = 0, count = 0;
char line[1024];
while(getline(line, sizeof(line))) {
char *m, *n;
for(m = n = line; *m; ++m) {
if(*m == '<') while(*++m && *m != '>');
else {
char c = *n++ = *m;
if(c == ' ' || c == '\t') while(c == m[1]) ++m;
}
}
*n = '\0';
if(*line && *line != '\n') printf("%d: %s", ++count, line);
}
return 0;
}
flag使ってなかったYO!
[1] 授業単元:コンピュータ基礎 [2] 問題文(含コード&リンク): <条件> ・ビリヤード台がおいてある ・台の左下端の座標は(0,0)、右上端の座標は(2,1)とする ・位置(x0、y0)に手玉 ・手玉の初速度(v0x,v0y) ・手玉の位置、初速度はscanfをつかって入力する <問題> ・手玉はどこに衝突するか? ・衝突位置の座標を表示する ・ポケットにおちることは考えなくてもよい ・手玉の大きさ、摩擦等は考えない ・20回のバンクを考慮して21カ所解答 [3] 環境 C言語で [4] 期限: [2007年6月1日まで] [5] その他の制限: if,while,for構文まで おねがいします。。
[1] 授業単元:C言語 [2] 問題文(含コード&リンク): 4人分の身長と体重のデータを二次元配列に格納し、平均身長、体重、BMIを求めよ。 ただしBMI=体重÷身長の二乗。大きさがN,Mの二次元配列a[][]をつかい、次のように初期化する。 float a[5][2]={{165.6,70.3,0},{156.0,60.3,0},{170.1,82.5,0},{180.8,67.8,0},{0,0,22.0} 結果は次のようにせよ h w BMI 1 165.6 70.3 ? 2 156.0 60.3 ? 3 170.1 82.5 ? 4 180.8 67.8 ? 平均 ? ? ? [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio [3.3] 言語: C [4]5月28日11時50分まで for-loopを使って解くとよいと書いてありました。 どうかお願いします
>>941 [5][2]では初期化できないだろ。
[5][3]の写し間違い?
すいません写し間違いでした・・・・ N、Mはdefineで適当に定義してもいいと教授は言ってたけれど 自分は5、3でやってたけどできなくて・・・
>>941 凄く高度なのですが、数値を全角で表示するなんて、俺にはムリポ
中華a[n][2]はBMIを入れるのか?、5番目のデータは身長が0だから表示されないのか?
BMIの式に身長の単位が(m)である事を明記してくれよ。
近い物は出来たのでお目汚しにどうぞ、数値は半角で表示が例と異なります。
#include<stdio.h>
#include<math.h>
int main(void){
char n,num=0;
float a[5][3]={{165.6,70.3,0},{156.0,60.3,0},{170.1,82.5,0},{180.8,67.8,0},{0,0,22.0}};
float sumh=0,sumw=0,sumb=0;
printf(" h w BMI\n");
for(n=0;n<5;n++){
if(a[n][0]==0) continue;
num++;
a[n][2]=a[n][1]/pow(a[n][0]/100,2);
sumh+=a[n][0];sumw+=a[n][1];sumb+=a[n][2];
printf("%4d%6.1f%6.1f%6.1f\n",n+1,a[n][0],a[n][1],a[n][2]);
}
printf("平均%6.1f%6.1f%6.1f\n",sumh/num,sumw/num,sumb/num);
return 0;
}
すいません・・・・できたあああああああ 有難うございました間に合いました。
>>929 (・3・) エェー 配列を並べ替えるのか並べ替えずに表示だけ並べ替えるのかわからんかったYO
(・3・) エェー
>>881 で馬鹿なことやってるのに気づいてしまったYO!
スレが終わる前に訂正だYO! …orz
void sort(double *data, int data_num){
int i, j;
double tmp;
if(data==NULL || data_num<1) return;
for(i=0;i+1<data_num;i++){
for(j=0;j+1<data_num-i;j++){
if(data[j]>data[j+1]){
tmp=data[j];
data[j]=data[j+1];
data[j+1]=tmp;
}
}
}
}
変数のibの下位8ビットの上位4ビットを0にする ib=0x0F0F 答えはどのようになるのでしょうか?
unsigned bitMaskUpper4OfLower8 = ~ 0xf0; ib &= bitMaskUpper4OfLower8;
プログラムではなくて答えです
>ib=0x0F0F
>>951 ありがとございます
iaを0にするの場合は
ic=ia & ××××
で&をつけ
iaを1にするだと
ic=ia
iaを1にするときは
ic=ia | ××××
iaを反転するときは
ic=ia ^ ××××
という感じでいいのでしょうか?
>>952 は途中で送ってしまいましたすいません
954 :
デフォルトの名無しさん :2007/05/26(土) 18:09:33
>iaを0にするの場合は ia = 0; >iaを1にするだと ia = 1; >iaを反転するときは ia = ! ia;
int ia =0x0F0A, ib; 変数のiaの上位8ビットを0x00にしなさい、という問題で どのようにして答えを書くべきなのでしょうか? ib = ia & 0x0F0A でいいのでしょうか?
>>956 (・3・) エェー 解説してみるYO!
mask=0x0080;
ia | mask; // ビットをセットするYO!
~(~ia | mask); // ビットをクリアするYO!
ia ^ mask; // ビットを反転するYO!
上位8ビットを0x00にするなら次の通りだYO!
mask=0xff00;
ib = ~(~ia | mask);
ついでに ia と mask が同じ型なら mask = 0x00ff; ib = ia & ~mask; でもおkだYO!
>>957 変数iaが16ビットであるという前提はどこから?
>>959 (・3・) エェー
>>957 の方法なら ia は何bitでもいいYO!
>>958 だと sizeof(mask)>=sizeof(ia) じゃないとうまくいかないことがあるYO!
>>961 >(・3・) エェー
>>957 の方法なら ia は何bitでもいいYO!
おいおい、これはなんだよ。
>上位8ビットを0x00にするなら次の通りだYO!
>mask=0xff00;
>>962 (・3・) エェー なるほど! そういう意味かYO!
難しいYO!
mask=0xff<<(sizeof(ia)*CHAR_BIT-8);
ib = ia & ~mask;
但し sizeof(mask)>=sizeof(ia) && sizeof(ia)==sizeof(ib) の時、限定だYO!
(・3・) エェー 答え書いてみたYO!
int ia =0x0F0A, ib;
ib=((unsigned int)ia<<8)
>>8 ;
>>957 >上位8ビットを0x00にするなら次の通りだYO!
>mask=0xff00;
>ib = ~(~ia | mask);
0x00FFと &取ればよくね?
966 :
デフォルトの名無しさん :2007/05/28(月) 16:06:03
>>946 homoじょあさんへ
表示だけでいいです。すいませんでしたm(_ _)m
967 :
デフォルトの名無しさん :2007/05/28(月) 20:37:32
コマンドラインで指定する正の整数nについて,12 + 22 + 32 + · · · + n2 の値を求めるプログラムを 作成せよ. % ./kadai6-4 引数(正の整数) を指定してください. % ./kadai6-4 1 2 引数(正の整数) を1 つだけ指定してください. % ./kadai6-4 17 1 から17 までの2 乗和は1785 です. %
[1] 授業単元: コンピュータ基礎 [2] 問題文(含コード&リンク): 浮動小数点型データを5個入力して、最大値、最小値、平均を求めよ [3] 環境 [3.1] OS: Windows XP [3.2] コンパイラ名とバージョン: Visual Studio [3.3] 言語: C [4]6月1日 基礎なのについていけない・・・・・専門学校と一般校の差でしょうか・・・・ ポインタを使って解くのを参考 らしいです。 お願いします。
>>967 (・3・) エェー 酷いの作ったYO
#include <stdio.h>
#include <stdlib.h>
int func(int n){
if(n == 1) return 12;
return n*10+2 + func(n-1);
}
int main(int argc, char *argv[]){
int n;
if(argc < 2){
puts("引数(正の整数) を指定してください.");
}else if(argc > 2){
puts("引数(正の整数) を1 つだけ指定してください.");
}else{
n = atoi(argv[1]);
if(n <= 0) return -1;
printf("1から%dまでの2乗和は%dです\n", n, func(n));
}
return 0;
}
>>968 (・3・) エェー やってみたYO!
#include<stdio.h>
int main(void){
double value, maximum, minimum, total;
int i;
for(i=0;i<5;i++){
printf("Input value : ");
scanf("%lf", &value);
if(i==0){
maximum=minimum=value;
total=0.0;
}
if(maximum<value) maximum=value;
if(minimum>value) minimum=value;
total+=value;
}
printf("Maximum:%.5e Minimum:%.5e Average:%.5e\n", maximum, minimum, total/5);
return 0;
}
>>967 (・3・) エェー 12+22+32+…n2 っていうのは本当は二乗和の事でいいのかYO!
#include<stdio.h>
int main(int argc, char *argv[]){
int i, n, sum;
if(argc>2){
printf("引数(正の整数) を1 つだけ指定してください.\n");
return 1;
}
if(argc==1 || sscanf(argv[1], "%d", &n)!=1 || n<=0){
printf("引数(正の整数) を指定してください.\n");
return 1;
}
for(i=1,sum=0;i<=n;i++) sum+=i*i;
printf("1 から%d までの2 乗和は %d です.\n", n, sum);
return 0;
}
973 :
967 :2007/05/28(月) 21:39:44
ありがとうー
(・3・) アルェー もしかして・・・1^2+2^2+3^2+・・・・+n^2って意味かYO
>>968 (・3・) エェー 失礼。
>>970 は忘れてくれYO!
あと「ポインタ使って解くのを参考」について教えてくれYO!
>>972 (・3・)ノシ いょう兄弟 このスレも終盤だけど最後までがんばるYO!
>>975 (・3・) エェー 次スレも(あったら)頑張るYO
977 :
968 :2007/05/28(月) 21:53:26
>>975 すいませんでした。ポインタはポインタ変数のことです。あくまで参考にせよなんでいらないかもしれませんが・・・
ポインタ変数を使用して、下記のデータを配列に格納した後に、その最大値を求めなさい
20,40,50,10,30
という問題を参考にしろと書いてありました。
(・3・) エェー 兄弟まずは配列に入れるみたいだYO
>>977 (・3・) エェー こんな感じかYO!
#include<stdio.h>
int main(void){
double value[5], *pmax, *pmin, total=0.0;
int i;
pmax=pmin=&value[0];
for(i=0;i<sizeof(value)/sizeof(value[0]);i++){
printf("Input value : ");
scanf("%lf", &value[i]);
if(*pmax<value[i]) pmax=&value[i];
if(*pmin>value[i]) pmin=&value[i];
total+=value[i];
}
printf("Maximum:%f Minimum:%f Average:%f\n", *pmax, *pmin, total/i);
return 0;
}
よろしくお願いします。自分で挑戦してみたのですがどうにも出来ません… [1] 授業単元:コンピュータリテラシ [2] 問題文(含コード&リンク): タートルグラフィックを使ってドラゴン曲線を再帰曲線として描画せよ。 [3] 環境 [3.1] OS:Linux [3.2] コンパイラ名とバージョン:わかりません… [3.3] 言語:C [4] 期限:5月29日迄 期限が差し迫っていて申し訳ないですが、どうかよろしくお願いします。
981 :
968 :2007/05/28(月) 22:17:24
>>979 ありがとうございます
実行すると結果がdate:が4個出るんですけどここを消したいんですが
どこを消したらいいかわからない・・・・・・・
最後に教えてもらえませんか?
_, ,_ (・3・)
すんませんやってみたら簡単にできました・・
>>980 (・3・) エェー コアの部分はこんな感じになるYO!
表示されるRとLが90度方向転換する向きになるYO!
#include<stdio.h>
void dragon_line(int left_time, int turn){
if(left_time<=0) return;
dragon_line(left_time-1, 'R');
/*
tg_fd(10.0);
if(turn=='R') tg_rt(90.0);
else tg_lt(90.0);
tg_fd(10.0);
*/
putchar(turn);
dragon_line(left_time-1, 'L');
}
int main(int argc, char *argv[]){
dragon_line(4, 'L'); // 4次のドラゴン曲線
return 0;
}
(・3・) エェー ◆hZ8e4Wjqvwはすごいお
(・3・) エェー いやー照れちゃうYO! ドラゴン曲線ってなんだろうと思ってググったら そのものがでてきたなんていえないYO!
987 :
デフォルトの名無しさん :2007/05/29(火) 00:20:59
C言語です。 課題@ 配列x[4][4]に整数が格納されている。以下のプログラムを作れ。 @x[i][j]の i+j=0ならy[i][j]=x[i][j]/16 Ai+j=1なら y[i][j]=x[i][j]/12 B 2<=(小なりイコールです)i+j<=5(小なりイコールです)なら y[i][j]=x[i][j]/32 C i+j>5なら y[i][j]=x[i][j]/100 D入力された配列x[i][j]と変換された配列y[i][j]を出力しなさい。 x[4][4]={260,45,-16,5,-79,36,-2,-7,0,-16,3,-2,-8,-4,5,-4} ただし,小数点第2位まで示せ。 課題A y[i][j]=x[i][j]*z[i][j]を計算して出力せよ。 z[i][j]={16,12,32,100,12,32,100,100,32,100,100,100,100,100,100,100} do,if,for,while習いました。 お願いしますm(_ _)m
988 :
デフォルトの名無しさん :2007/05/29(火) 00:54:42
バブルソートの意味がわかりません。誰かご教授を(>_<) 例題 5人の人の身長を昇順にソート #include<stdio.h> #define NUMBER 5 void swap(int *x、int*y) {int temp=*x; *x=*y; *y=temp; } void sort(int data[]、int n)←data[]ってどういう意味ですか? { int k=n-1; while(k>=0){ int i、j; for(i=1、j=-1;i<=k;i++)←何でj=-1なんですか? if(data[i-1]>data[i]){j=i-1; swap(&data[i]、&data[j]); }k=j;←? }} int main(void) {int i; int height[]={178、175、173、165、179}; sort(height、NUMBER);←? for(i=0;i<NUMBER;i++) printf("%2d:%4d\n"、i+1、height[i]); return 0;} お願いします(;_;)
(・3・) エェー 明日テストだYO!こんなすれみてる場合じゃないYO!
990 :
980 :2007/05/29(火) 07:53:52
>>984 ありがとうございます!
すみません、自分でもググったんですが見つからなかったんです…。
手間かけさせてすみませんでした。本当に助かりましたm(_ _)m
992 :
デフォルトの名無しさん :2007/05/29(火) 21:31:24
[1] 授業単元:プログラミング演習 [2] 問題文(含コード&リンク): キーボードから正の整数値を入力して、その数の下1桁の数字を表示する プログラムの作成 (例:2004が入力されれば4を出力する。) 実行結果(・・・の部分はキーボードからの入力) ・正の整数を入力してください: ・・・ ・その数の最後の桁は「5」です。 [3] 環境 [3.1] OS:Windows vista business [3.2] コンパイラ名とバージョン: visual studio2005 [3.3] 言語: C [4] 期限: ([2007月06日4日まで] [5] その他の制限:ほとんど習っていません。
>>992 #include <stdio.h>
#include <string.h>
int main(void)
{
int a;
char s[11], c;
printf("正の整数を入力してください:");
scanf("%d", &a);
sprintf(s, "%d", a);
c = s[strlen(s) - 1];
printf("その数の最後の桁は「%c」です。", c);
}
{0000000000X=9876543210=x} ζ !(+Φ_Φ)つ√ζ +⊂. + 〆∂ {Ж} "〆∂∂ 〆〆 .:"
995 :
デフォルトの名無しさん :2007/05/29(火) 22:19:49
1] 授業単元: プログラミング [2] 問題文(含コード&リンク): 以下の計算方式を利用して二元一次連立方程式の解を求めるプログラムを作成せよ。 なお最初にパラメータを入力するように入力部を作成すること。また行列式の判定を必ず行うこと。 ax+by=p cx+dy=q a,b,c,d,p,qは定数、x,yは変数とする。 [3] 環境 [3.1] OS:Windows [3.2] コンパイラ名とバージョン: わかりません。 [3.3] 言語: C++ [4] 期限: [2007年6月1日10:00まで] [5] その他の制限: 全然わかりませんお願いします。
996 :
992 :2007/05/29(火) 22:39:28
>>993 作っていただいて本当に申し訳ないんですが、printf,scanf,int型ぐらいしか習って
いないので、それらのみで作って戴けないでしょうか?
アルファベット以外の文字が入力されたら、"BAD"と表示するにはどうすればいいんでしょうか?
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。