1. switch~case문 계산기
- switch~case문은 다중 if~else문처럼 경우(case)의 수가 많을 경우 자주 사용하는 조건문이다.
- 결과가 정수형(int, char, enum)인 경우만 선택할 수 있으므로 범위 검사 문제에는 적당하지 않다.
- switch다음의 조건식은 결과가 정수형(int, char, enum)인 수식만 가능
- case 다음에 쓰는 상수1, 상수2 등을 레이블(label)이라 함
- case문의 레이블 다음에는 구두점 콜론(:)을 씀
- break문은 자신을 포함하고 있는 블록(루프)을 벗어나는데 사
- 조건식은 각 case문에서 차례대로 비교되고 조건식의 결과와 상수 레이블이 일치하면 그 아래 문장을 실행하고 break문을 만나면 switch~case문을 탈출
- 보통은 각 case별로 실행할 내용이 다르므로 case문마다 마지막에 break문을 모두 사용하지만, break문을 반드시 써야 하는 것은 아님
- 마지막 case에 해당하는 default문은 위의 case 레이블에 만족하는 경우가 없을 때 실행되는 부분으로 다중 if~else의 마지막 else에 해당함
switch(조건식){ //조건식은 결과가 정수형(int, char, enum)인 수식만 가능 case 상수1 : //조건식의 결과가 상수1이면, if(조건식==상수1) 문장1; break; //switch~case문 루프를 벗어남 case 상수2 : //조건식의 결과가 상수2이면, else if(조건식==상수2) 문장2; break; ⋮ case 상수n: 문장n; break; default : //만족하는 경우가 없을 때, 다중 if~else의 마지막 else에 해당 문장; break; //없어도 되지만 통일감을 위해 쓰는 것이 좋다. }//switch~case문 루프 끝 |
2. 반복문 for
<실습1>
#include <stdio.h>
int main(void)
{
int i;
for (i=0; i<100; i++){
printf("피피아노");
}
return 0;
}
<실습2>
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; ++i) {
printf("피피아노");
}
return 0;
}
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; i=i+1) {
printf("피피아노");
}
return 0;
}
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10; i+=1) {
printf("피피아노");
}
return 0;
}
<실습3>
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i< 10000; i++) {
printf("%03d\t ",i+1); }
return 0;
}
<실습4>
#include <stdio.h>
int main(void)
{
int i;
for (i = 3; i<= 100; i+=3) {
printf("%*d\n",i,i);
}
return 0;
}
<실습5>
#include <stdio.h>
int main()
{
int n; for(n=1;n<=1000;n++){
printf("피피아노 ");
}
return 0;
}
#include <stdio.h>
int main()
{
int n; for(n=1001;n<=2001;n++){
printf("피피아노 ");
}
return 0;
}
#include <stdio.h>
int main()
{
int n; for(n=1000;n>=1;n--){
printf("피피아노 ");
}
return 0;
}
<실습6>
#include <stdio.h>
int main(void)
{
int n, sum = 0; //초기화를 안하면?
for (n = 1; n <= 100; n++){
sum = sum + n;
printf("%d+", n);
}
printf("\n%d\n", sum);
return 0;
}
<실습7>
#include <stdio.h>
int main(void)
{
int i;
for (i = 0; i < 128; i++)
printf("%d=%c\t", i, i);
return 0;
}
<실습8>
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
char op;
int num1, num2;
for (;;) //추가
{ //추가
printf("\n덧셈과 뺄셈만 가능합니다\n");
printf("끝내려면 end을 입력하세요\n"); //추가
printf("계산하려는 수식(예:10+20)을 입력하세요:");
scanf("%d%c%d", &num1, &op, &num2); //10+20
if (num1 == 0 && num2 == 0) break;
else//추가
if ("%n end") break;
else//추가
switch (op) {
case '+':
printf("덧셈 결과는 %d입니다.\n", num1 + num2);
break; case '-':
printf("뺄셈 결과는 %d입니다.\n", num1 - num2);
break;
default:
printf("다시 입력하세요\n");
break;
}// switch~case문 끝
} //추가, for문 끝
return 0;
}
<실습9>
#define _CRT_SECURE_NO_WARNINGS //Visual Studio에서만 사용
#include <stdio.h>
int main(void)
{
int i, num, sum = 0, total;
printf("임의의 수의 평균을 구하는 프로그램입니다.\n");
printf("계산하려는 수는 몇 개입니까==");
scanf("%d", &total);
for (i = 1; i <= total; i++) {
printf("%d번째 수를 입력하세요=", i);
scanf("%d", &num);
sum += num;
}
printf("합은 %d,평균은 %lf 입니다.\n", sum, (double)sum / total);
return 0;
}
<실습10>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int i, num, sum = 0, total, max = INT_MIN, min = INT_MAX; //누적하는 변수 sum은 반드시 초기화 // max는 int형으로 표현할 수 있는 가장 작은 값 INT_MIN으로 초기화
// min은 int형으로 표현할 수 있는 가장 큰 값 INT_MAX로 초기화
for (;;) {
sum = 0, max = INT_MIN, min = INT_MAX;
printf("\n임의의 수의 평균을 구하는 프로그램입니다.\n"); printf("계산하려는 수는 몇 개입니까(끝내려면 0)=="); scanf("%d", &total);
if (total == 0) break;
for (i = 1; i <= total; i++) { printf("%d번째 수를 입력하세요=", i); scanf("%d", &num);
sum += num;
max = (num > max) ? num : max;
min = (num < min) ? num : min; }
printf("합=%d,평균=%.2f, 최댓값=%d, 최솟값=%d\n", sum, (double)sum / total,max,min);
}
return 0;
}
<실습11>
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int i, num, sum = 0, total, max = INT_MIN, min = INT_MAX;
//누적하는 변수 sum은 반드시 초기화
// max는 int형으로 표현할 수 있는 가장 작은 값 INT_MIN으로 초기화
// min은 int형으로 표현할 수 있는 가장 큰 값 INT_MAX로 초기화
for (;;) {
sum = 0, max = INT_MIN, min = INT_MAX;
printf("\n임의의 수의 평균을 구하는 프로그램입니다.\n"); printf("계산하려는 수는 몇 개입니까(끝내려면 0)=="); scanf("%d", &total);
if (total == 0) break;
for (i = 1; i <= total; i++) { printf("%d번째 수를 입력하세요=", i); scanf("%d", &num);
sum += num;
max = (num > max) ? num : max;
min = (num < min) ? num : min; }
printf("합=%d,평균=%.2f, 최댓값=%d, 최솟값=%d\n", sum, (double)sum / total,max,min);
sum = 0;
}
return 0;
}
<실습12>
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int n, m;
for (n = 1; n <=1000; n++)
{
printf("%d ", n);
for (m = 1; m <= n * 10000; m++);
}
return 0;
}
<실습13>
#include <stdio.h>
int main(void)
{
int n, m;
puts("작업을 시작합니다."); for (n = 1; n <= 100; n++) {
printf("%d%%\b\b\b\b", n);
for (m = 1; m <= n * 1000000; m++);
}
puts("작업이 완료되었습니다.");
return 0;
}
<실습14>
#include <stdio.h>
int main(void)
{
int dan,gop;
for(dan=2;dan<=9;dan++){ //단
for(gop=1;gop<=9;gop++){ //곱
printf("%dx%d=%2d ",dan,gop,dan*gop);
}
printf("\n");
}
return 0;
}
<실습15>
#include <stdio.h>
int main(void)
{
int dan, gop;
printf(" ◆ 구구단 표 ◆ \n"); //ᄆ한자키
for (dan = 2; dan <= 9; dan++) printf(" %d단 │ ", dan); printf("\n──────┼───────┼───────┼───────┼───────┼───────┼───────┼───────┼\n");//ᄇ한자키
for (gop = 1; gop <= 9; gop++){
for (dan = 2; dan <= 9; dan++) { //곱
printf("%dx%d=%2d│ ", dan,gop, dan * gop);
}
printf("\n");
}
return 0;
}
<실습문제>
#include <stdio.h>
#include <limits.h> //INT_MIN, INT_MAX가 정의되어 있음
int main(void)
{
int n, m;
for (n = 1; n <=1000; n++)
{
printf("%d ", n);
for (m = 1; m <= 10000000 / n; m++); //점점 빠르게
}
return 0;
}
<실습문제>
#include
int main(void)
{
int i, j;
for (i = 1; i <= 10; i++) {
for (j = 1; j <= i; j++) {
printf("*");
}
printf("\n");
}
for (i = 1; i <= 10; i++) {
for (j = 9; j >= i; j--) {
printf("*");
}
printf("\n");
}
return 0;
}
'C언어' 카테고리의 다른 글
[C언어] 배열, 구조체, 포인터 (0) | 2022.06.09 |
---|---|
[C언어] 함수, 기억클래스 (0) | 2022.06.02 |
[C언어] 제어문, 함수 (0) | 2022.05.27 |
[C언어] 제어문 (1) (0) | 2022.05.15 |