掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24512

ループ
投稿者---yuki(2005/12/04 15:44:16)


割り算の関数で授業中に出た問題なんですけど
ループの式の意味がいまいちよくわかりません。
他のところは理解できるんですけど・・・・・。

例えばaに6を入れてbに2を入れたとすると、
6-2=4 i=1
4-2=2 i=2
2-2=0 i=3
となって、その回数が割り算の答えとなるってことなんですけど
for文の真ん中の式のx>=yの意味がわからなくて困っています。

もしaに6を入れてbに2を入れたとすると、
i=1の時点でxが4になって、x>=yを満たすと思うんですが・・。

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

int warizan(int a,int b){
    
    int i,x,y;
    
    x = abs(a);
    y = abs(b);
    
    for(i = 0;x >= y ;i++){
        x = x - y;
         
    }
    if(a * b < 0){
        
        return(-i);
        
    }else{
        
        return(i);
    }
}

int main(void){
    
    int input1,input2;
    
    scanf("%d",&input1);
    
    scanf("%d",&input2);
    
    printf("a÷bは%dです\n",warizan(input1,input2));
    
    return(0);
}




わかる方いらっしゃったら、お願いします。


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:ループ 24513 まきじ 2005/12/04 15:49:33
<子記事> Re:ループ 24516 Hermit 2005/12/04 16:55:15
<子記事> Re:ループ 24517 わたり 2005/12/04 16:55:39


No.24513

Re:ループ
投稿者---まきじ(2005/12/04 15:49:33)


>x = abs(a);
>y = abs(b);
>for(i = 0;x >= y ;i++){

a から b が引けなくなるまで、繰り返すので
繰り返し条件は a >= b となる。


この投稿にコメントする

削除パスワード

No.24514

Re:ループ
投稿者---yuki(2005/12/04 16:27:17)


>>a から b が引けなくなるまで、繰り返すので
>>繰り返し条件は a >= b となる。

繰り返す条件をa >= bとすると実行結果がおかしなことになるのですが・・。







この投稿にコメントする

削除パスワード

No.24515

Re:ループ
投稿者---fuku(2005/12/04 16:49:12)


>もしaに6を入れてbに2を入れたとすると、
>i=1の時点でxが4になって、x>=yを満たすと思うんですが・・

for 文には継続条件を入れます
x が4で
y が2なら
x >= y は真

全く問題ないのでは?



この投稿にコメントする

削除パスワード

No.24518

Re:ループ
投稿者---まきじ(2005/12/04 17:01:37)


>繰り返す条件をa >= bとすると実行結果がおかしなことになるのですが・・。

提示されたソースを実行してみましたが問題ありませんでした。

6
2
a÷bは3です


この投稿にコメントする

削除パスワード

No.24516

Re:ループ
投稿者---Hermit(2005/12/04 16:55:15)


>for文の真ん中の式のx>=yの意味がわからなくて困っています。
>もしaに6を入れてbに2を入れたとすると、
>i=1の時点でxが4になって、x>=yを満たすと思うんですが・・。

i=1 の時 x>=y を満たすので、繰り返し(for文)を実行、
i=3 の時 0>=2 となり x>=y を満たさないので繰り返しを抜ける

でいいんでないでしょうか。


この投稿にコメントする

削除パスワード

No.24517

Re:ループ
投稿者---わたり(2005/12/04 16:55:39)
http://study-with.sub.jp/


>ループの式の意味がいまいちよくわかりません。

ループの式の意味は、「条件式が満たされている間繰り返す」
という意味ですよ。

>for文の真ん中の式のx>=yの意味がわからなくて困っています。
>
>もしaに6を入れてbに2を入れたとすると、
>i=1の時点でxが4になって、x>=yを満たすと思うんですが・・。

満たしているから繰り返している、そういう意味じゃないでしょうか・・。
それとも、私が質問の解釈を間違えているのでしょうか・・・。


この投稿にコメントする

削除パスワード

No.24519

Re:ループ
投稿者---yuki(2005/12/04 17:19:38)


すいません。とんでもない勘違いしてました・・。
継続条件式でしたね・・・。なんか勝手にx>=yとなったら
終わると、思い込み状態に陥ってました・・・。

皆様お騒がせいたしました。
ご協力いただいた、まきじ様、わたり様、fuku様、Hermit様ありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