C/C++の宿題片付けます 131代目

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
あなたが解けない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
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 130代目
http://pc12.2ch.net/test/read.cgi/tech/1250204272/
2デフォルトの名無しさん:2009/10/17(土) 02:17:13
気に入らない質問やその他や発言はスルーの方向で。
3デフォルトの名無しさん:2009/10/17(土) 02:33:05
相変わらずその日本語おかしいままか
4デフォルトの名無しさん:2009/10/17(土) 02:48:40
52代目から続く伝統の誤字なんだから、軽々しく変えていいわけねーだろw
5デフォルトの名無しさん:2009/10/17(土) 03:37:23
質問や発言は で良いかな?その他発言か?
6デフォルトの名無しさん:2009/10/17(土) 04:11:33
>>3 が何
7前スレ未解決問題:2009/10/17(土) 05:32:22
>>993  文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか判別
>>986(9982)  bitmap(BMP)ファイルの上に円を書く
>>923-925(CODE)  ナップサック問題のプログラムを利用し、グラフ彩色問題に当てはめる
>>883  Turbo C CUI画面制御 5問。
>>882  イテレータを使って微分方程式を解きたい
8デフォルトの名無しさん:2009/10/17(土) 09:03:15
>>993

#include <iostream>
using namespace std;
void main()
{
char str;
cin>>str;
if('a'<=str&&'z'>=str){
cout<<"小文字"<<endl;
}
else if('A'<=str&&'Z'>=str){
cout<<"大文字"<<endl;
}
else if('0'<=str&&'9'>=str){
cout<<"数字"<<endl;
}
else{
cout<<"それ以外"<<endl;
}
}
9デフォルトの名無しさん:2009/10/17(土) 09:05:20
charの変数名にstrってw
10デフォルトの名無しさん:2009/10/17(土) 09:14:33
cctypeは使わないのか。
11デフォルトの名無しさん:2009/10/17(土) 12:39:25
>>986
FILE *fp = fopen("bitmapfile.bmp", "w+");
fprintf(fp, "円");
fclose(fp);
12 ◆/91kCCQXBo :2009/10/17(土) 13:30:07
>>883 問1 C:\>gcc -mno-cygwin
#include <windows.h>
#include <stdio.h>
#include <conio.h>

int main(void) {
  HANDLE hStdout;
  WORD wAttributes;
  CONSOLE_SCREEN_BUFFER_INFO csbi;
  COORD coord={0,0}, coord1;
  DWORD num, i;

  hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
  GetConsoleScreenBufferInfo(hStdout, &csbi);
  FillConsoleOutputAttribute(hStdout, 0, 25*80, coord, &num);
  wAttributes = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY; SetConsoleTextAttribute(hStdout, wAttributes);
  for(i=0;i<10;i++) {
    coord1.X = 29; coord1.Y = i+7;
    SetConsoleCursorPosition(hStdout, coord1);
    printf("                      ", wAttributes);
  }// printf("1234567890123456789012345678901234567890", wAttributes);
  getch();
  wAttributes = BACKGROUND_RED | BACKGROUND_INTENSITY; SetConsoleTextAttribute(hStdout, wAttributes);
  for(i=0;i<14;i++) {
    coord1.X = 25; coord1.Y = i+5;
    SetConsoleCursorPosition(hStdout, coord1);
    printf("                              ", wAttributes);
  }// printf("1234567890123456789012345678901234567890", wAttributes);
  getch();
  SetConsoleTextAttribute(hStdout, csbi.wAttributes);
  return 0;
}
13デフォルトの名無しさん:2009/10/17(土) 14:17:49
14デフォルトの名無しさん:2009/10/17(土) 15:57:39
http://pc12.2ch.net/test/read.cgi/tech/1250204272/986
私の環境は Windows XP, 処理系は gcc 4,.3.2(cygwin) です。
http://codepad.org/oTgc5AyC
日の丸になりました。
15デフォルトの名無しさん:2009/10/17(土) 19:24:24
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9983.zip
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C++
[4] 期限: ([2009年10月19日23:59まで]
[5] その他の制限:特にありません

課題が2つありましたので、ZIPです。
よろしくお願いします。
16デフォルトの名無しさん:2009/10/17(土) 19:44:35
>>15
ないのですが。
1715:2009/10/17(土) 19:59:01
>>16
申し訳ございませんです。
リンク間違えました。
一度違うものを上げてしまったもので・・・
正しくは、こちらです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9984.zip
本当すいません。
よろしくお願いします。
18デフォルトの名無しさん:2009/10/17(土) 20:32:26
>>15
過去問の焼き直しで細かな仕様は満たしていないかもしれません。
http://codepad.org/EhlsRrWo
19デフォルトの名無しさん:2009/10/17(土) 20:40:26
前スレの993です。

ご回答してくださった方ありがとうございました。
参考にさせていただきます。
2015:2009/10/17(土) 20:47:01
>>18
ありがとうございます。
いいえ、十分です。
本当にありがとうございました。
課題2は、課題1に()を使えるようにしただけですので
その部分を削って提出します。
助かりました。
21デフォルトの名無しさん:2009/10/17(土) 21:13:32
>>14
986です。ありがとうございました!
22デフォルトの名無しさん:2009/10/18(日) 00:41:06
1 c=(x1+x2)/2となる
2 f(x1)*f(c)<0→f(x1)とf(c)は同符号.x1とcの間に解は無し。x1=cとする。
f(x1)*f(c)<0だと、f(x1)とf(c)は異符号
x1とcの間に解が存在
x2=cとなる

x1-x2が十分小さくなれば(10^-5)終了する

例 cos(x/2)の解

#include <iostream>
#include <cmath>
using namespace std;
int main() {

までは行きますが…

出力はcout
入力はcinでお願いします
23デフォルトの名無しさん:2009/10/18(日) 01:05:03
そこは行くとかそういう問題じゃないw
24デフォルトの名無しさん:2009/10/18(日) 01:19:02
>>23
すみません。これ分かる人いますか
C++です
25デフォルトの名無しさん:2009/10/18(日) 01:19:52
要するに二分法でしょ
C++は関係無い
26デフォルトの名無しさん:2009/10/18(日) 01:20:24
>>24
そうです。すみません
27デフォルトの名無しさん:2009/10/18(日) 01:22:38
全くできてないものを貼って、ここまでは行きますとか言われてもな。
そんなんだったら、何も書かない方がマシ。
28デフォルトの名無しさん:2009/10/18(日) 01:22:40
>>25でした
29デフォルトの名無しさん:2009/10/18(日) 01:27:38
>>27
ここまでは行きます
というか
始まりはこの文からです
っていう意味です…
30デフォルトの名無しさん:2009/10/18(日) 09:58:29
質問者は中学生なんだから、少しはいたわれw
31 ◆/91kCCQXBo :2009/10/18(日) 10:35:04
/*2分法の処理を行う関数*/
http://www.geocities.jp/supermisosan/nibunhou.html
ヒント:C→C++ に置換
cout<<"範囲の左の値を入力してください.\n"; cin>>x1;
cout<<"範囲の右の値を入力してください.\n"; cin>>x2;
cout<<"解の値は "<<c<<"\n収束するのに "<<count<<" 回かかりました.\n";
32デフォルトの名無しさん:2009/10/18(日) 10:37:55
教育は若いうちにやるほうが効果が高い
33デフォルトの名無しさん:2009/10/18(日) 10:43:20
>>22
まずはテンプレート >>1 にそって問題を整理してください。書きなぐり?では他の人間に伝わりません。
日本語を磨くこともプログラミングでは重要です。我々は日本語を使って思考しているわけですから。
34デフォルトの名無しさん:2009/10/18(日) 10:45:08
>>32
そうですか。もう私らではだめですかね。(TT)
35デフォルトの名無しさん:2009/10/18(日) 19:11:45
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9988.txt
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C++
[4] 期限: ([2009年10月20日23:59まで]
[5] その他の制限:特にありません

よろしくお願いします。
36デフォルトの名無しさん:2009/10/18(日) 19:22:50
>>035 // 適当〜なので。
int main(void) {
  while(1)
    printf(" %.16g\n", e());
  return 0;
}
3735:2009/10/18(日) 19:39:56
>>36
ありがとうございました。
本当に助かりました。
38デフォルトの名無しさん:2009/10/18(日) 22:26:02
[1] 授業単元: 数値計測演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9989.txt

問題文 
fx = exp(x)- 3x において 区間{0,1}の根を二分法で求めよ
ただし、収束判定条件には|b-a|<εを用いて ε=10^-5
また根の収束の様子を見るために反復ごとにc、fc の値の変化を調べよ


visual C++でのエラーメッセージ
c(11) : error C2059: 構文エラー : 'サフィックスが無効です
c(11) : error C2146: 構文エラー : ';' が、識別子 'x' の前に必要です。

あと指定されたファイルが見つからないとかでファイルを実行できないです

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: visual C++
 [3.3] 言語: C
[4] 期限: ([2009年10月20日23:59まで]
[5] その他の制限:特にありません


まったく解決方法がわからないです
よろしくお願いします

39デフォルトの名無しさん:2009/10/18(日) 22:47:08
3x → 3*x
40デフォルトの名無しさん:2009/10/18(日) 23:03:29
>>39 に加えて、途中の printf() の引数を間違えています。(表示がおかしい)
printf("%d:f(%20.16f)=%9.2e\n", i, c ,fc); に修正してください。i に対応する書式が足りない。
41デフォルトの名無しさん:2009/10/19(月) 00:32:23
[1] 授業単元: プログラム演習
[2] 問題文(含コード&リンク):
コンソール画面上に点@を打つ関数 putpixcelを使って
水平方向に線を書く h_line(int x1,int y1,int x2)
垂直方向に線を描く v_line(int x1,int y1,int y2)
斜めの線を描く line(int x1,int y1,int x2,int y2)
を作りこれらを使ってコンソール画面上に図形を書きなさい
但し、line関数において因数はx1<x2,y1<y2,|x2-x1|>|y2-y1|の場合に限定して良い。
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: xemacs
 [3.3] 言語: (C)
[4] 期限: (2009年10月19日13:00まで])
いろいろ考えましたが、全く分りませんでした、どうかお願いします。
42デフォルトの名無しさん:2009/10/19(月) 00:42:06
[1] 授業単元:c言語
[2] 問題文
問1
文字を一文字入力して、文字コードが一個次の文字を表示するプログラムを作成せよ。
問2
文字を一文字入力して、入力文字が a-z の範囲のときのみ、次のアルファベットを表示すプログラムを作成せよ。ただし、zを入力した場合は a を表示し、a-z以外の文字を入力した場合は入力した文字をそのまま表示すること。
例:
aを入力 → b を出力
bを入力 → c を出力
zを入力 → a を出力
3を入力 → 3 を出力
$を入力 → $ を出力
Aを入力 → A を出力
問3
文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか別して、判別結果を表示するプログラムを作成せよ。

[3] 環境
Windows,
言語:C++
[4] 期限:12月1日
よろしくお願いします。
43デフォルトの名無しさん:2009/10/19(月) 01:08:42
4443:2009/10/19(月) 01:09:55
問2
あとはこれを参考に考えて下さい。
45デフォルトの名無しさん:2009/10/19(月) 01:11:10
>>41
e-lisp でしないといけないのですか?そうならばすれ違いですね。
4643:2009/10/19(月) 01:19:51
>>43
間違えた。こちらに訂正します。
http://codepad.org/wX3ZzxvN
47デフォルトの名無しさん:2009/10/19(月) 07:20:25
>>32
物事をよく理解できない、勘違いでも丸暗記では意味がない。
教育の意味にもよるが、死ぬまで勉強。
生きている内に知ることは多い、時代も変わっていくしね。
そして、於いて朽ち果てていく己を知るのじゃ〜〜wwww
48デフォルトの名無しさん:2009/10/19(月) 08:18:31
せめて漢字変換くらいまともにできるようになってからにしろよ、そういう寝言はよw
49デフォルトの名無しさん:2009/10/19(月) 08:23:31
wつけといてよくいえるな。。。
50デフォルトの名無しさん:2009/10/19(月) 08:34:07
>>45
emacs画面でする作業の事を、emacsで何々すると言う。例えばコンパイル&デバッガ。
51デフォルトの名無しさん:2009/10/19(月) 08:35:31
>。。。
こんな句点の使い方は日本語にゃねーよw
52デフォルトの名無しさん:2009/10/19(月) 09:23:59
 ど っ ち も ど っ ち 
53デフォルトの名無しさん:2009/10/19(月) 09:47:05
[1] 授業単元:C++
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9990.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9991.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C++
[4] 期限: 2009年10月22日

自分なりに考えてみましたがわかりませんでした。
宜しくお願い致します。
54デフォルトの名無しさん:2009/10/19(月) 12:32:09
>>50
なるほど。
emacsでデバッガする
ですね
55デフォルトの名無しさん:2009/10/19(月) 15:36:52
[1] 授業単元:プログラム言語論
[2] 問題文(含コード&リンク):

設問1.C言語、またはC++言語で、割り算を計算するdev(int x,int y)関数(*)を作成しなさい。ただし、不変表明(assert)を使って、0で除算を実行した場合にエラーを出力するようにすること。(*)関数devは、int型の返値を持ち、x/yを計算するものとする。

[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C言語、またはC++言語
[4] 期限: 2009年10月20日(火曜)

よろしくお願いします
56デフォルトの名無しさん:2009/10/19(月) 16:26:11
>>55
#include <stdio.h>
#include <assert.h>
int dev(int x, int y) { assert(y != 0); return x / y; }
int main(void)
{
printf("%d\n", dev(2, 0));
return 0;
}
57デフォルトの名無しさん:2009/10/19(月) 17:41:30
[1] 授業単元:プログラミング2演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9992.txt
複素数x+iyをR*e^iθという指数表示にするプログラムを作れ。

作れるところまで作ったのがリンク先のプラグラムです。
しかしこれではx,yに何を入れてもてもR=0.0 θ=0.784902になってしまいます。
[3] 環境
 [3.1] OS:WindowsVista
 [3.2] Borland C++ Compiler 5.5
 [3.3] 言語:C++
[4] 期限: ([2009年10月20日12:50まで])

よろしくお願いします
58デフォルトの名無しさん:2009/10/19(月) 18:17:04
>>55
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9993.c
むかしZ80で割り算ルーチンを書いてたのに忘れてた。
ググってやっと書けたけど、ほんとにむかし出来てたのか心配になった。
59デフォルトの名無しさん:2009/10/19(月) 18:54:10
>>57
%f→%lf
60デフォルトの名無しさん:2009/10/19(月) 18:54:58
あとshisu()の位置もおかしいな
61デフォルトの名無しさん:2009/10/19(月) 19:28:37
1] 授業単元:
[2] 問題文(含コード&リンク):
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年10月20日16:00まで
[5] その他の制限:簡単めのコードでお願いします。
62デフォルトの名無しさん:2009/10/19(月) 19:30:52
>61
Brain F*ckの処理系作ればいいのか
63sage:2009/10/19(月) 19:54:50
>>61 すみません、書き忘れました。

[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9994.txt
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年10月20日16:00まで
[5] その他の制限:簡単めのコードでお願いします。
64デフォルトの名無しさん:2009/10/19(月) 21:36:30
前のスレの最後の方にユーグリッドの互除法のプログラムがあったはずなんですが、
ここに貼ってもらえませんか?
>>900番代後半だった気がするんですが
65デフォルトの名無しさん:2009/10/19(月) 21:43:48
ユークリッド
66デフォルトの名無しさん:2009/10/19(月) 22:49:40
#include <iostream>
using namespace std;

int main(){
double x1, x2, c, a;

cout << "x1: ";
cin >> x1;
cout << "x2: ";
cin >> x2;
while(x2 - x1 > 0.00001){
c = (x1 + x2) / 2;
if (cos(x1 / 2) * cos(c / 2) >= 0) x1 = c;
else x2 = c;}
cout << "x = " << x1 << endl;

return 0;
}

二分法のプログラムこれどこが違うんですか
67デフォルトの名無しさん:2009/10/19(月) 22:57:33
>>66
質問の仕方が違うんじゃないの?

cos(x1/2)*cos(x2/2)>0 とか
68デフォルトの名無しさん:2009/10/19(月) 22:59:01
>>48
うわ〜〜、変換ミスくらいで突っ込む、絶対にソースコードも
コンパイルするまでエラーしたことがない完璧主義者ですね?
カッコいいです!尊敬します!だから早く老いて死んでくれw
69デフォルトの名無しさん:2009/10/19(月) 23:01:12
>>51
もはやこういった場所では正式な文書より喋り言葉が一般的なんだが
その程度のことを気にするお前は時代には乗り遅れる。
そもそも、文化は現在も人間が作っている。正式に認められていなければ
それは間違いというのは、文化の衰退を招く。少しは理解する頭を持て。
で、三点リーダーって・・・ではなく…を使うのが正しいとかなんとか。
所詮、自分が知っている 日本語も一部 だと気づくんだな。
70デフォルトの名無しさん:2009/10/19(月) 23:07:35
>>69
と、偉そうなことを言っているが実はよくわかっていない馬鹿な>>69なのであった
71254:2009/10/19(月) 23:14:10
[2] 内容
通信のパケットを解析してコードに応じた処理を行いなさい。
ただしコードは必ず2回確認して2回とも同じだった場合のみ処理を行うこと。
コードが2回以上続けて来ても処理は1回のみとする。0XFFが来たら処理を終了すること
※ コード例  0x00, 0x00, 0x01, 0x00, 0x02, 0x02, 0x02, 0x02・・・・・・・・・・0xFF, 0xFF;

なので、こんな感じのソースにしてみました。
static int PreCode = 0xFF;
unsigned int Code = 0;
void Function(unsigned int Code){
if(PreCode != Code){
switch(Code){
case 0x00:
if(Cnt++ >= 1){
/* 1の処理 */
Cnt=0;
PreCode = Code;
}
break;
/* 中略(上記と同じ様にしてcaseの値を変える) */
case 0xFF:
if(Cnt++ >= 1){
/* 終了処理 */
Cnt=0;
PreCode = Code;
}
break;
default:
return;
}}}
[3] 環境  OS:WindowsXp、Vc++6.0
これでは、0x00が来た後に0x01が来た場合に1回目のチェックで処理に入ってしまいます。これを上手く動く様にするにはどうすれば良いかソースの改良をお願いします。
72デフォルトの名無しさん:2009/10/19(月) 23:14:18
実際>>69の日本語も相当なもんだしな。
73デフォルトの名無しさん:2009/10/19(月) 23:15:28
>>71
> 2回確認して2回とも同じだった場合のみ処理を行うこと。
この辺が釈然としない
74デフォルトの名無しさん:2009/10/19(月) 23:17:08
>>48
いやぁ〜ごめーん、ついうっかり。こういった場所や数学に関する話を他でするもんで
〜に於いてと記入することがあるんで、つい変換ミスしてたのに気づかなくって
ごっめーん、ついでに若くてごめーん、すいすいすいましぇーん
75デフォルトの名無しさん:2009/10/19(月) 23:22:20
> こういった場所や数学に関する話を他でする
なんだって?

それと、数学で「〜に於いて」って使う?適当なアンカー希望
76デフォルトの名無しさん:2009/10/19(月) 23:29:15
>>48
77デフォルトの名無しさん:2009/10/20(火) 00:09:57
ファイルがバイナリかテキストかを判別する
プログラムはどうしたらいいですか?
78デフォルトの名無しさん:2009/10/20(火) 00:16:34
バイナリモードで開いてテキストじゃない文字があればバイナリファイル
79デフォルトの名無しさん:2009/10/20(火) 00:21:45
テキストファイルはバイナリファイルの部分集合
80デフォルトの名無しさん:2009/10/20(火) 00:21:54
[1] 授業単元:c言語
[2] 問題文
問1
文字を一文字入力して、文字コードが一個次の文字を表示するプログラムを作成せよ。
問2
文字を一文字入力して、入力文字が a-z の範囲のときのみ、次のアルファベットを表示すプログラムを作成せよ。ただし、zを入力した場合は a を表示し、a-z以外の文字を入力した場合は入力した文字をそのまま表示すること。
例:
aを入力 → b を出力
bを入力 → c を出力
zを入力 → a を出力
3を入力 → 3 を出力
$を入力 → $ を出力
Aを入力 → A を出力
問3
文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか別して、判別結果を表示するプログラムを作成せよ。

[3] 環境
Windows,
言語:C++
[4] 期限:12月1日
1回やってもらったんですがわからないんでお願いします。
81デフォルトの名無しさん:2009/10/20(火) 00:24:31
cなのかc++なのか、それが問題になるかも知れないし、環境もWindowsだけではちょっと。
って期限ながっっっ
82デフォルトの名無しさん:2009/10/20(火) 00:29:40
>>80
問1
#include <stdio.h>

int main()
{
char a;
scanf("%c",&a);
printf("%c\n", a+1);
return 0;
}
83デフォルトの名無しさん:2009/10/20(火) 00:45:10
>>77
制御コードの割合。

#include <stdio.h>
#define BOUND 0.02
double bincnt( char *q , unsigned int size) {
unsigned int bin=0, ascii=0, n;
unsigned char *p=(unsigned char*)q;
for(n=0; n<size; n++) {
if( p[n] < 32 && p[n] !=9 && p[n] !=10 && p[n] !=13 && p[n] !=27 ) bin++; else ascii++; }
return (double)bin/ascii; }

#define STRLEN 25
int main() {
double x;
char ch[STRLEN+1] = "abcdefghijk0123456789ABCD";
printf("Input = %s\n", ch);
x = bincnt( ch, STRLEN);
if( x > BOUND ) printf("Binary\n"); else printf("Not Binary\n");
getchar(); }
84デフォルトの名無しさん:2009/10/20(火) 00:50:00
>>80
問2
#include <stdio.h>

int main()
{
char a,b;
scanf("%c",&a);

if(a == 'z')
printf("a\n");

else if(a >= 'A')
printf("%c\n",a);

for(b = 'a'; b < 'z'; b++){
if(b == a)
printf("%c\n", a+1);
}

return 0;
}
8584:2009/10/20(火) 00:54:07
else if(a >= 'A')
printf("%c\n",a);

じゃなくて

else if(a < 'a' || a >= 'z')
printf("%c\n",a);

だった
86デフォルトの名無しさん:2009/10/20(火) 01:01:57
>>80
問3
#include <stdio.h>

int main()
{
char a,b;
int c= 0;
scanf("%c",&a);

for(b = 'A'; b <= 'Z'; b++)
if(b == a) c = 1;

for(b = '0'; b <= '9'; b++)
if(b == a) c = 2;

for(b = 'a'; b <= 'z'; b++)
if(b == a) c = 3;

switch(c){
case 1: printf("大文字です\n"); break;
case 2: printf("数字です\n");break;
case 3: printf("小文字です\n"); break;
default: printf("それ以外です\n");break;
}

return 0;
}


そして俺の宿題はわけわかめ
87デフォルトの名無しさん:2009/10/20(火) 01:10:55
>>86
今見たら終わってる・・・w
本当にありがとうございます(´;ω;`)
88デフォルトの名無しさん:2009/10/20(火) 01:30:46
前スレにも同じ問題あったな
89デフォルトの名無しさん:2009/10/20(火) 01:41:32
>>84
forにしなくてもelseでいいんでない?
ぱっと見動くように見えるからいいけど。

それと、多分'a'から'z'までが連続している保証はないというツッコミも来るだろうけど、
宿題だからでスルーしてもいいと思う。
90デフォルトの名無しさん:2009/10/20(火) 02:39:34
int main() (笑)
91デフォルトの名無しさん:2009/10/20(火) 02:42:37
なにかおかしいかな?
引数ちゃんと書けってこと?
92デフォルトの名無しさん:2009/10/20(火) 02:48:57
いや、問題ないよ
>>90の勘違いじゃないかな
93デフォルトの名無しさん:2009/10/20(火) 02:59:15
>>92
int main() (笑)
94デフォルトの名無しさん:2009/10/20(火) 03:06:15
95デフォルトの名無しさん:2009/10/20(火) 03:06:28
わからん。
int main(void)
と書かないとダメとか程度の低い勘違いをしてるんじゃないよな?
96デフォルトの名無しさん:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。
97デフォルトの名無しさん:2009/10/20(火) 03:14:19
アワレだな
98デフォルトの名無しさん:2009/10/20(火) 03:23:17
>>96
>>84
問2
#include <stdio.h>

int main() (笑)
99デフォルトの名無しさん:2009/10/20(火) 03:29:34
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

文盲(笑) 差別用語(笑) 池沼レベルの発言(苦笑)
100デフォルトの名無しさん:2009/10/20(火) 03:38:52
Cでint main()がダメだという人って多いよね。
どこでそんな知識得たの?
101デフォルトの名無しさん:2009/10/20(火) 03:58:05
>>80
[1] 授業単元:c言語
言語:C++

問2
#include <stdio.h>

int main() (笑)
102デフォルトの名無しさん:2009/10/20(火) 04:03:44
Xeno091017 正式版
http://koreawatcher.at.infoseek.co.jp/janexeno.htm
・正式版として最初のリリース。
・Jane終了時の挙動のみ091015試作品から変更された。
───────────────────────
予告どおり、正式版をリリースしました。×ボタンのツールチップ
ヒントに関して、真魚のソースを参考にして修正を試みました。
JaneNidaの開発は事実上終了です。2chの仕様変更などで
対応するかもしれません。
103デフォルトの名無しさん:2009/10/20(火) 04:04:03
> [1] 授業単元:c言語
> 言語:C++
(苦笑)
104デフォルトの名無しさん:2009/10/20(火) 04:40:11
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

>>80
> [1] 授業単元:c言語
これが読めない文盲なんだろ。
105デフォルトの名無しさん:2009/10/20(火) 04:58:56
>>90
int main() (笑)?
106デフォルトの名無しさん:2009/10/20(火) 05:19:56
相変わらずすごい粘着力だw
107デフォルトの名無しさん:2009/10/20(火) 07:35:21
Cならint main(void){}
C++ならint main(){}またはint main(void){}お好みで。
108デフォルトの名無しさん:2009/10/20(火) 08:31:11
#include <stdio.h>
int main() (笑)
109デフォルトの名無しさん:2009/10/20(火) 08:33:12
ビルダで言われるがままにしか作ったことないんだろ。
逆に可哀相な奴なんだから気にすることない。
110デフォルトの名無しさん:2009/10/20(火) 09:01:57
96 名前:デフォルトの名無しさん 投稿日:2009/10/20(火) 03:13:51
>言語:C++
これが読めない文盲なんだろ。

#include <stdio.h>  < はい注目!

>>96はこれが見えない文盲なんだろ。
111デフォルトの名無しさん:2009/10/20(火) 09:40:57
別にそれでもC++としてコンパイルできるけど。
112デフォルトの名無しさん:2009/10/20(火) 12:01:36
C++でstdio.hをインクルードしてもまったく問題ないと思うけど
>>113はどう思う
113デフォルトの名無しさん:2009/10/20(火) 12:13:26
単に質問者が間違えただけだろ
いちいち揚げ足とんな>>90
114デフォルトの名無しさん:2009/10/20(火) 12:53:25
>>81で早々にツッコミ入ってるのに
115デフォルトの名無しさん:2009/10/20(火) 17:05:36
116デフォルトの名無しさん:2009/10/20(火) 17:14:46
>>63
期限は10/21の16:00でお願いします。
117デフォルトの名無しさん:2009/10/20(火) 17:20:30
特定のプラットフォーム限定のコード書いてコンパイラの独自機能
使いまくりなのに、標準を気にするなんておかしいね。
ターゲットようのコンパイラに通りゃなにやったって正義。
118C初心者:2009/10/20(火) 18:36:06
Unix、C言語のみで、はじめにユーザーに整数入力を要求し、
その入力された整数を次の一行にその整数とHexに変換されたもの
を出力、その次の行には、はじめに入力された整数を少数にして
それをまたHexに変換。
もしユーザーが数字以外を入力した場合にエラーと表示させ、
”0”と打ち込めば終了。
というプログラムです。一行目はきちんと出てくるのですが、
入力された値を2行目で少数に変換し、それをまたHexにかえる
というのがわかりません。

こんな感じで出したいのですが、、

>1
    1 0x00000001
 1.00 0x3F800000

> 

どうぞよろしくお願いいたします。
119デフォルトの名無しさん:2009/10/20(火) 19:37:27
>>118 template 無いから、これでいいか。
#include <stdio.h>
int main(void) {
  union{
    float a;
    unsigned char c[4];
  } data;
  int i, b;

  b = 1;
  data.a = b;
  for(i=3;i>=0;i--) {
    printf("%02X", data.c[i]);
  }
}
120デフォルトの名無しさん:2009/10/20(火) 20:17:13
>>90 >>93 >>98 >> 101 >>105 >>108
http://pc12.2ch.net/test/read.cgi/tech/1250204272/940

>ANSI以前との互換性のために、ANSI-Cではプロトタイプ宣言の時だけは引数にvoidを
>明示しないとならないことになっている。
>定義ではvoidの明示は不要。
>C++ではプロトタイプ宣言でも関数定義でもvoidの明示は不要。
>
>つまり、ANSI-Cで引数の無いmain関数のプロトタイプを書く場合だけは、引数の型を
>voidとするのが正式。それ以外の場所は省略しても正式。
121C初心者:2009/10/20(火) 20:23:21
>119さん
返信ありがとうございます。初心者過ぎてコードが読めないんですが、
forループの中ではHexのみをプリントアウトするようになっていますか?
scanfでユーザーの入力を読み込んで、それを整数からHEXへ、少数から
Hexへ変換して表示させるにはどうしたらよいのでしょうか。
それが、unionというものをまだ習っていないので、出来れば使いたくな
いのですが、sizeof(int), sizeof(float)を使ってどのように変換したら
良いのでしょうか?

printf("> %d", n);
if("%d" == char) //CHARではCharを読むことは出来ないんですね?
printf("error");
else if ("%d" == "0"); //これも違いました、、、
return 0;
else{
printf("%10d 0x%08x", n, n);
printf("%10.2f 0x%08X", f, n);
}

よろしくお願いいたします。
122デフォルトの名無しさん:2009/10/20(火) 20:29:07
>>121
何かしたいのかがわからん
123デフォルトの名無しさん:2009/10/20(火) 20:40:58
>>120
なんでそんな、この宿題スレの過去ログでも争って結論が出たのを
今更蒸し返してんの?w
C言語とC++についてもISO、ANSI準拠の標準スタイルについて
説明されていたよ。で、あんたはC++で#include <stdio.h>とするのね?w
124デフォルトの名無しさん:2009/10/20(火) 20:43:24
>>123
するだろ?
C++の規格のどこかにCのライブラリを用いてはならないって書いてあった?
125デフォルトの名無しさん:2009/10/20(火) 20:45:45
>>124
このキチガイさんは<cstdio>って書いて欲しいんだよ
126デフォルトの名無しさん:2009/10/20(火) 21:46:53
>>120
なんか引っかき回してすまないんだが、
mainのプロトタイプってどこかに書かれてる?
無いなら、最初に出てきた時、つまりmainの定義を以て宣言とする挙動になるはずだよね。
127デフォルトの名無しさん:2009/10/20(火) 21:48:57
ANSI-Cにおいて、int main()が非合法であるかの確認をしたいです。
128デフォルトの名無しさん:2009/10/20(火) 21:54:16
>>126
宣言のときなんていってなくね?
プロトタイプ宣言の時なんだから実体の定義を伴う宣言とは別だろ
129デフォルトの名無しさん:2009/10/20(火) 21:55:20
>>118 unionを知らなくても、FILE*は知ってるだろう。もしscanfの使い方知りたいなら別のスレいけ。
#include <stdio.h>
int main(void) {
  int i, b;
  float a;
  unsigned char c[4];
  FILE *fp;

  b = 1;
  a = b;
  fp = fopen("a.txt", "wb");
  if(fp == NULL) {puts("ERR"); return 1;}
  fwrite(&a, 4, 1, fp);
  fclose(fp);

  fp = fopen("a.txt", "rb");
  if(fp == NULL) {puts("ERR"); return 1;}
  fread(&c, 4, 1, fp);
  fclose(fp);

  for(i=3;i>=0;i--) {
    printf("%02X", c[i]);
  }
  return 0;
}
130デフォルトの名無しさん:2009/10/20(火) 22:07:21
>>128
void hoge(void);
void hoge() {}
int main() { hoge(1); return 0; }

このコードの1行目が無ければコンパイルできるじゃん。
それは、関数の定義内容を元にプロトタイプ宣言と見なしているってことじゃないの?
131デフォルトの名無しさん:2009/10/20(火) 22:08:41
C++です。

  x[0] = rand()%6;
  x[1] = rand()%6;
  x[2] = rand()%6;
  y =x[0] + x[1] + x[2];
  z[y] = z[y]+1;

変数がわかりにくくてすみません。
xの配列に0〜5の値を保存して合計してyに入れます。
それからzの配列(15こぶん)に入れたいのですが、うまくできません。

たとえば、yが3のとき、z[3]に入れたいのですが・・・。
最終的にどの値が何回出たか表示するためにzの配列に保存しています。

この部分の記述は間違っていないでしょうか??
132デフォルトの名無しさん:2009/10/20(火) 22:10:15
>>131
いいよ。
z[y]++;
にしてもいい。
133132:2009/10/20(火) 22:11:49
あ。zは0-15までの16個ぶん必要だよ。
134>>118:2009/10/20(火) 22:24:40
>>131
// C言語です。
#include <stdio.h>
#include <stdlib.h>
int main(void) {
  int i, x[3], y, z[15];

  srand(time(0));
  for(i=0;i<15;i++) z[i] = 0;
  for(i=0;i<100;i++) {
    x[0] = rand()%6;
    x[1] = rand()%6;
    x[2] = rand()%6;
    y = x[0]+x[1]+x[2];
    z[y] = z[y] + 1;
  }

  for(i=0;i<15;i++) printf("%2d %2d\n", i, z[i]);
  return getc(stdin);
}
135>>118:2009/10/20(火) 22:26:23
int i, x[3], y, z[16];
136>>118:2009/10/20(火) 22:29:08
for(i=0;i<16;i++) z[i] = 0;
for(i=0;i<16;i++) printf("%2d %2d\n", i, z[i]);
ソーリー
137デフォルトの名無しさん:2009/10/20(火) 22:30:33
>>132
ありがとうございます。
この場合変数の宣言はどのようにするのがよいのでしょうか?
138デフォルトの名無しさん:2009/10/20(火) 22:32:05
>>137
今まで通りでいいよ。
139デフォルトの名無しさん:2009/10/20(火) 22:34:23
C言語です

「キーボードから数を入力して、当たればHIT、はずれはMISSEDを表示し、はずれた場合に限り
正しい数はなんであったかも表示する」

という課題なのですが、自分で↓のようなプログラムを作ったのですがうまくいかずどこがいけないのかがわかりません・・・
どうかよろしくお願いします

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,y;
srand(time(0));

x=(rand()%3)+1;

printf("imput number=?"); scanf("%d",&y);

if(x=y)
printf("HIT");
else {
printf("MISSED\n");
printf("correct number=x");
}
return(0);
}
140デフォルトの名無しさん:2009/10/20(火) 22:34:54
>>134
>>138
できました!ありがとうございます。

配列の宣言部分がおかしかったようです。
141デフォルトの名無しさん:2009/10/20(火) 22:35:41
>>139
if(x=y)って大入試気になってね?
142デフォルトの名無しさん:2009/10/20(火) 22:36:10
代入式!ええい・・・糞IMEめ
143デフォルトの名無しさん:2009/10/20(火) 22:39:08
そこを直しても、ミスったときの表示はおかしいけどな
144デフォルトの名無しさん:2009/10/20(火) 22:40:50
惜しかったなぁ。
まぁ、ここまで作れたならそれは大丈夫でしょう。
145デフォルトの名無しさん:2009/10/20(火) 22:42:19
代入式・・・?

>>141-144
すみません初心者で・・・
146デフォルトの名無しさん:2009/10/20(火) 22:44:50
>>145
x = yだとxにyの値が入っちゃうので
x == yにしないといけないよって言う話
147デフォルトの名無しさん:2009/10/20(火) 22:45:02
>>145
=でつないじゃったら右を左に入れるだから
==じゃないとだめよ
148デフォルトの名無しさん:2009/10/20(火) 22:46:11
あとはずれた場合に正解を表示させないとね
149デフォルトの名無しさん:2009/10/20(火) 22:48:07
>>146-147
そうでしたか!なるほど・・・
どうもありがとうございます!

>>148
そっちにも問題がありそうですねorz
ちょっと試行錯誤してみます!
150デフォルトの名無しさん:2009/10/20(火) 22:50:39
>>149
まぁ'='と'=='の勘違いは誰もが通る道だから
気にしなくていいよ
151139:2009/10/20(火) 22:56:39
>>150
ありがとうございます!


無事にプログラムが完成しました!

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int x,y;
srand(time(0));

x=(rand()%3)+1;

printf("imput number=?"); scanf("%d",&y);

if(x==y)
puts("HIT");
else {
printf("MISSED\n");
printf("correct number=%d",x);
}
return(0);
}


こうしなければいけなかったのですね

大変お世話になりました!
152デフォルトの名無しさん:2009/10/20(火) 22:56:59
その上気づきにくい、、、が、コンパイラが警告出してくれてると思うよ。
警告 : 条件文書くとこで代入してるけど、これ意図して書いてる?
みたいなの。
153デフォルトの名無しさん:2009/10/20(火) 22:58:01
おめでとう。imputはご愛嬌。
154デフォルトの名無しさん:2009/10/20(火) 23:03:19
>>152
英語が苦手で警告文を解読するのも一苦労です・・・

>>153
ぶはw
これは恥ずかしいです・・・
155デフォルトの名無しさん:2009/10/20(火) 23:48:47
C++のソースコードを書きます(キリッ)
#include <stdio.h>
int main()
{
return 0;
}
できますた!C++コンパイラでコンパイルして下さい!(キリッ)
156デフォルトの名無しさん:2009/10/20(火) 23:53:45
>>155
問題なくコンパイルできますね。(g++, bcc32)
157デフォルトの名無しさん:2009/10/20(火) 23:54:45
>>155の何が面白いのか真剣にわからない
158デフォルトの名無しさん:2009/10/21(水) 00:08:41
宿題の答えくれなくて自暴自棄になってるんだと思う。
159デフォルトの名無しさん:2009/10/21(水) 00:10:19
この粘着はCスレによく出没する頭のおかしい人だから、スルーしてください。
160デフォルトの名無しさん:2009/10/21(水) 00:26:52
[1] 授業単元: プログラミング言語
[2] 問題文(含コード&リンク):
  問1、符号無し整数xを右にnビット回転した値を返す関数
     unsigned right(unsigned x,int n)
{
}
を作成せよ

[3] 環境
 [3.1] mac
 [3.2] gcc?(よくわかりません)
 [3.3] C言語
[4] 期限: 2009年10月22日(木)
よろしくお願いします。
161デフォルトの名無しさん:2009/10/21(水) 00:30:49
右シフトしたのと左シフトしたのの和でいこう。
162デフォルトの名無しさん:2009/10/21(水) 00:43:35
乱数を使って半径rの球面上に一様に点をうつ方法を分かりやすく教えてください。
指向性を考える必要があるため割と難しい問題だと感じます。
163デフォルトの名無しさん:2009/10/21(水) 00:46:34
>>162
質問スレでどうぞ
(ヒント:極座標[0,2π]x[0,π])
164デフォルトの名無しさん:2009/10/21(水) 00:48:33
>>162
極座標使ったら簡単じゃねーの?
165デフォルトの名無しさん:2009/10/21(水) 00:51:53
>>160
unsigned right(unsigned x, int n)
{
reutrn x >> n | x << (sizeof(unsigned) * 8 - n);
}
166デフォルトの名無しさん:2009/10/21(水) 01:26:01
C++でsetwやsetprecisionで指定した桁数を解除するためにはどうしたらいいんでしょうか?
167デフォルトの名無しさん:2009/10/21(水) 07:30:33
>>162
多分 [0, 4πr^2) の一様乱数を座標に変換するのがいいとは思うんだけど難しいね
168デフォルトの名無しさん:2009/10/21(水) 18:24:38
>>126
main() のプロトタイプをわざわざかくのであれば、それは

 int main(void);

のでしょうが、普通はプロトタイプなぞかかずに

int main()
{
return 0;
}

と main() を定義しますよね。main() の定義であれば int main() と買いて、規格に沿っていない記法とはならないわけです。
169デフォルトの名無しさん:2009/10/21(水) 19:00:39
>>168
C++ならそうだね
170デフォルトの名無しさん:2009/10/21(水) 19:14:41
>>162 合ってるかどうか自信は無い
#include<stdio.h>
#include<stdlib.h>
#include<math.h>

double uniformed_rand(void)
{
return (double)rand()/(RAND_MAX+1);
}

int main(void)
{
double theta, phi;
double r=5.0, x, y, z;
int i;

for(i=0;i<100;i++)
{
phi=asin(uniformed_rand()*2-1);
theta=uniformed_rand()*2*M_PI;
x=r*cos(theta)*cos(phi);
y=r*sin(theta)*cos(phi);
z=r*sin(phi);
printf("x=%f y=%f z=%f\n", x, y, z);
}

return 0;
}
171デフォルトの名無しさん:2009/10/21(水) 19:17:35
>>168
んだから、プロトタイプが書かれていない場合はint main()をプロトタイプだと見なすんじゃないのって話
で、そうなればvoidの省略は許されないよね。
どこかで
 int main(void);
という宣言がされていれば、定義時はint main()で問題ないよね。

その上で、int main()の定義がANSI-Cにおいて完全合法であるからには、どこかで宣言されているか、
またはmainが特殊であるかのいずれかだと思うんだ。
172170:2009/10/21(水) 19:22:02
>>170 は間違ってた
173デフォルトの名無しさん:2009/10/21(水) 19:43:42
>>171
プロトタイプ宣言は「実体と伴わない関数の宣言」だろ
int main()って書かれてその後に実体がそのまま書かれてるなら「実体を伴う関数の宣言」なのだからプロトタイプじゃないだろ。
174デフォルトの名無しさん:2009/10/21(水) 19:48:50
>>173
そっか。プロトタイプじゃないか。

プロトタイプ宣言はされてるのかなぁ
175デフォルトの名無しさん:2009/10/21(水) 19:51:27
あ、プロトタイプ宣言があっては困るか。

つまるところint main()は完全合法ってことになるのね
176デフォルトの名無しさん:2009/10/21(水) 19:57:02
ANSIから外れた記述であるわけは無かろうと思っていたのに、C++だから合法みたいなレスが
いっぱいついてどうしようかと思った。
177デフォルトの名無しさん:2009/10/21(水) 20:50:11
>>175
いや、べつに main() のプロトタイプを書いてもいいんですよ。無意味ですが。
178デフォルトの名無しさん:2009/10/21(水) 20:52:44
>>177
え?
どう書くの
179170:2009/10/21(水) 20:54:10
やっぱり >>172 が間違ってるのかも
もう数学なんて分からん orz
180デフォルトの名無しさん:2009/10/21(水) 21:43:26
>>178
「プロトタイプ」の意味、理解してる?
181デフォルトの名無しさん:2009/10/21(水) 22:30:10
[1] 授業単元:C言語とアルゴリズム
[2] 問題文:
 キーボードから自然数を入力し1から入力した数までの自然数の中から、
3の倍数と3のつく数字をすべて出力するプログラムを作成しなさい。ただし、
3の倍数と3のつく数字を入力したときに真(非0)、それ以外の場合は偽(0)を返す関数
(関数名は任意)を作成し、それをmain関数内から呼び出して使用すること

{実行例}
自然数を入力して下さい.
100
1から100までで3の倍数と3のつく数字は以下の通りです.
3 6 9 12 13
15 18 21 23 24
27 30 31 32 33
34 35 36 37 38
39 42 43 45 48
51 53 54 57 60
63 66 69 72 73
75 78 81 83 84
87 90 93 96 99

[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:明日まで
182デフォルトの名無しさん:2009/10/21(水) 22:55:13
#include <stdio.h>

int f(int n)
{
if(n % 3 == 0) return 1;

while(n) {
if(n % 10 == 3) return 1;
n /= 10;
}

return 0;
}

int main(void)
{
int i, n, cnt;

printf("自然数を入力して下さい.");
scanf("%d", &n);

printf("1から%dまでで3の倍数と3のつく数字は以下の通りです. \n", n);

for(i=1,cnt=0; i<=n; i++) if(f(i)) printf("%d%c", i, ++cnt % 5 ? ' ' : '\n');

return 0;
}
183162:2009/10/21(水) 23:08:13
>>170
考えて頂いてありがとうございます。

結局点が選ばれる確率を1/4πとして,極座標表示での微小領域に点が入る確率の積分が1になることを利用し,
微小領域の確率を変形して無理やり乱数を使える形にしました。省略しすぎた説明ですいません。

結局 ( theta, phi ) = ( arccos(r1), 2*pi*r2 ) という式を導きました。
但し,r1:[-1, 1],r2:[0, 1]で,theta:[0, pi],phi:[0, 2*pi]で考えています。
184デフォルトの名無しさん:2009/10/21(水) 23:51:24
>>178
難しく考えすぎ。

#include <iostream>

int main( );

int main( )
{
std::cout << "Hello World" << std::endl;

return 0;
}
185デフォルトの名無しさん:2009/10/22(木) 00:07:52
>>175
プロトタイプ宣言がどうとか、独自の環境なら話は別。
もう少し言葉の意味を理解する頭を持ってくれよ。
ANSI、ISO準拠では条件もしっかり明記されている。
main関数を プログラムの開始 とする。
自分でソースの中から開始の関数を指定できるなら
もはやISO、ANSI準拠にあらず、ご自由にどうぞ。
で、ANSI、ISO準拠の 標準スタイル ではC言語は引数がないなら
int main(void)としている。従うか従わないから各個人の任意にお任せ。
int main()でも良いじゃないか?どうぞどうぞ。別にそれが
間違っているなんて誰も言ってませんよ?
186デフォルトの名無しさん:2009/10/22(木) 00:09:21
>>181
世界のアツナベキターーーーー!
187デフォルトの名無しさん:2009/10/22(木) 00:41:34
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
問1
行列のかけ算を使って幅20、高さ140の長方形の横に3.3倍、縦に0.4倍の拡大率で表示をするプログラムを作成せよ。

問2
サンプルプログラムを参考にして、画面の中心に幅80、高さ50の長方形を原点を中心にπ/8だけ回転させた長方形を描くプログラムを作成せよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9995.txt

問3
画面上に描かれた長方形がキー入力によって原点を中心に回転するアニメーションを実現するプログラムを作成せよ。キーの「1」と「3」で回転角度が増減するようにせよ。

 [3.1] WindowsXP
 [3.2] Turbo c++ 4.0
 [3.3] C++
[4] 今週の金曜日まで
お願いいたします。
188デフォルトの名無しさん:2009/10/22(木) 00:45:45
>>185
int main() { return 0; } は完全に ANSI 準拠ですけれども、何がおっしゃりたいのでしょうか?

>>184
int main(void);
int main() { return 0; }
ではなかろうかと。プロトタイプには void が必要となるのが ANSI 準拠です。
189188:2009/10/22(木) 00:47:27
>>184
失礼、C++ で書いてありましたね。ごめんなさい。
190デフォルトの名無しさん:2009/10/22(木) 02:11:06
>>185
ああ、そういうこと?
K&Rなんかは、合法だが標準じゃないスタイルで記述された、それだけの話か。

標準じゃないからといってint main()がひたすらに叩かれる理由がよく分からんけど、とりあえず理解した。
191デフォルトの名無しさん:2009/10/22(木) 02:25:22
こいつに触っちゃダメ
192デフォルトの名無しさん:2009/10/22(木) 02:57:43
こいつ?そいつ?
193デフォルトの名無しさん:2009/10/22(木) 12:56:02
>>191
お前に触れない方が良いことは分った。理解力のない池沼めw
194デフォルトの名無しさん:2009/10/22(木) 12:58:51
>>188
> 何がおっしゃりたいのでしょうか?
分らないならレスするなよ、バカw
準拠ですけれども?意味不明。前提条件もあってのことだが???
だから敢えて細かく説明されてんじゃん。いい加減、この手の話は
過去ログで決着がついているから、後は自分で調べろ。

> int main() { return 0; }
激しく意味不明な指摘w
195デフォルトの名無しさん:2009/10/22(木) 13:05:54
>>185はプロトタイプ宣言についてじゃないぞ?
ANSI、ISO準拠のmain関数の記述の「標準スタイル」についてだぞ?
mainに関係なくプロトタイプ宣言にvoidが必要だのって、そういう話じゃない。
int main(void)かint main()か?だから上の方でC言語 int main() (笑)とか
言われてたんだろ。
後で必死に反発したつもりなのか、C++が読めない「文盲」なんて
人を見下す差別用語を平気で使うならず者が出てくるし。
C++なんて突っ込むから #include <stdio.h> についてさらに突っ込まれてやんの。
もう支離滅裂。話の主題、論点が分らないならレスしないで構わんよ。
自分が無知だとばれますよ?
196デフォルトの名無しさん:2009/10/22(木) 13:17:12
>>194
そりゃそこだけ抜けば意味不明な指摘になる
プロトタイプのとこだとおもうよ

ANSI-Cにおけるint main(){return 0;}は合法であるという旨のレスをいくつかしたんだけど
>>176の通り、C++なら大丈夫だよ!というのが混ざってくるから話がこじれたんじゃないか?
C++は関係ない、で捨てようにも、「C++なら」ってことはCではダメだという風に取れちゃうし。
197デフォルトの名無しさん:2009/10/22(木) 13:26:15
ISO、ANSI準拠では プログラムの開始をmain関数 としているわけだが
それをプロトタイプ宣言とか言い出したら意味不明だわw
いい加減、プロトタイプ宣言から離れろ
198デフォルトの名無しさん:2009/10/22(木) 13:37:53
なんだ、いつもの話をずらして粘着する人か
199デフォルトの名無しさん:2009/10/22(木) 15:59:01
HANDLE a;
…ハンドル取得…
HDC b = (HDC)a;

これってダメなんだっけ?w
200デフォルトの名無しさん:2009/10/22(木) 16:06:52
>>199
aは何のハンドルですか?
201デフォルトの名無しさん:2009/10/22(木) 16:07:36
フォントです
202デフォルトの名無しさん:2009/10/22(木) 16:53:18
>>201
フォントのハンドルをHDCにキャストするのは、ダメです。
使い方が間違っています。
203デフォルトの名無しさん:2009/10/22(木) 16:55:38
>199
typedef struct hcd {
 foo_t foo;
} *HDC;
typedef struct handle {
 struct hcd hdc;
 bar_t bar;
} *HANDLE;
typedef struct font {
 struct handle handle;
 baz_t baz;
} *FONT;
とかなっているんだったら、いいでそ
もしかしてHDCって、Windowsのあれかな。

typedef void *HANDLE;
typedef struct hdc {
 foo_t foo;
} *HDC;
typedef struct font {
 struct hdc hdc;
 bar_t bar;
} *FONT;
こんなのでもいいわ。
もう、typedef void *HANDLE, *HDC, *FONT;でもいいわ。
どういう風に宣言なり定義なりされているのかわからないと何とも言えない。
204デフォルトの名無しさん:2009/10/22(木) 17:30:19
HDCとかHANDLEとかWindowsのあれでしょ
Windowsのスレへどうぞ
void*をむやみにキャストしてもだめということだろうが
205デフォルトの名無しさん:2009/10/22(木) 21:57:18
[1] プログラミング演習
[2]以下のプログラムの図形を画面の中心に平行移動をしてから表示するように改造せよ。
結果として画面の中央(320, 240)を中心とした回転移動の角度をキー入力によって増減するようにせよ。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/9998.txt
 [3.1]WindowsXP
 [3.2] turbo c++ 4.0
 [3.3] c++
[4] 明日中

よろしくおねがいします。
206デフォルトの名無しさん:2009/10/22(木) 22:11:56
>>199
大体の流れとして。

HDC hdc;
PAINTSTRUCT ps;
hFont = CreateFont(…);
hdc = BeginPaint(hWnd, &ps);

SelectObject(hdc, hFont);

じゃないの。それぞれ宣言場所違うけどね。
デバイスコンテキストハンドル2つ生成してSelectObjectすればそれっぽいんじゃないか?。
207デフォルトの名無しさん:2009/10/22(木) 23:55:47
Visual StudioでC++をやり始めたんですが
実行してもすぐに
コマンドプロンプトが閉じてしまって結果が見れません
対処法を教えてください。
208デフォルトの名無しさん:2009/10/23(金) 00:01:21
僕の肛門も出すものを出したら直ぐに閉じてしまいます ><;
209デフォルトの名無しさん:2009/10/23(金) 00:01:29
右クリック→設定 で
「終了後に自動的に閉じる」のチェックを外す。
210デフォルトの名無しさん:2009/10/23(金) 00:13:56
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):
[1 2 0] [3 2 0 1] [3 4 0 2 1]みたいな同じ数字を使わない任意の長さでランダムな数列の作成するプログラム。

[3] 環境
 [3.1] OS: vista
 [3.2] コンパイラ名とバージョン: gcc ?
 [3.3] 言語: C
[4] 期限: 来週の木曜日

rand()、switchでごり押しくらいしか思いつかないです…
211デフォルトの名無しさん:2009/10/23(金) 00:20:49
>>210
カードシャッフルのアルゴリズムと同じ
212デフォルトの名無しさん:2009/10/23(金) 00:23:11
>>211
論より証拠。口先よりソースコード。
213デフォルトの名無しさん:2009/10/23(金) 00:46:22
>>210

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int c, char **v)
{
int n,*a,i;
if (c<2)return 0;
a=malloc((n=atoi(v[1]))*sizeof(int));
if (a==NULL)return 1;
srand(time(NULL));

for (int i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (int i = 0; i < n; ++i) {
int k = i + rand() % (n - i); printf("%d ", 1 + a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
214デフォルトの名無しさん:2009/10/23(金) 00:46:40
>>209
207なですがどこで右クリックすればいいのか
教えてもらえないでしょうか。
215デフォルトの名無しさん:2009/10/23(金) 00:51:33
>>214
.pif ファイル。
つーか、単に main の最後に getchar() か何か付け足して、
エンターで終了ってことにしとけば良いんじゃね?
216213:2009/10/23(金) 00:54:49
これで出来てる?
携帯だから自分で確認できないんだが。
217デフォルトの名無しさん:2009/10/23(金) 00:55:53
>>215さんありがとうございました
今日から勉強始めて
まったく分からない状況だったので助かりました
218デフォルトの名無しさん:2009/10/23(金) 01:54:50
int main(int c, char **v)  (笑)
srand(time(NULL));  (苦笑)
for (int i = 0; i < n; ++i) a[i] = i; (爆笑)
int k = i + rand() % (n - i); printf("%d ", 1 + a[k]); (大爆笑)
putchar(8); (失笑)
219デフォルトの名無しさん:2009/10/23(金) 02:18:55
修正

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;
srand(time(NULL));

for (i = 0; i < n; ++i) a[i] = i+1;
putchar('[');
for (i = 0; i < n; ++i){
k = i + rand() % (n - i);
printf("%d ", a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
220デフォルトの名無しさん:2009/10/23(金) 02:29:22
問題よくみたら0からだった。
修正しといてくれ。
221デフォルトの名無しさん:2009/10/23(金) 02:32:41
つーことで修正

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;

srand(time(NULL));
for (i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (i = 0; i < n; ++i){
k = i + rand() % (n - i);
printf("%d ", a[k]);
a[k] = a[i];
}
putchar(8);
putchar(']');
return 0;
}
222デフォルトの名無しさん:2009/10/23(金) 04:31:04
前から抜くより、後ろからの方が足し引きすくないよ。

for(i=n; i; ) {
k = rand() % i--;
223デフォルトの名無しさん:2009/10/23(金) 04:55:38
じゃあ修正
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int c, char **v){
int n,*a,i,k;
if (c<2)return 0;
a=malloc((n=atoi(v[1])) * sizeof (int));
if (a==NULL)return 1;

srand(time(NULL));
for (i = 0; i < n; ++i) a[i] = i;
putchar('[');
for (i=n; i;){
k = rand() % i--;
printf(i?"%d ":"%d", a[k]);
a[k] = a[i];
}
putchar(']');
return 0;
}
224デフォルトの名無しさん:2009/10/23(金) 05:03:45
個人的には
for (i = 0; i < n; i++){
k = rand() % (n-i);

a[k] = a[n-i];
}
とするのが好きだな。
225デフォルトの名無しさん:2009/10/23(金) 05:07:10
a[k] = a[n-i-1]じゃね?
226デフォルトの名無しさん:2009/10/23(金) 05:17:47
おぉーーっと、ここでうpロダ君のロングパス!
227C初心者:2009/10/23(金) 06:26:19
>129, 135, 136さん
御礼が遅くなりました。
ありがとうございました。
228デフォルトの名無しさん:2009/10/23(金) 06:48:23
>>223
ループの中で場合わけするなら、]もつけちゃえばいいのに。
229デフォルトの名無しさん:2009/10/23(金) 08:10:48
>>210
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
int i, j, n, *p;

srand(time(NULL));

scanf("%d", &n);
p = malloc(n * sizeof(int));

for(i=0; i<n; i++) {
j = rand() / (RAND_MAX + 1.0) * (i + 1);
p[i] = p[j];
p[j] = i;
}

printf("[%d", p[0]);
for(i=1; i<n; i++) printf(" %d", p[i]);
printf("]\n");

free(p);

return 0;
}
230デフォルトの名無しさん:2009/10/23(金) 11:44:38
【質問テンプレ】
[1] 授業単元:プログラミング言語C
[2] 問題文:
以下のプログラムの『考える』ところを直し、キーボードから1を入力したらRed2ならGreen、3ならBlueの文字列が画面表示されるようにせよ。またそれ以外の数字が入力されたら『終了します』と画面表示されプログラムが終了するようにせよ


#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;

scanf("%d",&input);


if(考える)            {
printf("%s\n", colors[考える]);
};
return 0;

}
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン:VC ++
 [3.3] 言語: C
[4] 期限:早く出せば点数が上がるので出来るだけ早くお願いします
[5] その他の制限:


よろしくお願いします
231デフォルトの名無しさん:2009/10/23(金) 11:49:39
>>230
#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
scanf("%d",&input);
if(1 <= n && n <= 3) {
printf("%s\n", colors[n - 1]);
}else {
printf("終了します\n");
}
return 0;
}
232デフォルトの名無しさん:2009/10/23(金) 11:54:19
>>230
#include<stdio.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;

while(1){
scanf("%d",&input);
if(input>0&&input<4){
printf("%s\n", colors[input-1]);
}else{
printf("終了します\n")
break;
}
}
return 0;
}
233デフォルトの名無しさん:2009/10/23(金) 12:36:50
int main() (笑)
234デフォルトの名無しさん:2009/10/23(金) 12:41:02
>>230

#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3"};
char b[80];

gets(b);
for(input=0;input<4;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}else{
printf("終了します\n");
}
return 0;
}
235デフォルトの名無しさん:2009/10/23(金) 12:56:45
>>230

#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
char b[80];

gets(b);
for(input=0;input<11;input++)if(!strchr(b,"0123456789"[input]))printf("終了します\n"),return 0;
for(input=0;input<11;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}else if(input<10){
printf("終了します\n");
}
return 0;
}
236デフォルトの名無しさん:2009/10/23(金) 13:05:54
つまんね
237デフォルトの名無しさん:2009/10/23(金) 13:08:44
こうだろ。

#include<stdio.h>
#include<string.h>
int main()
{
char *colors[]={"Red", "Green", "Blue"};
int input;
char *nums[]={"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
char b[80];

gets(b);
for(input=0;input<11;input++)if(!strchr(b,"0123456789"[input]))printf("終了します\n"),return 0;
for(input=3;input<11;input++)if(strstr(b,nums[input]))printf("終了します\n"),return 0;

for(input=0;input<4;input++)if(!strcmp(b,nums[input]))break;
if(input<4){
printf("%s\n", colors[input]);
}
return 0;
}
238デフォルトの名無しさん:2009/10/23(金) 13:37:15
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(void) {
char *colors[] = {"Red", "Green", "Blue"};
int input, i;
char buf[1024];
char *num[] = {"0","1","2","3","4","5","6","7","8","9"};
char *num2[] = {"零","一","二","三","四","五","六","七","八","九"};
fgets(buf, 1024, stdin);
input = atoi(buf);
for(i = 0; i < 10; i++) if (strncmp(buf, num[i]) == 0) input = i;
for(i = 0; i < 10; i++) if (strncmp(buf, num2[i]) == 0) input = i;
if (input <= 0 || input >= 4) printf("終了します\n");
printf("%s\n", colors[input]);
return 0;
}
239デフォルトの名無しさん:2009/10/23(金) 13:43:12
__declspec(dllimport) extern int printf(const char *s, ...);
__declspec(dllimport) extern int scanf(const char *s, ...);
int main(void) {
char *colors[] = {"Red", "Green", "Blue"};
int input;
char b[80];
gets(b);
input = atoi(b);
if (input <= 0 || input >= 4) printf("終了します\n");
else printf("%s", colors[input - 1]);
return 0;
}
240210:2009/10/23(金) 13:47:52
>>211
ありがとうございます。
検索ワードが思い浮かばず困っていた面もありました。
時間はあるのでじっくりググって煮詰めようと思います。

>>213=>>219=>>221=>>223
>>229
ありがとうございます。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10000.txt
自分でも布団の中で考えn個の中から1つを選ぶ、n-1個の(ryみたいな感じでやってみましたが比べると無駄が多い…
参考に改善しようと思います。


241デフォルトの名無しさん:2009/10/23(金) 13:52:09
knuthやfisher-yatesでググると参考になる。
242デフォルトの名無しさん:2009/10/23(金) 14:05:23
putchar(8) って何? バグ?
243デフォルトの名無しさん:2009/10/23(金) 14:11:29
asciiコードぐらい自分で調べろよw
244デフォルトの名無しさん:2009/10/23(金) 14:23:37
さぁとっととリストの課題こいや〜!麻呂のミートクソースをお見舞いしてやんよでおじゃる?
カレンダー出力も来るでおじゃる!
245デフォルトの名無しさん:2009/10/23(金) 16:45:24
いやっほー!
246麻呂専用:2009/10/23(金) 16:55:35
[1] C言語中級
[2] 8X8のオセロの全局面をリスト構造で列挙しそれを適当なファイルに保存するプログラム
次の問いの答えも添付すること
(1)先手必勝、後手必勝かの決定
(2)平行初期値と通常初期値(回転対称、鏡映は同一視)それぞれの
場合において到達可能な葉は全部の場合の何パーセント程度であるか?

[3] Windows 2000/Visual-C++ 6.0/C言語(厳守)
★置く場所が無い場合に限りパスが認められる。
★FileMappingやVirualAllocateのWindowsの機能を利用し、
メモリがパンクしないように留意すること。メモリの搭載は128M程度
を仮定する。
[4]来週月曜日迄(厳守)
247デフォルトの名無しさん:2009/10/23(金) 18:21:25
全文を書くと大変なことになるのと(300行以上)、
どこから、どこまでを引っこ抜いてきて書けばいいかが分からないので、とりあえず下記を抜粋しました。
この部分で文法的に間違ってる文章はありますでしょうか?
nはdefine済みです。よろしくお願いします。

int i, l, s, c, k, d[n];

srand(10);

for(k=0; k<n; k++){
d[k] = 0;
}

i = floor(rand() * n);
c = i;
for(l=0; l<10; l++){
s = floor(rand() * rowvec[c].num );
c = rowvec[c].kazu[s];
d[c]++;
}
248デフォルトの名無しさん:2009/10/23(金) 18:28:02
>>1
>【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
249デフォルトの名無しさん:2009/10/23(金) 19:09:34
【質問テンプレ】
[1] 授業単元: 情報演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10001.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
うpろだお借りしました。
10001.txtの中の
int i, l, s, c, d[n];

init_genrand(10);

for(k=0; k<n; k++){
d[k] = 0;
}

i = floor(genrand_real2() * n);
c = i;
for(l=0; l<10; l++){
s = floor(genrand_real2() * rowvec[c].num );
c = rowvec[c].kazu[s];
d[c]++;
}
for(c=0; c<n; c++){
printf(" %d\n", d[c]);
}
}
が手間取っている部分です。どうしてもうまく動作しません。
よろしくお願いします
250デフォルトの名無しさん:2009/10/23(金) 19:42:46
>>249
何がどうなって欲しいの?
251デフォルトの名無しさん:2009/10/23(金) 20:10:44
プログラム全体でやっていることは、
隣接行列を作る。
強連結か判定。
ページランクの測定。
です。
>>249では有向グラフで出発点をランダムにとり、
そこからランダムウォークをして、何回か移動したとき、各点にどれだけ移動したかを測定しようとしています。
252デフォルトの名無しさん:2009/10/23(金) 20:25:40
ランダムウォークじゃなくて全部歩くべきなんじゃないの?
253デフォルトの名無しさん:2009/10/23(金) 22:28:46
>249
値を返していない関数がある
245行目で初期化されていない変数を使っている
254デフォルトの名無しさん:2009/10/24(土) 00:55:05
[1] 授業単元:プログラミングV
[2] 問題文(含コード&リンク):外部ファイルより整数を読み込み、棒グラフを描くプログラムを
作る。外部ファイルはコンストラクタで配列に読み込め。使う関数はヘッダーファイルに
publickに定義する。
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual Studio 2005
 [3.3] 言語:C++
[4] 期限:2009年10月29日10時
[5] その他の制限:特にないです。
255デフォルトの名無しさん:2009/10/24(土) 03:12:57
問題文って本当にそれだけ?
256デフォルトの名無しさん:2009/10/24(土) 09:13:10
mathematicaなんですが、関数を作れとのことなので
ここに投稿させてもらいます。
暇がある方お願いします。

2変量のデータ {{x1, y1}, {x2, y2}, ... , {xn, yn}} を引数として,散布図と相関係数を出力する関数を作成せよ.
257デフォルトの名無しさん:2009/10/24(土) 09:49:53
お断りします
258デフォルトの名無しさん:2009/10/24(土) 14:40:31
テストの平均点を出して小数第2位を四捨五入したいんだけどどうすればいいの?
平均点は出てます。
259デフォルトの名無しさん:2009/10/24(土) 14:46:52
%とfの間に「.1」だっけ?
260デフォルトの名無しさん:2009/10/24(土) 15:12:39
>>258
main(){
float a = 1.56;
int b;
b = a*10+0.5;
a = b/10.0;
printf("%f",a);
return 0;
}
261デフォルトの名無しさん:2009/10/24(土) 15:15:44
#include <math.h>
float round(float val, int decimal)
{
val += pow(5.0, -(decimal+1));
long tmp = val * pow(10.0, decimal);

return tmp/pow(10.0, decimal);
}
262デフォルトの名無しさん:2009/10/24(土) 16:58:52
テキストから"n 100"みたいな文字列を読み込んで、プログラム内でnに100を代入するにはどうすればいいでしょうか?
263デフォルトの名無しさん:2009/10/24(土) 17:14:17
それがコンパイラだよ。
264デフォルトの名無しさん:2009/10/24(土) 17:17:56
>>262
プログラム書くか、>>1を読めばいい。
265デフォルトの名無しさん:2009/10/24(土) 19:07:42
[1] 授業単元:変数の基礎
[2] 問題文(含コード&リンク):このプログラムのどこかに変数における間違いがあります。
  その間違いを探しなさい。  http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10002.txt

[3] 環境
 [3.1] OS: (Windows)
 [3.2] コンパイラ名とバージョン: visual studio2008
 [3.3] 言語: C/C++/どちらでも可
[4] 期限: 明後日まで
[5] その他の制限: 特になし
266デフォルトの名無しさん:2009/10/24(土) 19:27:11
>265
使われていない変数がある
値を返していない関数がある
267デフォルトの名無しさん:2009/10/24(土) 19:41:18
>265
outputが開放されていない

引数が使われていない
未定義動作の式が存在する
268デフォルトの名無しさん:2009/10/24(土) 19:45:31
意図のわからない名前をつけちゃだめ
269265:2009/10/24(土) 20:22:15
>>266>>267

ありがとうございます。
もし良ければ何行目あたりかを教えてください。(スルーでも大丈夫です)
270デフォルトの名無しさん:2009/10/24(土) 21:24:20
>>265
これすごいなw
実装したやつ天才すぎるw
つか宿題じゃねーだろこれ?
271デフォルトの名無しさん:2009/10/24(土) 21:25:44
こういうスレにいると
問題と回答の両方があるから
勉強になるよね☆
272265:2009/10/24(土) 21:28:20
専門学校の宿題です
長いプログラムですが間違えてる所は最初〜真ん中らへんにあるって言ってました

関数や引数のことがよく分かっていないんで詳しく説明できる人がいればお願いいたします
273デフォルトの名無しさん:2009/10/24(土) 21:32:43
>>265
このコード自体くそ
はじめから書き直せ
素人丸だし
274デフォルトの名無しさん:2009/10/24(土) 21:37:18
>>272
宿題なのかこれ・・・
これ先生が書いたの?
突っ込みどころ満載なんだがwww
275デフォルトの名無しさん:2009/10/24(土) 21:43:59
>>265
プログラムを見た瞬間目が回った
これだけやる気をなくすプログラムも珍しいな
276デフォルトの名無しさん:2009/10/24(土) 21:46:35
うちの学校の講師はプログラミングテストで合格しないとなれないみたいだから
>>265みたいなひどいコードはないな
277デフォルトの名無しさん:2009/10/24(土) 21:46:57
とりあえず何をしたいプログラムか分らないと途中経過を追うのが怠すぎる…
278265:2009/10/24(土) 21:47:08
>>274

先生が書きました とりあえず自力でがんばってみます。
一応明後日までみなさんの詳しい答え待ってます。おやすみなさい
279デフォルトの名無しさん:2009/10/24(土) 22:13:01
>265
>266, 267
とりあえず、機械的に解析してもらった結果から出したんだけど
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10003.txt
280デフォルトの名無しさん:2009/10/24(土) 22:30:47
>>279

ってか機械的に解析ってどうやんの?プログラマーの俺に教えてちょww


281デフォルトの名無しさん:2009/10/24(土) 22:36:15
lintと違うん?
282デフォルトの名無しさん:2009/10/24(土) 22:36:15
>>280
ツール使うだけ
lint とか
283デフォルトの名無しさん:2009/10/24(土) 22:36:27
>>265
こんなん教えてる専門学校は今すぐ辞めるべき
284デフォルトの名無しさん:2009/10/24(土) 22:37:48
lintかー あざーす
285デフォルトの名無しさん:2009/10/24(土) 22:43:15
lintってフリーソフトなん?
286デフォルトの名無しさん:2009/10/24(土) 22:48:36
>>285
ググれよw
287デフォルトの名無しさん:2009/10/24(土) 23:00:02
ググって見たけど最近のコンパイラなら必要なさそうだな
288デフォルトの名無しさん:2009/10/24(土) 23:09:13
>265

まぁみんなつっこんでるので繰り返しになるが、
問題文自体が間違ってないか。

「このプログラムのどこかに変数における間違いがあります。」

いや、変数の問題じゃ無いんだが、、、。
こんなコードをデバッグさせようとすること自体が間違いでしょ。

専門学校の宿題か。
その講師の言うことは宛にならないと思う。

289デフォルトの名無しさん:2009/10/24(土) 23:20:24
lintとかを使えるようにしようっていう意図なんじゃないかと深読み
290デフォルトの名無しさん:2009/10/24(土) 23:22:06
>>265
これはひどい。
うちの会社なら、これ書いた奴の上司が社長室に呼びつけられるなw
291デフォルトの名無しさん:2009/10/24(土) 23:24:59
>>265
こんなコードを人に見せるなんて恥ずかしくて切腹ものですね。
先生、あさってには死んでるかもしれないんじゃないですか。
292デフォルトの名無しさん:2009/10/24(土) 23:29:09
プログラマが書いたコードじゃなくて数学屋が書いたコードだろ
やつらこんなの書くぞ
293デフォルトの名無しさん:2009/10/24(土) 23:31:58
講師が学生のバイトで、そいつが研究課題でプログラム組んだけどミスがある。
でも自分ではわからないから、バイト先の連中にやらせちゃえ
って感じな気がする。
294デフォルトの名無しさん:2009/10/24(土) 23:36:18
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10004.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 明後日
295デフォルトの名無しさん:2009/10/25(日) 00:08:00
>>293
確かにw
そんな感じするw
296デフォルトの名無しさん:2009/10/25(日) 00:19:37
>>294
#include <stdio.h>
void rotate(int *p, int size)
{
int i, temp;
for(i=0,size--; i<size; i++, size--) {
temp = p[i];
p[i] = p[size];
p[size] = temp;
} }
int main(void)
{
int a[10], i, length, n;
printf("整数列をローテーションします.\n整数列の長さを入力してください:");
scanf("%d", &length);
if(length <= 0 || 11 <= length) return printf("error");
printf("整数列を入力してください(スペース区切り):");
for(i=0; i<length; i++) scanf("%d", a + i);
printf("ローテーション数を入力してください:");
scanf("%d", &n);
while(n >= length) n -= length;
rotate(a, length - n);
rotate(a + length - n, n);
rotate(a, length);
printf("結果 [ ");
for(i=0; i<length; i++) printf("%d ", a[i]);
printf("]\n");
return 0;
}
297デフォルトの名無しさん:2009/10/25(日) 00:20:00
>>294
もっと単純に書いちゃだめなのこれ?
for (i = 0; i < len; ++i)
{
  arr1[ (i + n) % len ] = arr0[ i ];
}
とかさ。
298デフォルトの名無しさん:2009/10/25(日) 00:40:55
>>296
関数の名前はrotateじゃなくてreverseのほうが正しくね?
299デフォルトの名無しさん:2009/10/25(日) 01:21:30
>294
どこかで見たことあるアルゴリズムだと思ったら、「珠玉のプログラミング」にあった奴だ。

問題の仕様には完全に合わせていないけど、
肝心の部分は、reverseを使ってこんな感じ。

void rightRotation(int *pInt, size_t size, size_t shift)
{
while (shift > size) {
/* シフトがサイズを超えたら、さらに一周させる */
shift -= size;
}

if (shift == size) {
/* シフトとサイズが同じなら変化無し */
return;
}

/* 先頭からsize - shiftサイズ分を逆順にする */
reverse(pInt, size - shift);
/* 残り部分を逆順にする */
reverse(&pInt[size - shift], shift);

/* 全体を逆順にする */
reverse(pInt, size);
}

300デフォルトの名無しさん:2009/10/25(日) 01:28:40
>>294
http://codepad.org/WglVP0uB
scanf()追放信者が書くとこうなってしまいました。
301デフォルトの名無しさん:2009/10/25(日) 01:33:22
せめて関数のエラー回避をw
302300:2009/10/25(日) 01:38:45
>>301
うーん、malloc()のエラー回避はしていますが、やっぱり足りないですか?
303294:2009/10/25(日) 01:40:49
実は関数を習ってないので、その部分は回答を参考に書き替えたら
正しい結果になりました。回答ありがとうございました
304デフォルトの名無しさん:2009/10/25(日) 03:24:18
これ作ったら神。
PS postscriptのテキスト抽出するやつ。日本語対応版。
フリーでは、誰も開発してないので、検索エンジンのフィルターの需要あってアクセス増えるよ。
305デフォルトの名無しさん:2009/10/25(日) 03:29:01
乞食は死ね
306デフォルトの名無しさん:2009/10/25(日) 04:10:02
>>304
PDFからテキスト抽出とかどっかで見たことあるからpostscriptからも普通にありそうなもんだけど
307デフォルトの名無しさん:2009/10/25(日) 09:37:59
[1] 授業単元:独学
[2] 問題文(含コード&リンク):http://www.ioi-jp.org/joi/2006/2007-yo-prob_and_sol/2007-yo-problems/2007-yo-t3/2007-yo-t3.html
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン:Visual Basic
 [3.3] 言語: C
[4] 期限: 無期限
308デフォルトの名無しさん:2009/10/25(日) 09:39:20
>>307
ぁ、Windowsです
お願いします!
309デフォルトの名無しさん:2009/10/25(日) 09:43:57
VBて。
しかも独学て。
独りで学んでないじゃん。
310デフォルトの名無しさん:2009/10/25(日) 09:47:06
VBじゃ駄目ですか?

独学以外に何と書けば良いかわからなかったので・・・。
311デフォルトの名無しさん:2009/10/25(日) 09:49:30
>>310
Visual Studioのことを言いたいのかい?
312デフォルトの名無しさん:2009/10/25(日) 09:50:48
>>311

あ・・・はい。
そうです。すいません
313デフォルトの名無しさん:2009/10/25(日) 09:58:34
>>308ではないのですが、
A〜Zまで配列にして
forで文字列を1文字ずつ取り出し
さらにforで配列との比較を行い一致したら
x,y,z以外だったら文字比較forのカウント変数に3を加算
x,y,zならa,b,cをそれぞれを出力用配列の内側配列に格納
という風に考えたんですが
これよりスマートなやり方を教えてください。
314デフォルトの名無しさん:2009/10/25(日) 10:15:51
スマートかどうか知らんが
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

main(int argc, char **argv)
{
char *p;

if (argc != 2) exit(EXIT_FAILURE);
if (strlen(argv[1]) > 1001) exit(EXIT_FAILURE);
for (p = argv[1]; *p != '\0'; p++) {
if (!isupper(*p)) {
exit(EXIT_FAILURE);
}
}

for (p = argv[1]; *p != '\0'; p++) {
putchar(((*p) - 'A' + 26 - 3) % 26 + 'A');
}
putchar('\n');

exit(EXIT_SUCCESS);
}
315デフォルトの名無しさん:2009/10/25(日) 10:21:10
あ。'A'〜'Z'が連続しているコードが前提です。
316デフォルトの名無しさん:2009/10/25(日) 10:52:13
>307
hashとかmapが使えるとすげー楽なのだけれど、Cには無いので代わりの方法をやってみた。
要はD→A、C→Z・・・の写像を定義してあげればよい。mapだとそのままこの写像が定義できる。
Cではできないので、インデックスに変換してあげている感じ。
#include <stdio.h>
#include <string.h>
#define ELENUM(array) (sizeof(array) / sizeof(array[0]))
/* A, B, C...,Zを0, 1, 2, .. 25に変換。 変換できない場合-1 */
int alphIndexing(char ch)
{
char alph[] = "ABCDEFCHIJKLMNOPQRSTUVWXYZ";
int idx;
for (idx = 0; idx < ELENUM(alph); idx++) {
if (alph[idx] == ch) {
return idx;
}
}
return -1;
}
int main(int argc, char **argv)
{
const char aCaesarTbl[] = "*XYZABCDEFCHIJKLMNOPQRSTUVW";
const char *pConvert = (aCaesarTbl + 1);
int idx;
printf("input : %s\n", argv[1]);
printf("encoded: ");
for (idx = 0; idx < strlen(argv[1]); idx++) {
putchar(pConvert[alphIndexing(argv[1][idx])]);
}
putchar('\n');
return 0;
}
317デフォルトの名無しさん:2009/10/25(日) 11:12:48
>>314
>>316
共にエラーが出る・・・
318デフォルトの名無しさん:2009/10/25(日) 11:16:01
>>317
へぇ。
319316:2009/10/25(日) 11:42:44
引数入力してないでしょ。
入力チェック省いていたから。

ちょっと改善して入力チェックも入れた。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10005.txt
320デフォルトの名無しさん:2009/10/25(日) 11:55:03
#include <stdio.h>
int main(){
 int c;
 while((c=getchar()) != EOF){
  if('D' <= c && c <= 'Z') putchar(c-3);
  else if('A' <= c && c <= 'C') putchar(c+23);
  else putchar(c);
 }
 return 0;
}
321デフォルトの名無しさん:2009/10/25(日) 13:54:52
[1] 授業単元:C++
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10006.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10007.txt
[3] 環境
 [3.1] OS:Windows
 [3.3] 言語:C++
[4] 期限: 2009年10月30日

私なりに考えてみましたがわかりませんでした。
どなたかお解りになる方がいましたら宜しくお願い致します。
322デフォルトの名無しさん:2009/10/25(日) 15:09:43
>321

ポインタがわかっていないようですね。その点は要復習。
第3、第4引数がポインタ渡しか参照渡しか、曖昧ですが、
一応参照渡しでやってみた。
doubleの余りとか適当。

void div(int op1, int op2, int& sho, int& amari)
{
sho = op1 / op2;
amari = op1 % op2;
}

void div(double op1, double op2, double& sho, double& amari)
{
sho = int(op1 / op2);
amari = op1 - sho * op2;
}
323デフォルトの名無しさん:2009/10/25(日) 15:10:12
インラインアセンブラでidivとか言ったら怒られるだろうか。
324デフォルトの名無しさん:2009/10/25(日) 18:22:58
>>254
http://codepad.org/kbfG5GKd
プログラムの最初に想定しているファイル形式と出力を書いておきます。
325324:2009/10/25(日) 21:26:09
書き直しました。
http://codepad.org/Yi4G9x0S
326デフォルトの名無しさん:2009/10/25(日) 21:39:30
[1] 授業単元:C言語とアルゴリズム
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10008.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:明日まで

よろしくおねがいします!!
327デフォルトの名無しさん:2009/10/25(日) 21:53:33
[1] 授業単元: C言語プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10009.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 
 [3.3] 言語: C
[4] 期限: 2009年10月28日 16:00まで
328デフォルトの名無しさん:2009/10/25(日) 21:57:20
>>326 問題1−2
#include<stdio.h>

char *ul2a(char buf[40], unsigned long value){
int i;
char *p;
for(i=31,p=buf;i>=0;i--){
*p++=((value>>i)&1)+'0';
if(i%4==0) *p++=' ';
}
*--p='\0';
return buf;
}

int main(int argc, char *argv[]){
char buf[40];
unsigned long x=0, y=0;

printf("符号なし32bit整数2つを入力してください.\n");
scanf("%lu %lu", &x, &y);
printf("%lu は2進表示で %s ,\n", x, ul2a(buf, x));
printf("%lu は2進表示で %s です.\n", y, ul2a(buf, y));
printf("~%lu は2進表示で %s ,\n", x, ul2a(buf, ~x));
printf("~%lu は2進表示で %s です.\n", y, ul2a(buf, ~y));
printf("%lu << 1は2進表示で %s ,\n", x, ul2a(buf, x<<1));
printf("%lu >> 1は2進表示で %s です.\n", y, ul2a(buf, y>>1));
printf("%lu & %lu は2進表示で %s です.\n", x, y, ul2a(buf, x&y));
printf("%lu | %lu は2進表示で %s です.\n", x, y, ul2a(buf, x|y));
printf("%lu ^ %lu は2進表示で %s です.\n", x, y, ul2a(buf, x^y));

return 0;
}
329デフォルトの名無しさん:2009/10/25(日) 22:23:33
330デフォルトの名無しさん:2009/10/25(日) 22:41:19
>>326です
>>328、329さんありがとうございます。
問題1−1なんですが>>328さんの問題1−2のようにもう少し簡単になりませんか?
331デフォルトの名無しさん:2009/10/25(日) 22:43:38
すげー煽りだw
332329:2009/10/25(日) 22:51:03
>>330
>>328 ではポインタを使っていますが、>>329 ではポインタを使わず、算術演算(割り算と余り演算子)で処理しています。
あるいは、わかりやすいように配列にいったん結果をいれるようにしています。4桁ごとのくぎりも普通にかいています。
>>329 も簡単だと思いますが( >>328 を否定しているわけではありません)、やっぱり短く書いたほうがわかりやすいでしょうか?
333デフォルトの名無しさん:2009/10/25(日) 23:37:00
[1] 授業単元:
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10012.zip
[3] 環境
 [3.1] OS: Windows?
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: (2009年10月30日17;50まで

うまく実行できません。おねがいいたします。
334 ◆pGt6/pVDLk :2009/10/25(日) 23:40:45

335333 ◆F8HqQ.0zX2 :2009/10/25(日) 23:43:07
見にくいですが、宜しくおねがいします。
336デフォルトの名無しさん:2009/10/26(月) 00:03:32
>327
気が向いただけ、ただ気が向いただけ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10013.zip
s/foo.zip/foo.tar.gz/
337デフォルトの名無しさん:2009/10/26(月) 00:40:51
これ作ったら神。
PS postscriptのテキスト抽出するやつ。日本語対応版。
フリーでは、誰も開発してないので、検索エンジンのフィルターの需要あってアクセス増える。
338デフォルトの名無しさん:2009/10/26(月) 00:47:46
ちょっとした質問なんですが、

123

この数列を配列に

321

と、格納するにはどうすれば良いですか?
339デフォルトの名無しさん:2009/10/26(月) 00:54:04
a[0]=1,a[1]=2,a[2]=3;
tmp=a[0],a[0]=a[2],a[2]=tmp; //swap(a,b)
a[2]=1,a[1]=2,a[0]=3;
ちょっと横道に
340デフォルトの名無しさん:2009/10/26(月) 00:55:46
>>339
説明不足でした

scanfから数字を入力して、
その数字を>>338みたいにするにはどうすれば良いですか?
341デフォルトの名無しさん:2009/10/26(月) 01:09:21
後ろから順に前に入れていけばいい。
342デフォルトの名無しさん:2009/10/26(月) 01:11:38
そのやり方がよく・・・
343デフォルトの名無しさん:2009/10/26(月) 01:25:30
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10014.txt
[3] 環境
 [3.1] OS: (Windows/Linux)
 [3.2] gcc 3.4
 [3.3] 言語: C

お願いしますm(_ _)m
344デフォルトの名無しさん:2009/10/26(月) 01:27:01
意味がよくわからんけどこういうことかな
int a[3];
int i;
for (i = 0; i < 3; i++) scanf("%d", &a[2-i]);
345デフォルトの名無しさん:2009/10/26(月) 01:27:58
>>344>>340へのレスね
346デフォルトの名無しさん:2009/10/26(月) 01:38:59
>>345

123 って入力したときに、
配列に
_____
|3|2|1|
ーーーーー
って格納させる方法です・・・
国語力無くて申し訳ない
347デフォルトの名無しさん:2009/10/26(月) 02:31:10
>>346
#include <stdio.h>

int main(void){
int i;
int x;
int a[3];

scanf("%d",&x);

for(i=0;i<3;i++){
a[i] = x%10;
x /= 10;
}

for(i=0;i<3;i++) printf("a[%d] = %d\n",i,a[i]);

return 0;
}
348デフォルトの名無しさん:2009/10/26(月) 02:44:17
なるほど。数字のみなら>>347もありか。

文字もokな一般的なものを考えてみたのが↓。
>>346
#include <stdio.h>
int main(void){
  int pt1 = 0 , pt2 = 0;
  char s[101] = "", tmp;

  printf("input  : ");
  scanf("%s", s);
  
  while(s[pt2 + 1]!='\0'){
    pt2++;
  }
  while(pt1 < pt2){
    tmp = s[pt1];
    s[pt1] = s[pt2];
    s[pt2] = tmp;
    pt1++;
    pt2--;
  }

  printf("output : %s\n", s);
  return 0;
}
349デフォルトの名無しさん:2009/10/26(月) 02:46:11
>343
一応作ったけど、凝り始めると終わらない
350333:2009/10/26(月) 09:42:08
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10015.zip
[3] 環境
 [3.1] OS: Windows?
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2009年10月30日17;50まで

すいません。少し補足させていただきますm(。._.)m
351デフォルトの名無しさん:2009/10/26(月) 12:50:45
352デフォルトの名無しさん:2009/10/26(月) 13:27:19
>>351
それは、ゴーストスクリプトという専用ツールを呼び出すだけ。
遅いし、確実には抽出できなかったよ。


動作環境:
PerlActivePerl
ghostscript日本語ghostscript, (ghostscript 8.11 以降推奨)
353デフォルトの名無しさん:2009/10/26(月) 14:04:58
postscriptのフォーマット概要がここに書いてあるけど、これだけでは抽出できないみたい。
バージョンが1〜4.2くらいてまであって、それぞれに対応しないと駄目みたい。
http://www.bunmeisha.co.jp/LaTeX2e/pskihonF.html
こっちは開発元資料へのリンクあり
http://fontforge.sourceforge.net/ja/bibliography.html
354デフォルトの名無しさん:2009/10/26(月) 14:40:10
>>350
問題の前半が省かれてるっぽいのでよくわからんが、
set_mapがコメントの内容とあってない。

コメントが正しいなら
//マップ内なら数値を代入
void set_map(int n, int x, int y, double v) {
if (x >= 0 && X > x && y >= 0 && Y > y) {
map_q[n][y][x] = v;
}
}
upされたやつだとy=-1とかでもmap_qに値をセットしてたから
それでsegmentaition fautになってる

あと mainの中でcountの初期化がされてない

355デフォルトの名無しさん:2009/10/26(月) 15:11:19
[1] 授業単元:C言語とアルゴリズム
[2] 問題文:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10016.txt
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C言語
[4] 期限:早めに。。

よろしくお願いします!
356デフォルトの名無しさん:2009/10/26(月) 15:31:21
>>355
@
#include <stdio.h>
#include <ctype.h>

int main(void)
{
int l = 0, u = 0, d = 0;
char str[256], *p;

printf("文字列を入力して下さい.\n");
scanf("%s", str);

for(p=str; *p; p++) {
if(islower(*p)) l++;
else if(isupper(*p)) u++;
else if(isdigit(*p)) d++;
}

printf("入力文字列は %s で\n", str);
printf("小文字は%d文字,大文字は%d文字,数字は%d文字です.\n", l, u, d);

return 0;
}
357デフォルトの名無しさん:2009/10/26(月) 15:38:43
>>355
A
#include <stdio.h>
#include <string.h>
#include <ctype.h>

int main(void)
{
char surname[21], firstname[21], fullname[41], *p;

printf("姓を入力して下さい.\n");
scanf("%s", surname);

printf("名を入力して下さい.\n");
scanf("%s", firstname);

strcpy(fullname, surname);
strcat(fullname, firstname);

printf("入力した氏名は%sです.\n", fullname);

for(p=fullname; *p; p++) {
if(islower(*p)) *p += ('A' - 'a');
else if(isupper(*p)) *p += ('a' - 'A');
}

printf("小文字と大文字の交換後の文字列は%sです.\n", fullname);

return 0;
}
358デフォルトの名無しさん:2009/10/26(月) 16:10:17
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク):
(1)ライプニッツの公式を用いて円周率の近似値を求める時、その値が3.14から3.15の間になるまで
nを増やしていき、そのnの値(繰り返し回数)を求めるプログラムを作成せよ。

(2)ライプニッツの公式を用いて円周率の近似値を以下の条件で求めよ。
nの値が増えるにつれ、それまでの近似値の平均値を求め、近似値と平均値の差が平均値の1%におさまるまで繰り返す。
(最初にfor文を使って計算を繰り返すたびに平均値も出力するプログラムを作成する。
そしてforをwhileに置き換えたプログラムを作成する。そのときdo()whileを使え。)

[3] 環境
 [3.1] OS: WindowsVista
 [3.2] コンパイラ gcc
 [3.3] 言語: C
[4] 期限: 09年10月28日20:00まで
[5] その他の制限: (1)に関してはif elseを使った文。(2)に関しては問題文通りです。

大学の授業ですが、全くならってない範囲を出題されました…
お願いします。
359デフォルトの名無しさん:2009/10/26(月) 16:20:30
単純なループだから習ってないとは思えない。
応用がきかないのか数学的知識がないだけかググることすらできないのか。
360デフォルトの名無しさん:2009/10/26(月) 16:43:24
>>358
(1)
#include <stdio.h>

int main(void)
{
int n;
double d = 0;

for(n=0; d < 3.14 || 3.15 < d; n++) {
if(n & 1) d -= 4.0 / (n * 2 + 1);
else d += 4.0 / (n * 2 + 1);
}

printf("%d回", n);

return 0;
}
361デフォルトの名無しさん:2009/10/26(月) 17:52:15
[1] 授業単元:プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10010.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10017.zip
[3] 環境
 [3.1] OS: Windows?
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 2009年10月30日17;50まで

何度も何度も申し訳ないです。
自分の分からないところだけ載せてました。
それだけでは分かりづらいですね。
(B)が分かりませんお願いします。
362デフォルトの名無しさん:2009/10/26(月) 17:57:57
>>349
ありがとうございます。
動けば十分ですので、貼ってもらえると嬉しいですm(_ _)m
363デフォルトの名無しさん:2009/10/26(月) 18:02:14
>362
O(N^2)だから遅すぎて、お兄たん泣きたくなった、プロファイルかけたらqsort()の300倍の遅さ
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10018.c
364デフォルトの名無しさん:2009/10/26(月) 18:09:16
>>363
ありがとうございます!今から解読して勉強します。。
365デフォルトの名無しさん:2009/10/26(月) 18:36:31
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10019.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Visual C++
 [3.3] 言語:C++
[4] 期限:2009年10月27日 昼12時
[5] その他の制限:

すみませんが宜しくお願い致します。
366333 ◆F8HqQ.0zX2 :2009/10/26(月) 19:51:00
>>354
ありがとうございます。
実行して出力はできるようになりましたが、
100試行ごとの出力ができません。
ご教授をい願いします。
367デフォルトの名無しさん:2009/10/26(月) 21:24:57
>>365
#include <stdio.h>

double f(double x) { return 3 * x * x; }

#define N 1000
int main()
{
  int i;
  double sum = 0.0;
  for (i = 0; i < N; i++)
    sum += 1.0 / N * f((double)i / N);
  printf("S = %lf\n", sum);
  return 0;
}
/* end */
368333 ◆F8HqQ.0zX2 :2009/10/26(月) 21:45:12
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10020.txt

ここまでできました。
実行して出力したときに、
countを1000にするとうまく表示されるのですが、
countを100にしたときに、どうして壁を突き破るのか教えてください。
また、100にしても壁を突き破らない方法を教えてください。
369デフォルトの名無しさん:2009/10/26(月) 21:54:15
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10021.txt
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
 [3.3] 言語:C
[4] 期限:2009年10月28日
[5] その他の制限:特に無いです。

よろしくお願いします。
370デフォルトの名無しさん:2009/10/26(月) 21:58:38
>>347->>348
ありがとうございました!!!!!!
371デフォルトの名無しさん:2009/10/26(月) 22:37:06
1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):ニュートン法を用いて三次方程式の解を求める。
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C++
[4] 期限: 2009/10/28
[5] その他の制限:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10022.txt
どこが悪いのかわかりません…。
ググりましたが自分の考えたアルゴリズムを尊重したいので、参考になりませんでした。
372デフォルトの名無しさん:2009/10/26(月) 22:47:56
>>371
なんでa,b,c,d,x1,y1を整数にするの?浮動小数点数でいいじゃん
373デフォルトの名無しさん:2009/10/26(月) 22:53:11
>>371
ニュートン法はお前の考えたアルゴリズムじゃねえだろw
374デフォルトの名無しさん:2009/10/26(月) 23:00:51
ワシが育てた
375デフォルトの名無しさん:2009/10/27(火) 00:32:40
>>359
すいませんが、教えてもらってないので何とも言えません(´・ω・`)

>>360
ありがとうございます。助かりました。
(2)に関しては教授にきいてみます
376デフォルトの名無しさん:2009/10/27(火) 02:38:37
>>358,375

#include <stdio.h>
#include <math.h>

int main(void){
  int n;
  double d = 0, sum = 3;
  
  for(n = 0; (sum / n - d) > 0.01; n++) {
    if(n & 1) d -= 4.0 / (n * 2 + 1);
    else d += 4.0 / (n * 2 + 1);
    sum += d;
    printf("%d 回目 , 平均 = %f\n",n,sum/n);
  }
  
  return 0;
}
377デフォルトの名無しさん:2009/10/27(火) 02:39:56
[1] 授業単元:数値計算演習
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10023.c
上のソースコードのうち、行列計算を行うmatmul_blockが正しい結果を返しません
どこが間違っているのかご指摘お願いします
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 2009年10月27日19時まで
378デフォルトの名無しさん:2009/10/27(火) 08:36:11
>>371
アルゴリズムはあっていると思います。 >>372 の指摘のとおり、 a, b, c, x1, y1 を double にするとうまくいきます。
じゃあ、なにがまちがっているかというと、私にもわかんないんですが。
379デフォルトの名無しさん:2009/10/27(火) 08:40:18
多次元配列はCではあまり使わないほうが良い。
ポインタと相性が合わないから
380デフォルトの名無しさん:2009/10/27(火) 09:17:00
>>377
68行目の第3引数cでとりあえず普通に警告@VC2008
381デフォルトの名無しさん:2009/10/27(火) 09:37:03
>>379-380
計算に与えられる行列はこのような配列で表せということだったんで・・・
デバッガで追いかけてみても、matmul_cacheのcは想定された動きしてるんで問題はないんじゃないかと思うんですが
382デフォルトの名無しさん:2009/10/27(火) 11:19:07
いったん別の言語で書き直してみると良いかも
(GPCとかFPCとか)
383デフォルトの名無しさん:2009/10/27(火) 12:18:21
三角形と四角形がぶつかったときの当たり判定をとりたいのですがどうすればよいでしょうか
384デフォルトの名無しさん:2009/10/27(火) 12:34:38
PostScriptをPDFに変換してからテキスト抽出すればいいと思うけど。
385デフォルトの名無しさん:2009/10/27(火) 12:37:29
>>383
BeginPath(hdc);
Polyline(hdc, ..., 3);
EndPath(hdc);
hRgn1 = PathToRegion(hdc);

BeginPath(hdc);
Polyline(hdc, ..., 4);
EndPath(hdc);
hRgn2 = PathToRegion(hdc);

hRgn = CreateRectRgn(0, 0, 0, 0);
if (CombineRgn(hRgn, hRgn1, hRgn2, RGN_AND) == NULLREGION) {
...
} else {
...
}
386デフォルトの名無しさん:2009/10/27(火) 12:43:19
>>385
せっかく書いていただいたのにすみません
全て計算で求めなくてはいけないので関数は使用できないんです…
387デフォルトの名無しさん:2009/10/27(火) 13:10:14
>>386
後出しじゃ判らんだろ。
前提として得られる情報がどれだけ有るか(x,y座標など)、を書くべし。
388デフォルトの名無しさん:2009/10/27(火) 13:57:34
詳細に書くと内外判定で三角形の中に四角形が入っているか(触れている場合も“入っている”と認識)どうかを検査したいのです
XY座標は毎回変動します。関数は使わずに計算のみで求めなくてはならないので困っています
389デフォルトの名無しさん:2009/10/27(火) 14:43:41
>>388
四角形の頂点が全て、三角形の内側にある事。
三角形の内側にある <--- 三辺をベクトルとみなして、各ベクトルから見て同じ側にある事。
390デフォルトの名無しさん:2009/10/27(火) 14:44:44
四角形の辺と三角形の辺と交わっているか、
四角形の内部に三角形があるか、
三角形の内部に四角形があるかのどれかだろう。
391デフォルトの名無しさん:2009/10/27(火) 14:54:35
>>390
三角形と四角形とが、互いに離れている場合もあり得る。
392デフォルトの名無しさん:2009/10/27(火) 15:18:06
>>367
ありがとうございました!助かりました。
393デフォルトの名無しさん:2009/10/27(火) 15:20:18
線分の当たり判定
http://totoki.my.land.to/pgm/001.html
三角形、多角形による包含判定
http://www5d.biglobe.ne.jp/~tomoya03/shtml/algorithm/Hougan.htm
394デフォルトの名無しさん:2009/10/27(火) 15:21:48
>>389
完全に三角形のなかに含まれている場合はそれで良いのですが一部分でも触れている場合値を返すようにしたいのです
四点だけで判定した場合四点に触れずに三角形に触れる可能性が出来てしまいます
395デフォルトの名無しさん:2009/10/27(火) 15:24:23
繰り返しますが、関数は使わずに計算のみで求めなくてはならないので困っています
396デフォルトの名無しさん:2009/10/27(火) 15:28:40
[1] 授業単元:卒業研究
[2] 問題文(含コード&リンク):白黒濃淡画像[0-255]をカラー画像に変換
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:cygwin
 [3.3] 言語:C
[4] 期限: ([2010年1月10日24:00まで])
[5]その他の制限:
・色をユーザーから指定することはできない。
・画像はできればppm形式

様々な本や書類に目を通し、ネットを用いて一通り調べたつもりですが、一向に見つかりません。
難題だとは思います。最低限情報のある場所だけでも教えてもらえれば幸いです。

どうか御願い致します。
397デフォルトの名無しさん:2009/10/27(火) 15:29:06
>>395
自分で作った関数もダメですか?
398デフォルトの名無しさん:2009/10/27(火) 15:34:08
>>397
それは大丈夫です
399デフォルトの名無しさん:2009/10/27(火) 16:06:23
入力ファイルからデータを読み込みロジック部分を関数化し、
qsort関数以外を使用して番号順にソートしたいのですが何かいい方法を教えてください。

読み込んだデータの例)
F016   C002
C002   C015
H001   F016
C015   H001
H009   H009


左のデータをソートし、右のように並び替えたいです。

400デフォルトの名無しさん:2009/10/27(火) 16:09:04
sort関数
401デフォルトの名無しさん:2009/10/27(火) 16:43:57
>396
通常は原理的に不可能です。
なぜなら、カラー画像は一般的に3つの独立したベクトルが張る色空間で表現されます。
ここで、色空間をRGB、濃淡をGrayとすると、明らかにベクトルが足りないので、色空間を変換できません。
よって、GrayからRGBへの色空間の変更ができないので、濃淡画像をカラー画像に変換することは*通常*できないことが示された。

疑似カラー画像に変換したり、ユーザか適当に色を配置してそれを元にカラー画像にすることは既に研究されています。
グレースケール画像に色差情報をこっそり埋め込んだり埋め込まなかったりって、最近僕が研究したんだけど。
402デフォルトの名無しさん:2009/10/27(火) 16:51:38
>>399
すきなソートアルゴリズムを関数化すればいいだけじゃね?
403デフォルトの名無しさん:2009/10/27(火) 17:25:05
>>394
> 四点だけで判定した場合四点に触れずに三角形に触れる可能性が出来てしまいます
四角形の頂点が全て内側or三角形の辺上、という前提で、↑ってどんな状況だろう?
まさか3次元以上?
あと、課題だったらテンプレに沿って、課題文をそのまま載せて欲しいんだが。
404デフォルトの名無しさん:2009/10/27(火) 18:03:04
3角形の中に四角形の点が1つ以上あれば、でよくね
405デフォルトの名無しさん:2009/10/27(火) 18:04:09
ああだめか。
結局交点も必要か
406デフォルトの名無しさん:2009/10/27(火) 18:54:32
何気に難しいな
407デフォルトの名無しさん:2009/10/27(火) 19:02:32
四角形のいずれの頂点も三角形の外側にあり、かつ、交点がない
以外は全部触れてるんじゃないの
408デフォルトの名無しさん:2009/10/27(火) 19:23:11
四角形に4点だけで判定すると三角形の先っちょが刺さってる状態だと触れていると判定されないんだな
409デフォルトの名無しさん:2009/10/27(火) 19:44:18
完全に数学の話題也
三角形の一点が原点になるように平行移動
三角形の原点を含む一辺がx軸になるように回転変換
原点を含みx軸と一致しない辺のy軸へ正射影
原点を含む2つの辺の長さが一致するように、y軸方向もしくは
x軸方向へのスカラー変換
これを行い三角形を直角二等辺三角形に変換して考える。
四角形に対しても同じ操作を行う。(四角形は四角形に移る)
交点を持つ条件は四角形の2つの頂点を結ぶ6個の直線が
x軸、y軸、直線x+y=1と交わる点の座標の値でわかる。
410デフォルトの名無しさん:2009/10/27(火) 20:05:23
>>409
よくわからないが、それは速いのか?
411デフォルトの名無しさん:2009/10/27(火) 20:07:42
>>410
とりあえず、見るからに誤差が大きそう
412デフォルトの名無しさん:2009/10/27(火) 20:30:49
こういう話は数学に詳しくないと難しいな
413デフォルトの名無しさん:2009/10/27(火) 20:33:16
離散数学しかやってないからな…
414デフォルトの名無しさん:2009/10/27(火) 20:48:33
>>401

>>396です
丁寧にお答えいただきありがとうございます。
ユーザーから色は指定できないので、とりあえず疑似カラーについて調べてみたのですが、いまいちよくわかりませんでした。
何か参考になる文献やサイトがあれば教えていただきたいです。
415デフォルトの名無しさん:2009/10/27(火) 21:27:07
>414
・疑似カラー化について
0710g36やnakatani1.pdfをクエリにして検索する

・ユーザ指定色について
colorization-siggraph04をクエリにして検索する

・色差情報の埋め込みについて
色差情報 埋めこみ カラー 復元をクエリにして検索する

ちなみに僕がやったのは、3つ目の色差情報を埋め込む方法ね
あとは自分で適当な単語を選べば見付かると思う、CiNiiとかでね
416デフォルトの名無しさん:2009/10/27(火) 21:32:17
>>407,408

>>389では「四角形の頂点が全て、三角形の内側にある事」が判定条件。
417デフォルトの名無しさん:2009/10/27(火) 21:44:29
>>416
意図が見えん。
418デフォルトの名無しさん:2009/10/27(火) 21:47:28
>>415
わざわざURLまで貼っていただきありがとうございます。
明日URLを参考にしてプログラムを作ってみたいと思います。
419デフォルトの名無しさん:2009/10/27(火) 22:56:02
420デフォルトの名無しさん:2009/10/27(火) 23:06:39
>>408
これで、どうだろ。
三角形の頂点が全て、四角形の外にある。 and
四角形の頂点が全て、三角形の外にある。
421デフォルトの名無しさん:2009/10/27(火) 23:20:56
>>419
左側のNGをOKにしたらイメージ通りです
422デフォルトの名無しさん:2009/10/27(火) 23:26:40
[1] 授業単元: c言語
[2] 問題文
課題1 整数 n を入力すると n から1 までを出力する
プログラムを作成せよ。
課題2 整数 n を入力すると1からn まで出力する。
ただし、3の倍数か、5の倍数の時には数字の右側に* と表示すること。
プログラムを作成せよ。
課題3 整数 n を入力すると1 から n までの間の、
3か5いずれかの倍数の個数を数えて表示するプログラムを作成せよ。
[3.1] OS: Windows
[4] 期限: 2009年10月29日まで
よろしくお願いします!!
423デフォルトの名無しさん:2009/10/27(火) 23:27:45
それくらい自分でやれよ
どこが出来ないんだよ
424デフォルトの名無しさん:2009/10/27(火) 23:29:09
425デフォルトの名無しさん:2009/10/28(水) 01:50:05
>>422
同じ大学キタ――(゚∀゚)――!!

#include <stdio.h>
int main()

スタートでお願いしたほうがいいよ
426デフォルトの名無しさん:2009/10/28(水) 02:11:19
>>422
/* 課題1 */
#include <stdio.h>
int main() {
int n;
printf("整数を入力 > ");
scanf("%d", &n);
while (n > 0) {
printf("%d\n", n);
n--;
}
return 0;
}
427デフォルトの名無しさん:2009/10/28(水) 02:13:06
>>422
/* 課題2 */
#include <stdio.h>
int main() {
int n, i;
printf("整数を入力 > ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
printf("%d", i);
if ((i % 3 == 0) || (i % 5 == 0))
printf("*");
printf("\n");
}
return 0;
}
428デフォルトの名無しさん:2009/10/28(水) 02:13:45
>>422って大学なんだ…
429デフォルトの名無しさん:2009/10/28(水) 02:14:23
>>422
/* 課題3 */
#include <stdio.h>
int main() {
int n, i;
printf("整数を入力 > ");
scanf("%d", &n);
i = 0;
while (n > 0) {
if ((n % 3 == 0) || (n % 5 == 0))
i++;
n--;
}
printf("3か5の倍数の個数 = %d\n", i);
return 0;
}
430デフォルトの名無しさん:2009/10/28(水) 03:23:32
>>428
後期授業の出だしならこんなもんだろ。
431デフォルトの名無しさん:2009/10/28(水) 10:54:18
エクセルのマクロの問題ってここで質問しても無駄ですか??

駄目ならどこで質問したらいいですか?
432デフォルトの名無しさん:2009/10/28(水) 11:31:34
433デフォルトの名無しさん:2009/10/28(水) 11:45:45
>>428
大学に通ったことの無いお前じゃ、大学でどんな授業が行われているか知らんのだろうね・・・
あと、何もC言語は専門分野の学生しか受けない授業でもないから。
434デフォルトの名無しさん:2009/10/28(水) 16:57:45
>>383
四角形は三角形2つに分割出来るので三角形と三角形の衝突判定を作ればいい
2つの三角形のそれぞれの辺のベクトル方向の1次元に全ての頂点を射影して
分離軸が1本でも引けたら衝突してない。引けなかったら衝突してる。
435デフォルトの名無しさん:2009/10/28(水) 17:30:35
>>433
大学生ですが
436デフォルトの名無しさん:2009/10/28(水) 18:24:53
>>433
一般学生に C を教えるのは大変でしょうね。当時は pascal が使われていましたが、今はなんでしょうか?
437デフォルトの名無しさん:2009/10/28(水) 18:54:36
普通科の高校でC言語からやるか?

そしたら大学で基本中の基本からやるにきまってるだろ
438デフォルトの名無しさん:2009/10/28(水) 19:08:39
いまだと文系のパンキョーでもCの講義あったりするんかね
439デフォルトの名無しさん:2009/10/28(水) 19:09:24
時々お世話になるFラン大学生だけどハローワールドとかからやったよ
1単元90分×15コマで3単元に渡ってやって

四則演算プラスアルファ
入出力:printf scanf
制御文:if switch for do while
配列
ファイル入出力:fopen fclose fprintf fscanf
乱数:rand() srand()
自作関数

くらいやった
440デフォルトの名無しさん:2009/10/28(水) 19:09:38
最近の高校って数学でプログラム習うんじゃないの?
441デフォルトの名無しさん:2009/10/28(水) 19:18:38
それはエクセルとかじゃね?
工業高校出身だけどBasicから始まってC言語に行ってたな。
大学でもCから教え始めるから内容かぶって単位余裕でした、みたいな感じで萎えた。
442デフォルトの名無しさん:2009/10/28(水) 21:37:31
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10025.txt
「スコアー,ステージナンバー,名前」が入っているファイルがあるとする。

降順にソート済みのスコアーデータのファイルから、上位10件を配列に読み込み、
新たに11件目のスコアーデータを入力後、スコアーの大きい順に並び替えを行い、
上位10件のデータを再度書き込むプログラムを作成せよ

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C言語
[4] 期限: 特にありません
[5] その他の制限:特にありません


宜しくお願い致します。
443デフォルトの名無しさん:2009/10/28(水) 21:49:14
出力結果をコピーする方法って無いですか?
444デフォルトの名無しさん:2009/10/28(水) 21:56:08
>>443
まうすでえらぶ
445デフォルトの名無しさん:2009/10/28(水) 21:57:25
キーボードのプリントスクリーンでクリップボードにコピーされるよ!
446デフォルトの名無しさん:2009/10/28(水) 22:06:01
リダイレクトすれば?
447デフォルトの名無しさん:2009/10/29(木) 01:10:57
>>443
Windows7なら普通にコピペ出来る!買うんだ。
448デフォルトの名無しさん:2009/10/29(木) 04:30:25
>>447
Meもできるからオススメ
449デフォルトの名無しさん:2009/10/29(木) 11:51:37
[1] 授業単元:C++実習2
[2] 問題文(含コード&リンク):
-関数テンプレート-
配列へのポインタと要素数を渡すと昇順にソートする関数を作成せよ。
但し,関数テンプレートにより作成すること。想定する配列の型は文字列以外とする。
ソートのアルゴリズムはバブルソート(単純交換法)とする。また,関数をテストする適切なmain関数も作成し提出すること。
関数名前名は b_sort とし,第1引数は配列へのポインタ, 第2引数はint型で配列の要素数, 戻値は無しとする。

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:visual studio 2008
 [3.3] 言語:C++
[4] 期限:[2009年11月1日23:00(日)まで]
よろしくお願いします。
450デフォルトの名無しさん:2009/10/29(木) 14:51:32
>>449
#include <iostream>
using namespace std;
template <typename T> void b_sort(T a[], int n)
{
for (int i = 0; i < n - 1; ++i) {
for (int j = n - 1; j > i; --j) {
if (a[j - 1] > a[j]) {
T temp = a[j]; a[j] = a[j - 1]; a[j - 1] = temp;
}
}
}
}

int main()
{
int a[] = { 3, 8, 1, -1, 9, 8, 7 };
double b[] = { 3.09, 2.1, -9.27, 8.0, 3.11, -6.5 };
b_sort(a, 7);
for (int i = 0; i < 7; ++i) cout << a[i] << ' '; cout << endl;
b_sort(b, 6);
for (int i = 0; i < 6; ++i) cout << b[i] << ' '; cout << endl;
return 0;
}
451デフォルトの名無しさん:2009/10/29(木) 15:55:37
http://www.dotup.org/uploda/www.dotup.org315213.docx.html

【質問テンプレ】
[1] 授業単元:計算機実習応用
[2] 問題文(含コード&リンク):
   http://www.dotup.org/uploda/www.dotup.org315213.docx.html
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョンVC++
 [3.3] 言語: (C
[4] 期限: ([2009年10月30日10:00まで]
[5] その他の制限:

明日の1限の授業中に出される課題です。
授業時間内に提出すれば評価が高くなるのでお願いします。
452デフォルトの名無しさん:2009/10/29(木) 16:28:33
>>451
お断りします。
453デフォルトの名無しさん:2009/10/29(木) 16:41:00
454デフォルトの名無しさん:2009/10/29(木) 19:46:40
>>451
どうやって問題文を読めばいいのかわかりません。
455デフォルトの名無しさん:2009/10/29(木) 20:06:26
新井さん?
456378:2009/10/29(木) 21:23:19
>>371
ちょっとみなおしてみました。
問題は x1, y1 を整数で宣言したことでしょうね。
457デフォルトの名無しさん:2009/10/29(木) 22:05:13
>>451
問1
return x*x+y*y
c = function1(a, b);
printf("%d\n", c);

問2
#include<stdio.h>
#include<math.h>

void wasasekisho(double x, double y, double* pwa, double* psa, double* pseki, double* psho);

int main(){
double a, b;
double lpwa, lpsa, lpseki, lpsho;
printf("a...");
scanf("%lf", &a);
printf("b...");
scanf("%lf", &b);
wasasekisho(a, b, &lpwa ,&lpsa, &lpseki, &lpsho);
printf("wa...%.0lf, sa...%.0lf, seki...%.0lf, sho...%.0lf",lpwa ,lpsa, lpseki, floor(lpsho));
}

void wasasekisho(double x, double y, double* pwa, double* psa, double* pseki, double* psho)
{
*pwa = x+ y;
*psa = x - y;
*pseki = x * y;
*psho = x / y;
}
458デフォルトの名無しさん:2009/10/29(木) 22:37:17
問3
どういう確率分布にしたがっているのかがわからん。本来解けないはず?。
たぶんそれぞれ独立な事象で確率1/5だとして、期待値==平均(kekka)になるのかなとおもったが、

#include <stdio.h>
#include <math.h>
double heikin(int n, double x[]){
int i;
double sum;
sum=0.0;
for(i=1;i<=n;i++){
sum += x[i-1];
};
return sum/n;
}
int main(){
static double data[]={3.1, 5.8, 4.1, 1.0, 8.3};
double kekka=0.0, bunsan = 0.0;
kekka=heikin(5,data);
bunsan= pow(0.2, 2) *(kekka * 5.0) - pow(kekka, 2);

printf("データの平均は %lf\n",kekka);
printf("データの分散は %lf\n",bunsan);
return 0;
}
と書くと分散が負になってしまいましたとさw
問4
関数の中身を定義する前に,先に関数の引数の型および返り値の型だけをあらかじめ宣言しておくこと。
459デフォルトの名無しさん:2009/10/29(木) 22:58:10
>>444->>448
どうもありがとうございました!!!
460458:2009/10/29(木) 23:11:24
>>451

#include <stdio.h>
#include <math.h>
double heikin(int n, double x[]){
int i;
double sum;
sum=0.0;
for(i=1;i<=n;i++){
sum += x[i-1];
};
return sum/n;
}
int main(){
static double data[]={3.1, 5.8, 4.1, 1.0, 8.3};
double kekka=0.0, bunsan = 0.0;
double vx=0.0;
kekka=heikin(5,data);
for(int i = 0; i < 5; i++)
vx += pow(data[i], 2)*0.2;
bunsan = vx - pow(kekka, 2);

printf("データの平均は %lf\n",kekka);
printf("データの分散は %lf\n",bunsan);
return 0;
}

なんか例と値違うけど…さっきとちがって式はあってるはず
461デフォルトの名無しさん:2009/10/30(金) 22:15:43
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10031.txt

問題1:整数表記を <integer>::= <digit> {<digit>|'_'}*に書き換える。
正の整数をdigitだけではなく、'_'もトークンの一部として判別させてやるようにプログラムを書きかえる
例えば、10_23と仮に有った場合は10=整数値、_=識別子、23=整数値という風に判別されるのではなく10_23=1023=整数値となるようにしなさい。

問題2:以下のようなトークンも判別できるようにしてみる。
句切り文字:'(',
句切り文字:'(',
句切り文字:';',
演算子:'='

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名:gcc
 [3.3] 言語: C言語
[4] 期限: 2009年11月5日
[5] その他の制限: とくにないです。よろしくお願いします。
462デフォルトの名無しさん:2009/10/31(土) 18:45:36
[1] 授業単元:アルゴリズム
[2] 問題文(含コード&リンク):キューをC言語で作成する
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: C
[4] 期限: 2009/11/2
[5] その他の制限:
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10032.txt
463デフォルトの名無しさん:2009/10/31(土) 18:49:04
>>462ですが@とAの部分を改変してください。よろしくお願いします。
464デフォルトの名無しさん:2009/10/31(土) 21:34:41
>462

境界条件が曖昧なので適当にやらせてもらった。
dequeueできないときは0が返るようにしたけど、よかったのか?

標準Cにあわないところは修正しておいた。VSにしたって、void main()はどうかと思ったので。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10033.txt
465デフォルトの名無しさん:2009/10/31(土) 21:50:06
>461
問題1:整数表記を <integer>::= <digit> {<digit>|'_'}*に書き換える。
問題の意味が全くわからない。問題文はこれで全部なの?

#例えば、10_23と仮に有った場合は10=整数値、_=識別子、23=整数値という風に判別されるのではなく10_23=1023=整数値となるようにしなさい。
というの10_23を引数に与えたらどうなればよい?

リンク先のコードに食わせると下みたいになった。

$ ./main 10_23
整数定数: 10 (2文字)
識別子: _23 (3文字)
トークン数は2個!
466デフォルトの名無しさん:2009/10/31(土) 22:18:04
>>465
それBNF表記っていって

たとえば
10_23_23=102323
10_______23=1023
になるようにしろってことだよ。
467466:2009/10/31(土) 22:24:07
BNF記法だった.
<変数>…<変数>で変数を表す。
{変数}…{変数}の変数を省略するか、一回以上繰り返し用いることを表す。
|…または を表す
::=…左辺の変数が、右辺で定義されることを表す。


あ、おれ解けないんでw
468デフォルトの名無しさん:2009/11/01(日) 01:30:56
>461

問1だけ

ほとんどテストしていないのであしからず
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10035.txt
469464:2009/11/01(日) 01:33:21
>462

ごめ。違うのあげてた。

ファイル消えているのですぐにはできない。
思い出しながら書いてみる。
470464:2009/11/01(日) 01:43:01
471デフォルトの名無しさん:2009/11/01(日) 20:56:25
[1] 授業単元:C++
[2] 問題文(含コード&リンク):メニューを表示し選択された処理を行なう。各機能ごとに関数にし,各関数へのポインタは配列に格納しておきメニュー選択に応じて動的に呼び出す。
実行例:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10037.txt
472デフォルトの名無しさん:2009/11/01(日) 20:58:45
[3] 環境
[3.1] OS:Windows
[3.3] 言語:C++
[4] 期限: 2009年11月3日

どなたか出来る方がいましたらお願い致します。
473デフォルトの名無しさん:2009/11/01(日) 21:06:48
>>450
遅れましたが回答ありがとうございました
474 ◆DfRWmhgSjg :2009/11/01(日) 21:28:36
[1] 授業単元:OS入門
[2] 問題文(含コード&リンク):
マルチプロセスを利用しfork(),セマフォ,メッセージをすべて使用したシステムの開発,結果を以下の項目にまとめ報告
1. システムの要求仕様
3. 上記プログラムの簡単な解説,特に fork(),メッセージ,セマフォの周辺について
[3] 環境
 [3.1] OS: (Linux)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月5日08:00まで]
[5] その他の制限:

よろしくお願いします
475デフォルトの名無しさん:2009/11/01(日) 21:30:13
>>474
設計と要求仕様までこっちで定義しろって馬鹿だろw
476デフォルトの名無しさん:2009/11/01(日) 21:48:32
>>471>>472
VS2008環境で作った
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10039.txt
#include <String>は消しといてね
477474:2009/11/01(日) 21:54:55
>>475
私もそう思いましたが、
「本当に簡単なものでいいから作ってください。こういうにはあなたたちのインスピレーションしだいですので」
といわれてしまい・・・。
478デフォルトの名無しさん:2009/11/01(日) 21:55:48
>>477
いや、教授とか講師とかがじゃなくってお前がねーよwww
479474:2009/11/01(日) 22:01:25
すみません。
要求仕様など考えてから出直してきます。
480デフォルトの名無しさん:2009/11/01(日) 22:58:19
>>471-472
「関数へのポインタを配列に」いれろとのことですので、そのようにしました。
http://codepad.org/pe70YBZf
481デフォルトの名無しさん:2009/11/01(日) 23:16:02
[1]C言語初級
[2] 次のプログラムから仕様書を起こして、全く異なるアルゴリズム
で同じ処理をするものに書き換えよ
http://codepad.org/FjM5LBs9
[3] Windows XP/Visual studio 2005/C
[4] 11/10迄
482デフォルトの名無しさん:2009/11/01(日) 23:23:47
ああwww
関数のポインタとか見逃してた。
ごめん
483471:2009/11/02(月) 00:36:52
>>480
ありがとうございます
しかしVS2008でエラーが出るのですがどうしたらよいでしょうか?
484474:2009/11/02(月) 01:07:11
<<474
<<479
入力されたメッセージ1文字をキューにいれるプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10041.txt
キューからメッセージを取り出し表示をするプログラム
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10042.txt
を参考にして送信用プログラムにfork()を付け加え文字を重複送信するようにするプログラム。
またセマフォを用いてアクセスを制限する。
理解が浅いため本当にこれでいいの不安なのですがよろしくお願いします。
485デフォルトの名無しさん:2009/11/02(月) 03:03:19
>>481
http://codepad.org/Ooo9fZ4r

3の倍数と3の付く数字を
10000*10000までの範囲で列挙する。

文字列型で10を出力すると
アスキーコードでは改行の意味に。
同等の処理は\nで行った。

各位の和が3の倍数であれば
その数は3の倍数であることを使い求めた。
486satoshi:2009/11/02(月) 03:04:56
double型の引数を2つ持ち、aつの引数の積の絶対値を返す、
double型の戻値を持つ関数 absmul() を作成した上で、動作の
確認の出来るプログラムとして作成せよ。という問題と

標準入力からの入力に対して、アルファベットを全て空白文字
に変更して出力するプログラムを作成せよ。という問題がわかりません。

どなたかお願いします
487satoshi:2009/11/02(月) 03:06:50
aつ が 2つの間違いです。
488デフォルトの名無しさん:2009/11/02(月) 07:13:30
>>483
エラーを全部貼ってください。
489デフォルトの名無しさん:2009/11/02(月) 07:15:11
490satoshi:2009/11/02(月) 11:45:59
[1] プログラミング
[2] double型の引数を2つ持ち、2つの引数の積の絶対値を返す、
double型の戻値を持つ関数 absmul() を作成した上で、動作の
確認の出来るプログラムとして作成せよ。という問題と

標準入力からの入力に対して、アルファベットを全て空白文字
に変更して出力するプログラムを作成せよ
[3] 環境
 [3.1] OS: (Windowsxp)
 [3.2] コンパイラ名とバージョン:UNIX 2.1.4
 [3.3] 言語: (C言語)
[4] 期限: (11月3日 13時
[5] その他の制限: (特になし)
491デフォルトの名無しさん:2009/11/02(月) 12:07:11
>>490
#include<stdio.h>

double absmul(double a, double b){
short x=0x1234;
double c;
unsigned char *p, *q;

c=a*b;
p=(unsigned char*)&x;
q=(unsigned char*)&c;
if(*p==0x12) q[0]&=0x7f;
else q[sizeof(double)-1]&=(~0)^0x80;

return c;
}


int main(void){
double a=2.0, b=-3.0;

printf("%f\n", absmul(a, b));

return 0;
}
492デフォルトの名無しさん:2009/11/02(月) 12:31:03
>>490
#include<stdio.h>

int main(void)
{
int c, map[256];
unsigned char *p="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";

for(c=0;c<256;c++) map[c]=c;
for(;*p;p++) map[*p]=' ';

while((c=getchar())!=EOF)
{
putchar(map[c]);
}

return 0;
}
493デフォルトの名無しさん:2009/11/02(月) 12:38:10
アルゴリズムにsortというのがりますが、配列をsortするときにもとの配列番号が
何番に変わったか知る方法はありますか?ソートした配列を参考に別の配列も並び替えたいです。
494デフォルトの名無しさん:2009/11/02(月) 12:44:27
ソートする配列と同じ長さの配列用意して、ソートする前にそこへコピーしとけば良いじゃん
あとはその二つを比較するだけ
495デフォルトの名無しさん:2009/11/02(月) 13:06:44
>>493
構造体で例えば

sruct abc {
double a;
int n;
};

としといて、aにバラバラの値を入れ、nに連番を入れて置きます
その後構造体でqsort(比較基準はabc.a)を掛ければ、nに
どのようにバラバラになったか順列が入ります
496デフォルトの名無しさん:2009/11/02(月) 13:20:40
こんな感じ

struct abc {
double a;
int n;
};
int comp(const void *a, const void *b)
{
struct abc x = *(struct abc *)a, y = *(struct abc *)b;

return (x.a < y.a) ? -1 : (x.a > y.a) ? 1 : 0;
}
int main(void)
{
struct abc aa[10];
int i;

srand((unsigned)time(NULL));

for (i = 0; i < 10; i++) {
aa[i].a = rand();
aa[i].n = i;
}

qsort(aa, 10, sizeof(aa[0]), comp);

for (i = 0; i < 10; i++)
printf("%d ", aa[i].n);
putchar('\n');

return 0;
}
497デフォルトの名無しさん:2009/11/02(月) 13:38:02
【問題】0から40までの数字で3のつく数字と3の倍数を表示するプログラムを作成せよ

お願いいたします。
498デフォルトの名無しさん:2009/11/02(月) 13:39:43
499デフォルトの名無しさん:2009/11/02(月) 13:47:20
>>497
#include <stdio.h>
int main(void)
{
printf("0 3 6 9 12 13 15 18 21 23 24 27 30 31 32 33 34 35 36 37 38 39");
return 0;
}
500デフォルトの名無しさん:2009/11/02(月) 13:47:39
もうネタとしか思えなくなってきた
501デフォルトの名無しさん:2009/11/02(月) 13:50:08
>>499
わろたw
502デフォルトの名無しさん:2009/11/02(月) 13:53:31
>>497
#include <stdio.h>
#include <string.h>
int main(void)
{
int i;
char buf[32];
for(i = 0; i <= 40; i++) {
sprintf(buf, "%d", i);
if (i % 3 == 0 || strchr(buf, '3') != NULL) printf("%d ", i);
}
return 0;
}
503デフォルトの名無しさん:2009/11/02(月) 15:10:59
>>490
アルファベットとは何ぞやということになるな。
504デフォルトの名無しさん:2009/11/02(月) 17:50:16
ハングルはアルファベットなのか(字母と方塊字で扱いは違うのか?)なんてのは
さすがに考えないとして、ウムラウトやセディーユのついた文字はどうするのかね。
505デフォルトの名無しさん:2009/11/02(月) 18:00:43
isalphaで判定できるものでいいだろ、常識的に考えて
506デフォルトの名無しさん:2009/11/02(月) 19:11:19
>>483
VC++2008EE をインストールして確かめました。なるほどねえ、VC は構造体タグの name space は独立していないんですね。
http://codepad.org/nMou5Xbk
507デフォルトの名無しさん:2009/11/02(月) 20:01:57
[1] 授業単元: C++
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10044.txt
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10045.txt
[3] 環境
 [3.1] OS: Windows
 [3.2] コンパイラ名とバージョン:VS2008
 [3.3] 言語: C++
[4] 期限: 2009/11/07

問題が2つあります。それぞれ違うファイルにしてもらえたならば幸いです。
宜しくお願い致します。
508デフォルトの名無しさん:2009/11/02(月) 23:25:57
>508

コードは書いてやるから、仕様は自分でだせ。
509sage:2009/11/03(火) 01:38:41
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10047.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C++
[4] 期限: [2009年11月5日23:59まで]
[5] その他の制限:途中までのソースコードがありますので、そちらに追記お願いします。
510デフォルトの名無しさん:2009/11/03(火) 01:57:30
[1] プログラミング入門
[2] 文字列sを逆に並べる関数reverse(s) を書け。
さらにこの関数を使って、入力を行ごとに反転させるプログラムを作成せよ。という問題です。
[3] 
[3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月3日12:00まで]
[5]if文 while文などを勉強中です。
初心者用のプログラムでお願いします。
511デフォルトの名無しさん:2009/11/03(火) 06:49:25
>>510
EUCに対応しているはず
http://codepad.org/zGzKjJfu
512デフォルトの名無しさん:2009/11/03(火) 10:30:46
>510

こんな感じでよいか?
ワイド文字は考慮していません。

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10049.txt
513デフォルトの名無しさん:2009/11/03(火) 12:03:20
あ」
514デフォルトの名無しさん:2009/11/03(火) 12:30:32
[1] 授業単元: c言語プログラミング実習
[2] 問題文: http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10051.txt

[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)

わかりにくい質問で申し訳ありませんがよろしくお願いします。
515デフォルトの名無しさん:2009/11/03(火) 12:42:05
[1] 授業単元: c言語プログラミング実習
[2] 問題文 

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10052.txt
[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)

どうぞよろしくお願いいたします。
516デフォルトの名無しさん:2009/11/03(火) 12:47:24
1] 授業単元: c言語プログラミング実習
[2] 問題文 
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10053.txt
[3] 環境
 [3.1] OS: (Linux)
[4] 期限: (11/4)
[5] その他の制限: (大学1ねんで、まだc言語の授業は5回目です。)


こちらもよろしくお願いいたします。
517デフォルトの名無しさん:2009/11/03(火) 12:50:55
上の514,515,516はmewを使用して作成します。
518デフォルトの名無しさん:2009/11/03(火) 12:52:05
間違えました、Emacsです
519デフォルトの名無しさん:2009/11/03(火) 13:06:21
Emacsってコンパイラついてたっけ・・・
520デフォルトの名無しさん:2009/11/03(火) 14:29:18
>>515
(1) (A)に同じ文を入れて考える
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while(i<100){
while(j<100){
while(k<100){
  n++;
(A)
k++;
}
(A)
j++;
}
(A)
i++;
}
printf("n=%d",n);
}
521デフォルトの名無しさん:2009/11/03(火) 14:30:13
>>515 (B)に同じ式を入れて考える
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while( (B) && (i<100){
while((B) &&(j<100)){
while((B) &&(k<100)){
  n++;
k++;
}
j++;
}
i++;
}
printf("n=%d",n);
}
522デフォルトの名無しさん:2009/11/03(火) 14:31:11
>>515
(3) (C)、(D)に適当な文を入れる
#include<stdio.h>
int main(void){
int i=0 j=0 k=0;
int n=0;
i=0;
while(i<100){
while(j<100){
while(k<100){
  n++;
(C)
k++;
}
j++;
}
i++;
}
(D)
printf("n=%d",n);
}
523510:2009/11/03(火) 15:04:23
>>511・511さん
遅れましたが回答ありがとうございました。
524デフォルトの名無しさん:2009/11/03(火) 15:19:44
>>516
#include <stdio.h>

int main(void)
{
int i, j, n;

scanf("%d", &n);

for(i=1; i<n; i++) {
for(j=n-i; j>=0; j--) putchar(' ');
for(j=2*i-1; j>0; j--) putchar('*');
putchar('\n');
}
for(i=2*n+1; i>0; i--) putchar('*');
putchar('\n');

return 0 ;
}
525デフォルトの名無しさん:2009/11/03(火) 15:36:15
逆数を求めるプログラミングなんですが、どうしてもコンパイルできません。
間違いがあったらエロい人、、指摘してください。

#include <stdio.h>

main(){
int i;
float j = 1/i;
for(i = 1; ;i++){
printf("%f\n" , j);
}
return 0;
}
526デフォルトの名無しさん:2009/11/03(火) 15:42:08
509です。
sageをミスって申し訳ございませんでした。
どなたか、お願いできませんでしょうか?
よろしくお願いします。
527デフォルトの名無しさん:2009/11/03(火) 15:47:03
>>525
正常に動作しないだけで、コンパイルは通ると思うが。
528デフォルトの名無しさん:2009/11/03(火) 15:48:56
>>527
float j = 1/i; で未初期化の変数を参照がエラーか警告になるかも
529デフォルトの名無しさん:2009/11/03(火) 15:51:46
>>525
jを計算する場所が違う。
コンパイルができない、というのはエラーが出るのか警告が出るのか、
あるいは実行時エラーなのか、はっきりしてくれ。
530デフォルトの名無しさん:2009/11/03(火) 15:52:23
初期化に変数は使えないとか。
531デフォルトの名無しさん:2009/11/03(火) 15:56:50
>525

gccに食わせたけど、警告は出るけどコンパイルはできるよ。

たぶんやりたいことはこうじゃない?
#include <stdio.h>

int main(void)
{
int i;

for (i = 1; i < 10; i++) {
printf("%f\n" , 1.0 / i);
}

return 0;
}
532デフォルトの名無しさん:2009/11/03(火) 15:57:42
[2]問題: 標準入力からの入力に対して、アルファベットを全て空白文字に変更して
出力するプログラムを作成せよ。という問題です。
[3.1] OS: (UNIX)
 [3.2] コンパイラ名とバージョン: (gcc)
 [3.3] 言語: (C)
[4] 期限: [2009年11月4日9:00まで]
かなりの初心者です
http://codepad.org/nrbnRlD3
自分で作ってみたのですが、エラーが出ました。
何が足りないか、何が間違っているか改良をお願いします。


533デフォルトの名無しさん:2009/11/03(火) 16:00:51
>509

元のコードがでかいので、デバッガでコードを追いたかったのだが、
gcc + insightでは開こうとしたとたんに落ちてしまう。
実行自体はできるのだけれど。

#conio.hがあるとコンパイルできないのだが、使っているところがないので
削った。
もう少しおってみるかな。
534デフォルトの名無しさん:2009/11/03(火) 16:05:16
>>532
大文字
535デフォルトの名無しさん:2009/11/03(火) 16:08:56
大文字を小文字に修正しても希望の動作にはならないけどなw
536デフォルトの名無しさん:2009/11/03(火) 16:09:53
最初の while で標準入力食いつぶすしねw
537デフォルトの名無しさん:2009/11/03(火) 16:17:35
#include <stdio.h>
#include <ctype.h>
int main(){
int c;
while((c=getchar())!=EOF)putchar(isalpha(c)?' ':c);
return 0;}
538509:2009/11/03(火) 16:21:37
>533
すいません。
よろしくお願いします。

539533:2009/11/03(火) 17:41:45
>509

デバッガが使えないのでコードリーディングに手こずっている。
出題主、以下の情報ください。

1)BCalculationの仕様
コメント、mainでの使い方からして
入力"+ 6 3 " 戻り値9みたいな
ものを想定していた。でも動かしてみたらそうじゃないし、
どう動いて欲しいのかわからない。

どんな入力に対してどういう戻り値を期待している?

2)MtoBの仕様
以下のようなものを想像しているが、あっているか?
入力 "6 + 3 * 3"
戻り値 "+ 6 * 3 3" (BCalculationのinputになれるもの)
540506:2009/11/03(火) 18:27:31
>>539
つ「逆ポーランド記法」
6 3 +
6 3 3 * +

デバッガは無料で手に入る VC++2008EE IDE はいかが?
541509:2009/11/03(火) 18:29:38
>533
返答が遅くなり、すいません。
ご迷惑をおかけします。

1)BCalculationの仕様
回答の所で使用していますので、お考えであっていると思います。
ただ、"63+" の "9"と思っていました。
的外れな回答でしたら申し訳ありません。

