[한방에 이해하는 C언어] 키보드로부터 입력을 받자! scanf()함수 우리가 전 시간에 printf()함수를 이용해서 화면에 출력을 해보았습니다. 다 해보셨죠? 그런데 printf()함수만으로는 우리가 원하는 프로그램을 만들 수 없습니다. 적어도 요즘 많은 프로그램들은 최소한 아이디와 비밀번호는 입력하게끔 되어 있으니 말이죠. 그래서 오늘은 C언어에서 키보드로 입력을 할 수 있는 scanf()함수에 대해서 알아보도록 하겠습니다. scanf() 함수의 스펙 아래의 내용을 scanf() 함수의 특성을 한 눈에 볼 수 있도록 정리한 것입니다.잘 모르더라도 일단 넘어가면 됩니다. 나중에 다 알게 되니까요^^ 예제 소스 - scanf()로 숫자를 입력받아 입력받은 숫자를 출력하는 소스 이번에는 C언어에서 지원하..
C언어 정렬 - 버블정렬(Bubble Sort) 쉽게 정리하기 버블 정렬(Bubble Sort)은 두 인접한 원소를 검사하여 정렬하는 방법입니다. 버블 정렬(Bubble Sort)은 시간 복잡도가 O(n^2)로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용되는데요. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 지어진 이름이라고 하네요. 버블 정렬(Bubble Sort) - 두 인접한 원소를 검사하여 정렬하는 방법 - 시간 복잡도 O(n^2) - 코드가 단순하기 때문에 자주 사용됨 버블 정렬 알고리즘 실행 과정 해부하기 버블 정렬 알고리즘의 실행 과정을 보도록 하겠습니다. 이 버블 정렬 알고리즘은 인접한 두 수를 비교해서 큰 수를 뒤로 보내는 알고리즘이라고 위에서 설명한 바 있는..
사용자로부터 1~12까지의 달을 month로 입력받은 후 1월부터 입력된 month 월까지의 총일을 total에 구하여 다음과 같이 출력하시오. 프로그램을 단순화하기 위해 2월이 29일까지 있는 윤년은 고려하지 않고 2월은 무조건 28일까지로 처리한다.hint. 열두 달의 일수를 저장하기 위해 1차원 배열을 사용한다. 이때 다음과 같이 배열의 첨자가 곧바로 월을 의미하도록 배열의 크기를 13으로 선언하여 두 번째 원소부터 각 월의 일수를 저장하는 것도 첨자로 인한 헷갈림을 피할 수 있는 방법이다.int days[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 프로그래밍 문제를 풀어보세요. #include int main() { int days[13..
프로그래밍 문제를 한번 풀어보아요^^ 종이를 한번 접으면 면적이 1/2로 줄어든다. 종이를 몇 번 접어야 원래 면적의 1/100로 줄어드는가? 역시 로그 함수나 지수 함수를 사용하지 말고 반복 구조를 이용하여서 해결하여 보자. 1/100로 면적이 언제 줄어드냐는 건데요 처음 크기가 1이라고 했을때 한번 접으면 1 / 2 = 1/2 가되고 두번 접으면 (1/2) / 2 = 1/4 세번 접으면 (1/4) / 2 = 1/8 . . . 이런식으로 면적값이 0.01보다 작거나 같아질때까지 계속 2로 나누는 겁니다. (1/2를 곱해도 되구요) #include int main() { float a=1; int i=0; while (a > 0.01) { a/=2; i++; } printf("%d번 접으면 원래의 1/1..
프로그래밍 문제를 한번 풀어보아요^^ 세균이 1시간마다 4배씩 증가한다고 가정하자. 이 세균 10마리를 배양하면 7시간 후의 세균의 수는 얼마나 될까? 역시 지수 함수나 로그 함수를 이용하지 말고 반복 구조만을 사용하여서 해결하여 보자. 언어에 구애받지 않고 어떤 언어로 푸셔도 상관없을 것 같네요. 즐거운 프로그래밍 문제를 한번 풀어보시기 바랍니다.^^ 풀이방법은 아래에^^ * 해결 10마리로 시작해서1시간이 지나면 10마리*4=40마리2시간이 지나면 40마리*4=160마리3시간이 지나면 160마리*4=640마리 . . .식으로 늘어난 마리에서 다시 4배를 7번 해주면 되겠죠 #include int main() { int b=10; int i; for(i=0; i < 7; i++) { b*=4; } pr..
armstrong number란 각 자릿수의 숫자 세제곱이 원래의 수가 되는 수를 말합니다.예를 들어 1^3 + 3^3 + 5^3 = 1351의 세제곱과 3의 세제곱과 5의 세제곱의 합은 135입니다. 입력받은 숫자가 armstrong number인지 아닌지 판별하는 프로그램을 만드세요. #includevoid main(){int n;scanf("%d", &n); 채워야할 코드. if(채워야할 코드.)printf("%d는 armstrong number입니다.", n);elseprintf("%d는 armstrong number가 아닙니다.", n);}
프로그래밍 문제, 프로그래명 : notaskwhy 프로그래밍 문제입니다. 출처는 dovelet입니다. 프로그램 명: notaskwhy제한시간: 1 초학생의 반과 번호가 입력으로 주어진다.줄을 서는 방식은반으로는 1 , 4 , 2 , 3 반 순으로 줄을 서야하고같은 반 내에서는 1 반과 3 반은 오름차순 2 반과 4 반은 내림차순으로줄을 서야 한다.왜 그렇게 줄을 서야 하는지는 묻지마라... 묻다가 다친 사람이 여러 명이다.(^^) 입력입력의 첫줄은 총 인원수 n 이 입력된다. n 은 1 이상 100 이하인 자연수이다. 다음 줄 부터는 반 번호와 반 내에서의 학생번호가 입력된다.반 번호는 1 에서 4 까지이고 학생 번호는 1 에서 60 사이다. 물론 같은 반내에서는 같은 번호가 존재하지 않는다. 출력정렬된..
오늘은 간단한 C언어 문제를 풀어보도록 하겠습니다. 이 문제는 C언어를 배우면서 초반에 많이 보시는 문제일수도 있으리라 생각이 됩니다. 바로 신장(키)을 입력받아 신장을 비교하여 누가 큰지 결과를 출력하는 프로그램입니다. 신장 비교 문제두 사람의 이름과 신장을 입력 받아 누가 얼마나 더 큰지를 판단하여 출력하는 프로그램을 작성하시오. 출력 예길동의 신장은 170.5cm이고 공자의 신장은 188.4cm로서공자가 길동이 보다 17.9cm더 큽니다. #include void main() { char name1[30], name2[30]; float height1, height2; printf("이름을 입력하세요 : "); scanf("%s", name1); printf("%s의 키를 입력하세요 : ",..
두 개의 실수를 입력받아 크기에 따라 곱셈, 나눗셈 하는 소스 작성하기 오늘도 C언어 문제를 풀어볼까요? 실수형 데이터 2개를 입력 받아 첫 번째 수가 두번째 수보다 크거나 같으면 곱셈 연산을 반대이면 나눗셈 연산을 하는 코드를 작성하세요. C언어로 어떻게 짜야할지 잘 모르시겠다구요? 잘 모르겠더라도 포기하지 마시고 도전해 보세요^^ 예제 소스는 아래에 있습니다. #include int main() { double x, y, z; printf("두 개의 실수를 입력하세요 : "); scanf("%lf %lf", &x, &y); if(x>=y) z=x*y; else z=x/y; printf("결과는 %g입니다.\n", z); return 0; }
오늘은 숫자 하나(n)을 입력받아서 1부터 n까지의 합을 구하는 C/C++ 소스를 알아보도록 하겠습니다. 일반적으로 for문이나 while문을 사용해서 합을 구하기도 하지만 오늘은 재귀라는 방법을 이용해서 합을 구해보도록 하겠습니다. 재귀(recursion)는 무엇일까요? 재귀는 자기 자신을 호출하는 것을 말합니다. 예제 소스를 보시면 아시겠지만 재귀는 자기 자신을 여러번 호출해서 값을 구하게 됩니다. 실제로 소스를 보도록 하겠습니다. C언어로 1부터 n까지 합을 구하는 예제소스(재귀) 아래의 소스는 C언어로 1부터 n까지 합을 구하는 소스입니다. #include int sum(int n); int main() { int number; printf("숫자를 입력하세요 : " ); scanf("%d", &..
C언어로 별모양 출력하는 소스 아래와 같이 C언어로 별모양을 출력하는 소스입니다. 아래는 예제 소스입니다. #include int main(void) { int i, j, h; printf("높이 입력 : "); scanf("%d", &h); for(i = 0; i < h; i++) { for(j = 0; j < h; j++) { if(j < h-i-1) printf(" "); else printf("*"); } printf("\n"); } return 0; }
특정 키를 눌렀을 때 반복 종료하기 무한반복을 수행하는 반복문에서 특정키를 눌렀을 때 특정 행동(예를 들면 반복을 종료하는 행동 등) 을 하는 방법에 대해서 포스팅해 보도록 하겠습니다. 이 경우 kbhit() 함수를 이용하는데요. 예제 소스는 아래와 같습니다. #include #include void main() { while(1) { if( _kbhit() ) // 특정키가 눌리면... { if( getch() == 'z' ) // 눌린키가 z 이면 스탑. break; } // 문한반복에서 하려는 작업 } printf("stop...\n"); }
자연수 n을 입력받아 특정 모양 만들기 양의 정수 n 을 입력받아 다음과 같은 결과를 출력하는 함수를 작성하라. 예를들어 3을 입력하면다음과같은 출력결과가 나타난다. 0 11 222 3333 222 11 0 실행 화면 소스 #include int main() { int i, j; // for문 위한 변수 int n; // 입력 : 양의 정수 // n 입력 printf("양의 정수 n="); scanf("%d", &n); // 삼각형 윗 부분 출력 // 0부터 n까지 for(i=0;i
[C언어 예제 소스] 4x4 형태의 사각형 1로 채우기 이번에는 아래와 같이 4x4 형태의 사각형에서 0으로 된 부분을 1로 서서히 채우는 소스를 작성해 보도록 하겠습니다. 1 0 0 00 0 0 00 0 0 00 0 0 0 1 1 0 01 0 0 00 0 0 00 0 0 0 1 1 1 01 1 0 01 0 0 00 0 0 0 ... 1 1 1 11 1 1 11 1 1 11 1 1 1 소스 실제 작성한 소스입니다. #include #define MAX 4 void main() { int i, k, n; for(n=0; n
이분검색(binary search)는 데이터가 정렬되어 있다는 가정하에 실행합니다. O(n) = log2N으로 데이터의 양이 많더라도 그 크기에 큰 영향을 받지 않아 매우 좋은 것으로 알려져 있습니다. [C언어] 이분검색 예제 소스 #include int binarysearch(int data[], int n, int find_key); void printarray(int data[], int n); int main() { int narray[10]={1,2,3,4,5,6,7,8,9,10}; int a; int nindex; printarray(narray,10); // 찾을 값을 입력 받음 printf("찾는 값은?\n"); scanf("%d",&a); // 이분검색 nindex = binarysear..
- Total
- Today
- Yesterday
- W3Schools Online Web Tutorials
- 구차니의 잡동사니 모음
- [IT]블로거팁닷컴
- 비앤아이님의 블로그
- Blog Suspect
- 즐거운하루 blog
- zinicap의 검색엔진 마케팅(SEM)
- 머니야머니야님의 블로그
- [Friend] AtinStory
- [기타배우기]해브원 박스
- [웹표준] SINDB.com
- 해커 C 이야기
- [애드센스] 길라잡이
- 정순봉의 IT SCHOOL
- 씨디맨의 컴퓨터이야기
- 2proo Life Story
- 못된준코의 세상리뷰
- [IT강좌] 정보문화사
- IN 대전
- 에우르트는 나쁜남자 -_-
- 씬의 싱크탱크
- 엔돌슨의 IT이야기
- 진이늘이
- 'Cooltime'의 블로그
- 후이의 Tistory
- Soulstorage
- 앤드&엔드의 블로그
- June Blog
- 노지의 소박한 이야기
- gbWorld
- 인터넷 속 나의 생각
- HarshNix
- ART of WEB
- 녹두장군 - 상상을 현실로
- C
- It
- 예제 소스
- 안드로이드 어플
- 강좌
- 프로그래밍 문제
- MBTI 강좌
- 성공
- C언어
- 효과음
- MBTI 검사
- C언어 문제
- JavaScript
- 프로그래밍
- 안드로이드
- 리뷰
- 인터넷
- 안드로이드 어플 추천
- 모토로이
- 소스코드
- 인터넷 익스플로러
- php
- C언어 소스
- 소스
- 강의
- HTML
- MBTI 테스트
- MBTI 자료
- MBTI
- 스마트폰
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |