宿題手伝いますYO!!
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG・マルチポストは厳禁です。
・キーワードが分かっているなら、http://www.google.co.jp を活用すること。
・質問内容がちゃんと日本語になっていること。
・言語名を入れること。
・自分の力で頑張ってみたことを伝えられる人。
・どこまでわかったのかを書くこと。
以上です。
前スレ http://pc3.2ch.net/test/read.cgi/tech/1029422194/
新
↑
│ http://pc3.2ch.net/test/read.cgi/tech/1027756023/
│ http://pc3.2ch.net/test/read.cgi/tech/1026138039/
│ http://pc.2ch.net/test/read.cgi/tech/1024592344/
│ http://pc.2ch.net/test/read.cgi/tech/1007902384/
│ http://pc.2ch.net/tech/kako/1003/10038/1003838158.html
│ http://pc.2ch.net/tech/kako/982/982853418.html
│ http://piza.2ch.net/tech/kako/972/972032579.html
↓
古
長いソースを張れるBBS
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433
0209デフォルトの名無しさん
NGNGこんなところか。MessageBoxの引数が逆かもしれんな笑い。
if( m_editText ==""){
MessageBox("src file not specified." , "error" , IDOK ); return;
}
if( m_editText1 == "" ) {
MessageBox("dst file not specified." , "error" , IDOK );return;
}
if( !CopyFile( m_editText , m_editText2, TRUE ) ){
DWORD le = GetLastError();
if( le == 2 || le == 3 )
MessageBox("file not found." , "error" , IDOK );
}
}
0210FTP
NGNG貼ってきました。
サーバー側
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=39&fi=no
クライアント
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=40&fi=no
試行錯誤でコードが汚くなってます。すみません。
何処が悪いのか、見当もつきません。
ご指導お願いします
0211デフォルトの名無しさん
NGNG> system(syscmd > temp);
ずいぶん変なところに変な比較を挟むんだな。
ついでに、汚染チェック位一応やっとけ。
0212FTP
NGNGあ・・・すいません。
オンラインウイルススキャン、やっておきました。
>system(syscmd > temp)
これ、「比較」になるんですか?
SYSTEM()でUNIXにコマンドを送って、
その出力(結果)をtemp[ ]に送るようにする
だから、system( コマンド > array[ ])って書け。
と、教わったのですが…
間違いなんでしょうか?
結果の読み取りで
調べたらこんな感じのコードが出てきたことがあったのですが、
こちらを使った方がいいのですか?
↓
FILE *fp;
if((fp=popen("ls -l", "r"))==NULL){
fprintf(stderr,"error!!!\n");
exit(-1);
}
fgets(temp, sizeof(temp), fp);
pclose(fp);
0213デフォルトの名無しさん
NGNG「system( コマンド > array[ ])って書け。」
つまり、C言語では、system関数の引数だけは、「>」は特別な意味をもってて、
リダイレクタとして解釈される、とこう言いたいわけかい?
ンなもん、ちょっと考えるか、テストしてみりゃすぐ分かることだろが。
0214デフォルトの名無しさん
NGNG交換法は分かったのですが、選出法がよく分からないので教えていただけますか?
↓ 自分なりに考えてみたのですが、うまくいきません
#include<stdio.h>
int main(void)
{
int i, j, a[20], tmp, min;
printf("enter 20 integer\n");
for(i=0;i<=19;i++)
{
scanf("%d", &a[i]);
}
for(i=0;i<=18;++i)
{
tmp =a[i];
min = i;
for(j=i;j<=18;++j)
{
if(tmp > a[j+1])
{
tmp = a[j+1];
min = j+1;
}
}
a[min] = a[i];
a[i] = tmp;
}
for(i=0;i<=19;++i)
printf(" %d ", a[i]);
return(0);
}
0215214
NGNG214はC言語です
0216デフォルトの名無しさん
NGNG0217214
NGNG例えば
5 8 1 6 2 7 だったら1が最も小さいので1と5を入れ替えて
1 8 5 6 2 7 となります。次に1を除く
8 5 6 2 7 を考えて、2が小さいので2と8を入れ替えて
2 5 6 8 7 となります。次に2を除く
5 6 8 7 を考えて、…見たいな感じです
分かりにくい説明でごめんなさい…
0218デフォルトの名無しさん
NGNG一般的には「選択ソート」だな。(Knuthはselection sortと書いたが)
0219デフォルトの名無しさん
NGNG動かしてみたら、ちゃんとソートされたけど。
どううまくいかないんだ?
0220デフォルトの名無しさん
NGNG> だから、system( コマンド > array[ ])って書け。
> と、教わったのですが…
誰だ、そんな素敵なことを教えてくれたのは。(w
popen()を使うほうがいい。
0221デフォルトの名無しさん
NGNG3dsMAXでいくつもオブジェクトがあるもの(車)をかいて特定のオブジェクト(金属部分)に同じテクスチャを張ってます。それをDirectXファイルにして、
そのテクスチャを張った部分に別のテクスチャ(BRDFといわれるもの)を張って、
残りはまた別のテクスチャを張れるようにファイルを書き換えたいんですが、どの部分をどのように書き換えればいいんでしょう?
DirectXはまったくやったことがないので見当がつきません。どんな情報でもいいので教えていただけませんか?よろしくお願いします。
たぶん、以下のコードの辺をいじるんだと思いますが…。
// Load 1st texture
if( FAILED( D3DXCreateTextureFromFile( m_pd3dDevice, "objects/black01.png", &r_pTexture ) ) )
return E_FAIL;
0222ぱぱ
NGNG返事ありがとうございました!
rand()が本を見てもなかなかのっていないのですが、C++とかなのでしょうか?
あと、最後に白石の数がわかるようにするにはどうすればいいでしょうか?
よろしくお願いします。
0223214
NGNGすいませんでした
今やってみたらちゃんとソートされました
学校ではうまくいかなかったのに…
学校ではUNIXを使ってるからうまく動かなかったのでしょうか??
とにかく、どうもありがとうございました
0224デフォルトの名無しさん
NGNG問題1が「2次元配列に5人分の身長と体重を代入し、身長と体重の平均、最小値、最大値を求めよ。」
という問題と
「上のデータ(次元配列)よりBMI値を求めよ。肥満度により、やせている/標準/やや肥満/肥満と判定せよ。」
という問題が宿題で出たんです。
ちなみに「BMI」とは「Body Mass Index」の略で「体重(kg)/身長の2乗(m)」で計算された標準値は「22」です
やせているが「20未満」で標準が「20〜24」でやや肥満が「24〜26.5」で肥満が「26.5以上」です。
けど、全然分かりません。まだC言語は始めたばかりなのでまだfor文とかwhile文とかしか習っていないので
なるべく簡単作ってほしいです。お願いします。
0225デフォルトの名無しさん
NGNG中学生でもできそうだな…
0226デフォルトの名無しさん
NGNG0227デフォルトの名無しさん
NGNGまずお前がどこまで出来るのか書けよ。
(まさか丸投げじゃないよな?)
0228デフォルトの名無しさん
NGNG学生にそれを叩き込んでるのは偉いと思う。
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG#include <stdio.h>
#define N 5
int main()
{
float data[N][2]={170.,56.,165.,45.,170.,70.,180.,85.,173.,65.};
float minHeight,maxHeight,avgHeight,minWeight,maxWeight,avgWeight;
float bmi;
int i;
avgHeight=avgWeight=0.0;
minHeight=maxHeight=data[0][0];
minWeight=maxWeight=data[0][1];
for (i=0;i<N;i++){
avgHeight+=data[i][0];
avgWeight+=data[i][1];
if (minHeight>data[i][0]) minHeight=data[i][0];
if (minWeight>data[i][1]) minWeight=data[i][1];
if (maxHeight<data[i][0]) maxHeight=data[i][0];
if (maxWeight<data[i][1]) maxWeight=data[i][1];
}
0231デフォルトの名無しさん
NGNGprintf("Minimum height=%f,Minimum weight=%f\n",minHeight,minWeight);
printf("Maximum height=%f,Maximum weight=%f\n",maxHeight,maxWeight);
printf("Average height=%f,Average weight=%f\n",avgHeight,avgWeight);
for (i=0;i<N;i++){
bmi=data[i][1]/data[i][0]/data[i][0]*1.0e4;
if (bmi<20.) printf("%d(bmi=%f) is slender.\n",i,bmi);
else if (bmi<24.) printf("%d(bmi=%f) is standard.\n",i,bmi);
else if (bmi<26.5) printf("%d(bmi=%f) is slight fat.\n",i,bmi);
else printf("%d(bmi=%f) is fat.\n",i,bmi);
}
return 0;
}
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG気にすんな.写してもってけ
0234デフォルトの名無しさん
NGNGイイネ!
0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNGいいってことよ.二度と来んなよ.今度は友達のを写せよ
0237デフォルトの名無しさん
NGNGだとしたら早々に引き上げます
0238デフォルトの名無しさん
NGNGうーん キャラクタベースの掲示板で話が上手く通じるかどうか・・・
とりあえず書いてみたら?
0239デフォルトの名無しさん
NGNGエクセルでつくったデータをVBに取り入れたいのですがかのうですか?
例えばListBoxにエクセルデータを入れる時はどうやればよいのでしょう?
エクセルのデータをテキストファイルに変えないとできませんか?
0240デフォルトの名無しさん
NGNGファイル?それともアプリ?
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGエクセルのデータが読み込めれば進むんですが・・・
全く???ばかりで・・・
0244デフォルトの名無しさん
NGNGVisual Studioを立ち上げてイルカに
Excel ワークシートから配列を初期化
と聞いてください。サンプルプログラムもあるよ
0245lapa
NGNGサンプルプログラム見せてもらえますか?
0246デフォルトの名無しさん
NGNG0247244
NGNGMSDNのキーワードに
Excel ワークシートから配列を初期化
と入れてくらさい
0248244
NGNG>239の人でつか?>247のヘルプにサンプルが載ってます
0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNGとりあえず書く前に寝ちゃいました。
もうだめだぁ
0252デフォルトの名無しさん
NGNGなんか超がつくほど基本的なことなんですけど、
コンテキストダイアグラムを書くとき、外部からプロセスに
流れるデータがめっさ多いんです。書き込めるか?ってくらい。
こういうのは外部ごとにデータの矢印をまとめて(一本とかにして)
書いてもいいんですか?
あと、データの矢印が多いせいでちょっとレベル1書くときに
データの矢印書こうとすると、重なっちゃう(交差しちゃう)んですが
これって無しですか?
0253デフォルトの名無しさん
NGNG本当板違いなのかなぁ
0254デフォルトの名無しさん
NGNG0255デフォルトの名無しさん
NGNG宿題で計算機プログラムを作れというのがでました。
でも、平方根を求めるとこで詰まってしまいました、(情けないです、)
その部分だけ簡単に書くとこうなります、、
#include <stdio.h>
#include <math.h>
main()
{
double s;
printf("input a positive number:");
scanf("%lf", &s);
double sqrt(double s);
printf("answer is %lf\n", s);
}
こんな感じで書いたんですがコンパイルできなくて意味不明状態です、
どなたか助けてください。おねがいします。
0256デフォルトの名無しさん
NGNGdouble sqrt(double s);
↓
s=sqrt(s);
0257デフォルトの名無しさん
NGNG#include <math.h>
main()
{
double s,rs;
printf("input a positive number:");
scanf("%lf", &s);
rs=sqrt(s);
printf("answer is %lf\n", rs);
}
予約語について考えるべし。
0258デフォルトの名無しさん
NGNGデータの種類が同じであれば、フローを分割してもいいのでは?
データの種類が異なれば、もちろんダメ
フローの統合もダメ(統合するとデータが変わる)
要するに、処理なしでデータフローに乗ってるデータが変わることはない
という前提を考えれば、データの矢印をまとめることは不可と思われ
詳しくないから間違ってたらスマソ
0259デフォルトの名無しさん
NGNGありがとうございました!
助かりました。
0260bloom
NGNGhttp://www.agemasukudasai.com/bloom/
0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNG1列目の1~5行までリストボックスに
取り込む場合はどうすればよいのでしょう?
f$ = "データ.xls"
Set LINK = GetObject(f$)
For i = 4 To 59
Name (i) As LINK.Worksheets.Application.Cells(i, 1)
List1.AddItem Name(i)
Next i
これだとデバックしちゃいます。
助けてください。
0263デフォルトの名無しさん
NGNGPrivate Sub Form_Load()
Set excelBook = GetObject("C:\Book1.xls")
Dim i As Integer
Dim buf As String
For i = 1 To 5
buf = excelBook.Worksheets(1).Range("A" & i).Value
List1.AddItem (buf)
Next i
End Sub
0264デフォルトの名無しさん
NGNG> これだとデバックしちゃいます。
> 助けてください。
デバッグできるならええやん。
0265デフォルトの名無しさん
NGNGなんかイイな。俺もこれから使おっかな。
0266じゃず ◆jazz118WuU
NGNG・室内温度To1が0〜40℃(10℃刻み)
・その室内にある貯蔵庫の温度がTi℃
・貯蔵庫の中にある氷の面積Sが0.5〜2.0�u(0.5刻み)
・氷の温度が貯蔵庫内の空気に伝わる熱伝達Alphaが10〜510W/�u・K(100刻み)
・貯蔵庫内への熱伝導量Q1=KA(To1-Ti)
・K(貯蔵庫壁の熱貫流量)=0.377、A(伝熱面積)=16.36。
上記の条件の時にTiが何℃になるかをもとめるプログラムを教えて下さい!
結果はなるべくエクセルで出力するようにお願いします。
例:To1が10℃、Alphaが110W/�uK、Sが1.0�uの時、Tiは5℃
上のような感じで80個(条件が80通りの組み合わせになるため)の答えが出るようにお願いします。
0267じゃず ◆jazz118WuU
NGNGOption Explicit
Private Sub Form_Load()
Dim K As Single, A As Single, Qe As Single, Q1 As Single
Dim To1 As Single, Ti As Single, Alpha As Single, S As Single
K = 0.377
A = 16.36
For To1 = 0 To 40 Step 10
For Alpha = 10 To 510 Step 100
For S = 0.5 To 2# Step 0.5
For Ti = 0 To 40 Step 0.1
Qe = Alpha * (Ti - 1#) * S
Q1 = K * A * (To1 - Ti)
If Qe = Q1 Then Print Ti, To1, Alpha, S
Next Ti
Next S
Next Alpha
Next To1
End Sub
0268じゃず ◆jazz118WuU
NGNGちなみに、Qeは熱交換量なのですが理論的にQ1と同じになります。
0269超初心者
NGNGョンでコピー元コピー先をファイルダイアログボックスで表示させ指定し、スタ
ティックテキストにファイルまでのパスを表示するというものです。そして、ボ
タンがありクリックすると、ファイルのコピーを開始します。但し、以下の場合
はメッセージボックスを表示します。
1.コピー元ファイル名が指定されていない。
2.指定のコピー元ファイルが存在しない。
3.コピー先ファイル名が指定されていない。
4.コピー先ファイルが既に存在する。
4の場合は、問い合わせメッセージの表示とし
ユーザが上書きOKを選択した場合のみ、
コピー実行されるようにする。
です。一応パスがでる所まで頑張りましたが保存先の所で上書き警告がでます。
よろしくお願いします。
ソースはこちらです。
http://do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1027870433&res=43
0270デフォルトの名無しさん
NGNG>よろしくお願いします
これは、上書き警告を出ないようにしたい、ということか?
なら。
myDLG.m_ofn.dwFlags = OFN_HIDEREADONLY ;
0272デフォルトの名無しさん
NGNGナップサック問題についてわからないので質問です。
まず、最高価格を求めるプログラムを書きます。
#include <stdio.h>
#define MAX 8
int main(void){
int weight[]={4,5,2,1,6};
int price[]={450,570,225,110,670};
int total[MAX+1],item[MAX+1];
int i,j,k;
int newtotal;
for(i=0;i<=MAX;i++)
total[i]=0;
for(i=0;i<=4;i++){
for(j=weight[i];j<=MAX;j++){
k=j-weight[i];
newtotal=total[k]+price[i];
if(newtotal>total[j]){
total[j]=newtotal;
item[j]=i;
}
}
}
0273272
NGNGweight[1]とprice[1]は同じ商品のデータと考えます。
すでに、最高価格が求まっていますが、この後どれを選んだか表示するプログラムの穴埋めが課題です。
?の場所を埋めるのですが、どうやら配列の中に配列を入れるらしいです。
よくわからないので教えてください。
i=MAX;
while(i>=1){
printf("%d\n",price[?]);// ?のとこを埋めるのです。
i=i-weight[?]];//ここもそうです。
}
printf("%d",total[MAX]);
return 0;
}
0274272
NGNGprintf("%d\n",price[item[i]]);
i=i-weight[item[i]];
で、できました。
でも感覚的にやって、まだよく理解できていないので、誰か内容を教えてくれると助かります。
0275名無しさん@XEmacs
NGNGよく考えずにレス。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG多分あってると思われ。
動的計画法を使ってる。
ただ、
> for(i=0;i<=4;i++){
は、教える側の人が書くべきものじゃない。
> for(i=0;i<5;i++){
だな。
>273
配列totalには、最終的には
その重さまでに可能な最高価格が入るようになってる。
例えばtotal[5]には、重さ5までで可能な最高価格が入ってる。
item[5]には、total[5]になるように、最後に入れたものの番号が入ってる。
(これは、重さの値がintだからできるけど、小数点数だとこのアルゴリズムは無理)
このことを踏まえて自分でコードをたどっていけば、
そのうち理解できると思うぞ。
0278デフォルトの名無しさん
NGNGなるほど、そういうことか。分かったよ、あんがと
しかし,このルーチンだと
int weight[]={1};
int price[]={100};
...
for(i=0;i<1;i++){
...
のときはどうなるんだ?
for(j=weight[i];j<=MAX;j++){
のループが1から8まで回って、全てのtotalが100に、itemが0になると
思うんだけど
newtotal+=total[k]+price[i];
じゃないのかな?よく分からない
0279デフォルトの名無しさん
NGNGああ、アイテムが一回使用ならいいのか
でも、それだと全ての組み合わせについて確かめた方が効率よかない?
全ての重さについて同時に求めるってとこに意味があるんだろうか
動的計画法がどんなもんか知らんので、このへんでやめよう
つーか、これってCの宿題ってより数学の宿題だな
272はプログラムより元のアルゴリズムを理解すべきだと思われ
0280デフォルトの名無しさん
NGNG小数点でも使えるように考えてみたYO!
totalをtotal[0]=0.0(static),total[1]=dw~2dw,...とする
ただしweight[]の最小値>dw
float weight[];
float total[MAX+1],newtotal;
k=0;
for(j=(int)(weight[i]/dw);j<=MAX;j++,k++){
newtotal=total[k]+price[i];
if(newtotal>total[j]){
total[j]=newtotal;
item[j]=i;
}
これで上手くいかないかなー.俺も暇人だ…
0281デフォルトの名無しさん
NGNGどうもうまくいきません。
#include<stdio.h>
#include<fcntl.h>
#define SIZE 512
#define MAX 255
int main()
{
double zr,zi,zrp,zip /*zr=現在計算中の複素数zの実数部 zi=虚数部*/
/*zrp=直前に計算したzの実数部 zi=虚数部*/
int x,y,i;
int fd;
unsigned char bitmap[SIZE][SIZE];
0282デフォルトの名無しさん
NGNGfor(y=0;y=SIZE;y++)
{
zrp=zip=0; /*初期値0*/
for(i=1;i=MAX;i++)
{
zr=zrp*zrp-zip*zip+cr; /*漸化式による実数部計算処理*/
zi=2*zrp*zip+ci; /*虚数部の計算処理*/
if((zr*zr+zi*zi)>4) /*発散判定*/
break;
zrp=zr;
zip=zi;
}
bitmap[x][y]=(unsigened char)(i);
}
fd=create("mandel.bmp",0644);
write(fd,bitmap,SIZE*SIZE);
close(fd);
return 0;
}
実数部の変域は-2.4≦cr≦0.8
虚数部の変域は-1.2≦ci≦1.2にしたいです。
とりあえずcrとciをどうするかと、計算後どうやって配列するかがわかりません。
御願いします。
0283デフォルトの名無しさん
NGNG「どんな分野にオブジェクト指向は向いているか?」考えて来い、あるいは調べて来いってのがでました。
ゲーム作成に向いているという意見など出たのですが、何かないですかね・・・
ってか、やってこないと単位がまずい・・・
自分も調べまくってるんで、もし余裕があったら教えてください。
子ウインドウを不特定数 create したり free したりせにゃならん。
ゲームもいいよね。とくにシューティングとか。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG最大値選択法により、大きな数から配列に格納していく以下のソートプログラムを
1回1回の交換ではなく、内側のループで最大値の場所だけを覚えておいて
ループの終了時点で1回だけ交換するように変更したいのですが、どのように
変更してやればいいのでしょう?
#include <stdio.h>
#define MAX_SIZE 100
void simple_sort(int table [], int table_size);
int main(void)
{
int array[MAX_SIZE] , size, i;
for(size=0; size<MAX_SIZE; size++){
printf("%d番目の数は?", size+1);
scanf("%d", &array[size]);
if (array [size]<0){
break;
}
}
0287デフォルトの名無しさん
NGNGfor(i=0; i<size; i++){
printf("%d\n", array[i]);
}
}
void simple_sort(int table [], int table_size)
{
int i, j, work;
for(i=0; i<table_size-1; i++){
for(j=i+1 ; j<table_size; j++){
if(table [i] <table [j]){
work=table [i] ;
table [i]=table [j] ;
table [j]=work;
}
}
}
}
0288デフォルトの名無しさん
NGNGint i, j,k, work;
for(i=0; i<table_size-1; i++){
for(j=i+1 ; j<table_size; j++){
if(table [i] <table [j])
work=j ;
else work=i;
}
k=table [i] ;
table [i]=table[work];
table[work]=k;
に変えてみたんですが上手くいきません。
0289デフォルトの名無しさん
NGNGint i, j,k, work;
for(i=0; i<table_size-1; i++){
for(j=i+1 ; j<table_size; j++){
if(table [i] <table [j])
work=j ;
else
work=i;
}
k=table [work] ;
table [work]=table[i];
table[i]=k;
}
0290デフォルトの名無しさん
NGNG間違い!!
0291デフォルトの名無しさん
NGNGこれは選択ソートじゃなくてバブルソート。
work = i;
for(j = i + 1; j < table_size; j++) {
if (table[i] <table[j])
work = j;
}
if (work != i) {
k=table [i] ;
table [i]=table[work];
table[work]=k;
}
0292デフォルトの名無しさん
NGNGBorland C++ Compiler 5.5.1でパラレルポート制御する
プログラムを組めるものなのでしょうか。
とりあえず、アセンブラは使いたくないなと思ってます。
よろしくお願いします。
0293デフォルトの名無しさん
NGNGそもそも、あなたはオブジェクト指向そのものの
メリットをきちんと理解しているだろうか?
そこがわかれば、適用可能な分野がある程度はわかるはず。
0294デフォルトの名無しさん
NGNGご返答有難うございます。早速実行してみましたが、
この場合、1,2,3,4,5・・・などのようにインクリメントやデクリメントする数値を入力した場合には
上手くいくのですが、真ん中に最大値が来た場合などは上手くいきませんでした。
それで、改めて自分で以下の通りに直してみたのですが、やはりダメでした。
再びで申し訳ないんですが、間違いなどございましたら教えていただければと思います。お願いします。
work = i;
for(j = i + 1; j < table_size; j++) {
if (table[i] <table[j])
i = j;
}
k=table[work];
table[work]=table[i];
table [i]=k;
0295
NGNG0296デフォルトの名無しさん
NGNGvoid simple_sort(int table[], int table_size)
{
for(int i = 0; i < table_size-1; i++)
{
int work = i;
for(int j = i+1; j < table_size; j++)
{
if(table[work] < table[j])
work = j;
}
int temp = table[i];
table[i] = table[work];
table[work] = temp;
}
}
これでどう?
0297デフォルトの名無しさん
NGNG最大値の位置を覚えておく工夫をせにゃならんよ。
無事上手くいきました。誠に有難う御座います。
0299デフォルトの名無しさん
NGNG以下の2つの文字列が同じかどうかを判定するプログラムを使って
2つの文字列が何文字目まで等しいかを判定するプログラムを作りたいのですが
どうすればいいのでしょう?
#include<stdio.h>
#define SIZE 100
int string_equal_length(char str1[],char str2[]);
int main(void)
{
int i,j,k;
char str1[SIZE],str2[SIZE];
printf("文字列を入力してください。:");
scanf("%s",str1);
printf("文字列を入力してください。:");
scanf("%s",str2);
0300デフォルトの名無しさん
NGNGprintf("2つの文字列は同じです。\n");
}
else{
printf("2つの文字列は同じではありません。\n");
}
}
int string_equal_length(char str1[],char str2[])
{
int i=0;
while(1){
if(str1[i]=='\0'&&str2[i]=='\0'){
return(0);
}
if(str1[i]!=str2[i]){
return(-1);
}
i++;
}
}
0301デフォルトの名無しさん
NGNG#include<stdio.h>
#define SIZE 100
int string_equal_length(char str1[],char str2[]);
int main(void)
{
int i,j,k;
char str1[SIZE],str2[SIZE];
printf("文字列を入力してください。:");
scanf("%s",str1);
printf("文字列を入力してください。:");
scanf("%s",str2);
0302デフォルトの名無しさん
NGNGif(string_equal_length(str1,str2)==0){
for(i=0;i<SIZE;i++){
if(str1[i]=str2[i]){
k=k++;}
else { break;
}
}
printf("2つの文字列は%d文字目まで同じです。\n",k);
}
else{
printf("2つの文字列は同じではありません。\n");
}
}
int string_equal_length(char str1[],char str2[])
{
if(str1[0]==str2[0]){
return(0);
}
if(str1[0]!=str2[0]){
return(-1);
}
}
0303怜
NGNGの中で何やってるかはわかる?
一文字ずつ比べていって、もしも途中で違ったら-1を返して、
最後まで一緒だったら0を返してるよね。
で、一文字同じだったらそのたびにiを1増やしてる。
ということは、iは何文字一緒だったかカウントしてることになるんだから、
途中で違ったら-1を返すのではなく、iを返すようにすれば・・
>>302のだと、全文字一緒のときしか
for(i=0;i<SIZE;i++){
if(str1[i]=str2[i]){
k=k++;}
else { break;
}
が実行されないから上手くいかないのね。
だから、if文とっちえばできると思う。
あと、k=0から始めないと変かも。
0304デフォルトの名無しさん
NGNG{
int count = 0;
do {
if (*str1 != *str2) { break; }
count++;
} while (*++str1 && *++str2);
return count;
}
0305304
NGNG上のコード両方に長さ0の文字列渡したときに1が帰る。
0306304
NGNGすまんかった、逝ってくる
0307デフォルトの名無しさん
NGNGsize_t c = 0;
while ( *s1 && *s1++ == *s2++ ) c++;
return c;
}
0308デフォルトの名無しさん
NGNG下のプログラムはクイックソートの一部なのですが、while文やif文が{}でくくってないので、どういう風に理解すればいいのかわかりません。
ifはbreak;のためにあると思うのですが、この場合のwhileはどういう意味になるのでしょうか?
他の変数などは無視して構わないので、whileについて教えてください。
for(;;){
while(a[++i] < v);
while(i<j-- && a[j] > v);
if(i>=j)
break;
t=a[i];a[i]=a[j];a[j]=t;
}
0309デフォルトの名無しさん
NGNGは
while (a[i] < v) i++;
while(i<j-- && a[j] > v);
は
while (i < j)
if(a[--j] <= v) break;
とでも読み替えればよいか。
■ このスレッドは過去ログ倉庫に格納されています