2)MtoBの仕様
その通りです。
こちらも、"633*+"と思っていました。

実は、最初は”回答”の上に
printf("変換:%s\n",str.str);
を入れていました。
しかし、課題内容にはないため外しました。
変換後の結果が出るものです。
542デフォルトの名無しさん:2009/11/03(火) 18:30:12
543デフォルトの名無しさん:2009/11/03(火) 18:52:20
一回目はちゃんと漢字じゃないとw
544533 = 539:2009/11/03(火) 19:35:51
>509 >541, >540

逆ポとLispを勘違いしてたみたい。
だけど6 3 +も + 6 3両方試したけど
元のコードでは期待通り動いていないみたいだよ。

とりあえず逆ポの関数書いてみた。命名則は自分流なので
reversePolishNotationが元のBCalculationと思ってください。

エラーは適当にアボートしちゃっていますが、動作は期待通りでしょうか?

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10055.txt
545509:2009/11/03(火) 20:30:17
>533=539=544
返事が遅くなり申し訳ございません。

残念ながら動作しませんでした。
コンパイルは出来たでですが、実行すると
何も入力する前に、
「問題が発生したため、muda.exe を終了します。 ご不便をおかけして申し訳ありません。」
と出て終了してしまいました。

新しくコードを書いて頂いたようで、申し訳ございません。
しかし、一度前のものを提出し追加課題として「エラーを検知させよ」
だった為、条件として
[5] その他の制限:途中までのソースコードがありますので、そちらに追記お願いします。
と記載しておりました。
できましたら、追記でお願いしたいのですが無理でしょうか?

宿題を解いて頂いているのに、文句言って本当にすいません。
546540:2009/11/03(火) 20:56:58
>>545
ソースをみる限り第一引数に逆ポーランド式を指定しないとダメです。
たとえば、
foo.exe "1 1 +"
とします。

>>544
おかしいですね。私のところでは、BCalculation はうまく動いていますが。(bcc32/gcc/VC++2008)
547509:2009/11/03(火) 21:30:57
>540
逆ポーランド部分は出来ていると、自分の中では信じきっていました・・・
そうでしたか、もう一度考えてみます。
548デフォルトの名無しさん:2009/11/03(火) 21:54:18
>>547
代数式(中置式)→逆ポーランド式(後置式)の変換は、定番の方法がありまして、
コンパイラ(とか数理言語)の教科書をみればたいてい説明されています。
ソースを得たいのであれば、
http://www.amazon.co.jp/dp/4874084141
にそのものがあります。ダウンロードは
http://oku.edu.mie-u.ac.jp/~okumura/algo/archive/
からできます。これを気に書き直されるのも一興かと思います。
549548:2009/11/03(火) 21:57:12
×気に
○機に
550デフォルトの名無しさん:2009/11/03(火) 21:58:19
>546 >547
mainを下記のように書き直して試してみた。

int main(void)
{
struct NewStr str;
printf("式を入力\n");

gets(str.str);
printf("\n");

// str = MtoB(str.str);

printf("回答:%4.2lf\n\n",BCalculation(str.str));



return 0;
}

例えば"6 3 +"を入力していて解答6となっておかしい、と思っていた。
コードを追っかけてみて"6 3 + "(最後にスペースが入っている)と入力すると上手く行くことがわかった。

これは仕様制限ということでよいのですよね?

そういう前提でもう一度見てみる。
確認するけど、基本的に正常系の動作はしていて、
>演算不可能な場合は、エラー表示させること。
>例:6+3**  9//  9-5)  8+(  
という部分の実装が漏れている、ということなのかな。
551546=548:2009/11/03(火) 22:12:06
>>550
>>509 の代数式→逆ポ変換 (MtoB()) は力作でして、(多分)うまく動いているのですが、
括弧の処理をとくにリカーシブに書いているところもあり、私もなかなか把握しきれないでいます。異常系の切り分けも難しい。
いずれ、どうあがいても、リカーシブに書かざるを得ないとは思いますが、ここで、心機一転、定石をお勧めしたしだいです。
MtoB() を自力でここまで書いたのであれば、尊敬に値します。少なくとも私にはできません。
552509:2009/11/03(火) 22:34:48
>550
はい、その通りです。
>演算不可能な場合は、エラー表示させること。
>例:6+3**  9//  9-5)  8+( 
の部分が抜けています。

>551
しかし、一度提出してる手前、再度初めからとなると
このエラーを表示させる課題ごと意味が無くなってしいます。

この課題に取り掛かって、1ヶ月ほど助言を受けたり、書いては
書き直ししているうちに段々訳がが分からなくなってきて気が付くと
この形でした。
553551:2009/11/03(火) 22:44:07
>>552
なるほど。
定石をお勧めしたい気持ちはやまやまなのですけれども。
ちょっと説明していただけますか?たとえば、
char stack[STR_MAX], str[STR_MAX], tempstr[STR_MAX*2];
int newstr_pos=0, i, flg=0, parentheses_flg=0, str_pos=0, minus_flg=0, tempstr_pos=0, stack_pos=-1;
の各バッファ、各 pos の意味合いとか、どうしてこういう仕掛けを作ったかとか。
554デフォルトの名無しさん:2009/11/04(水) 00:51:43
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10056.txt
[3] 環境
 [3.1] OS:Windows/vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: C++
[4] 期限: 2009年11月6日
[5] その他の制限: 問題を乗せているテキストに進め方があるのでそれに沿ってもらえれば。

よろしくお願いします。
555509, 553:2009/11/04(水) 01:21:51
こっちで持っている解答を示しておきます。
http://codepad.org/ziaFqKsi
定石の代数式→逆ポーランド変換を行いつつ、同時に各項の値を計算させています。
556509:2009/11/04(水) 02:12:30
>551
申し訳ありません。逆ポーランドの所が出来ていなかったので
自分で考えると言った手前考えていましたらいつの間にか
こんな時間になっており、質問が来ているのに気が付きませんでした。
533さんに書いて頂いたコードと548さんに紹介して頂いたサイトのコードを
参考に逆ポーランドの部分も間違いが直す事ができ、課題も完了する事が
出来ました。

皆様本当にありがとうございました。
557デフォルトの名無しさん:2009/11/04(水) 02:23:14
処理時間を計る関数の中で、最も最小単位まで計れる関数は何でしょうか?
教えてください
558デフォルトの名無しさん:2009/11/04(水) 02:47:09
QueryPerformanceCounter
559デフォルトの名無しさん:2009/11/04(水) 11:42:51
[1] 授業単元:プログラミング2
[2] 問題文(含コード&リンク):ユークリッド互除法を使って二つの数字の最大公約数を求める。ただし、マイナスの数も求められるようにする。
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: Gcc3.4(MinGW)
 [3.3] 言語: C言語
[4] 期限: 今日中
[5] その他の制限: 特になし

よろしくお願いいたします。
560デフォルトの名無しさん:2009/11/04(水) 13:06:15
561デフォルトの名無しさん:2009/11/04(水) 20:08:57
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10060.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 11/13 16:00まで
[5] その他の制限: 特になし

よろしくお願いします。
562デフォルトの名無しさん:2009/11/04(水) 21:30:08
[1] 授業単元:プログラミング演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10061.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C言語
[4] 期限: 11/6 12:00まで
[5] その他の制限: 特になし
おねがいします
563デフォルトの名無しさん:2009/11/04(水) 23:32:32
[1] 授業単元:ソフトウェア工学
[2] 問題文(含コード&リンク):
(π/4) = tan^-1(1) = 1 - (1/3) + (1/5) - … + (-1)^k * (1/(2k+1)) + …
の公式を用いて、第n項までの多項式近似により円周率を求め、その誤差と計算時間を測定するプログラムを作成せよ。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:オールインワンエクリプス
 [3.3] 言語:C
[4] 期限:できれば明日までに
[5] その他の制限:特になし
564デフォルトの名無しさん:2009/11/05(木) 00:29:07
【質問テンプレ】
[1] 授業単元:C言語
[2] 問題文
問題文1
整数 n を入力すると 'a' から n個目までのアルファベットを全て表示するプログラムを作成せよ。 (例:n=6 の時 abcdefを表示)

問題文2
整数 n を入力すると1からn までの間で 3の倍数か、
5の倍数のどちらかであるような数の和を表示するプログラムを作れ。
(例:n=10 の時 3+5+6+9+10=33)

問題文3
次のプログラムの (a)-(j)の部分をfor 文を使って書き直せ。 #include<stdio.h> int main() { int a[10]; double sum,ave; sum=0; a[0]=1; a[1]=5; a[2]=7; a[3]=2; a[4]=4; a[5]=1; a[6]=9; a[7]=4; a[8]=20; a[9]=5; sum=sum+a[0];
/* (a) ここ */ sum=sum+a[1]; /* (b) ここ */ sum=sum+a[2]; /* (c) ここ */ sum=sum+a[3]; /* (d) ここ */ sum=sum+a[4]; /* (e) ここ */ sum=sum+a[5]; /* (f) ここ */ sum=sum+a[6]; /* (g) ここ */ sum=sum+a[7];
/* (h) ここ */ sum=sum+a[8]; /* (i) ここ */ sum=sum+a[9]; /* (j) ここ */ ave=sum/10; printf("総和は %d です。平均は %d です。\n",sum, ave); }

問題文4
整数を5個入力すると、まずそのまま表示し、次に逆順で表示するプログラムを作れ。
実行例: 数を入力して下さい: 3 数を入力して下さい: 7 数を入力して下さい: 1 数を入力して下さい: 2 数を入力して下さい: 5
そのまま表示 3 7 1 2 5 逆順に表示 5 2 1 7 3 プログラムのテキストをコピーして下のテキスト入力フィールドへ出力結果と共に貼り付けて提出すること。

[3] 環境
 [3.1] OS: XP
 [3.3] 言語: C++
[4] 期限: 明日まで
[5] その他の制限
#include <stdio.h>
int main()
スタートでお願いします。
565デフォルトの名無しさん:2009/11/05(木) 00:48:10
[1] 授業単元:C言語プログラミング
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10062.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月05日18:00まで
[5] その他の制限: 問題文どおりです
566デフォルトの名無しさん:2009/11/05(木) 00:53:39
[1]授業単元 C言語実習
[2]コマンドラインで指定された英数字と空白、タブ、改行記号
のみから構成されるテキストファイルに含まれる単語の頻度を
アルファベット順に出力するプログラム。
単語とは英数字のみで構成されているものを指す。
一つの単語が1回現れた時は部分単語すべてが現れたものとする。
部分単語とは、その単語の連続する部分文字列のことである。
授業で述べた多重ハッシュテーブルを利用すること。
行の長さ、行の総数、単語の長さに制限は無いが、頻度は
32bit整数(符号付き)で正の範囲に表せるものとする。
[3] Linux/gcc 4.0/C言語
[4] 今週の金曜日夕方18:00迄

567デフォルトの名無しさん:2009/11/05(木) 01:03:37
先ず答える前に問題の水準を誰かが大まかに分類しそれぞれの
水準別に解答貼付け専用スレを立ててそこに誘導したほうが
良くね?高校生レベルの問題と大学院修士課程レベルの問題とかが
混在したら回答者の精神衛生に問題が生じる可能性があるから
568デフォルトの名無しさん:2009/11/05(木) 01:05:55
569デフォルトの名無しさん:2009/11/05(木) 01:33:33
[1] 授業単元:ソフトウェア工学
[2] 問題文(含コード&リンク):
台数近似を用いて、分割数nに対する I = ∫[1,2]ln(x)dx の値を求めるプログラムを作成し、誤差を求めよ。
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン:オールインワンエクリプス
 [3.3] 言語:C
[4] 期限:今日中
[5] その他の制限:特になし
570デフォルトの名無しさん:2009/11/05(木) 01:42:04
やれるやつがやる
分類の必要なし
各人のスキルは違う
高校生が大学院生よりプログラムできることはある
571566:2009/11/05(木) 02:02:07
条件が一つ抜けてました。
《追加条件》
ファイルを読み込んでいる間に、記憶している単語別頻度の順位に変更が発生したら、その時点でアルファベット順に都度出力すること
572デフォルトの名無しさん:2009/11/05(木) 02:04:18
授業で述べた多重ハッシュテーブル

これわからん
573566:2009/11/05(木) 02:16:21
>>572
お答え下さいましてとりあえずありがとうございます。

わたしも良くわからないんですが、ハッシュテーブルが
衝突だったら別のハッシュ関数でその下にテーブルを
作るとかかなんとかだったと記憶してますけど...
ノートには次のように写してます。(板書写しなんで
間違ってるかもです)
if( array[ hash1(string) ] = NIL )
array[ hash1(string) ] := string;
else if array[hash1(string)][ hash2(strin) ]=NIL
array[hash1(string)][hash2(string)]:=string;
else ........
574デフォルトの名無しさん:2009/11/05(木) 05:28:40
ch[n]がcharとしてpを素数として

ch[0] + p * ch[1] + p^2 * ch[2]  +  ・・・ + の上か下の何ビットかをハッシュにしたらいいのでは。

異なるハッシュがいくらでも作れる。
575デフォルトの名無しさん:2009/11/05(木) 08:57:24
>>565
ひでーやり方だなw
576デフォルトの名無しさん:2009/11/05(木) 09:03:31
なぜかヴァニラアイスのスタンド思い出した
577デフォルトの名無しさん:2009/11/05(木) 09:34:47
>>565
for(i=p; i<=q; i++) a[i] = b[j] < c[k] ? b[j++] : c[k++];
578デフォルトの名無しさん:2009/11/05(木) 09:50:27
579デフォルトの名無しさん:2009/11/05(木) 10:42:21
>>564
問題文1が間違っている。
'f' は 'a' から 5 個目だろ。
580デフォルトの名無しさん:2009/11/05(木) 10:43:06
'a'を1個目として数えてるんだろ
581デフォルトの名無しさん:2009/11/05(木) 12:35:48
582デフォルトの名無しさん:2009/11/05(木) 14:34:01
アルファベットって順序があるんだ・・
583デフォルトの名無しさん:2009/11/05(木) 16:43:05
[1] 授業単元:ネットワークプログラミング
[2] 問題文(含コード&リンク):ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10069.zip
[3] 環境
 [3.1] Linux
 [3.2] gcc
 [3.3] c
[4] 期限: 11月6日まで

問題はreadme.txtの中に書いておきました
よろしくお願いします
584デフォルトの名無しさん:2009/11/05(木) 16:58:20
>>565
その埋めるところ以外ってまさかもとから問題として書かれてるわけじゃないよな?
565が自分で書いてみただけだよな?
585デフォルトの名無しさん:2009/11/05(木) 17:52:41
>>577
SENTINELは全く出てこないが...
586デフォルトの名無しさん:2009/11/05(木) 17:59:20
SENTINELは不要?
for(i=p,j=k=0;i<=q;i++)
if( j>m-p) a[i]=c[k++];
else if( k>=q-m) a[i]=b[j++];
else if(c[k]<b[k]) a[i]=c[k++];
else a[i]=b[j++];
}
587デフォルトの名無しさん:2009/11/05(木) 17:59:38
SENTINELの意味わかってねーだろw
588デフォルトの名無しさん:2009/11/05(木) 18:00:30
565のマージソートは致命的な欠陥があるw
589デフォルトの名無しさん:2009/11/05(木) 18:04:58
>>586
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];
>else if(c[k]<b[k]) a[i]=c[k++];

