C/C++の宿題片付けます 131代目 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
09/10/17 01:08:18
あなたが解けない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] その他の制限: (どこまで習っているか、標準ライブラリは使ってはいけない等々)

【アップローダー==ラウンジ】(質問が長い時はココ使うと便利 回答者もコードが長ければここに)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
【C 関数検索 man on WWW】 URLリンク(www.linux.or.jp)
【過去ログ検索】        URLリンク(chomework.sakura.ne.jp)
【wiki】               URLリンク(www23.atwiki.jp)

前スレ
C/C++の宿題片付けます 130代目
スレリンク(tech板)

2:デフォルトの名無しさん
09/10/17 02:17:13
気に入らない質問やその他や発言はスルーの方向で。

3:デフォルトの名無しさん
09/10/17 02:33:05
相変わらずその日本語おかしいままか

4:デフォルトの名無しさん
09/10/17 02:48:40
52代目から続く伝統の誤字なんだから、軽々しく変えていいわけねーだろw

5:デフォルトの名無しさん
09/10/17 03:37:23
質問や発言は で良いかな?その他発言か?

6:デフォルトの名無しさん
09/10/17 04:11:33
>>3 が何

7:前スレ未解決問題
09/10/17 05:32:22
>>993  文字を一文字入力して、入力された文字が、英字の小文字であるか、英字の大文字であるか、数字であるか、それ以外の文字であるか判別
>>986(9982)  bitmap(BMP)ファイルの上に円を書く
>>923-925(CODE)  ナップサック問題のプログラムを利用し、グラフ彩色問題に当てはめる
>>883  Turbo C CUI画面制御 5問。
>>882  イテレータを使って微分方程式を解きたい

8:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/17 09:05:20
charの変数名にstrってw

10:デフォルトの名無しさん
09/10/17 09:14:33
cctypeは使わないのか。

11:デフォルトの名無しさん
09/10/17 12:39:25
>>986
FILE *fp = fopen("bitmapfile.bmp", "w+");
fprintf(fp, "円");
fclose(fp);

12: ◆/91kCCQXBo
09/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:デフォルトの名無しさん
09/10/17 14:17:49
>>11


14:デフォルトの名無しさん
09/10/17 15:57:39
スレリンク(tech板:986番)
私の環境は Windows XP, 処理系は gcc 4,.3.2(cygwin) です。
URLリンク(codepad.org)
日の丸になりました。

