トップページ⇒tech
701コメント231KB

C++勉強しようと思うんだけど・・・

■ このスレッドは過去ログ倉庫に格納されています
0001初心者NGNG
C++勉強しようと思うんですが、どこのOSが一番
お勧めなのでしょうか?
初心者の自分ですが、皆様のお知恵をお借りしたいと
思いますので、よろしくお願い致します。<(_ _)>
0175153NGNG
>>165
あちゃー、間違ったベクトルに進んでいましたか。
ついつい変数と行数が少ないほど良い気がしちゃうんですよ…反省。

x が入力された回数だから使い回せるな、とか考えて、さらに書き込んだあと
++x; を消して noline[ x - 1 ] を noline[ x++ ] にすれば良かったとかも思ってました。
0176169NGNG
>>171
えぇ、知っていますヨ
過去レスを読んでBCCについては、すでに提案されていたもので・・・。
1さんが既にBCCを使われているなら、それでいいと思います。
興味からお尋ねするのですが、BCCのメリットとは何ですか?
0177デフォルトの名無しさんNGNG
>>175
俺も工房の時そう言うコード書いてたw(今もたまに)。
昔ならともかく今はメモリなんて腐るほどあるんだからあまり神経質になることはないと思う。
コンパイラがある程度最適化してくれるし。

凝った言葉で作文を書くと後で読んで意味がわからなくなる。そんな感じ。
誰が見てもわかりやすい作文がなんだかんだ言ってよしとされる。
0178デフォルトの名無しさんNGNG
>>176
BCCのいいところ・・・無料である・クセが少ない・無難である
>>177
BCCは最適化しない。
しかしケチって醜いソース書いて、実行時間が0.1秒早くなる代わりに
デバッグに1時間かけるよりも、見やすいソース書いて、実行時間が
0.1秒遅くなって、10分でデバッグが終わる方が良かろう。
0179デフォルトの名無しさんNGNG
>>176
コマンドプロンプトで動作します。
C++を使いたいだけならcygwinと言う大げさな環境を導入するまでも無いかなと考えたからです。
恐らくフリーと言うことを強調されているのかなと思いこちらもフリーで対抗したと。
0180デフォルトの名無しさんNGNG
>>178
そうなの〜。勉強になった。あくまでおためし、学習用って位置づけか。
0181初心者NGNG
>>169さん
ちなみに自分はWINです。
0182178NGNG
>>180
「この開発環境は初心者勉強用だから…」
と初心者に言ってプログラミングを勉強させると、かなりの確立で
やる気を無くすと思うのだが。。