else if(c[k]<b[j]) a[i]=c[k++];
じゃね?
590デフォルトの名無しさん:2009/11/05(木) 18:06:45
わずかなミスでそんなに嬉しそうに揚げ足とらなくてもw
591デフォルトの名無しさん:2009/11/05(木) 18:11:17
>>588
どこ?おしえて
592デフォルトの名無しさん:2009/11/05(木) 18:29:20
>>567
水準は兎も角、意外に奥の深い問題と学習確認クイズは
区別されたほうが良いかもな
593デフォルトの名無しさん:2009/11/05(木) 18:33:25
>>590
プログラミングではわずかなミスが致命的なバグとなる事がよくある
594デフォルトの名無しさん:2009/11/05(木) 18:35:00
嬉しかったのは否定しないんだw
595デフォルトの名無しさん:2009/11/05(木) 18:55:30
>>593
589の問題は嬉しそうに挙げ足をとっていることなんだけど
改行厨みたいで迷惑
596デフォルトの名無しさん:2009/11/05(木) 19:19:55
[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
下のアドレスのプログラムに追加して、ダイクストラ法のプログラムを完成させてください
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10070.txt
プログラムに使用するデータファイル↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10071.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
11月10日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません

よろしくお願いします。
597デフォルトの名無しさん:2009/11/05(木) 19:59:34
>>569
台形公式のことですよね。
http://codepad.org/XRuQqaF0
598初心者 ◆.6Hqkk7dyk :2009/11/05(木) 21:06:28
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク): 2つの整数値と1つの文字を、例えば「4+2」のように入力し、
                   入力に応じた四則演算を行って結果を出力するプログラムを作成しなさい。
                   ただし、中央の文字に四則演算の記号以外の文字が入力された時のことも考慮しなさい。
[3] 環境
 [3.1] OS: UNIXのemacs
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:2009年11月7日17時まで

まだまだ初心者でよくわかりませんorz
よろしくお願いします。
599デフォルトの名無しさん:2009/11/05(木) 21:51:19
[1] 授業単元: プログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10073.txt

[3] 環境
 [3.1] OS: UNIX
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11月13日まで
[5]無し

構造体とポインタの問題です、よろしくお願いします。
600デフォルトの名無しさん:2009/11/06(金) 03:11:52
>>507
誰もやらないから最初の問題だけやってみた
提出あさってじゃんね

http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10074.txt
601デフォルトの名無しさん:2009/11/06(金) 08:26:53
602デフォルトの名無しさん:2009/11/06(金) 13:20:08
>>565
N*2が並び替える配列のサイズであるとしたら、
最初に呼び出したときにSENTINELがb[N]、c[N]の範囲外に代入されてしまう。

再帰関数を呼び出すごとにb[N],c[N]を確保するのは領域の無駄以外の何者でもない。
603デフォルトの名無しさん:2009/11/06(金) 15:43:27
604デフォルトの名無しさん:2009/11/06(金) 22:56:50
#include <iostream>
using namespace std;

int main() {

int i,goukei=0;
int kokugo[5];
float heikin;

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
cin >> kokugo[i];
goukei = goukei + kokugo[i];
}

heikin = (float)goukei/5.0;
cout << "平均点は" << heikin << "点です\n";

for(i=0;i<5;i++) {
cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
cout << "点で、平均との差は" << heikin-(float)kokugo[i] << "です\n";
}

return 0;

}

これを
数学の点数も入力する
数学の平均も出力する
国語と数学の総合的な平均点も出力する
ようにするにはどうすればいいんですか?
605デフォルトの名無しさん:2009/11/06(金) 23:01:32
>>1を読む
606604:2009/11/06(金) 23:21:34
ごめんなさい
C++です
607デフォルトの名無しさん:2009/11/06(金) 23:45:10
じゃなくてちゃんとテンプレに従った形で書けって事
プログラムはろだにうpしろ
608デフォルトの名無しさん:2009/11/07(土) 00:08:45
>>604
小学生でも出来るレベルだぞ・・・それ
609609:2009/11/07(土) 02:02:45
#include <iostream>
using namespace std;
int main() {
  int goukei_k = 0, goukei_s = 0;
  int kokugo[5], suugaku[5];
  float heikin_k, heikin_s, heikin;

  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績を入力してください\n";
    cin >> kokugo[i];
    goukei_k += kokugo[i];
    cout << "同じく数学の成績を入力してください\n";
    cin >> suugaku[i];
    goukei_s += suugaku[i];
  }
  heikin_k = (float)goukei_k/5.0;
  cout << "国語の平均点は" << heikin_k << "点です\n";
  heikin_s = (float)goukei_s/5.0;
  cout << "数学の平均点は" << heikin_s << "点です\n";
  heikin = (float)(goukei_k + goukei_s)/5.0;
  cout << "合計の平均点は" << heikin << "点です\n";
  for(int i=0; i<5; i++) {
    cout << "出席番号" << i+1 << "番の国語の成績は" << kokugo[i];
    cout << "点で、平均との差は" << heikin_k - kokugo[i] << "です\n";
    cout << "同じく数学の成績は" << suugaku[i];
    cout << "点で、平均との差は" << heikin_s - suugaku[i] << "です\n";
    cout << "同じく合計の成績は" << kokugo[i] + suugaku[i];
    cout << "点で、平均との差は" << heikin - (kokugo[i]+suugaku[i]) << "です\n";
  }
  return 0;
}
610デフォルトの名無しさん:2009/11/07(土) 10:36:26
[1] 授業単元:オペレーティングシステム実習
[2] 問題文
マルチプロセスを利用したシステムの開発を行い,結果を以下の項目にまとめ報告せよ. fork(),セマフォ,メッセージをすべて使用すること.
・システムの要求仕様
・プログラムのソースファイル
・上記プログラムの簡単な解説,特に fork(),メッセージ,セマフォの周辺について
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: Gcc
 [3.3] 言語: C言語
[4] 期限: 11/9いっぱい
[5] その他の制限:なし

フォーク、セマフォの作り方がよくわからないのでよろしくおねがいします。
611デフォルトの名無しさん:2009/11/07(土) 13:48:39
612デフォルトの名無しさん:2009/11/07(土) 16:31:27
>>598
なにか異常な状況になると、なにもせずに終わります。
http://codepad.org/kU1vQSYE
613デフォルトの名無しさん:2009/11/07(土) 21:44:16
>>609
ありがとうございました
614デフォルトの名無しさん:2009/11/07(土) 22:13:11
>>598
↓空白が入った場合は考慮していない(1 + 2など)。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10077.c
615デフォルトの名無しさん:2009/11/07(土) 23:42:13
C++で10進数を2進数に変換するプログラムを配列使って
順番通りに表示できるようにするのってどうするんですか
#include <iostream>
using namespace std;

int main() {
で始まる感じで(もしかしたらcmathとか使うかもしれないですが)
最後は
return 0;
}です
616デフォルトの名無しさん:2009/11/08(日) 00:52:50
>>608
へぇ〜ほぉ〜小学校でC言語やプログラミングって習うんだぁ。どこ?
617デフォルトの名無しさん:2009/11/08(日) 00:56:18
冥途市立地獄小学校
618デフォルトの名無しさん:2009/11/08(日) 01:34:55
>>616
小学校は難しいとしても、勘のいい人なら普通の人でもできる内容かもね。
国語を算数に変えたら算数になることは分かるだろうし。
619デフォルトの名無しさん:2009/11/08(日) 01:39:12
出来ようが出来まいがプログラミング言語を小学生がやるのは愚の骨頂
620620:2009/11/08(日) 01:42:22
#include <iostream>
using namespace std;
int main() {
  int i, n, bin[32];

  cout << "Number:"; cin >> n;
  cout << "Binary:";
  for(i=0; i<32; i++) {
    bin[i] = n & 1;
    n >>= 1;
  }
  for(i=31; i>=0; i--)
    cout << bin[i];
  return 0;
}
621デフォルトの名無しさん:2009/11/08(日) 01:47:24
>>619
小学生がやるのは個人の好き勝手だと思うし、愚かだとは思わない。
よしんば愚かだと思ってもそれが骨頂の愚かな行為とまでは思えない。
622デフォルトの名無しさん:2009/11/08(日) 01:52:07
>>620
19を2進数にすると10011だと思うんですが
その前に0が沢山並ぶのはOKなんでしょうか?
623デフォルトの名無しさん:2009/11/08(日) 02:04:07
>>621
プログラミングというのは本来、プログラミング言語自体を
作りながらやるもの。これは到底小学生に出来る世界じゃない。

出来合のプログラミング言語解釈疑似実行プログラム(=コンパイラ)
を使って遊ぶことは、実はプログラミングとは言うのはかなり
恥ずかしい。

有害無益とまでは言わないが、商業的には兎も角、教育的な意味で
有益にするのはかなり難しい。
相当に優秀な教師でも居ない限りね。
624デフォルトの名無しさん:2009/11/08(日) 02:14:49
>>623
たとえば何の言語作ったの?
625デフォルトの名無しさん:2009/11/08(日) 02:20:48
Cはそれなりに安定した多方面に応用されている信頼できる言語の
ひとつだが万能な言語じゃない。万能な言語など無い。
626デフォルトの名無しさん:2009/11/08(日) 02:22:36
Cが万能じゃないことなどプログラマなら誰でも知ってる。
それはそうと、俺は言語作ったこと無いけどみんなはあるの?
627デフォルトの名無しさん:2009/11/08(日) 02:26:47
>>623
プログラム言語だってコンパイラだって出来合いのをコンパイルしたもんだろ
機械語に直接翻訳するようなのを自分で作るなら話は別だが
628デフォルトの名無しさん:2009/11/08(日) 02:28:20
>>623

>プログラミングというのは本来、プログラミング言語自体を
>作りながらやるもの。

そもそもこの定義はどこから来たのw?
629デフォルトの名無しさん:2009/11/08(日) 02:30:18
比喩が理解出来なくなってる段階で、すっかりプログラム
されちゃってるなw
630デフォルトの名無しさん:2009/11/08(日) 03:01:49
比喩なんてもんじゃない、ただのバカだろw
631デフォルトの名無しさん:2009/11/08(日) 03:03:10
俺にはどれが何の比喩表現なのかが分からない
632デフォルトの名無しさん:2009/11/08(日) 03:05:38
バカなプログラマは、コードにバグが無いと信じ、言語にバグがあると信じ込む。だから言語を作れるんだみたいな傲慢なことを言う。

優秀なプログラマは、天賦な言語にバグなどないと敬虔に信じ
救われる。
633デフォルトの名無しさん:2009/11/08(日) 03:23:30
彼は言語を作れるんだなんて言ってない。
プログラミングとは言語を作ることだと言っている。
つまり、プログラマと名乗る以上、優秀であろうとそうでなかろうと言語を作っているはずなんだよ

