ページ 11

下のソースをifを使わないで書く方法

Posted: 2008年4月14日(月) 14:45
by knight
#include <stdio.h>

int main(void)
{
int i, j;

for(i=5; i>0; i--){
for(j=1; j<=5; j++){
if(j > i){
printf("■ ");
}else{
printf("□ ");
}
}
printf("\n");
}

return 0;
}
これをifを使わないで書く方法を教えてください。
とりあえず、自分で、途中までしたのを下に書きます。
#include <stdio.h>

int main(void)
{
int i, j;

for(i=0; i<5; i++){
for(j=4; j>=i; j--){
printf("□ ");
}
printf("■ ");
printf("\n");
}

return 0;
}

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月14日(月) 14:49
by バグ
switchを使ってみては如何でしょうか?

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月14日(月) 14:57
by knight
ありがとうございます。for分だけで書く場合はどうなるのでしょうか?

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月14日(月) 15:09
by GPGA
これはどうでしょうか?
#include <stdio.h>

int main(void) 
{ 
	int i, j; 

	for(i=5; i>0; i--){ 
		for(j=1; j<=5; j++){ 
			printf("%s ", j > i ? "■" : "□"); 
		} 
		printf("\n"); 
	}
	return 0;
}

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月14日(月) 15:13
by knight
ありがとうございます~。助かりました。感謝いたします。

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月15日(火) 09:48
by toyo
もう解決したようですが
私の答えはこれだ
#include <stdio.h>

int main(void)
{
	int i, j;
	
	for(i=5; i>0; i--){
		for(j=1; j<= i; j++){
			printf("□ ");
		}
		for(; j<= 5; j++){
			printf("■ ");
		}
		printf("\n");
	}
	
	return 0;
}

Re:下のソースをifを使わないで書く方法

Posted: 2008年4月15日(火) 10:25
by バグ
では、私はこれで(笑)
#include <stdio.h>

int main(void)
{
	printf("□□□□□\n");
	printf("□□□□■\n");
	printf("□□□■■\n");
	printf("□□■■■\n");
	printf("□■■■■\n");
	return 0;
}