いや、漏れは実はDelphi使いなんだが、Cのライブラリを使いたい時など、
上手い具合にBCCを使ってる。結してBCCは子供だましではないよ。
0183デフォルトの名無しさんNGNG
>>182
まぁ、今はCPU資源も豊富だからね。最適化なんかしなくても(略

Delphiは素晴らしい。
0184デフォルトの名無しさんNGNG
>>182
ライブラリをDLLでラップする感じ?良いこと聞いた♪
0185デフォルトの名無しさんNGNG
素晴らしい?
0186169NGNG
1さんはC++(またはC)の初心者ですか?
それともプログラミング初心者ですか?
PC経験はどれくらいですか?
WIN環境意外にも興味はありますか?
将来はどっち方面へ(プログラミング全般を極めるとかSEになりたいとか)
答えられる(答えてもいいなと思う)範囲で教えて下さいナ
0187169NGNG
WIN環境以外にも興味はありますか? <修正スマソ
0188デフォルトの名無しさんNGNG
>>186
過去ログ読めばわかるらしいぞ。

コード見る限りCとプログラムのリテラシーはあるみたいよ。
0189初心者NGNG
169さん
他にどのような環境があるのか分からない状態(知識不足)
なので、なんとも答えられません・・・
0190169NGNG
>>188
スマソ、ろくに読んでいなかった(w
今、読んで大体わかったヨ
それでも、もう一度彼から、まとまった形で情報が欲しいな
皆がより的確なアドバイスができるようにネ
0191169NGNG
>>189
ゴメン、環境についてはWindowsで良いでしょうね(とりあえず、他は視野に入れる必要ナシ)
↓の目的からすれば(Win系が一番充実しているでしょう)

>ちなみにC++を覚えたいという目的は、PC(プログラマブルコントローラー)
>とリンクさせて制御系のシステム構築が出来るようになるのが
>目的なのですが・・・
0192デフォルトの名無しさんNGNG
>>191
最終的にはPCをラップするクラス書いたりとか?
0193デフォルトの名無しさんNGNG
>>154
好みの問題であるんだけど、
将来、他の言語も勉強するつもりがあるなら、

> while ( no && x < 100 ) {

while ( no != 0 && x < 100 ) {

と書いた方がよいかも。

>>156
おれの場合、

for ( y = 0; y < x; y++ ) {
  // nolist[x - y - 1]というように参照

と書いてる。多少難しくなるが。
0194169NGNG
>>191
捕捉
PC(プログラマブルコントローラー)とセットの開発環境やIFの類が充実している
0195デフォルトの名無しさんNGNG
>>178
オプションをつければ最適化するようです(-O1:サイズ,-O2:メモリ)
あと、BCCの良いところは……メッセージが日本語。
(cygwinはいろいろあって便利だけど、gccの為だけに入れるのはどうかと。
unixのツール「群」が要らない人にとっては単なる無用の長物だと思います)
>>163,>>165の問題は、(doの辺りだけ書き換え)
int temp;
  do {
    cin >> temp;
    if (temp == 0)
      break;
    nolist[x] = temp;
    ++x;
  } while (x < MAX);
こんな感じで良いんでしょうか?
0196162NGNG
>>195
おめでとう! 正解だ!

今のところは扱ってるのがintだから実感はないだろうけど、あとあと
クラスオブジェクトを使うようになったらわかるよ。
そのコードが、C++として正しく、安全で、かつ最も効率のいい
ものなんだって。
0197デフォルトの名無しさんNGNG
>>132 1ではないですが、�Dをやってみました。
いかがなもんでしょう。

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

#define MAX 100

int main(void)
{
int a[ MAX ];
int i, j, tmp;

for (i = 0; i < MAX; i++) {
a[ i ] = rand();
}

printf("ソート前\n");
for (i = 0; i < MAX; i++) {
printf("%d\t", a[ i ]);
}
printf("\n");

for (i = MAX -1; i >= 1; i--) {
for (j = 0; j <= i - 1; j++) {
if (a[ j ] > a[ j + 1 ]) {
tmp = a[ j ];
a[ j ] = a[ j + 1 ];
a[ j + 1 ] = tmp;
}
}
}

printf("ソート後\n");
for (i = 0; i < MAX; i++) {
printf("%d\t", a[ i ]);
}
printf("\n");

return 0;
}
0198デフォルトの名無しさんNGNG
いや、なんつーか、その、
まだまだvectorやistream_iteratorとか、
もっと、その、なんだ、C++っぽくかつスマートな書き方があるだろ、
おい。

0199デフォルトの名無しさんNGNG
>>196
変数tempも

> 1.入力された数字を受け取る
> 2.入力された数字が正しいかどうかを判定する

の目的で使われている気がするが違うの?
イマイチ差違がわからん。
0200153NGNG
>>196
>>195 は僕じゃないんですが、そっか、break使えばいいんですね。

>>132 の (4を 書きましたが、これも問題多そうで…
採点お願いします。

#include <iostream.h>
#define MAX 1001

int main( void )
{
  int all[ MAX ] = { 1, 1 };
  int half = MAX / 2;

  for ( int x = 2; x < half; ++x ) {
    if ( !all[ x ] ) {
      for ( int y = 2; x * y < MAX; ++y ) {
        all[ x * y ] = 1;
      }
    }
  }

  for ( int j = 0; j < MAX; ++j ) {
    if ( !all[ j ] ) {
      cout.width( 4 );
      cout << j;
    }
  }

  return( 0 );
}
0201デフォルトの名無しさんNGNG
<iostream.h>ツカウナ。<iostream>ダロ。
0202デフォルトの名無しさんNGNG
なんでC言語って挫折しやすいの?

俺VBもDelphiも普通に出来るんだけどCは何故か挫折しちゃった。
何が原因なの?
0203デフォルトの名無しさんNGNG
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <numeric>

using namespace std;

int main( void )
{
 vector<int> v;
 istream_iterator<int> isit(cin);

 copy(isit, istream_iterator<int>(), back_inserter(v));
 size_t sz = v.size();
 for (size_t i = 0; i < sz; ++i)
 {
  cout << i + 1 << "回目の入力 = " << v[i] << endl;
 }
 double avg = accumulate(v.begin(), v.end(), 0) / (double)sz;
 cout << sz << "回の平均値 = " << avg << endl;

 return 0;
}
0204デフォルトの名無しさんNGNG
>>198>>201
まぁそういう主旨のスレではありませんので、大目に見てやってくださいな。
>>200
ナントカの振るい作戦ですね、でも配列は0で初期化しましょう。
>>202
なんでだろうね、漏れもターボパスカルから入ったよ。
0205デフォルトの名無しさんNGNG
>>203
はいはい、すごいですねぇ。
>>200
#define MAX 1001
なんか1001ってのがイレギュラーで気持ち悪いな、
0206デフォルトの名無しさんNGNG
>>202>>204
Cの*優れた*教科書はどれも、計算機科学の基礎知識と、FORTRANやPASCALなどの
高級言語の知識がすでにあるものとして書かれているからです。
計算機科学の素人がいきなり手をつけようとしてCを選ぶのは、たぶん、間違いなのです。
0207デフォルトの名無しさんNGNG
>>203
「Cスタイルのキャストを使うなよ」というツッコミを釣りたかったわけか?
0208デフォルトの名無しさんNGNG
ソースコード書いてアーでもない、コーでもない
とやって、楽しいのだろうか?
本質的な追求は為されないのだろうか<このスレの本質ってナニ
0209162NGNG
>>199
ごめん、ほかの部分に浮かれてて、そこを忘れたよ(笑)。
0210204NGNG
>>206なるほど、禿銅です。
そう考えると、"Delphiの良著"もCの轍を踏んでますな。
"Pascalの良著"+Delphi付属の"dcc32.exe"(コンソールコンパイラ)で基礎を
叩き込んで、Delphi→BCB or VC と進むのが現代の王道かもしれない。
0211デフォルトの名無しさんNGNG
いやここは男らしくVB.NETかHTML手書きから。
0212デフォルトの名無しさんNGNG
>>208
208はプログラミング初心者の頃、ソース書いてあーでもない、こーでもない、と
やらなかったのだろうか?
つーか208はプログラム書けないんだろ。

>>210
PASCALの良著の見分け方・・・10年以上前に初版が出版されていて、現在でも
改訂されながら版が重ねられていること。

>>211は男を極めてるので、漏れなく放置致します。
0213デフォルトの名無しさんNGNG
>208はプログラミング初心者の頃、ソース書いてあーでもない、こーでもない、と
>やらなかったのだろうか?

これが楽しいと思わなければプログラムを趣味に出来ないだろ。
0214208NGNG
>>212
そりゃやったさぁ、今だってやるよ
ところで1はこの「betterなソースコードを書こうゼ」コーナーには
参加しているわけ?

1の問いが完結し、その発展形として
「betterなソースコードを書こうゼ」合戦があるのならば良いと思うヨ
0215デフォルトの名無しさんNGNG
>>100辺りからスレ方針が変わった模様。
0216208NGNG
ふーん、ゴメン、邪魔したね bye
0217208NGNG
最後に一言、C++だったら何でclassの話をしないのかな?不思議
0218デフォルトの名無しさんNGNG
>>217
>>1-100読んで彼の今のレベルを認識すればよい。
捨てぜりふ、カコイイ!
0219デフォルトの名無しさんNGNG
すでにiostreamを使ってるからいいんでない?
使い方が先でしょ。何にしても。
0220デフォルトの名無しさんNGNG
>>132の課題�E辺りで、

但し、線形リスト全体をクラスメソッド"push"と"pop"を持ったクラスとして
実装し、線形リスト自体は外部から隠蔽すること

という但し書きを加えれば良いと思います。

しかし異色の名スレになりつつあるな・・・
0221デフォルトの名無しさんNGNG
>>220
そだね。第一回の締めくくりと第二回の導入が入っていい感じかも。
0222デフォルトの名無しさんNGNG
>>218
1はCではなくC++を学びたいと言っている
ということはoop言語に魅力(必要性)を感じたということではないか
ならば始めからclassについて言及されるべきでは

>>219
classの考え方や実装方法を先に知ってもいいのでは
printfじゃ何でダメなのという話になる
0223デフォルトの名無しさんNGNG
日本人はだね、型からはいるのが一番わかりやすいの。

ピヤノやお琴もそう。
とりあえず、言われたとおりの音をだね、
言われたとおりに、体が覚えるまで、鳴らすの。

徐々に、リズムを買えたり、音階を広げていったり、
和音にしたり、リズムをつけたり、アレンジしたり、
ソロの練習をしたりスンの。

でね、cinとcoutと配列と数字のやりとりはね、
ピアノで言うところのカノンなの。
お琴で言うところのさくらさくらなの。

ちょっと変った教室ではもっとしゃれた曲から教えてくれるけどね、
とりあえず、型からはいるのが、一番なの。

そのうちね、作曲のやり方もやるのよ。もちろん。
0224初心者NGNG
皆さん、こんばんは!!
なんか、あっという間に1000までいきそうな
雰囲気にかなり焦ってます・・・
頂いた課題も(((?o?);などと悩みながら、色々
試しながらやってます。
なんか悩んでる間に1000までいきそうな感じですね〜。 (_´Д`)
0225デフォルトの名無しさんNGNG
>>222
ふと思ったけどC++ってなんでcoutなんですか?
いきなり掟破りな文法なんですが。
0226デフォルトの名無しさんNGNG
標準出力以外にC++で明確に定義された見てわかる形式のアウトプットの方法がないから。
0227デフォルトの名無しさんNGNG
>>226
ごめん。理解が困難。

じゃあprintf()はなぜダメ?可変長引数?
0228デフォルトの名無しさんNGNG
>>225
coutというオブジェクトに文字列を流し込んでいるのよ(<iostream>)
ヤパーリCとC++の考え方の違いを教えないとダメでしょ
0229デフォルトの名無しさんNGNG
課題がどうとか言ってないで(ついでにネットなんてうろついてないで)
・C++の文法
・C++の標準ライブラリの使い方(STL、クラスライブラリ含む)
・OS、作りたいアプリ固有のライブラリ・フレームワークを覚える
(WindowsならMFC, VCL, DirectXなど)
を端からゴリゴリ覚えていけ。

んで暇があったら
・アルゴリズムとデータ構造
・OOP全般
やれ。

突っ込み覚悟で補足しとくと後半の二つはアプリ作成には必須ではないよ。
上と平行して覚えてくのはかまわないけど下からやると飽きて挫折する。
0230デフォルトの名無しさんNGNG
そういえばこのスレ、オブジェクトという言葉すらロクに出てこなかったネ
0231デフォルトの名無しさんNGNG
>>230
煽るだけならよそで。
始めからいたような顔はやめてください♪
0232デフォルトの名無しさんNGNG
なんでさ、初心者相手に先走ろうとするの?
OOPなんて構造化プログラミング知らない人間に教えても混乱するだけじゃない?
構造化プログラミングも十分理解してない人間にcoutだprintfだって言ったって
わからんよ。
それよりOOPのことは>>220のように�Eで始めて触れても遅くないと思う。

CとC++って勉強する上でシームレスに繋がってないのが大きな欠陥だよなぁ。
その点、PascalからObjectPascalを設計した人はエライと思うよ。
0233デフォルトの名無しさんNGNG
>>231
だってCじゃなくてC++をやりたいんでしょ?
煽りではないよ、目を向けて欲しいだけです
0234デフォルトの名無しさんNGNG
iostreamがなぜ生まれたのかから話すと長い。

なんでCは
#include <stdio.h>
int main()
{
printf("Hello, World!\n");
return 0;
}
ではじまるのか?
と同じだな。
話すと長い。

printfには型安全がない。
基本型の理解やポインタの理解、スタックの理解、書式の理解、標準出力の理解が必要だし、
誤った入力や書式指定を許してしまう。

coutの方が、理解に必要なハードルが少ない。

cout << なにか;

を覚えれば、画面(標準出力)になにかが表示される、と覚えれば済む。
0235デフォルトの名無しさんNGNG
oop楽しいじゃん
0236デフォルトの名無しさんNGNG
>>234

例?

char a = 'U';

printf("%d %d",a);

確かに幾度と無く危険な目に遭わされたw。
0237デフォルトの名無しさんNGNG
>>234
「<<」ってなんだ、ビットシフトじゃねーの?って聞かれたらまた面倒なんですけど。
cout.operator<<(なにか);
とでも書かせとくか?
0238デフォルトの名無しさんNGNG
>>237
頑張れば、

cout += "hello" += "world" += endl;

とか

cout != "hello" != "world" += endl;
0239デフォルトの名無しさんNGNG
ビットシフト演算子の説明をするときには
「<<は元々整数に対して使う演算子で、そいつのビットを、右や左にn個シフトしたいときに使うんだよ。
で、シフトって言うのはね...」

と説明すればよくて、混乱しそうになったら
「だけど、整数じゃないオブジェクトに << を使うときはね、 xx を流し込むって意味で
使うんだよ。最初に使った cin とか cout の << がそれだよ」
でわかるんじゃないかねえ。

中級になったら、「ostream系のオブジェクトの operator <<は...」って教えればいいだけ。

printf教えるときに、スタックの状態や、可変長引数の片繰上げや細かい書式、
va_argやva_listの説明なんかしないだろ。

そんなもんだよ。

練習用の曲はね、大抵ね、後から振り返ってみるといろいろ示唆すべきものが含まれているもんなの。
あるていどわかるようになってから、「ああ、あれはああいう意味があったんだ」ってわかればいい訳なの。

英語習うときもね、How do you do?みたいにね、よくあるイディオムから始めりゃあいいの。
0240デフォルトの名無しさんNGNG
あーもうそろそろまとめるぞ、この話。
基本は>>132、>>220の線で行く。クラス云々は�Eまでお預け。
但しC++らしく入出力はcin、coutを使うべし。
0241デフォルトの名無しさんNGNG
>>240
賛成++;
0242デフォルトの名無しさんNGNG
あーあ、1はスレを乗っ取られてしまったね
かわいそうに
0243デフォルトの名無しさんNGNG
>>1
気にせず問題が出来たら持っておいで。みんなでわいわい添削します。w
0244デフォルトの名無しさんNGNG
generative programmingマンセー!!!
Alexandrescuマンセー!!!
0245153NGNG
>>132 の (4 - 2 です。よろしくお願いします。
単純に ofstream output( "prime.txt" ); でOKなんですかね。

#include <iostream>
#include <fstream>
#define MAX 1000

using namespace std;

int main( void )
{
 int all[ MAX + 1 ] = { 0 };
 int half = MAX / 2;
 
 all[0] = 1;
 all[1] = 1;

 for ( int x = 2; x < half; ++x ) {
   if ( !all[ x ] ) {
     for ( int y = 2; x * y <= MAX; ++y ) {
       all[ x * y ] = 1;
     }
   }
 }
 ofstream output;
 output.open( "prime.txt", ios::out );
 for ( int j = 0; j <= MAX; ++j ) {
   if ( !all[ j ] ) {
     cout.width( 4 );
     cout << j;
     output << j << endl;
   }
 }
 output.close();
 return( 0 );
}
0246デフォルトの名無しさんNGNG
>if ( !all[ x ] ) {

今こういうの流行ってるの?

確かに0以外は偽だけどさ・・・使い方間違ってる気がする。
0247153NGNG
>>246
このスレで使っているのは全部僕の書き込みかと。
止めた方が良いですか。
0248デフォルトの名無しさんNGNG
>>247
いろいろなポリシーの人がいるから何とも言えないけど、個人的には非推奨。
0249デフォルトの名無しさんNGNG
>>247
明示的に「0なら」とやりたいなら、if(all[x] == 0)の方が見やすいしわかりやすい。
if ( !all[ x ] ) の方が確かにソースも数バイト短いし、実行ファイルも数命令短く
なるかもしれないけど、それによって得られるメリットよりも、見難いソースの
デメリットの方が多そう・・・。
あと int all[ MAX + 1 ] = { 0 }; じゃ all[0] 以外は初期化できてないんじゃない?
ちゃんとfor文で回そう!
0250デフォルトの名無しさんNGNG
>>249
ごめん。

>実行ファイルも数命令短くなるかもしれないけど

どっちも結局CMPじゃないの?
0251デフォルトの名無しさんNGNG
>>250
if ( !all[ x ] ) だとJZE?を使ってくるかもしれない。
すまん漏れ汗ンブラあまり知らんです。
0252デフォルトの名無しさんNGNG
>>249
そういう風に指定したとき、足りない要素は0として初期化される
ことが保証されてなかったっけ?
いや、もちろんコーディングスタイルとしてはやっちゃマズいだろうけどさ。
0253デフォルトの名無しさんNGNG
>>249-251
少なくとも、VCではどっちも同じ。
cmp 変数,0
jne
ってコードだった。
0254249NGNG
>>252
そうだったの?知らなかったスマソ。
でもやっぱり初期化したほうが精神的に落ち着くな・・・
0255デフォルトの名無しさんNGNG
念のため言っとくと、ある程度の規模のプログラムになると、実行時間の
9割は、ソースの1割で浪費される、と言われてる(8割2割って言う人もいる)。
ナントカの法則って名前ついてたかも知れないけど忘れた。
つまりソースの大部分は改良してもプログラムの高速化にほとんど貢献しない。
だからあまり細かい実装法( if(!all[x]) とか )にこだわっても、見にくくなる
ばかりでほとんど早くならない。
それよりは多少効率は悪くても、見やすい、美しいソースを書いて、完成してから
ボトルネックとなる1割の部分(再帰呼び出しされる関数や多重ループの一番内側)
だけに小細工をした方がなにかと良い。

ま、そういうことを頭の片隅に置いておくといいと思うよ。
それにソートプログラムを組めばわかるけど、高速化の真髄はアルゴリズムの改良
にあるってことも重要。
初心者のうちは「美しいソース」を書くようにした方がなにかといいです。
0256デフォルトの名無しさんNGNG
>>255
普通に9:1の法則でなかったっけ?

確か実行される頻度が高いホットスポットと呼ばれる部分がソース中に1割ある。
後の9割はたいして実行されない。

ホットスポットを最適化することがプログラムの高速化に繋がるって話だった気が。
0257デフォルトの名無しさんNGNG
>>249
配列の初期化(と言うより、値の準備)はループを回すべきだ、と。

bool型の変数を評価するときはどうするべきでしょう?
「if (hoge)」「if (hoge == true)」
今は前者を使っていますけど……。
(その割には「if (p == NULL)」と書いてたり)
0258デフォルトの名無しさんNGNG
== true はよくないイディオムだ。
0259257NGNG
思い出してみると「if (! hoge)」じゃなくて「if (hoge == false)」と書いていたような気が。
trueの時も「==」を使いますか。
0260デフォルトの名無しさんNGNG
==は、「等しい」比較の意味以外で使うべきではないだろう。

真偽値はそのまま使おうぜ。
0261257NGNG
>>258,>>260
はい。boolはそのまま入れることにします。
ありがとうございました。
0262デフォルトの名無しさんNGNG
agetokuka
0263デフォルトの名無しさんNGNG
>256
プログラミングでは80:20の法則で
プログラミング(コンピュータ)以外では
9:1の法則って良く聞くような。
「SFの9割は糞である」みたいに。
0264デフォルトの名無しさんNGNG
社会では全体の20%が残りの80%を養ってる、ってのもあるね。
0265デフォルトの名無しさんNGNG
さて、そろそろclassの話でもするかね?
0266デフォルトの名無しさんNGNG
>>265 まだです。課題�Eまで逝ってません。
0267デフォルトの名無しさんNGNG
早くclassに行こうよ、期待
0268デフォルトの名無しさんNGNG
なんだ、今日は休講かよ・・・
0269デフォルトの名無しさんNGNG
>>268
受講者がいないんじゃしょうがないよね。
しょうがないから、赤ペン先生たちで
例外について語り合っとく?
0270デフォルトの名無しさんNGNG
例外安全の理解が完了するまで例外投げるの禁止。
上級編までお預け。
0271デフォルトの名無しさんNGNG
( ´,_ゝ`)プッ 先生きどりかよ
0272デフォルトの名無しさんNGNG
シロウト相手に優越感に浸ってんじゃねえゾ、ゴルァ
0273153NGNG
こんばんは、よろしくお願いします。

>>132 の 5) バブルソート。
色気を出して関数にしてみました。

#include <iostream>
#include <time.h>
#define QTY 100

using namespace std;

void output( int array[], int qty, char mess[] )
{
 cout << mess << endl;
 for ( int i = 0; i < qty; ++i ) {
   cout << array[ i ] << endl;
 }
}

void bsort( int array[], int qty )
{
 int temp, i, n;
 for ( i = qty -1; i > 0; --i ) {
   for ( n = qty - 1; n > 0; --n ) {
     if ( array[ n ] < array[ n - 1 ] ) {
       swap( array[ n - 1 ], array[ n ] );
     }
   }
 }
}

int main( void )
{
 int list[ QTY ];
 srand( (unsigned)time( NULL ) );
 for ( int i = 0; i < QTY; ++i ) {
   list[ i ] = rand();
 }
 output( list, QTY, "ソート前" );
 bsort( list, QTY );
 output( list, QTY, "ソート後" );
 return( 0 );
}
0274デフォルトの名無しさんNGNG
>>273
個人的に配列の引数はポインタで受け取ってほしい。特にchar型は。
■ このスレッドは過去ログ倉庫に格納されています