ページ 11

ifの処理で判断が上手く行きません

Posted: 2018年4月26日(木) 21:54
by zetu
はじめました、初心者なのでつまらない事で引っかかってます。

コード:

#include <stdio.h>

int main(void)
{

int i,j,k;

	for(i=0;i<3;i++){
		for(j=0;j<3;j++){
			for(k=0;k<3;k++){
				if(i==k && i<=j){
					printf("〇 [%d][%d] [%d]\n",i,j,k);
				}else{
					printf("× [%d][%d] [%d]\n",i,j,k);
				}
			}
			printf("\n");
		}
	}
	return 0;
}
もう少し複雑なプログラムなのですが、問題の箇所を抜粋してみました。
実行すると、
〇 [0][0] [0]
× [0][0] [1]
× [0][0] [2]

〇 [0][1] [0]
× [0][1] [1]
× [0][1] [2]

〇 [0][2] [0]
× [0][2] [1]
× [0][2] [2]

× [1][0] [0]
× [1][0] [1]
× [1][0] [2]

× [1][1] [0]
〇 [1][1] [1]
× [1][1] [2]

× [1][2] [0]
〇 [1][2] [1]
× [1][2] [2]

× [2][0] [0]
× [2][0] [1]
× [2][0] [2]

× [2][1] [0]
× [2][1] [1]
× [2][1] [2]

× [2][2] [0]
× [2][2] [1]
〇 [2][2] [2]
上記のリターン値がえられます。

希望のリターン値はiからjまでの箇所も〇として出力したいのですがままなりません。
例として
〇 [0][1] [0]
〇 [0][1] [1]
× [0][1] [2]

× [1][2] [0]
〇 [1][2] [1]
〇[1][2] [2]

if(i==k && i<=j){ の部分が間違っているのは分かっているのですが(滝汗

未熟な質問で申し訳ありませんが、宜しくお願いします。

Re: ifの処理で判断が上手く行きません

Posted: 2018年4月27日(金) 03:30
by かずま
zetu さんが書きました:
7年前
希望のリターン値はiからjまでの箇所も〇として出力したいのですがままなりません。
k の値が、i以上 j以下の場合ということでしょうか?
それなら if (k >= i && k <= j) だと思うんですが。

Re: ifの処理で判断が上手く行きません

Posted: 2018年4月27日(金) 17:31
by zetu
かずまさん

ドンピシャ!です(^^;
ありがとう御座います!!! スッキリ想定の動きになりました!!!

詰まらない、質問に回答ありがとうござ御座います。
もっと修行を積まないとと、心から思いました(汗