だから俺はプログラマじゃないの。
634デフォルトの名無しさん:2009/11/08(日) 03:25:48
プログラムをされている方なんですね...わかります
635デフォルトの名無しさん:2009/11/08(日) 03:27:24
行ってることが意味不明
C言語でおk
636デフォルトの名無しさん:2009/11/08(日) 03:27:26
文法とかの理解も妖しいのに言語なんか作れるのか?
637デフォルトの名無しさん:2009/11/08(日) 04:23:01
文法など理解出来るしろものじゃないからこそ言語を天賦の
ものじゃないと考えるわけだ。
638デフォルトの名無しさん:2009/11/08(日) 05:23:26
[1] 授業単元:
[2] 問題文(含コード&リンク):ソケット通信を用いたチャットの作成
(http://mikilab.doshisha.ac.jp/dia/research/report/2003/0714/006/report20030714006.html)
にある2.1、2.2のクライアント、サーバのプログラム(出来れば簡単な解説もお願いします)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C++
[4] 期限: 2009年11月08日23:00まで
[5] その他の制限: なし
639620:2009/11/08(日) 07:55:58
 >>620
 19を2進数にすると10011だと思うんですが
 その前に0が沢山並ぶのはOKなんでしょうか?
620は○△先生じゃないから、質問されても答えられない。
-9を2進数にすると幾つだと思うか?!
640デフォルトの名無しさん:2009/11/08(日) 09:03:53
>>616
東京にIQ130以上の子供だけを入園させることが出来る幼稚園(だっけな?)とかなかったかな
確かそこでプログラミングしてたはず

それに近頃の、ませた小学生がプログラミングに興味を持ってるのもいるしなぁ。
641デフォルトの名無しさん:2009/11/08(日) 09:34:41
>>596お願いします><
642デフォルトの名無しさん:2009/11/08(日) 12:47:03
俺、小学生の時、パソコン買って、プログラミングしてたよ。
簡単なお絵描きプログラムなんですが、
BASICの本のサンプルみたいなのを、機能拡張しながら使ってた。
そのときはテープも使えず、フロッピーディスクなんてのもないから、
覚えてしまったコードを毎回入力してたけど、毎回すこしずつ違ったコードでした。
643デフォルトの名無しさん:2009/11/08(日) 13:49:24
>>639
負の数を2進数にする時のためにも、最初に全体のビット数は
何ビットなのかはっきりさせておかなければ

2進数では大抵負の数は2の補数という表現を取り、最上位
ビットは1になる
644デフォルトの名無しさん:2009/11/08(日) 20:09:22
[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10079.txt
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限:11/13まで
[5] その他の制限: 特になし
645デフォルトの名無しさん:2009/11/08(日) 20:35:07
[1] 授業単元: 画像情報工学
[2] 問題文:ブレゼンハムのアルゴリズムを用いて、ウィンドウ内に線分を描画するプログラムを
      作成しなさい。(以下の仕様で作成せよ)

      ■仕様(マウスの右と左のボタンを使用する。候補線の表示なし。)
       マウスの左ボタンクリック      線分の始点座標の指定
       マウスの右ボタンクリック      線分の終点座標の指定及び線分の描画

[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: C++
[4] 期限:2009年11月17日まで
[5] その他の制限:特になし
646デフォルトの名無しさん:2009/11/08(日) 21:52:25
>>639
○△先生ってなんですか?
647デフォルトの名無しさん:2009/11/08(日) 22:55:28
丸さんかっけー
648デフォルトの名無しさん:2009/11/08(日) 23:32:22
>>647
意味わからないですよね?
普通に読むとそうですが
649デフォルトの名無しさん:2009/11/08(日) 23:45:32
>>639
#include <iostream>
#define TRUE (1==1)
using namespace std;
int main() {
  int i = 0, n, bin[sizeof(int) * 8];
  
  cout << "Number:"; cin >> n;
  cout << "Binary:";
  while(TRUE){
    bin[i] = n & 1;
    if ((n >>= 1) == 0){break;}
    i++;
  }
  while(i >= 0){
    cout << bin[i--];
  }
  cout << '\n';
  return 0;
}
650デフォルトの名無しさん:2009/11/09(月) 00:05:27
つーか直書きやめてcodepad使おうぜ
651デフォルトの名無しさん:2009/11/09(月) 00:27:39
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):
正の整数nの2乗の数に、2種類の数字しか現れない
4桁の正の整数 n をすべて挙げなさい
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年11月13日13:00まで
[5] その他の制限:なるべく簡単にお願いします
よろしくお願いします
652デフォルトの名無しさん:2009/11/09(月) 00:40:56
>>651
#include<stdio.h>
int main(void){
puts("1000 2000 3000 3114");
return 0;
}
653デフォルトの名無しさん:2009/11/09(月) 00:44:06
>>652
求めるプログラムお願いします
654デフォルトの名無しさん:2009/11/09(月) 01:09:50
>>596
ダイクストラ法の部分だけ実装しています。シミュレーション部分は、そもそもなんのシミュレーションなのかわからないので
放っています。
http://codepad.org/bxTi0dpv
何をシミュレートしているのか詳しくおしえていただければ、あるいは続きを書けるかもしれません。
655デフォルトの名無しさん:2009/11/09(月) 01:41:35
>>651
()を適当に埋めて整数の桁に現れる数を数え上げる関数
count(int n)を作ってこれを使って完成させな

int count( int n ){
int i,c[10],d;
for(i=0;i<(?);i++) c[i]=( );
while(?){ c[(?)]++;n/=10; }
for(i=d=0;i<10;i++) d+=(c[i]==0)?(?):(?);
return (?);
}
656656:2009/11/09(月) 01:42:47
#include <stdio.h>
int main(void){
  int i, j, ii, count, digit[10];
  for(i=1000; i<10000; i++){ // sqrt(1000) = 31.6227
    for(j=0;j<10;j++) digit[j]=0;
    ii = i*i;
    for(j=0;j<8;j++) { // 10,000*10,000 = 100,000,000
      digit[ii%10] = 1;
      ii /= 10;
      if(ii==0) break;
    }
    count = 0;
    for(j=0;j<10;j++)
      if(digit[j] == 1) count++;
    if(count==2) {//printf("-->");
      printf("%d %d %d\n", i, count, i*i);
    }
  }
}
657デフォルトの名無しさん:2009/11/09(月) 03:47:58
[1] 授業単元: C言語のポインタ、配列、ファイルの問題です
[2] 問題文(含コード&リンク):
n件のデータを配列に入力しその平均値を出力するプログラムをつくり、
実行部において添字演算子は用いず、*(p+i)と*p++それぞれを用いるパターンを作る
ただし、入出力処理をファイル処理に、入出力ファイル名はコマンドラインで指定する
[3] 環境
 [3.1] OS: とくになし
 [3.2] コンパイラ名とバージョン: とくになし
[3.3] 言語: c言語
[4] 期限: 2009/11/09日中
[5] その他の制限:途中まで出来ている部分を使ってください。
#include<stdio.h>
int main(void)
{
int A[100];
int a,b,i,n,*p;

*p=A[0];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",*(p+i));
}
for(i=0;i<n;i++){
b+=*(p+i);
}
a=b/n;
printf("%d",a);
return(0);
}
です。よろしくお願いします。
658デフォルトの名無しさん:2009/11/09(月) 05:50:29
>>655-656
ありがとうございます.コンパイルしてみます
659デフォルトの名無しさん:2009/11/09(月) 09:20:08
>>651
#include <stdio.h>

int check(int n)
{
int i, a[2], temp, c = 0;

while(n) {
temp = n % 10;
for(i=0; i<c; i++) if(a[i]==temp) break;
if(i==2) return 0;
if(i == c) a[c++] = temp;
label:
n /= 10;
}
return 1;
}

int main(void)
{
int i;

for(i=1000; i<10000; i++) if(check(i*i)) printf("%d\n", i);

return 0;
}
660デフォルトの名無しさん:2009/11/09(月) 09:21:02
ゴミが残った
label:は消しといて
661デフォルトの名無しさん:2009/11/09(月) 09:29:06
>>659
バグってるぞ

実行結果

1000
2000
3000
3114
662デフォルトの名無しさん:2009/11/09(月) 09:33:09
お前は何を言ってるんだ?
663デフォルトの名無しさん:2009/11/09(月) 09:36:33
>>652>>656も答えはその4つなんだが、どこがバグってるんだろ
表示するのは4桁の整数の方だし
664デフォルトの名無しさん:2009/11/09(月) 10:34:07
正の整数 nの2乗の数に、「10の倍数でなく、
10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いものをすべて挙げなさい
665デフォルトの名無しさん:2009/11/09(月) 10:35:27
正の整数 nで、その2乗が10の倍数でなく、
「「10進数表記で、3種類以上の数字が現れる、
もしくは1種類の数字しか現れない」という
ことが無いもの」をすべて挙げなさい
666656:2009/11/09(月) 10:37:30
4桁までの数。
int main(void)
{
  int i;
  for(i=1; i<10000; i++) if(check(i*i)) printf("%04d\n", i);
  return 0;
}
667デフォルトの名無しさん:2009/11/09(月) 10:52:35
で、勝手に問題書き換えてバグがないものをバグって言い張るつもり?
668デフォルトの名無しさん:2009/11/09(月) 10:56:46
>>665>>661とは無関係
>>652への追加課題
669デフォルトの名無しさん:2009/11/09(月) 10:59:29
問題出したきゃ、大学でも専門学校でもどこでもいいから講師になってからにしろよw
670656:2009/11/09(月) 11:01:05
書き換えてないぞ。柿加えた。10の倍数を含まない。
int main(void) {
  int i;
  for(i=1; i<10000; i++) if(i%10) if(check(i*i)) printf("%4d %d\n", i, i*i);
  return 0;
}
671デフォルトの名無しさん:2009/11/09(月) 11:02:37
恥ずかしい突込みをした661が話を逸らそうとして必死にしか見えないんだがw
672656:2009/11/09(月) 11:07:19
1回だけのは除く。
for(i=4; ......
673デフォルトの名無しさん:2009/11/09(月) 11:08:21
講師は問題を解いて説明する
生徒はそれを写す
んだろ?
674デフォルトの名無しさん:2009/11/09(月) 11:12:54
656なら他人の関数使ってないで、自分が書いたやり方でやれよw
675656:2009/11/09(月) 11:34:26
>>670 で、数字が1種類でも動くようにcheck()を改良せよ。
676デフォルトの名無しさん:2009/11/09(月) 11:39:58
>>661
で、どこがバグってるの?
677デフォルトの名無しさん:2009/11/09(月) 11:40:22
>>656
出来ないの?
678デフォルトの名無しさん:2009/11/09(月) 11:50:08
>>675
お前はなんで自分にレスしてんだよw
679613:2009/11/09(月) 14:32:26
関数ポインタをconstで宣言したいんですがー

const int(*func)(void*) = ...
のように宣言すると、funcの挙動としてconstが定義されて(戻り値がconst int型となり)
変数func自体はconst化されず、プログラム中でポインタの書き換えが行えてしまいます。

関数の挙動としては戻り値にconstをつけず、ポインタ自体にconstを当てはめたいのですがー
どなたかいい手法をご存知ないでしょうか?
680デフォルトの名無しさん:2009/11/09(月) 14:35:30
多分 int(* const func)(void*)
681679:2009/11/09(月) 14:42:37
>>680
早レスありがとうございます。が、だめでしたora
682デフォルトの名無しさん:2009/11/09(月) 14:42:39
やってみた

#include <stdio.h>

int func(void)
{
return 1;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

return 0;
}

出力結果
1
683デフォルトの名無しさん:2009/11/09(月) 14:44:50
ちなみに

#include <stdio.h>

int func(void)
{
return 1;
}

int func2(void)
{
return 2;
}

int main(void)
{
int (* const fun)(void) = func;

printf("%d\n", fun());

fun = func2;

return 0;
}

const_func2.c: In function 'main':
const_func2.c:19: error: assignment of read-only variable 'fun'
684デフォルトの名無しさん:2009/11/09(月) 14:44:59
そもそも なぜそのようなことをするのか
という疑問のほうが...
685679:2009/11/09(月) 14:47:55
>>680
早レスありがとうございます。が、だめでしたora
686679:2009/11/09(月) 14:49:30
>>680
と思ったら右辺のほうも書き換えないといけないんですね。
両方(*const func)で解決致しました。ありがとうございます。
687デフォルトの名無しさん:2009/11/09(月) 14:49:56
コンパイラ何?ってかそろそろスレ違いなんで

【初心者歓迎】C/C++室 Ver.69【環境依存OK】
http://pc12.2ch.net/test/read.cgi/tech/1256022655/

ここあたりに行こうぜ
688デフォルトの名無しさん:2009/11/09(月) 15:19:21
funcに一度値を設定したら書き換えることが出来ないんだろ?
どういう状況でfuncという変数を使うのか知ってみたい
689デフォルトの名無しさん:2009/11/09(月) 15:27:38
int Stage1( void );
int Stage2( void );
int Stage3( void );

int (* const func[])(void) = { Stage1, Stage2, Stage3 };

{
 while(1) func[now_stage];
}
690デフォルトの名無しさん:2009/11/09(月) 15:45:19
趣味の問題ね()
691656:2009/11/09(月) 16:37:19
>>659 待った?
int check(int n) {
  int i, a[2], temp, c = 0;

  while(n) {
    temp = n % 10;
    for(i = 0; i < c; i++)
      if(a[i] == temp) break;
    if(i == 2) return 0; // check NG
    if(i == c) a[c++] = temp;
    n /= 10;
  }
  if(c == 2) return 1; // check OK
  return 0;
}
692デフォルトの名無しさん:2009/11/09(月) 16:45:16
659は関係ないだろw
693デフォルトの名無しさん:2009/11/09(月) 16:49:14
おいおい、>>675の名前欄は656、つまりお前自身じゃねーかよw
自演で何やってんだよw
694デフォルトの名無しさん:2009/11/09(月) 18:05:46
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク):
  ブレゼンハムのアルゴリズムを用いて、ウインドウ内に線分を描画するプログラムを作成しなさい。
  動作の仕様は2通りの中から選びなさい。(どちらでもよい)

  仕様1(マウスの左ボタンと右ボタンを使用する。候補線を表示はなし。)
  マウスの左ボタンクリック   線分の始点座標の指定
  マウスの右ボタンクリック   線分の終点座標の指定及び線分の描画

  仕様2(マウスの左ボタンだけで操作する。候補線を表示する。)
  マウスの左ボタンクリック   線分の始点座標の指定、及び線分の描画開始
  マウスの移動         始点から線分を絶えず候補として描画。(古い線分は消す)
  マウスの左ボタンクリック   線分の終点座標の確定。線分を描画。

ただし、ライブラリの点を描画するAPI関数を使って線分を引くこと。直線を引くAPI関数を使ってはならない。

[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ: Microsoft Visual C++ 2008 Express Edition
 [3.3] 言語: C++
[4] 期限: 09年11月11日(水)
[5] その他の制限: 特になし

仕様は1と2どちらでもOKなので、簡単なほうで構いません。
よろしくお願いします。
695デフォルトの名無しさん:2009/11/09(月) 18:36:14
[1] 授業単元: C言語
[2] 問題文(含コード&リンク):不定方程式が解を持つか判断して、持つ場合には解を求めるプログラムを作れ
[3] 環境
 [3.1] OS: Windows vista
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語:C++
[4] 期限: 明日まで
[5] その他の制限: 特になし

もしどなたかやっていただけるならばお願いしますm(_)m


696デフォルトの名無しさん:2009/11/09(月) 19:30:06
[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10081.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2003
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限: 特になし
697デフォルトの名無しさん:2009/11/09(月) 19:58:10
>>654
ありがとうございます!
シミュレーション内容について詳しく書いたファイルを↓に上げました。
よければよろしくお願いします。

[1] 授業単元:
アルゴリズムとプログラミング
[2] 問題文(含コード&リンク):
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10082.txt
プログラムに使用するデータファイル↓
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10071.txt
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
Linux
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
gcc
 [3.3] 言語: (C/C++/どちらでも可 のいずれか)
C
[4] 期限: ([yyyy年mm月dd日hh:mmまで] または [無期限] のいずれか)
11月17日
[5] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)
特にありません
698デフォルトの名無しさん:2009/11/09(月) 19:59:12
>>696
buf[4] = '\0';
699デフォルトの名無しさん:2009/11/09(月) 20:37:11
#include <iostream>
using namespace std;

int main() {
int a[100],b=-9999;
int i=0,j;

do {
cout << "整数値を入力してください\n";
cin >> a[i];
b += a[i];
i++;
}while( a[i-1] != 9999);

cout << b << '\n';

for(j=0;j<i-1;j=j+1)
cout << a[j] * 3 << '\n';

return 0;
}

このプログラムってループを抜ける条件は9999と入れた時だけですか?
700デフォルトの名無しさん:2009/11/09(月) 21:02:19
>>699
いえ、他にも、100回を超えても何度も何度も操作を続けて
書き込み禁止のメモリに到達したときにも抜けます(異常終了という形で)。
701デフォルトの名無しさん:2009/11/09(月) 21:27:03
702デフォルトの名無しさん:2009/11/09(月) 21:29:26
>>700
ありがとうございます
703604:2009/11/09(月) 21:37:51
国語と数学の総合的な平均点も出力する
っていう言葉の意味が分からないんですが、これは、合計を5で割ればいいんですかね?
10で割ればいいんですかね?
704デフォルトの名無しさん:2009/11/09(月) 21:41:36
国語の合計と数学の合計の合計を10で割るのが一番正確だが
国語の平均と数学の平均の合計を2で割ってもまぁ良い
705デフォルトの名無しさん:2009/11/09(月) 21:44:31
[1] 授業単元:データ構造とアルゴリズム設計
[2] 問題文(含コード&リンク):
入力された小文字のアルファベットを,リストを用いて順次格納する.
’−’が入力された時に文字の入力を終了し,それまでに格納された全ての文字を表示するプログラムを作成
せよ.
ただし,リストに格納する際,リストの最後に追加するようにせよ.
例(a, b, c, - と順に入力したときa,b,cと出力される)
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語:C
[4] 期限:特に無し
[5] その他の制限:双方向リストは使わない。
ヘッダは#include <stdio.h>以外は使わない
706604:2009/11/09(月) 21:45:16
>>704
つまり、これは総合的平均っていうのは100を越すことはないという事ですか?
707デフォルトの名無しさん:2009/11/09(月) 23:07:35
>705
制限付きで面白そうなのでやってみようかな
708デフォルトの名無しさん:2009/11/09(月) 23:22:25
>>706
そういうことになるな。
709デフォルトの名無しさん:2009/11/09(月) 23:24:36
>>708
ありがとうございました
710デフォルトの名無しさん:2009/11/09(月) 23:35:40
10進数を2進数に変換するプログラムを 順番通りに表示できるようにするプログラムを配列を使って作るんですが

#include <iostream>
using namespace std;
int main() {
int i,n,bin[32];

cout << "10進数:";
cin >> n;
cout << "2進数:";
for(i=0; i<32; i++) {
bin[i] = n & 1;
n >>= 1;
}
for(i=31; i>=0; i--)
cout << bin[i];
return 0;
}
結局これは、0がいっぱい出てくるから、ダメですかね?
それとも負の数も考慮に入れたから、こういう事になったんですか?
711デフォルトの名無しさん:2009/11/09(月) 23:52:05
>>710
言ってる意味がわからない。
実行して無いけど、パッと見は合ってるように見える。

どんな入力をしたらどんな出力がされた?
1をいれたら00000000000000000000000000000001が出るのは正しいよ。
2進数での表示ってのは普通そういうもの。
712デフォルトの名無しさん:2009/11/09(月) 23:53:34
>>706,604
#include <iostream>
using namespace std;

int heikin(char *gakka){
  int i, seiseki[5], goukei = 0;
  float heikin;
  for(i = 0; i < 5; i++) {
    cout << "出席番号" << i + 1 << "番の" << gakka << "の成績を入力してください : ";
    cin >> seiseki[i];
    goukei += seiseki[i];
  }
  heikin = (float)goukei/5.0;
  cout << "平均点は" << (float)goukei/5.0 << "点です\n";
  for(i = 0; i < 5; i++) {
    cout << "出席番号" << i + 1 << "番の" << gakka << "の成績は" << seiseki[i];
    cout << "点で、平均との差は" << heikin - (float)seiseki[i] << "です\n";
  }
  return heikin;
}

int main() {
  float sou_heikin = 0;
  sou_heikin += heikin("国語");
  sou_heikin += heikin("数学");
  cout << "総平均は" << sou_heikin / 2 << "です\n";
  return 0;
}
713デフォルトの名無しさん:2009/11/10(火) 00:10:47
>>711
1だとそうやって出まして、-1だと、全部1がずらっと並びました。ごめんなさい
bin[i] = n & 1;っていうのはどういう意味ですか?というか、binというのは何でしょうか?
714デフォルトの名無しさん:2009/11/10(火) 00:11:11
>>710
こういう事?
10進数:19
2進数:10011

#include <iostream>
using namespace std;
int main() {
  int i=0,n, bufsz = sizeof(int) * 8, bin[bufsz];
  
  cout << "10進数:";
  cin >> n;
  cout << "2進数:";
  for(i = 0; i < bufsz; i++) {
    bin[i] = n & 1;
    if(!(n >>= 1)){break;}
  }
  while(i>=0){
    cout << bin[i--];
  }
  return 0;
}
715デフォルトの名無しさん:2009/11/10(火) 00:12:46
>>714
0がずらっと並ばないというのはそういう事です。
716デフォルトの名無しさん:2009/11/10(火) 00:21:12
>>714
でもこれ
定数式が必要です
bin:サイズが不明です
サイズが0の配列を割り当てまたは宣言しようとしました
って出てできません
717デフォルトの名無しさん:2009/11/10(火) 00:34:28
本当にごめんなさい。
n >>= 1; ってどういう事ですか? >>=って表現あるんですか?
718デフォルトの名無しさん:2009/11/10(火) 00:35:24
>>713
-1がそうなるのは正しい、「二進数」とか「二の補数」でググれ。
&ってのはand演算をしている。「論理演算子」でググれ。
binてのはbinaryの略で、そのまんま「二進数」の英訳。
二進数にした一桁一桁の0もしくは1を格納している。

>>716
本当はよりよいソースなんだけど、課題でそこまでこだわるこたーない
とりえあずbin[bufsz];をbin[sizeof(int) * 8]にすりゃ逃げられるだろう。

>>717
a >>= b は a = a >> bと 同じ。+=なら知ってるだろ、あれと同じ考え方。
719デフォルトの名無しさん:2009/11/10(火) 02:57:53
[1] 授業単元:画像処理Cプログラミング
[2] 問題文(含コード&リンク): 基本プログラムを元に各処理を行う
   基本プログラム:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10083.txt
  処理内容: ある画像に円形・方形切り出し
ラベリング、縮退・膨張の処理を行う
処理結果例は画像参照
  処理結果例:http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10084.zip
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語:C
[4] 期限: 2009年11月10日14:30
[5] その他の制限: 基本ソースを元に編集する。
  画像処理ライブラリの使用は不可。
切り出しの際の切り出しサイズの指定は特にありません。
期限が近すぎて申し訳ありませんが、よろしくお願いします。また、規制中らしくパソコンからの投稿が出来ないので携帯からの投稿で見難かったら申し訳有りません。
720デフォルトの名無しさん:2009/11/10(火) 03:29:44
おいっお前、毒を持っているかお?って聞いたんだお
そしたら何て答えたと思う?(キリッ)
Yes, I have. だっておー(バンバン)
721デフォルトの名無しさん:2009/11/10(火) 03:38:31


Y

宿題はやくやれってこと?
722696:2009/11/10(火) 04:13:07
>>698
ありがとうございます。
しかし、それですと、問題の以降3行ではなくて、以下3行を1行に修正する
と言うことになってしまうと思います。
問題が間違っているのかも改めて確認してみますが、何卒よろしくおねがいします。

[1] 授業単元: C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10081.txt
[3] 環境
 [3.1] OS: Windows XP
 [3.2] コンパイラ名とバージョン: VC2003
 [3.3] 言語: C
[4] 期限: 明日中
[5] その他の制限: 特になし
723デフォルトの名無しさん:2009/11/10(火) 06:53:58
以降3行と、以下3行と何が違うwwwwwww
724723:2009/11/10(火) 07:30:12
main(void){
  char buf[32], *p;

  strcpy(buf, "0123456789");
  p[p = buf, p += 4, 0] = '\0';
  puts(buf);

  return 0;
}
725デフォルトの名無しさん:2009/11/10(火) 08:05:38
[1] 授業単元: アルゴリズム[I]
[2] 問題文(含コード&リンク):a,b,c,d,eの5文字をアルファベットとして
 重複なく4文字をで構成される全てのwordのなかで部分文字列として、
 ad,bd,deを含まないものを表示せよ
[3] 環境
 [3.1] OS: Linux
 [3.2] コンパイラ名とバージョン: gcc 3.4
 [3.3] 言語: C
[4] 期限: 11月11日
[5] その他の制限 :
726デフォルトの名無しさん:2009/11/10(火) 08:53:30
727デフォルトの名無しさん:2009/11/10(火) 08:56:58
722は

p += 4;
*p = '\0';
puts(buf);

この3行を1行にして欲しいんじゃないか?
728デフォルトの名無しさん:2009/11/10(火) 09:08:28
できなくはないけど、日本語としてもプログラムとしても不自然だろそれ。
>>722がどうしてもというならやらないこともないが、それで困るのは>>722だろ。
729デフォルトの名無しさん:2009/11/10(火) 09:14:36
>>726
ちょ、7行目が未定義動作。
buf[4]='\0';
じゃないか。
730デフォルトの名無しさん:2009/11/10(火) 09:27:43
だからbuf[4]='\0'じゃ納得しないってのが722だろうがw
731731:2009/11/10(火) 09:50:49
732デフォルトの名無しさん:2009/11/10(火) 10:22:31
>>731
ありがとうございます。
733デフォルトの名無しさん:2009/11/10(火) 11:19:47
[1] 授業単元:卒業研究
[2] 問題文:白黒濃淡画像をガンマ補正するプログラムを作る
[3] 環境
 [3.1] OS:Windows XP
 [3.2] コンパイラ名とバージョン: Cygwin
 [3.3] 言語: C言語
[4] 期限: 2009年11月30日0:00まで
[5] その他の制限:特にないです

よろしくお願いします
734696:2009/11/10(火) 11:38:43
>>723 >>727
以降は、その行は含まれない。
以下は、その行が含まれる。

ものだと思ってました。プログラムの前に日本語勉強しろって感じですね

その行が含まれるのか聞いて見ます。
ありがとうございました。
735デフォルトの名無しさん:2009/11/10(火) 11:42:20
>>734
聞くなら、課題を提出した上で確認する形で聞くんだぞ。
736デフォルトの名無しさん:2009/11/10(火) 12:12:22
>>652
正の整数nの2乗の数に
737デフォルトの名無しさん:2009/11/10(火) 12:14:13
言いたいことがあるならはっきり言えよw
738デフォルトの名無しさん:2009/11/10(火) 12:16:53
>>737
31.622776601683793319988935444327
739デフォルトの名無しさん:2009/11/10(火) 12:19:15
問題文読めないバカは消えろw
740719:2009/11/10(火) 12:25:54
すみません問題文の記述に誤りがありました

誤 [2] 問題文(含コード&リンク): 基本プログラムを元に各処理を行う
正 [2] 問題文(含コード&リンク): 基本プログラムを元に編集し各処理を行う

わかる方いましたら回答お願いいたします
741デフォルトの名無しさん:2009/11/10(火) 12:27:41
>>727
sprintf(stdout, "%.4s", buf);
ってやるとどうなるんだろ。
問題見てないけど。
742デフォルトの名無しさん:2009/11/10(火) 12:30:37
>>741 コンパイルエラー
743デフォルトの名無しさん:2009/11/10(火) 12:42:21
>>739 自己紹介乙w
744デフォルトの名無しさん:2009/11/10(火) 12:43:19
>>652 >>739
√1000 = ?
745デフォルトの名無しさん:2009/11/10(火) 12:49:10
>>744
ほんと日本語読めてないな。
問題文音読してみろ
746デフォルトの名無しさん:2009/11/10(火) 12:52:26
まさか暴れてるのは質問主で、実は問題がこうである可能性は。

正の整数nの2乗が、2種類の数字で構成される
4桁の整数となるような n をすべて挙げなさい
747デフォルトの名無しさん:2009/11/10(火) 12:55:41
>>742
アラヤダ
fprintf(stdout, "%.4s", buf);
だと?
748デフォルトの名無しさん:2009/11/10(火) 13:02:36
説教じみてスマンが>>733は卒業研究なんだろ?
宿題ってレベルじゃないだろ
749デフォルトの名無しさん:2009/11/10(火) 13:04:46
>>745
>>746
正の整数nの2乗の数に、2種類の数字しか現れない
4桁の正の整数 n をすべて挙げなさい
750デフォルトの名無しさん:2009/11/10(火) 13:06:04
>>745
ぃょぅ、日本語は読めても意味をしっかりと理解できない、物事を的確に判断できない認知症患者w
頼むから自動車の運転だけはするなよ。他人を殺しかねないからな。せいぜいこのスレで
自分の勘違いを指摘する奴を必死に罵倒して顔を真っ赤にしてろやw
751デフォルトの名無しさん:2009/11/10(火) 13:10:10
#include<stdio.h>

int main(void){
int i;

for(i=32;i<100;i++) printf("%d^2 = %d ",i,i*i);

printf("たかだか70個だろ、自分で確認しろ");

return 0;
}
752デフォルトの名無しさん:2009/11/10(火) 13:12:39
>>746
>>651の記述が曖昧だな。
普通に解釈すれば、「4桁の正の整数 n」とは、2乗する前の「正の整数n」の事だろうけど。
問題文で計算の前後(n-->n*n)を同じ「n」で表現するのは混乱の元だから。
だが、ひょっとして問題文が間違っていて、実は
「正の整数nを2乗して得られる4桁の整数のうち、
2種類の数字しか現れないものをすべて挙げなさい」
かもしれん。
753デフォルトの名無しさん:2009/11/10(火) 13:15:44
別に[1]授業単元 のところになんて書いてあろうが
やるやつはやるしやらないやつはやらんし、
それが本当に宿題なのかなんなのか確認する術などないからいんじゃね
754デフォルトの名無しさん:2009/11/10(火) 13:22:17
>>750
すみませんがあなたの理解した内容を教えていただけませんか?
755デフォルトの名無しさん:2009/11/10(火) 13:27:10
簡単に釣られてどーする?
756デフォルトの名無しさん:2009/11/10(火) 13:37:06
1000*1000=1000000
2000*2000=4000000
3000*3000=9000000
3114*3114=9696996
757デフォルトの名無しさん:2009/11/10(火) 13:38:21
>>750は自分の勘違いに気づいて、恥ずかしさのあまり暴れた場合の好例
758デフォルトの名無しさん:2009/11/10(火) 13:39:22
要はnは4桁の正の整数ってことだが、わざとボケて突っ込んだ奴らに
まわされたってことだよw
759デフォルトの名無しさん:2009/11/10(火) 13:41:13
そうとしか読めないが。
760675:2009/11/10(火) 13:42:15
761デフォルトの名無しさん:2009/11/10(火) 13:46:07
>>758-759
火消しに必死だな
ボケて突っ込んだ?どこをどうよんだら?
762759:2009/11/10(火) 13:49:36
>>761
火消しがなんのことか知らないが、俺がそうとしか読めないと言ってるのは
求めるのは4桁の整数nであるということ。さっき来たからこのスレの流れは知らない
763デフォルトの名無しさん:2009/11/10(火) 13:49:48
またこのキチガイかw
勘違いして暴れたあげく、突っ込まれると釣りってことにして誤魔化す。
全く成長してないな。
764デフォルトの名無しさん:2009/11/10(火) 13:52:17
>>752
普通の日本語読解力があれば、651を誤読することはない。
765デフォルトの名無しさん:2009/11/10(火) 13:54:39
>>746
質問主は>>653で、答えが4桁であること自体には文句をつけてない。
766デフォルトの名無しさん:2009/11/10(火) 14:00:14
[1] 授業単元: プログラミング言語c
[2] 問題文(含コード&リンク):http://www.dotup.org/uploda/www.dotup.org348430.pdf.html
基礎となるプログラムhttp://www.dotup.org/uploda/www.dotup.org348443.txt.html
[3] 環境
 [3.1] OS: (Windows
 [3.2] コンパイラ名とバージョンVC
 [3.3] 言語: (C/
[4] 期限: ([14日
767デフォルトの名無しさん:2009/11/10(火) 14:00:44
>>正の整数nの2乗の数に、2種類の数字しか現れない
>>4桁の正の整数 n をすべて挙げなさい
まず4桁の条件を満たす最低値は32、最大値は99かな
100だと10000になっちゃうし、31だと961になっちゃうから。
768デフォルトの名無しさん:2009/11/10(火) 14:01:54
試しに書いて実行してみたが、ほんとに>>652の4通りしか出てこなかった
もっとあると思ってたのに・・・
769デフォルトの名無しさん:2009/11/10(火) 14:05:03
2進数なら全部そうだよ!
770デフォルトの名無しさん:2009/11/10(火) 14:10:29
>>736,738,743,744,749,750
ここまでは確定。
あとは、釣りで誤魔化そうとしてるのが怪しいが確定はできない。
771デフォルトの名無しさん:2009/11/10(火) 14:12:37
10進表記が2種類の数字から構成される平方数をすべて
列挙せよ(無限個ある場合は小さいほうから数えてn番目の
ものを構成する関数,s_10_2(int n)を作れ)
772デフォルトの名無しさん:2009/11/10(火) 14:20:31
なんか少しかえた問題出して誤魔化そうとする辺り、昨日と同じ流れに見えるw
773デフォルトの名無しさん:2009/11/10(火) 14:20:53
774デフォルトの名無しさん:2009/11/10(火) 14:25:17
誤摩化すって?5桁以上ではそういう数が無いことって説明できる?
775デフォルトの名無しさん:2009/11/10(火) 14:27:00
>>774
いや普通にあるよ?
だから、問題の指定が
「2種類の数字だけで構成される4桁の整数」で「その数はある整数の二乗でなければならない」ってことだろ?
776デフォルトの名無しさん:2009/11/10(火) 14:27:14
777デフォルトの名無しさん:2009/11/10(火) 14:29:34
>>775
2乗したときの数(n^2)が2種類の数字のみで構成されるような「4桁の数字」nだろw
778デフォルトの名無しさん:2009/11/10(火) 14:38:49
>>761 必死だなw
779デフォルトの名無しさん:2009/11/10(火) 14:39:28
>>767>>775は何人なの?
780デフォルトの名無しさん:2009/11/10(火) 14:40:46
>>779
日本人、かと思われますが、どう致しましょうか、大佐?
ピンポイント爆撃、バンカーバスター、クラスター爆弾、どれにしやしょ〜?
781デフォルトの名無しさん:2009/11/10(火) 14:44:07
>>651
「その数の自乗の10進表記に2種類の数字しか現れない
4桁の整数を列挙しなさい」ですね?

問題文にヘンにnとか横文字持ち出されてるんでお○カな人たちが混乱
してますよ
782デフォルトの名無しさん:2009/11/10(火) 14:44:47
混乱してるのは一人だけw
783デフォルトの名無しさん:2009/11/10(火) 14:48:51
正の整数nで2乗の数が、2種類の数字しか現れない
4桁の正の整数である n をすべて挙げなさい
784デフォルトの名無しさん:2009/11/10(火) 14:50:58
正の整数nで2乗の数が、2種類の数字しか現れない
4桁の負の整数である n をすべて挙げなさい
785デフォルトの名無しさん:2009/11/10(火) 14:54:12
    ((⌒⌒))
ファビョ━ l|l l|l ━ン!
(⌒;;.. ∧_∧
(⌒.⊂,ヽ#`Д´>   
(⌒)人ヽ   ヽ、从
 从ノ.:(,,フ .ノゝ⊃
人从;;;;... レ' ノ;;;从人
786デフォルトの名無しさん:2009/11/10(火) 14:54:58
ちょっと読みにくい日本語だととたんに読めなくなんだよな、このアホはw
何回こんな風に暴れて恥じかいても、懲りねーところが救いがたい。
787デフォルトの名無しさん:2009/11/10(火) 15:02:14
>>782
いや、お前だけだろw
788デフォルトの名無しさん:2009/11/10(火) 15:04:59
正の整数nで,2乗の数が2種類の数字しか現れない
4桁の正の整数である,n をすべて挙げなさい

正の整数nで,2乗の数が2種類の数字しか現れない,
4桁の正の整数であるnをすべて挙げなさい
789デフォルトの名無しさん:2009/11/10(火) 15:06:36
651だけど素直に読んで欲しい
答えは4つのようですね
790デフォルトの名無しさん:2009/11/10(火) 15:06:47
>>正の整数nの2乗の数に、2種類の数字しか現れない
>>4桁の正の整数 n をすべて挙げなさい
正の整数nの2乗の数 & 2種類の数字しか現れない4桁の正の整数
n をすべて挙げなさい
に≠&,に≠∩ 読点(に、)の位置が可笑しいとか。「の〜の〜の」の書き間違いとか。

正の整数nが2回も出てくるから、改行も削除して短くしてみた。
>>nの2乗の数に、2種類の数字しか現れない4桁のnをすべて挙げなさい
791デフォルトの名無しさん:2009/11/10(火) 15:09:19
>>788
原文改竄してまで、どっちにも取れるって言い張りたいの?w
792デフォルトの名無しさん:2009/11/10(火) 15:09:30
問題文と同じような文章を書き込みまくってる人がどんな意見なのか
ハッキリと言わないから分からないけど。解釈は一通りしか出来ないよ
793デフォルトの名無しさん:2009/11/10(火) 15:11:44
>>652,656,659はみんなちゃんとnが4桁って認識してる。
コードも書かない(書けない)アホが一人で暴れてただけw
794デフォルトの名無しさん:2009/11/10(火) 15:16:09
正の整数nの2乗の数が2種類の数字しか現れない。
4桁の正の整数 n をすべて挙げなさい。

正の整数nの2乗の数が2種類の数字しか現れない
4桁の正の整数なn をすべて挙げなさい
795デフォルトの名無しさん:2009/11/10(火) 15:18:51
>>789
大丈夫、読めてないのは一人だけだからw
796デフォルトの名無しさん:2009/11/10(火) 15:24:33
797デフォルトの名無しさん:2009/11/10(火) 15:26:22
>>791 >>793 >>795
お前自分がした失敗を必死に隠そうと必死過ぎだろw
バレてんぞw
798デフォルトの名無しさん:2009/11/10(火) 15:26:37
ネット掲示板では改行は区切りする人も居るらしい

正の整数nの2乗の数は、2種類の数字しか現れない4桁の正の整数
n をすべて挙げなさい
799デフォルトの名無しさん:2009/11/10(火) 15:28:02
失敗って何?
nは4桁って789(=651)も認めてるみたいだけど?
800デフォルトの名無しさん:2009/11/10(火) 15:29:08
>>799
白々しい、しらばっくれてやんのw
口数が多いだけ余計に怪しいんだよ
801デフォルトの名無しさん:2009/11/10(火) 15:30:52
すまんが何を言ってるのか理解できない。
君は>>736でnの2乗が4桁だと勘違いして暴れた人でいいのかな?
802デフォルトの名無しさん:2009/11/10(火) 15:36:02
10進数表記が2種類の数字で構成されるm桁の平方数を
すべて求めよ
803デフォルトの名無しさん:2009/11/10(火) 15:36:41
で、ここで自分は間違えた人間じゃないとか言っておきながら
自分は問題を解くコードを書いたんですか?w
804デフォルトの名無しさん:2009/11/10(火) 15:38:04
いいからお前は勘違いしてごめんなさいって言えよw
805デフォルトの名無しさん:2009/11/10(火) 15:53:41
課題を書き込みやすい雰囲気を作りましょう。
806デフォルトの名無しさん:2009/11/10(火) 16:00:15
宿題を丸投げするような度胸があれば、多少荒れてたところで気にしないだろw
>>1のテンプレすらみないで投稿するヤツも多いんだし。
807デフォルトの名無しさん:2009/11/10(火) 17:07:57
>>804
自分が間違えたんじゃないってアピールしたくて必死だなw
IDもないし、別にお前がどこの誰か分からないから、いい加減口を慎めよ、池沼w
808デフォルトの名無しさん:2009/11/10(火) 17:10:10
809デフォルトの名無しさん:2009/11/10(火) 17:14:01
>>748
レスありがとうございます
卒業研究の途中過程でガンマ補正のプログラムが必要だったんです

>>773
ありがとうございます
早速参考にさせていただきます
810デフォルトの名無しさん:2009/11/10(火) 17:24:10
>>808
やめて!彼の顔は真っ赤っかよ!
811デフォルトの名無しさん:2009/11/10(火) 17:47:16
あぶない!彼のHPはほとんどないぞ
812デフォルトの名無しさん:2009/11/10(火) 19:02:21
ヤツを甘く見るな!
ヤツのHPは無限に回復するぞ!
813デフォルトの名無しさん:2009/11/10(火) 19:07:39
めいそう を はじめた!
814694:2009/11/10(火) 19:44:23
>>701
ありがとうございました!助かりました。
815デフォルトの名無しさん:2009/11/10(火) 19:48:24
[1] 授業単元:C言語とアルゴリズム
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10078.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:出来るだけ早めに
816816:2009/11/10(火) 20:37:07
>>815
http://jbbs.livedoor.jp/bbs/read.cgi/computer/32221/1246384344/28
Linuxで"%*c"の動作はこれでいいんだっけ?
817デフォルトの名無しさん:2009/11/10(火) 21:34:06
[1] 授業単元:C言語 繰り返しと分岐の組み合わせ
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10088.txt
  (リンク先はエラーが出た自作の奴です)
N 円の借金がある.年利 a % の利息が付くとして,毎年 b 円返済したなら 何年で返済できるか計算するプログラムを作成せよ.
(N, a, b はキーボードから入力する)
ただし,無限ループに陥らないように工夫すること.
また,利息は返済前にかかるとせよ.なお,利子による端数(1円未満の 利子)は切り捨てること.

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:VC
 [3.3] 言語: C言語
[4] 期限: ([2009年11月12日まで]

期限が近くて申し訳ないです。一応自作の奴のエラーは

(34) : error C3872: '0x3000': この文字を識別子で使用することはできません
(34) : error C2065: ' break' : 定義されていない識別子です。
(38) :上とおなじ

というものでした。
宜しくお願いします。
818デフォルトの名無しさん:2009/11/10(火) 21:57:18
おもしろい
819デフォルトの名無しさん:2009/11/10(火) 22:02:03
>>816
大丈夫だと思います


[1] 授業単元:C言語とアルゴリズム
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10086.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン:gcc
 [3.3] 言語: C言語
[4] 期限:出来るだけ早めに

よろしくお願いします。
820デフォルトの名無しさん:2009/11/10(火) 22:56:22
[1] 授業単元:画像処理
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10089.txt
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio
[3.3] 言語:C
[4] 期限:2009年11月16日
[5] その他の制限:特に無し
821デフォルトの名無しさん:2009/11/10(火) 23:43:47
[1] 授業単元:プログラミング
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10090.txt
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:Microsoft Visual Studio 2008
[3.3] 言語:C
[4] 期限:2009年11月11日
[5] その他の制限:特に無いです。
期限が明日までです。
急ですみませんが、よろしくお願いします。
822デフォルトの名無しさん:2009/11/10(火) 23:58:20
了解
823デフォルトの名無しさん:2009/11/11(水) 01:09:34
>>808 見えない敵と戦う勘違い野郎必死だなw
824デフォルトの名無しさん:2009/11/11(水) 01:10:45
>>810=>>808
なに自作自演してんだよ?w
勘違いしたのが自分のくせしてw
あっ、自分で自分をいたぶる趣味のある人?マゾ?
825デフォルトの名無しさん:2009/11/11(水) 10:12:42
[1] 授業単元:プログム基礎
[2] 問題文(含コード&リンク):1から20までを表示するプログラムを繰り返し処理を用いて作製しよ
[3] 環境
 [3.1] OS:Windows vista
 [3.2] コンパイラ名とバージョン:gcc
[3.3] 言語:C
[4] 期限:明日
[5] その他の制限:特に無いです。
自分じゃわからないのでよろしくお願いします
826デフォルトの名無しさん:2009/11/11(水) 10:21:11
>>825
#include<stdio.h>

int main(void)
{
for(int i = 0; i < 20; i++) printf("%d", i);
return i;
}
827デフォルトの名無しさん:2009/11/11(水) 10:25:55
#include <stdio.h>
int main()
{
int i=0;
while(++i<=20) printf("%d", i);
}
828デフォルトの名無しさん:2009/11/11(水) 11:24:44
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int i = 0;
start:
printf("%d ", ++i);
if (20 != i) {
goto start;
} else {
goto end;
}
end:
return 0;
}
829デフォルトの名無しさん:2009/11/11(水) 13:18:02
#include <stdio.h>
main(){
char*a[] = {"1 2 3 4 5 6 7 8 9 10", "11 12 13 14 15 16 17 18 19 20"};
for(int i=0; i<sizeof(a)/sizeof(*a); i++) printf(a[i]);
}
830デフォルトの名無しさん:2009/11/11(水) 13:35:15
>>825
この人、今後どうするんだろ……
831デフォルトの名無しさん:2009/11/11(水) 14:09:56
832デフォルトの名無しさん:2009/11/11(水) 14:47:35
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10093.txt
[3] 環境
 [3.1] OS: (Linux)
 [3.3] 言語: (C) emacsで書くやつ・・
[4] 期限: できるだけ早く
833デフォルトの名無しさん:2009/11/11(水) 14:51:19
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10094.txt
[3] 環境
 [3.1] OS: (Linux)
 [3.3] 言語: (C) emacsで書くやつ・・
[4] 期限: できるだけ早く
834デフォルトの名無しさん:2009/11/11(水) 14:55:24
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10095.txt
[3] 環境
 [3.1] OS: (Linux)
 [3.3] 言語: (C) emacsで書くやつ・・
[4] 期限: できるだけ早く
835デフォルトの名無しさん:2009/11/11(水) 14:57:16
>>829
main() (笑)
sizeof(笑)
char *a[](爆笑)
836デフォルトの名無しさん:2009/11/11(水) 14:58:26
[1] 授業単元: プログラミング実習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10096.txt
[3] 環境
 [3.1] OS: (Linux)
 [3.3] 言語: (C) emacsで書くやつ・・
[4] 期限: できるだけ早く
837デフォルトの名無しさん:2009/11/11(水) 15:15:28
入力が文字(char)の場合、主にキーボードで入力の際に押されるリターンキーが無視できない
空白とタブは改行文字と同じ区切り文字として扱われる
バッファオーバーランが発生する可能性がある
予期せぬ値が入力されると、其の値を読み込まず、ストリーム上に残してしまう
838デフォルトの名無しさん:2009/11/11(水) 16:50:48
>>831
別な課題なので一緒にせず別にしてもらえないでしょうか?
お願いします
839デフォルトの名無しさん:2009/11/11(水) 18:31:08
840デフォルトの名無しさん:2009/11/11(水) 19:00:58
[1]授業単元:プログラム基礎
[2]問題文:http://Kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10101.txt
[3]環境
[3.1]OS:windousVISTA
[3.2]コンパイラ名:gcc
[3.3]言語:C言語
[4]期限:明日まで


自分にとって複雑でわからなかったです…
よろしくお願いします
841デフォルトの名無しさん:2009/11/11(水) 23:07:47
>>840
あんまきれいじゃないけどw
http://codepad.org/jZ6LnL38
842841:2009/11/11(水) 23:13:24
ごくろうさまでしたがぬけてたので。訂正
http://codepad.org/ziwiY0t3
843デフォルトの名無しさん:2009/11/11(水) 23:18:27
一目見てかなり笑えるバグを含むプログラム乙
844デフォルトの名無しさん:2009/11/11(水) 23:22:25
>>840
入力のチェック(0,1,2以外を入力、など)はしていない。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10102.c
845841:2009/11/12(木) 00:17:33
バグってるのなおしたお
http://codepad.org/ud5AtNmt
846デフォルトの名無しさん:2009/11/12(木) 00:20:55
もうちょっと工夫しろよ。
勝ち負けをテーブル参照にするとか、
いくらでもあるだろ。
847デフォルトの名無しさん:2009/11/12(木) 00:23:33
#include <iostream>
using namespace std;

int main() {

int i,j;
int vector[]={10,20,30,40};
int matrix[][3] = {{1,2,3},{4,5,6},{7,8,9}};


for (i=0;i<4;i++) {
cout << vector[i] << ' ';

}

cout << '\n';

for(i=0;i<3;i++) {
for(j=0;j<3;j++) {

cout << matrix[i][j] << ' ';

}
cout << '\n';

}

return 0;
}
848847:2009/11/12(木) 00:25:45
3元3列の連立方程式の係数を格納し、格納されて結果を表示するプログラムを表示せよ。ただし以下の2通りで行う事
係数を『初期化』を使って配列に入力する
キーボードから入れる
上に書いたやつを参考にできると思って載せたんですが、分かる人いますか?

上のプログラムを参考になるっぽいんですが分かる人いますか?
849デフォルトの名無しさん:2009/11/12(木) 01:49:16
850デフォルトの名無しさん:2009/11/12(木) 03:46:37
[1] 授業単元:C言語
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10103.zip
[3] 環境
[3.1] OS:Linux
[3.2] コンパイラ名とバージョン:gcc 4.2.3
[3.3] 言語:c言語
[4] 期限:2009年11月13日18:00まで
[5] その他の制限:どうなってるか知りたいので出来れば書いて頂いたプログラムの中にコメント
アウトで簡単な説明して頂けるとありがたいです。
課題内容の説明等が少し長いので、課題の内容とソースはzipにまとめています。
途中まで書いてみたのですが行き詰まりました。。。
851デフォルトの名無しさん:2009/11/12(木) 05:14:29
>>850
プログラムのデータ構造が指定されていてそれを十分生かして
やらなければならないとしたらコードテクニカル
でコメントがあっても理解するのは難しいとオモ(自分で
書かないとわからない)
固定されていないとすれば、データ構造設計ミスかも(行き詰まる
とオモ)
852デフォルトの名無しさん:2009/11/12(木) 09:58:39
[1] 授業単元:プログラミングC
[2] 問題文(含コード&リンク):ビット演算子を用いて入力された数値の「1の補数」が表示されるプログラムをC言語で作成しなさい
[3] 環境
 [3.1] OS: (Windows/Linux/等々)
 [3.2] コンパイラ名とバージョン: Visual Studio2008
 [3.3] 言語:C
[4] 期限: 無制限
[5] その他の制限: 入力される数値は8bitの整数とし、NOTは使わずにお願いします
853デフォルトの名無しさん:2009/11/12(木) 10:00:12
すみませんOSを書き忘れました
OSはXPです
854デフォルトの名無しさん:2009/11/12(木) 10:29:01
#include <stdio.h>
int main(int ac, char **av)
{
  int n;
  char buf[4096];
  fgets(buf, sizeof(buf), stdin);
  sscanf(buf, "%d", &n);
  printf("%d", n ^ -1);
  return 0;
}
855840:2009/11/12(木) 10:42:07
すみません助かりました!
ありがとうございます!
856デフォルトの名無しさん:2009/11/12(木) 12:30:35
>>833,834,836もよろしくお願いします。
自力ではできないし、聞けるような友だちもいなくて...
よろしくお願いします。。
857デフォルトの名無しさん:2009/11/12(木) 12:57:53
858デフォルトの名無しさん:2009/11/12(木) 13:07:11
同じレス貼り付けてるのかと思ってた
859デフォルトの名無しさん:2009/11/12(木) 13:09:10
860デフォルトの名無しさん:2009/11/12(木) 13:12:35
861デフォルトの名無しさん:2009/11/12(木) 13:31:49
>>860はバグがあったので消して修正した
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10107.txt
862デフォルトの名無しさん:2009/11/12(木) 14:08:30
gets関数は、コンソール入力では使わないで〜 お願い
自分のプログラムが吐いた文字列を読むとかそういう状況
だけに使ってね
863デフォルトの名無しさん:2009/11/12(木) 14:20:55
>>862
うっせーわボケ
そう思うならお前が答えてやれ
864デフォルトの名無しさん:2009/11/12(木) 14:44:53
getsはコンソールで使っちゃやだの
マナのやさしくC読んでくれないの?
865デフォルトの名無しさん:2009/11/12(木) 14:49:12
Cの規格票のどこにgets()を使っちゃだめだと書いてあるんだよ
指摘してみろ
gets_sは処理系依存だからだめ
fgets()を使えというんだろうが行末に'\n'が入るから嫌なんだよ
866デフォルトの名無しさん:2009/11/12(木) 14:56:35
gets()はバッファオーバーフローの原因になるからなるべく使うな
という事なんだろうが、「絶対に使ってはいけない」というレベルではない
宿題程度ならgets()で十分

使う人が気を付ければいいだけの話
誰かが規格票に書いてない事を無理に強制しようとしても無駄
867デフォルトの名無しさん:2009/11/12(木) 15:18:33
Cのプログラムは移植されやすいの。
バッファーオーバーランするとそれだけでハードが
壊れちゃう環境もあるの。だからマナを守ってね。お願い(はーと)
868デフォルトの名無しさん:2009/11/12(木) 15:33:23
こんな使い捨てのプログラムまでいちいちいちいち言われてたらうんざりするわなw
869デフォルトの名無しさん:2009/11/12(木) 15:42:48
マナの身勝手な理屈きいてくれてありがとう
これからもマナとC言語を愛してね
870デフォルトの名無しさん:2009/11/12(木) 15:42:53
>>867
なにが(はーと)だ気持ちわるいんだよネカマ野郎

>>868
その通り
俺はこれからもgets()を使うね
871デフォルトの名無しさん:2009/11/12(木) 15:43:34
>>869
とっとと消えろネカマ野郎
872デフォルトの名無しさん:2009/11/12(木) 15:55:11
こういう、自分では何もしないで、口だけだす奴は一番嫌いだな
朝鮮人みたいだ

義務を果たさず権利だけ要求するわけだから
873デフォルトの名無しさん:2009/11/12(木) 16:04:29
んでも、一度限りの適当に書いた使い捨てなプログラムに限って
わかりやすく印象的なツラしてるが故に、妙に流通して禍を齎す
ってことが得てしてありがちだともオモ
874デフォルトの名無しさん:2009/11/12(木) 16:08:31
どうでもいいよそんな事
悔しかったら自分で書け
それが本来当たり前なんだから
875875:2009/11/12(木) 16:32:19
876デフォルトの名無しさん:2009/11/12(木) 17:57:18
この間学校休んでいてノート写させてもらったんですが、誰の見てもこうやって書いてありますが実行しても動きません
cos(x/2)の値を二分法で出すC++プログラムを作る問題なんですが

#define err 10e-5
double x1,x2,c,e;

while(e >= err) {
c=(x1+x2)/2;
}
if(cos(x1/2)*cos(c/2)>0)
x1=c;
else
x2=c;
e=fabs(x1-x2);
}
cout << x1 << '\n';

return 0;
}

こう書いてありますが、正解教えてくれませんか?
877デフォルトの名無しさん:2009/11/12(木) 18:04:08
>>876
方程式 cos(x/2)=0 を二分法で解く、のではないでしょうか?
878デフォルトの名無しさん:2009/11/12(木) 18:05:15
>>877
多分そういう事です。じゃなきゃおかしいですものね
879デフォルトの名無しさん:2009/11/12(木) 18:14:24
#includeは?
880デフォルトの名無しさん:2009/11/12(木) 18:19:21
>>879
そういうのも何もないんですよね。仮にこれincludeつけても全然違うみたいですし…
大分前のですが、正解が知りたいです
#include <iostream>
#define err 10e-5
using namespace std;

double x1,x2,c,e;

while(e >= err) {
c=(x1+x2)/2;
}
if(cos(x1/2)*cos(c/2)>0)
x1=c;
else
x2=c;
e=fabs(x1-x2);
}
cout << x1 << '\n';

return 0;
}
881デフォルトの名無しさん:2009/11/12(木) 18:33:46
そりゃ、プログラムの一部だもの動くわけない。
882デフォルトの名無しさん:2009/11/12(木) 18:38:54
とりあえずパッと見て気づくのは、
・main関数の始まりがない。
・変数を初期化していない。
・coutの直前の } は何と対応するの?
・#include <cmath>がない。

一言で言えば、まったくプログラムの体をなしてない。
883デフォルトの名無しさん:2009/11/12(木) 18:39:36
mainがない時点で気がつくべきだったな
884デフォルトの名無しさん:2009/11/12(木) 18:42:21
にしてもなんで0を返してるんだ?
885デフォルトの名無しさん:2009/11/12(木) 18:43:07
抜けたんでしょう
886デフォルトの名無しさん:2009/11/12(木) 18:57:12
returnで抜いた
887デフォルトの名無しさん:2009/11/12(木) 19:20:38
[1]プログラミング実習
[2]下記のプログラムの問題点を指摘し正しく動作するように修正しなさい
[3]OS:(Linux) 言語:(C)
[4]できるだけ早く
[5]
#include <string.h>
int main()
{
char *str1 = "hoge";
char *str2 = "fuga";
strcat(str1, str2);
return 0;
}
888デフォルトの名無しさん:2009/11/12(木) 19:37:26
char str1[10] = "hoge";
889デフォルトの名無しさん:2009/11/12(木) 20:19:02
>>887
おいおい、メモリの割り当てをこわしてどうするんだ。解答側にたつには20年早い。
890デフォルトの名無しさん:2009/11/12(木) 20:20:41
>>889
ん?
891デフォルトの名無しさん:2009/11/12(木) 20:23:53
#include <string.h>
int main()
{
char *str1 = "hoge¥0¥0¥0¥0";
char *str2 = "fuga";
strcat(str1, str2);
return 0;
}
892デフォルトの名無しさん:2009/11/12(木) 20:28:06
>>891
リテラルを書き換えようとするなよ
893デフォルトの名無しさん:2009/11/12(木) 20:28:11
>>891
\0 が一個たりない(笑)
894デフォルトの名無しさん:2009/11/12(木) 20:31:22
>>891
segmentation falt
895デフォルトの名無しさん:2009/11/12(木) 20:35:43
>>894
bcc32 でコンパイルしたら、堕ちない。
あなたの使っている環境やコンパイラに問題があるのでは?
896895:2009/11/12(木) 20:36:24
あ、一個\0 を追加するのをお忘れなく。
897デフォルトの名無しさん:2009/11/12(木) 20:45:05
>>895
bccの方が問題だろw
898デフォルトの名無しさん:2009/11/12(木) 21:05:41
vc+2008 でも堕ちないようですね。 gcc は堕ちました。さてはて。
899デフォルトの名無しさん:2009/11/12(木) 21:10:14
#include <string.h>
#include <stdlib.h>
int main()
{
char *str1 = strdup("hoge¥0¥0¥0¥0¥0¥0¥0¥0¥0¥0¥0¥0");
char *str2 = "fuga";
strcat(str1, str2);
return 0;
}
900デフォルトの名無しさん:2009/11/12(木) 21:11:14
堕ちないのは勝手だけど
スタック潰してない?
901デフォルトの名無しさん:2009/11/12(木) 21:12:50

>>882
#include <iostream>
#include <cmath>
#define err 10e-5
using namespace std;
int main() {
double x1=0,x2=0,c,e;

while(e >= err) {
c=(x1+x2)/2;
}
if(cos(x1/2)*cos(c/2)>0){
x1=c;
else
x2=c;
e = fabs(x1-x2);
}
cout << x1 << '\n';

return 0;
}
これではダメですかね。合ってそうですが、何か実行できません
902デフォルトの名無しさん:2009/11/12(木) 21:15:31
ごめんなさい。こっちでした。こっちも合わないですが
#include <iostream>
#include <cmath>
#define err 10e-5
using namespace std;
int main() {
double x1=0,x2=0,c,e=0;

while(e >= err) {
c=(x1+x2)/2;
}
if(cos(x1/2)*cos(c/2)>0){
x1=c;
}
else{
x2=c;
e = fabs(x1-x2);
}
cout << x1 << '\n';

return 0;
}
903デフォルトの名無しさん:2009/11/12(木) 21:18:09
>>895
>>898
リテラルの書き換えはするなよ
904デフォルトの名無しさん:2009/11/12(木) 21:42:21
905デフォルトの名無しさん:2009/11/12(木) 21:53:12
>>904
すみません。でも
x1:cos(x/2)って入れると
x2:-9.25596e+061
って出ましたが、061なんて数字ありませんよね?
906デフォルトの名無しさん:2009/11/12(木) 21:55:18
>>899
strdup() を使うのなら、最後にfree()するのがお作法というもの。でてくるのは3年早い。(笑)
907デフォルトの名無しさん:2009/11/12(木) 21:55:22
そんなもんだ
908デフォルトの名無しさん:2009/11/12(木) 21:56:42
>>905
x1, x2 の間に解が存在するように、x1, x2 に数値を代入するのが二分法というものです。
909デフォルトの名無しさん:2009/11/12(木) 21:57:35
>>906
終わったら解放されるから問題ない
無限ループしてるなら別だが
910デフォルトの名無しさん:2009/11/12(木) 21:57:37
>>905
指数表記をしらないのか
911デフォルトの名無しさん:2009/11/12(木) 22:05:37
>>909
C が本来オブジェクトの扱いが貧弱で、メモリの確保にはそれなりの注意を払わなければならない、という特質をご存じないのかと疑われてもしかたがないと思いますが。
プロセス終了時に解放されるから問題ないと頭ごなしにいわれてもね‥‥‥。
912デフォルトの名無しさん:2009/11/12(木) 22:09:55
>>908
勘違いしてました。cos(x/2)じゃなくて、
5とか8とかの数字をその2つに代入するって事ですね

>>910
知らなかったですすみません
913デフォルトの名無しさん:2009/11/12(木) 22:12:35
>>906
の指摘がまっとうに見えて実は滅茶苦茶ハズしている件について
914デフォルトの名無しさん:2009/11/12(木) 22:13:14
>>912
そうです。cos(x/2)= 0 という方程式はプログラムに組み込まれています。
915デフォルトの名無しさん:2009/11/12(木) 22:14:01
>>913
どこをどうはずしているのか、まったく説明が出来ない件について(笑)
916デフォルトの名無しさん:2009/11/12(木) 22:15:30
KY 久しぶりに見た
917デフォルトの名無しさん:2009/11/12(木) 22:21:08
[1] 授業単元:C言語
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10109.txt
[3] 環境
 [3.1] OS:Linux
 [3.2] コンパイラ名とバージョン: gcc
 [3.3] 言語: C
[4] 期限: 11月20日
[5] その他の制限: 特になし。


918デフォルトの名無しさん:2009/11/12(木) 22:42:38
>>914
ありがとうございました
919デフォルトの名無しさん:2009/11/12(木) 22:43:01
>>887
#include <string.h>
int main()
{
char *str1 = "hoge";
char *str2 = "fuga";
strstr(str1, str2);
return 0;
}
920デフォルトの名無しさん:2009/11/12(木) 22:45:05
>>918
cos(x/2)じゃなくてsin(x/2)なら15行目のcosをsinに変えればいいと思って、実行したら、
x1:3
x2:4でそれぞれやったらcosの時と同じ値が出ましたがOKですか?
921デフォルトの名無しさん:2009/11/12(木) 22:56:28
>>917
http://codepad.org/iEIz7hlP
データファイルのパスは適宜ソースを書き直してやってください。

さて、宿題をしながらじっくりと考えていきましょうか(笑)
>>913
めちゃくちゃはずしている、とのことですが、どこがどうはずれているのかご説明いただけますでしょうか。
>>919
strstr() は標準にも入っている関数ですよ。なに寝ぼけているんですか。文字列をサーチしてどうするのですか?
922デフォルトの名無しさん:2009/11/12(木) 23:05:14
>>920
2箇所とも書き換えましたか?
x = 2π, 4π, 6π, etc になるはずですから、>>920 の結果はまずいですね。
923デフォルトの名無しさん:2009/11/12(木) 23:09:59
>>919は正しい。>>887の問題文がハッキリしないから、極端な話
int main() { return 0; }
でも正解。
924デフォルトの名無しさん:2009/11/12(木) 23:25:44
問題点を指摘していないのでNG
925デフォルトの名無しさん:2009/11/12(木) 23:48:53
>>922
3.99994になりました。
すみません
926デフォルトの名無しさん:2009/11/12(木) 23:55:39
mipsの質問もここにしてもいいですか?
スレチなら、誘導してもらえるとありがたいです
927デフォルトの名無しさん:2009/11/13(金) 00:01:17
はい
928デフォルトの名無しさん:2009/11/13(金) 00:14:27
[1] 授業単元: コンピュータアーキテクチャ (spimを使ったmipsプログラム)
[2] 問題文(含コード&リンク): 用意された100個の整数の値から最大の値を求めて、 画面に表示するプログラムを作れ
[3] 環境
 [3.1] OS: Windows
 [3.3] 言語: mips(アセンブラ?)
[4] 期限: 2009年11月13日10:00まで
[5] その他の制限: 授業では、資料配布のみ。初めて作りました。あまり理解が深くないです。


プログラムを作ってみた結果、実行できなかったので添削をしてもらいたいです。
初めて作ったのでひどいかもしれません。(.word は省略しました)
929928:2009/11/13(金) 00:15:25
.data 0x10008000
.word 100
.word 99
:
:
.word 1
.word 0

.text
.globl __start
__start:
addi $t0, $zero, 0
addi $t2, $zero, 100
addi $t7, $zero, 4
addi $t9, $zero, 1
add $a1, $gp, $t0
add $a2, $gp, $t7
lw $t5, 0($a1)
lw $t6, 0($a2)
930デフォルトの名無しさん:2009/11/13(金) 00:15:55
[1] 授業単元:プログラミング演習(初級)
[2] 問題文(含コード&リンク):
 
問3 多次元配列を用いて各自定めた行列(3×3)の転置、行列式、逆行列を求めるソースを作成せよ。

[3] 環境
 [3.1] OS: (windows xp)
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: (C++)
[4] 期限: 13日の23:59まで
[5] その他の制限: 関数を用いないで下さいとの事です。行列の成分も具体的に各自定めて良いようです。
931848:2009/11/13(金) 00:16:07
>>848誰か分かる人いませんか?
932デフォルトの名無しさん:2009/11/13(金) 00:17:01
どう見てもアセンブリです。
本当にありがとうございました。
933928:2009/11/13(金) 00:17:23
loop:
slt $t1, $t2,$t0
bne $t1, $zero, stopprog
slt $t3, $t5, $t6
bne $t3, $zero, loopend
addi $t5, $t6, 0
loopend:
add $a2, $a2, $t7
sub $t2, $t2, $t9
j loop
stopprog:
addi $a0, $gp, 0
addi $v0, $zero, 1
syscall
934デフォルトの名無しさん:2009/11/13(金) 00:22:52
>>925
3 〜 4 には解がないので、端点に収束してしまったようですね。
2π≒6.28 ですから、x1=6, x2=7 を入力すれば、解に収束するでしょう。
935デフォルトの名無しさん:2009/11/13(金) 00:42:29
(´・ω・`)
936デフォルトの名無しさん:2009/11/13(金) 02:28:08
937928:2009/11/13(金) 03:13:00
やっぱりアセンブリはだめでしょうか
938デフォルトの名無しさん:2009/11/13(金) 03:31:02
>>937
C宿題スレ的にはMIPS用のgccとか使って(動くかどうかは知らないし
入手できるかどうかも知らん)-Sオプションでコンパイルして.s
(アセンブリファイル)ファイルを出してそれを参考に
作れとしか言いようが無いな。

例えば次のコードとかコンパイルしてみる
int display(int);
int main(void){
int num[100]={1,100,2,99,3,98,4,97,5,96,6,95,7,94,....};
int i,max=-1;
for(i=0;i<100;i++) if(max<num[i]) max=num[i];
display(max);
return 0;
}
939848:2009/11/13(金) 16:22:06
a00x+a01y+ao2z=α
a10x+a11y+a12z=β
a20x+a21y+a22z=γ

連立方程式の形はこんな感じです。
940デフォルトの名無しさん:2009/11/13(金) 16:55:52
>>939
単純ピボット選択を使ったガウスの消去法で解けるだろ
反復法でもいい
941848:2009/11/13(金) 16:57:05
>>940
そんなの使うんですか。数学でも、ガウスの消去法なんて聞いた事なかったです。
どうりで難しいわけですね
942デフォルトの名無しさん:2009/11/13(金) 17:15:22
連立一次方程式 ガウスの消去法 C言語 でぐぐればいくらでも出てくる
943デフォルトの名無しさん:2009/11/13(金) 17:34:30
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10113.txt
[3] 環境
 [3.1] OS:Windows/vista
 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2008
 [3.3] 言語:C++
[4] 期限:2009年11月18日
[5] その他の制限: 発展問題は無視していいです〜。

よろしくお願いします。
944デフォルトの名無しさん:2009/11/13(金) 18:02:01
数独か?
3x3の領域がおかしい
945デフォルトの名無しさん:2009/11/13(金) 18:31:16
944は943のレスでしょうか?
そうならばどこがおかしいか言ってもらえれば。
946デフォルトの名無しさん:2009/11/13(金) 19:09:51
>>936
有難う御座いました
なんとか期限内に提出することが出来ました
947デフォルトの名無しさん:2009/11/13(金) 19:26:46
みんなはどうしてプログラミングが好きなの?
そしてみんなはプログラミングが大好きなの?
948デフォルトの名無しさん:2009/11/13(金) 19:29:16
回りくどい方法でも文句言わないし
作ったとおりに動くから好き
949デフォルトの名無しさん:2009/11/13(金) 19:42:56
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10114.txt
[3] 環境
 [3.1] OS:Windows/vista
 [3.2] コンパイラ名とバージョン: Microsoft Visual Studio 2008
 [3.3] 言語:C++
[4] 期限:2009年11月18日
[5] その他の制限:943ですが指摘されたので見たところ、
例文のところで一部0が足りなかったところがあったので修正しました。 問題文には間違いはありませんでした。
950デフォルトの名無しさん:2009/11/13(金) 19:43:22
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):
 
問 新聞の東京為替市場の欄を見て1米ドルと1英ポンドの値を調べ、
その値から1ポンドが何ドルかを算出するプログラムを作れ。
[3] 環境
 [3.1] OS: (windows xp)
 [3.2] コンパイラ名とバージョン: Visual C++ 2008
 [3.3] 言語: (C++)
[4] 期限: 15日の23:59まで
[5] その他の制限: scanf使用
よろしくお願いします
951デフォルトの名無しさん:2009/11/13(金) 19:59:50
>>947

すきだよ おれのいきがいだから
952デフォルトの名無しさん:2009/11/13(金) 20:34:49
何でもいいから10000行のプログラムを作れって教授に言われたw
953デフォルトの名無しさん:2009/11/13(金) 20:42:06
>>952
#include<stdio.h>

int main(void){
int i;
printf("#include<stdio.h>\nint main(void){\n\tint i=0;\n");
for(i=0;i<10000-6;i++) printf("\ti++;\n");
printf("\tprintf(\"%%d\\n\", i);\n\treturn 0;\n}\n");
return 0;
}
954デフォルトの名無しさん:2009/11/13(金) 20:51:27
>>953

そういう意味なのか?w
955デフォルトの名無しさん:2009/11/13(金) 21:09:22
>>952
10000行全部putsで教授の悪口でも書いて出せば?
956デフォルトの名無しさん:2009/11/13(金) 21:15:33
>>949
#include <stdio.h>

int main(void)
{
unsigned int a[9], n = 0, i;
FILE *fp;

if((fp=fopen("in.txt", "r"))==NULL) return 0;

for(i=0; i<9; i++) fscanf(fp, "%u", a + i);
fclose(fp);

for(i=0; i<9; i++) n |= 1 << (a[i] - 1);
n = ~n;

for(i=9; i>0; i--) printf("%c", 1 & n >> (i - 1) ? '1' : '0');

return 0;
}
957デフォルトの名無しさん:2009/11/13(金) 22:01:14
電卓ってプログラムで作れる??
958848:2009/11/13(金) 22:27:36
>>944
じゃあ、そのサンプルとは別で、
3元3列の連立方程式の係数を格納し、格納されて結果を表示するプログラムを作成せよ。ただし以下の2通りで行う事
係数を『初期化』を使って配列に入力する
キーボードから入れる
っていうのを教えてくれませんか
959959:2009/11/13(金) 23:18:02
>>850
#include <stdio.h>
int main(void) {
  float doller = 89.805;
  float pond = 149.430;
  printf("yen/doller="); scanf("%f", &doller);
  printf("yen/pond="); scanf("%f", &pond);
  printf("doller/pond=%f", (1/doller)/(1/pond) );
  return 0;
}
960デフォルトの名無しさん:2009/11/13(金) 23:47:15
>>697お願いします><
961デフォルトの名無しさん:2009/11/13(金) 23:47:38
そういう計算に浮動小数使ったら駄目だろ。
962デフォルトの名無しさん:2009/11/14(土) 00:18:39
>>957

簡単に作れるよ

他の人頼んだw
963デフォルトの名無しさん:2009/11/14(土) 00:20:04
>>957
どんな言語でも
言語名 + 電卓
とかでググればサンプルが出てくるよ
964デフォルトの名無しさん:2009/11/14(土) 01:07:18
プログラムで電卓を作るのは物理的に不可能だろ。
各種パーツと工作機械が必要。
965デフォルトの名無しさん:2009/11/14(土) 01:08:29
ただし英語圏の人間なら作れるな。
日本人でも英語圏に行けば作れるようになる。
966デフォルトの名無しさん:2009/11/14(土) 01:10:16
アメリカに行くと米や芋が野菜に変わるって話と似たようなもんか。
967デフォルトの名無しさん:2009/11/14(土) 02:15:19
処女が童貞になるようなものか
968デフォルトの名無しさん:2009/11/14(土) 02:31:10
>>956

ありがとうございました!
969デフォルトの名無しさん:2009/11/14(土) 02:43:24
[1] 画像処理プログラム
[2]
1 画像を読み込む
2 1の任意の箇所の隣接した同系色を範囲選択
3 読み込んだ画像の任意の箇所から色を抽出
4 2で選択した範囲を3の色で塗りつぶす
5 結果を出力する

[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: Visual Studio 2008
 [3.3] 言語: どちらでも可
[4] 期限: 09/11/30
[5] その他の制限: 制限なし

正直お手上げ状態です・・・
参考サイトでも構いませんのでご指導お願いします
あなたが解けない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
【過去ログ検索】        http://chomework.sakura.ne.jp/
【wiki】               http://www23.atwiki.jp/homework/

前スレ
C/C++の宿題片付けます 131代目
http://pc12.2ch.net/test/read.cgi/tech/1255709298/
971デフォルトの名無しさん:2009/11/14(土) 08:34:38
何勝手に直してんだよw
972デフォルトの名無しさん:2009/11/14(土) 08:37:14
片付けもらう
一言内容にについて

直ってねーw
973デフォルトの名無しさん:2009/11/14(土) 09:23:40
>>970 そろそろ直さないとナ
diff
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問や発言はスルーの方向で。
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問や発言はスルーの方向で。
あなたが解けないC言語/C++言語の宿題を片付けもらうスレッドです。気に入らない質問やその他や発言はスルーの方向で。
974デフォルトの名無しさん:2009/11/14(土) 09:24:02
たてました。

C/C++の宿題片付けます 132代目
http://pc12.2ch.net/test/read.cgi/tech/1258158172/

970は誤字の修正がちゃんとしてないようなので、
ここの1をそのままコピペしました。
975デフォルトの名無しさん:2009/11/14(土) 09:28:06
>>974 「ちゃんと」ちゃんこ作れ。
※ちゃんとは曖昧な言葉です。
976デフォルトの名無しさん:2009/11/14(土) 09:30:12
うめ
977デフォルトの名無しさん:2009/11/14(土) 09:41:12
>>975
>>972を見てこの場合のちゃんとの意味が理解できないようなら日本語を勉強しなおしてください。
978デフォルトの名無しさん:2009/11/14(土) 09:47:21
うめ
979デフォルトの名無しさん:2009/11/14(土) 09:48:53
>>969
画像形式の指定が無いから自分で勝手に設定すれば良いんじゃね?
980デフォルトの名無しさん:2009/11/14(土) 10:24:36
u,
981デフォルトの名無しさん:2009/11/14(土) 10:36:54
ume
982デフォルトの名無しさん:2009/11/14(土) 12:12:15
>>969
画像フォーマットのサンプル画像-UP
983デフォルトの名無しさん:2009/11/14(土) 13:29:12
984デフォルトの名無しさん:2009/11/14(土) 14:31:13
指定されてないんだから勝手に定義すればいいんだよ。
985デフォルトの名無しさん:2009/11/14(土) 14:44:35
ume
986デフォルトの名無しさん:2009/11/14(土) 18:44:36
すみません、お聞きしたいのですが、

C言語で、国語・数学・理解の得点を入力して、平均点が
90点以上…「平均点X点はAです。」
80点以上…「平均点XはBです。」
70点未満…「平均点Xは赤点です。」
と表示するプログラムを作成したいのですが、どのように書いたらいいのですかね?
当方初心者で全くわかりません。

どなたか回答してくれませんか?
987デフォルトの名無しさん:2009/11/14(土) 18:48:44
質問点プレにそってくれれば誰かが喜んで解答してくれるお
988950:2009/11/14(土) 19:03:09
[1] 授業単元:プログラミング論
[2] 問題文(含コード&リンク):
 
問 新聞の東京為替市場の欄を見て1米ドルと1英ポンドの値を調べ、
その値から1ポンドが何ドルかを算出するプログラムを作れ。
[3] 環境
 [3.1] OS: (windows xp)
 [3.2] コンパイラ名とバージョン: dev c++
 [3.3] 言語: (C++)
[4] 期限: 15日の23:59まで
[5] その他の制限: scanf、printf、int、switchは習いました。
前スレ950です。すみませんがよろしくお願いします

今、下記まで完成しました。
#include <stdio.h>

main()
{
int doll,pond;
int d,p;

printf("1米ドルと1英ポンドの値を入力してください");
scanf("%dドル %dポンド",&doll &pond);
printf("%dドル, %dポンド, doll,pond);

このあと、上記で入力した値から1ポンドが何ドルかを求めたいのですが、
わかりませんでした。よろしくお願いします。
989デフォルトの名無しさん:2009/11/14(土) 19:19:53
得点を入力する
入力した得点から平均点を計算する
平均点に基づいてメッセージを表示する

以上の処理を行うようなプログラムを書く
990デフォルトの名無しさん:2009/11/14(土) 19:23:25
テンプレ無視してすみませんでした。

[1] 授業単元:プログラミング論U
[2] 問題文:国語・数学・理科の3教科の得点を入力し、平均点が
    90点以上…「平均点X 評価はAです。」
     80点以上…「平均点X 評価はBです。」
     70点未満…「平均点X 追試の対象です。」
と表示するプログラムを作成しなさい。

  実行例
    国語90
    数学90
    理科90

  平均点90点 評価はAです。

[3] 環境
 [3.1] OS:windous
 [3.2] コマンドプロンプト
 [3.3] 言語:C言語
[4] 期限: 11月17日
[5] その他の制限: 完全な初心者です。

本当に申し訳ありませんがどなたか回答していただきたいと思います。
991デフォルトの名無しさん:2009/11/14(土) 19:30:12
>>990
70〜79までなんて表示すればいいんだ?
992デフォルトの名無しさん:2009/11/14(土) 19:58:06
>>991

情報不足過ぎてすみません。
70〜79まではCでした…
993デフォルトの名無しさん:2009/11/14(土) 20:01:09
もちつけ
994デフォルトの名無しさん:2009/11/14(土) 20:06:34
>>992
じゃあこれで
しかし、これくらいも書けないと次回以降の宿題も
全部ここで頼むことになる気がする

#include <stdio.h>

int main()
{
    int kokugo, sugaku, rika;
    int heikin;

    printf("国語");
    scanf("%d", &kokugo);
    printf("数学");
    scanf("%d", &sugaku);
    printf("理科");
    scanf("%d", &rika);

    heikin = (kokugo + sugaku + rika) / 3;
    printf("平均点%d ", heikin);
    if(heikin >= 90)
        printf("評価はAです。\n");
    else if(heikin >= 80)
        printf("評価はBです。\n");
    else if(heikin >= 70)
        printf("評価はCです。\n");
    else
        printf("追試の対象です。\n");
}
995デフォルトの名無しさん:2009/11/14(土) 20:10:47
プログラミング論I では何をやってたんだ
996デフォルトの名無しさん:2009/11/14(土) 20:16:28
>>994さん、迅速なご回答本当にありがとうございます。
助かりました。

プログラムをちゃんと理解できるように頑張ります。
997デフォルトの名無しさん:2009/11/14(土) 20:40:18
おーしマロがN88BASICでクソースを出そうじゃないか

10 input "国語";kokugo:input "数学";suugaku:input "理科";rika
20 heikin=(kokugo+suugaku+rika)/3.0
30 print "平均=";heikin
40 if heikin >90 then print "評価はAじゃ" :end
50 if heikin >80 then print "評価はBじゃ":end
60 if heikin >70 then print "評価はCじゃ":end
70 print "追試じゃ"
998デフォルトの名無しさん:2009/11/14(土) 20:48:06
>>997さん
参考にさせていただきます。
ありがとうございます。
999デフォルトの名無しさん:2009/11/14(土) 20:53:39
BASICが出来てパソコン大学小学生
Cが出来て中学生
C++が出来て高校生
Javaが出来て大学生
1000デフォルトの名無しさん:2009/11/14(土) 20:53:41
>>988
ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/10115.c
読み違えてたら爆死ものだけど

・scanfの使い方
・main関数について
見ておくといいと思うよ

C/C++の宿題片付けます 132代目
http://pc12.2ch.net/test/read.cgi/tech/1258158172/
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。