15:デフォルトの名無しさん
09/10/17 19:24:24
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[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:デフォルトの名無しさん
09/10/17 19:44:35
>>15
ないのですが。

17:15
09/10/17 19:59:01
>>16
申し訳ございませんです。
リンク間違えました。
一度違うものを上げてしまったもので・・・
正しくは、こちらです。
URLリンク(kansai2channeler.hp.infoseek.co.jp)
本当すいません。
よろしくお願いします。

18:デフォルトの名無しさん
09/10/17 20:32:26
>>15
過去問の焼き直しで細かな仕様は満たしていないかもしれません。
URLリンク(codepad.org)

19:デフォルトの名無しさん
09/10/17 20:40:26
前スレの993です。

ご回答してくださった方ありがとうございました。
参考にさせていただきます。

20:15
09/10/17 20:47:01
>>18
ありがとうございます。
いいえ、十分です。
本当にありがとうございました。
課題2は、課題1に()を使えるようにしただけですので
その部分を削って提出します。
助かりました。

21:デフォルトの名無しさん
09/10/17 21:13:32
>>14
986です。ありがとうございました!

22:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/18 01:05:03
そこは行くとかそういう問題じゃないw

24:デフォルトの名無しさん
09/10/18 01:19:02
>>23
すみません。これ分かる人いますか
C++です

25:デフォルトの名無しさん
09/10/18 01:19:52
要するに二分法でしょ
C++は関係無い

26:デフォルトの名無しさん
09/10/18 01:20:24
>>24
そうです。すみません

27:デフォルトの名無しさん
09/10/18 01:22:38
全くできてないものを貼って、ここまでは行きますとか言われてもな。
そんなんだったら、何も書かない方がマシ。

28:デフォルトの名無しさん
09/10/18 01:22:40
>>25でした

29:デフォルトの名無しさん
09/10/18 01:27:38
>>27
ここまでは行きます
というか
始まりはこの文からです
っていう意味です…

30:デフォルトの名無しさん
09/10/18 09:58:29
質問者は中学生なんだから、少しはいたわれw

31: ◆/91kCCQXBo
09/10/18 10:35:04
/*2分法の処理を行う関数*/
URLリンク(www.geocities.jp)
ヒント:C→C++ に置換
cout<<"範囲の左の値を入力してください.\n"; cin>>x1;
cout<<"範囲の右の値を入力してください.\n"; cin>>x2;
cout<<"解の値は "<<c<<"\n収束するのに "<<count<<" 回かかりました.\n";

32:デフォルトの名無しさん
09/10/18 10:37:55
教育は若いうちにやるほうが効果が高い

33:デフォルトの名無しさん
09/10/18 10:43:20
>>22
まずはテンプレート >>1 にそって問題を整理してください。書きなぐり?では他の人間に伝わりません。
日本語を磨くこともプログラミングでは重要です。我々は日本語を使って思考しているわけですから。

34:デフォルトの名無しさん
09/10/18 10:45:08
>>32
そうですか。もう私らではだめですかね。(TT)

35:デフォルトの名無しさん
09/10/18 19:11:45
[1] 授業単元: C言語演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: WindowsXP
 [3.2] コンパイラ名とバージョン: Borland C++ Compiler 5.5
 [3.3] 言語: C++
[4] 期限: ([2009年10月20日23:59まで]
[5] その他の制限:特にありません

よろしくお願いします。

36:デフォルトの名無しさん
09/10/18 19:22:50
>>035 // 適当〜なので。
int main(void) {
  while(1)
    printf(" %.16g\n", e());
  return 0;
}

37:35
09/10/18 19:39:56
>>36
ありがとうございました。
本当に助かりました。

38:デフォルトの名無しさん
09/10/18 22:26:02
[1] 授業単元: 数値計測演習
[2] 問題文(含コード&リンク):
URLリンク(kansai2channeler.hp.infoseek.co.jp)

問題文 
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:デフォルトの名無しさん
09/10/18 22:47:08
3x → 3*x

40:デフォルトの名無しさん
09/10/18 23:03:29
>>39 に加えて、途中の printf() の引数を間違えています。(表示がおかしい)
printf("%d:f(%20.16f)=%9.2e\n", i, c ,fc); に修正してください。i に対応する書式が足りない。

41:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/19 01:08:42
>>42
URLリンク(codepad.org)

44:43
09/10/19 01:09:55
問2
あとはこれを参考に考えて下さい。

45:デフォルトの名無しさん
09/10/19 01:11:10
>>41
e-lisp でしないといけないのですか?そうならばすれ違いですね。

46:43
09/10/19 01:19:51
>>43
間違えた。こちらに訂正します。
URLリンク(codepad.org)

47:デフォルトの名無しさん
09/10/19 07:20:25
>>32
物事をよく理解できない、勘違いでも丸暗記では意味がない。
教育の意味にもよるが、死ぬまで勉強。
生きている内に知ることは多い、時代も変わっていくしね。
そして、於いて朽ち果てていく己を知るのじゃ〜〜wwww

48:デフォルトの名無しさん
09/10/19 08:18:31
せめて漢字変換くらいまともにできるようになってからにしろよ、そういう寝言はよw

49:デフォルトの名無しさん
09/10/19 08:23:31
wつけといてよくいえるな。。。

50:デフォルトの名無しさん
09/10/19 08:34:07
>>45
emacs画面でする作業の事を、emacsで何々すると言う。例えばコンパイル&デバッガ。

51:デフォルトの名無しさん
09/10/19 08:35:31
>。。。
こんな句点の使い方は日本語にゃねーよw

52:デフォルトの名無しさん
09/10/19 09:23:59
 ど っ ち も ど っ ち 

53:デフォルトの名無しさん
09/10/19 09:47:05
[1] 授業単元:C++
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS:Windows
 [3.2] コンパイラ名とバージョン: (gcc 3.4 VC 6.0等)
 [3.3] 言語:C++
[4] 期限: 2009年10月22日

自分なりに考えてみましたがわかりませんでした。
宜しくお願い致します。

54:デフォルトの名無しさん
09/10/19 12:32:09
>>50
なるほど。
emacsでデバッガする
ですね

55:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/19 17:41:30
[1] 授業単元:プログラミング2演習
[2] 問題文(含コード&リンク):URLリンク(kansai2channeler.hp.infoseek.co.jp)
複素数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:デフォルトの名無しさん
09/10/19 18:17:04
>>55
URLリンク(kansai2channeler.hp.infoseek.co.jp)
むかしZ80で割り算ルーチンを書いてたのに忘れてた。
ググってやっと書けたけど、ほんとにむかし出来てたのか心配になった。

59:デフォルトの名無しさん
09/10/19 18:54:10
>>57
%f→%lf

60:デフォルトの名無しさん
09/10/19 18:54:58
あとshisu()の位置もおかしいな

61:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/19 19:30:52
>61
Brain F*ckの処理系作ればいいのか

63:sage
09/10/19 19:54:50
>>61 すみません、書き忘れました。

[1] 授業単元: プログラミング演習
[2] 問題文(含コード&リンク): URLリンク(kansai2channeler.hp.infoseek.co.jp)
[3] 環境
 [3.1] OS: linux
 [3.2] コンパイラ名とバージョン: gcc 
[3.3] 言語: c言語
[4] 期限: 2009年10月20日16:00まで
[5] その他の制限:簡単めのコードでお願いします。

64:デフォルトの名無しさん
09/10/19 21:36:30
前のスレの最後の方にユーグリッドの互除法のプログラムがあったはずなんですが、
ここに貼ってもらえませんか?
>>900番代後半だった気がするんですが

65:デフォルトの名無しさん
09/10/19 21:43:48
ユークリッド

66:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/19 22:57:33
>>66
質問の仕方が違うんじゃないの?

cos(x1/2)*cos(x2/2)>0 とか

68:デフォルトの名無しさん
09/10/19 22:59:01
>>48
うわ〜〜、変換ミスくらいで突っ込む、絶対にソースコードも
コンパイルするまでエラーしたことがない完璧主義者ですね?
カッコいいです!尊敬します!だから早く老いて死んでくれw

69:デフォルトの名無しさん
09/10/19 23:01:12
>>51
もはやこういった場所では正式な文書より喋り言葉が一般的なんだが
その程度のことを気にするお前は時代には乗り遅れる。
そもそも、文化は現在も人間が作っている。正式に認められていなければ
それは間違いというのは、文化の衰退を招く。少しは理解する頭を持て。
で、三点リーダーって・・・ではなく…を使うのが正しいとかなんとか。
所詮、自分が知っている 日本語も一部 だと気づくんだな。

70:デフォルトの名無しさん
09/10/19 23:07:35
>>69
と、偉そうなことを言っているが実はよくわかっていない馬鹿な>>69なのであった

71:254
09/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:デフォルトの名無しさん
09/10/19 23:14:18
実際>>69の日本語も相当なもんだしな。

73:デフォルトの名無しさん
09/10/19 23:15:28
>>71
> 2回確認して2回とも同じだった場合のみ処理を行うこと。
この辺が釈然としない

74:デフォルトの名無しさん
09/10/19 23:17:08
>>48
いやぁ〜ごめーん、ついうっかり。こういった場所や数学に関する話を他でするもんで
〜に於いてと記入することがあるんで、つい変換ミスしてたのに気づかなくって
ごっめーん、ついでに若くてごめーん、すいすいすいましぇーん

75:デフォルトの名無しさん
09/10/19 23:22:20
> こういった場所や数学に関する話を他でする
なんだって?

それと、数学で「〜に於いて」って使う?適当なアンカー希望

76:デフォルトの名無しさん
09/10/19 23:29:15
>>48

77:デフォルトの名無しさん
09/10/20 00:09:57
ファイルがバイナリかテキストかを判別する
プログラムはどうしたらいいですか?

78:デフォルトの名無しさん
09/10/20 00:16:34
バイナリモードで開いてテキストじゃない文字があればバイナリファイル

79:デフォルトの名無しさん
09/10/20 00:21:45
テキストファイルはバイナリファイルの部分集合

80:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 00:24:31
cなのかc++なのか、それが問題になるかも知れないし、環境もWindowsだけではちょっと。
って期限ながっっっ

82:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/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;
}


85:84
09/10/20 00:54:07
else if(a >= 'A')
printf("%c\n",a);

じゃなくて

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

だった

86:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 01:10:55
>>86
今見たら終わってる・・・w
本当にありがとうございます(´;ω;`)


88:デフォルトの名無しさん
09/10/20 01:30:46
前スレにも同じ問題あったな

89:デフォルトの名無しさん
09/10/20 01:41:32
>>84
forにしなくてもelseでいいんでない?
ぱっと見動くように見えるからいいけど。

それと、多分'a'から'z'までが連続している保証はないというツッコミも来るだろうけど、
宿題だからでスルーしてもいいと思う。

90:デフォルトの名無しさん
09/10/20 02:39:34
int main() (笑)

91:デフォルトの名無しさん
09/10/20 02:42:37
なにかおかしいかな?
引数ちゃんと書けってこと?

92:デフォルトの名無しさん
09/10/20 02:48:57
いや、問題ないよ
>>90の勘違いじゃないかな

93:デフォルトの名無しさん
09/10/20 02:59:15
>>92
int main() (笑)

94:デフォルトの名無しさん
09/10/20 03:06:15
>>93

95:デフォルトの名無しさん
09/10/20 03:06:28
わからん。
int main(void)
と書かないとダメとか程度の低い勘違いをしてるんじゃないよな?

96:デフォルトの名無しさん
09/10/20 03:13:51
>言語:C++
これが読めない文盲なんだろ。

97:デフォルトの名無しさん
09/10/20 03:14:19
アワレだな

98:デフォルトの名無しさん
09/10/20 03:23:17
>>96
>>84
問2
#include <stdio.h>

int main() (笑)

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

文盲(笑) 差別用語(笑) 池沼レベルの発言(苦笑)

100:デフォルトの名無しさん
09/10/20 03:38:52
Cでint main()がダメだという人って多いよね。
どこでそんな知識得たの?

101:デフォルトの名無しさん
09/10/20 03:58:05
>>80
[1] 授業単元:c言語
言語:C++

問2
#include <stdio.h>

int main() (笑)


102:デフォルトの名無しさん
09/10/20 04:03:44
Xeno091017 正式版
URLリンク(koreawatcher.at.infoseek.co.jp)
・正式版として最初のリリース。
・Jane終了時の挙動のみ091015試作品から変更された。
────────────
予告どおり、正式版をリリースしました。×ボタンのツールチップ
ヒントに関して、真魚のソースを参考にして修正を試みました。
JaneNidaの開発は事実上終了です。2chの仕様変更などで
対応するかもしれません。

103:デフォルトの名無しさん
09/10/20 04:04:03
> [1] 授業単元:c言語
> 言語:C++
(苦笑)

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

>>80
> [1] 授業単元:c言語
これが読めない文盲なんだろ。

105:デフォルトの名無しさん
09/10/20 04:58:56
>>90
int main() (笑)?

106:デフォルトの名無しさん
09/10/20 05:19:56
相変わらずすごい粘着力だw

107:デフォルトの名無しさん
09/10/20 07:35:21
Cならint main(void){}
C++ならint main(){}またはint main(void){}お好みで。

108:デフォルトの名無しさん
09/10/20 08:31:11
#include <stdio.h>
int main() (笑)

109:デフォルトの名無しさん
09/10/20 08:33:12
ビルダで言われるがままにしか作ったことないんだろ。
逆に可哀相な奴なんだから気にすることない。

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

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

>>96はこれが見えない文盲なんだろ。

111:デフォルトの名無しさん
09/10/20 09:40:57
別にそれでもC++としてコンパイルできるけど。

112:デフォルトの名無しさん
09/10/20 12:01:36
C++でstdio.hをインクルードしてもまったく問題ないと思うけど
>>113はどう思う

113:デフォルトの名無しさん
09/10/20 12:13:26
単に質問者が間違えただけだろ
いちいち揚げ足とんな>>90

114:デフォルトの名無しさん
09/10/20 12:53:25
>>81で早々にツッコミ入ってるのに

115:デフォルトの名無しさん
09/10/20 17:05:36
>>53
URLリンク(kansai2channeler.hp.infoseek.co.jp)

116:デフォルトの名無しさん
09/10/20 17:14:46
>>63
期限は10/21の16:00でお願いします。

117:デフォルトの名無しさん
09/10/20 17:20:30
特定のプラットフォーム限定のコード書いてコンパイラの独自機能
使いまくりなのに、標準を気にするなんておかしいね。
ターゲットようのコンパイラに通りゃなにやったって正義。

118:C初心者
09/10/20 18:36:06
Unix、C言語のみで、はじめにユーザーに整数入力を要求し、
その入力された整数を次の一行にその整数とHexに変換されたもの
を出力、その次の行には、はじめに入力された整数を少数にして
それをまたHexに変換。
もしユーザーが数字以外を入力した場合にエラーと表示させ、
”0”と打ち込めば終了。
というプログラムです。一行目はきちんと出てくるのですが、
入力された値を2行目で少数に変換し、それをまたHexにかえる
というのがわかりません。

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

>1
    1 0x00000001
 1.00 0x3F800000

> 

どうぞよろしくお願いいたします。

119:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 20:17:13
>>90 >>93 >>98 >> 101 >>105 >>108
スレリンク(tech板:940番)

>ANSI以前との互換性のために、ANSI-Cではプロトタイプ宣言の時だけは引数にvoidを
>明示しないとならないことになっている。
>定義ではvoidの明示は不要。
>C++ではプロトタイプ宣言でも関数定義でもvoidの明示は不要。
>
>つまり、ANSI-Cで引数の無いmain関数のプロトタイプを書く場合だけは、引数の型を
>voidとするのが正式。それ以外の場所は省略しても正式。


121:C初心者
09/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:デフォルトの名無しさん
09/10/20 20:29:07
>>121
何かしたいのかがわからん

123:デフォルトの名無しさん
09/10/20 20:40:58
>>120
なんでそんな、この宿題スレの過去ログでも争って結論が出たのを
今更蒸し返してんの?w
C言語とC++についてもISO、ANSI準拠の標準スタイルについて
説明されていたよ。で、あんたはC++で#include <stdio.h>とするのね?w

124:デフォルトの名無しさん
09/10/20 20:43:24
>>123
するだろ?
C++の規格のどこかにCのライブラリを用いてはならないって書いてあった?

125:デフォルトの名無しさん
09/10/20 20:45:45
>>124
このキチガイさんは<cstdio>って書いて欲しいんだよ

126:デフォルトの名無しさん
09/10/20 21:46:53
>>120
なんか引っかき回してすまないんだが、
mainのプロトタイプってどこかに書かれてる?
無いなら、最初に出てきた時、つまりmainの定義を以て宣言とする挙動になるはずだよね。

127:デフォルトの名無しさん
09/10/20 21:48:57
ANSI-Cにおいて、int main()が非合法であるかの確認をしたいです。

128:デフォルトの名無しさん
09/10/20 21:54:16
>>126
宣言のときなんていってなくね?
プロトタイプ宣言の時なんだから実体の定義を伴う宣言とは別だろ

129:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 22:07:21
>>128
void hoge(void);
void hoge() {}
int main() { hoge(1); return 0; }

このコードの1行目が無ければコンパイルできるじゃん。
それは、関数の定義内容を元にプロトタイプ宣言と見なしているってことじゃないの?

131:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 22:10:15
>>131
いいよ。
z[y]++;
にしてもいい。

133:132
09/10/20 22:11:49
あ。zは0-15までの16個ぶん必要だよ。

134:>>118
09/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
09/10/20 22:26:23
int i, x[3], y, z[16];

136:>>118
09/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:デフォルトの名無しさん
09/10/20 22:30:33
>>132
ありがとうございます。
この場合変数の宣言はどのようにするのがよいのでしょうか?

138:デフォルトの名無しさん
09/10/20 22:32:05
>>137
今まで通りでいいよ。

139:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/20 22:34:54
>>134
>>138
できました!ありがとうございます。

配列の宣言部分がおかしかったようです。

141:デフォルトの名無しさん
09/10/20 22:35:41
>>139
if(x=y)って大入試気になってね?

142:デフォルトの名無しさん
09/10/20 22:36:10
代入式!ええい・・・糞IMEめ

143:デフォルトの名無しさん
09/10/20 22:39:08
そこを直しても、ミスったときの表示はおかしいけどな

144:デフォルトの名無しさん
09/10/20 22:40:50
惜しかったなぁ。
まぁ、ここまで作れたならそれは大丈夫でしょう。

145:デフォルトの名無しさん
09/10/20 22:42:19
代入式・・・?

>>141-144
すみません初心者で・・・

146:デフォルトの名無しさん
09/10/20 22:44:50
>>145
x = yだとxにyの値が入っちゃうので
x == yにしないといけないよって言う話

147:デフォルトの名無しさん
09/10/20 22:45:02
>>145
=でつないじゃったら右を左に入れるだから
==じゃないとだめよ

148:デフォルトの名無しさん
09/10/20 22:46:11
あとはずれた場合に正解を表示させないとね

149:デフォルトの名無しさん
09/10/20 22:48:07
>>146-147
そうでしたか!なるほど・・・
どうもありがとうございます!

>>148
そっちにも問題がありそうですねorz
ちょっと試行錯誤してみます!

150:デフォルトの名無しさん
09/10/20 22:50:39
>>149
まぁ'='と'=='の勘違いは誰もが通る道だから
気にしなくていいよ

151:139
09/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:デフォルトの名無しさん
09/10/20 22:56:59
その上気づきにくい、、、が、コンパイラが警告出してくれてると思うよ。
警告 : 条件文書くとこで代入してるけど、これ意図して書いてる?
みたいなの。

153:デフォルトの名無しさん
09/10/20 22:58:01
おめでとう。imputはご愛嬌。

154:デフォルトの名無しさん
09/10/20 23:03:19
>>152
英語が苦手で警告文を解読するのも一苦労です・・・

>>153
ぶはw
これは恥ずかしいです・・・

155:デフォルトの名無しさん
09/10/20 23:48:47
C++のソースコードを書きます(キリッ)
#include <stdio.h>
int main()
{
return 0;
}
できますた!C++コンパイラでコンパイルして下さい!(キリッ)

156:デフォルトの名無しさん
09/10/20 23:53:45
>>155
問題なくコンパイルできますね。(g++, bcc32)


157:デフォルトの名無しさん
09/10/20 23:54:45
>>155の何が面白いのか真剣にわからない

158:デフォルトの名無しさん
09/10/21 00:08:41
宿題の答えくれなくて自暴自棄になってるんだと思う。

159:デフォルトの名無しさん
09/10/21 00:10:19
この粘着はCスレによく出没する頭のおかしい人だから、スルーしてください。

160:デフォルトの名無しさん
09/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:デフォルトの名無しさん
09/10/21 00:30:49
右シフトしたのと左シフトしたのの和でいこう。

162:デフォルトの名無しさん
09/10/21 00:43:35
乱数を使って半径rの球面上に一様に点をうつ方法を分かりやすく教えてください。
指向性を考える必要があるため割と難しい問題だと感じます。

163:デフォルトの名無しさん
09/10/21 00:46:34
>>162
質問スレでどうぞ
(ヒント:極座標[0,2π]x[0,π])

164:デフォルトの名無しさん
09/10/21 00:48:33
>>162
極座標使ったら簡単じゃねーの?

165:デフォルトの名無しさん
09/10/21 00:51:53
>>160
unsigned right(unsigned x, int n)
{
reutrn x >> n | x << (sizeof(unsigned) * 8 - n);
}

166:デフォルトの名無しさん
09/10/21 01:26:01
C++でsetwやsetprecisionで指定した桁数を解除するためにはどうしたらいいんでしょうか?

167:デフォルトの名無しさん
09/10/21 07:30:33
>>162
多分 [0, 4πr^2) の一様乱数を座標に変換するのがいいとは思うんだけど難しいね

168:デフォルトの名無しさん
09/10/21 18:24:38
>>126
main() のプロトタイプをわざわざかくのであれば、それは

 int main(void);

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

int main()
{
return 0;
}

と main() を定義しますよね。main() の定義であれば int main() と買いて、規格に沿っていない記法とはならないわけです。

169:デフォルトの名無しさん
09/10/21 19:00:39
>>168
C++ならそうだね

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

その上で、int main()の定義がANSI-Cにおいて完全合法であるからには、どこかで宣言されているか、
またはmainが特殊であるかのいずれかだと思うんだ。

172:170
09/10/21 19:22:02
>>170 は間違ってた

173:デフォルトの名無しさん
09/10/21 19:43:42
>>171
プロトタイプ宣言は「実体と伴わない関数の宣言」だろ
int main()って書かれてその後に実体がそのまま書かれてるなら「実体を伴う関数の宣言」なのだからプロトタイプじゃないだろ。


174:デフォルトの名無しさん
09/10/21 19:48:50
>>173
そっか。プロトタイプじゃないか。

プロトタイプ宣言はされてるのかなぁ

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

つまるところint main()は完全合法ってことになるのね

176:デフォルトの名無しさん
09/10/21 19:57:02
ANSIから外れた記述であるわけは無かろうと思っていたのに、C++だから合法みたいなレスが
いっぱいついてどうしようかと思った。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4795日前に更新/214 KB
担当:undef