기록하고 까먹지 말기

과제 5 - Control Flow 2 (6 ~ 9) 본문

전공/C

과제 5 - Control Flow 2 (6 ~ 9)

yha97 2021. 6. 21. 15:47

일반적으로 많이 나오는 구구단 출력 프로그램이다.

 

#include <stdio.h>

int main(){
	int n=0;
	int i=0;
	printf("Enter number to print table: ");
	scanf("%d", &n); // inputs number
	
	for(i=1; i<11; i++) // repeats 10 times
		printf("%d * %d = %d\n", n, i, n*i); // print result with calculating
		
	return 0;
}

원하는 단을 입력받고 for문을 통해 출력하면 간단히 해결 가능하다.

 

n * 1부터 시작되기 때문에 i는 1부터 시작되고, n * 10 에 끝나기 때문에 11까지 증가해야 한다는 점은 주의해야 한다.

 

수를 입력받고 그 수의 자릿수를 출력하는 프로그램이다.

 

while문을 통해 간단히 해결 가능하다.

 

#include <stdio.h>

int main(){
	int n=0;
	int result = 0;
	printf("Ente any number: ");
	scanf("%d", &n); // inputs number
	
	do{
		n = n / 10; // division of 10
		result++; // after divising, ascending result
	} while(n > 0); // repeats until remain value of n is larger than 0
	
	printf("Total digits: %d", result); // print result
	return 0;
}

 

0이 나올때까지 수를 입력받고 0이 나온 시점에서의 모든 수의 합을 구하는 프로그램이다.

 

while문과 if문을 혼용할 수도 있고 while문만을 가지고 해결 가능하다.

 

더 확실히 하기 위해 나는 if~break를 활용하여 문제를 풀었다.

 

#include <stdio.h>

int main(){
	double n = 0;
	double sum = 0;
	do{
		printf("Enter a number: ");
		scanf("%lf", &n); // inputs number with double type
		sum += n; // sum inputted number
		if(n == 0){
			printf("Sum = %.2f", sum); // print result if last inputted number is 0
			break; // then break
		}
	} while(true); // repeat when break is called
	return 0;
}

 

과제 1에 나온 문제와 동일한 문제이다.

 

수를 입력받고 for문을 통해 삼각형과 역삼각형을 출력하는 문제다.

 

#include <stdio.h>

int main(){
	int n=0;
	int i, j=0;
	printf("Enter number of columns:");
	scanf("%d", &n); // inputs number
	
	for(i=1; i<(n); i++){ // upper trianble (ascending)
		for(j=0; j<i; j++){
			printf("*"); // print each line
		}
		printf("\n"); // goes next line after printing each line
	}
	
	for(i=n; i>0; i--){ // lower triangle (descending)
		for(j=i; j>0; j--){
			printf("*");// print each line
		}
		printf("\n"); // goes next line after printing each line
	}
	return 0;
}

역삼각형의 시작점을 잘 설정하는 것이 이 문제의 관건인 듯 하다.

 

헷갈리면 최대로 나오는 줄이 두줄이 되는 경우가 있기 때문이다.

'전공 > C' 카테고리의 다른 글

과제 6 - Function (6 ~ 9)  (0) 2021.06.22
과제 6 - Function (1 ~ 5)  (0) 2021.06.21
과제 5 - Control Flow 2 (1 ~ 5)  (0) 2021.06.21
과제 4 - Control Flow (6 ~ 9)  (0) 2021.06.21
과제 4 - Control Flow (1 ~ 5)  (0) 2021.06.21