C언어 로또번호 생성하기 (당첨확률높이기)

_C언어 로또번호 생성하기 핵심요소조건문, 반복문, 함수, 배열, 포인터, 구조체 사용정렬, 짝수&홀수 판별라이브러리 함수 이번 포스팅에서 로또 번호를 출력을 해보려 합니다.일반적인 1~45 사이의 숫자 6개를 랜덤하게 뽑아내는 것이 아니라 조건을 넣어 출력을 해봅시다.해당 조건을 넣음으로써 다양하게 프로그래밍을 연습 할 수 있습니다.(극악의 번호들이 나올 경우를 줄여 당첨 확률을 높일 수 있습니다.) 조건1) 원하는 만큼 출력 할 수 있어야 한다.조건2) 같은 줄에 중복된 숫자가 없어야 한다.조건3) 같은 줄에 숫자가 모두 홀수가 아니어야 한다.조건4) 같은 줄에 숫자가 모두 짝수가 아니어야 한다.조건5) "1-2-3-4-5-6" 과 같은 수열이 아니어야 한다. - 헤더 파일, 함수를 우선 선언 하여 ..

C언어 '('와')' 의 짝이 맟는지 검사하는 프로그램 만들기

조건 1: '(', ')' 이둘의 갯 수가 같아야 한다.조건 2: 첫번째에 ')'이 오면 안되고 마지막에는 '(' 이 오며 안된다. 조건 3: 앞의 '(' 뒤에 ')'이 더 많이 있으면 안된다. 이 세가지 조건을 생각하면서 하면 쉽게 풀수 있습니다 #include#pragma warning(disable:4996) // 2010 이상 scanf 보안 경고 제거용 #define SIZE 100 // 배열의 크기 지정용 int main(void) {int index=0; // 문자열 배열의 인덱스 값int i=0, j=0; // '('와 ')'char inout[SIZE];printf("괄호를 입력: ");scanf("%s", inout); /* 각각의 갯수 카운트 */while (inout[index] !..

C언어 다차원 배열 - 3차원 배열

3차원 배열에 대한 설명을 하기에 앞서 몇가지의 사실을 알았으면 한다. 3차원배열은 흔히 사용되는 배열이 아니며, 여러분이 2차원 배열을 이해하고 있다면 3차원 배열도 이해하고 있다는 것이다. 따라서, 2차원 배열을 100%다 알고 있다면 3차원 배열에서 추가적으로 알아야할것은 많지가 않다. 하지만,만약 3차원 배열이 이해가 안된다면 다차원 배열에 대한 이해가 부족하거나 다차원 배열이 익숙치않은 것이다. 3차원 배열이란? 2차원 배열이 세로와 가로를 가진 사각형 형태의 모양이라 한다면 3차원 배열은 가로, 세로 그리고 높이가 추가 되었다고 볼 수 있다.이것은 직육면체와 같은 모습이며, 흔히들아는 장난감 큐브와 같다. 우선 아래의 코드를 실행하여 3차원 배열의 크기를 확인하자.그러면 3차원 배열의 구조를 ..

C언어 다차원 배열 - 2차원배열

다차원 배열이란? 기본적인 1차원 배열과 2차원 배열, 3차원 배열이라는 것들을 통틀어 다차원 배열이라한다.배열이란? - 바로가기 위의 링크를 클릭하여 배열을 살펴보면 알겟지만 1차원 배열은 논리적으로 1차원의 형태를 띤다.그럼 2차원 배열과 3차원 배열은 마찬가지로 논리적으로 2차원과 3차원의 형태를 띄고 있다.즉 2차원 배열은 가로와 세로을 가지는 평면구조의 사각형의 형태를 가지지만 3차원 배열은 가로와 세로, 높이를 가지는 직육면체의 구조를 가진다. 여기서 알아두어야 할것은 C언어에서는 문법적으로 4차원 5차원 또는 그이상을 허용을 하지만 불필요 하기도하고 논리적으로 이해하기힘들어 사용하지 않는다. 따라서 다차원 배열이라 하면 1차원, 2차원, 3차원 배열을 의미한다고 보면된다. 먼저 2차원 배열을..

C언어 배열(Array)에 숫자 10개 입력하여 홀수, 짝수 따로 출력하기

[윤성우의 열혈C프로그래밍 도전! 프로그래밍2 -도전1]길이가 10인 배열을 선언하고 총 10개의 정수를 입력 받아서, 홀수와 짝수를 구분 지어 출력하는 프로그램을 작성하여 보자. 일단 홀수부터 출력하고 나서 짝수를 출력하도록 하자. 단, 10개의 정수는 main 함수 내에서 입력 받도록 하고, 배열 내에 존재하는 홀수만 출력하는 함수와 배열 내에 존재하는 짝수만 출력하는 함수를 각각 정의해서 이 두 함수를 호출하는 방식으로 프로그램을 작성하여라. #include#pragma warning(disable:4996) // scanf 보안 경고 제거용#define SIZE 10 void odd_num(int n[]); // 홀수출력 함수선언void even_num(int n[]); // 짝수출력 함수 선언 ..

C언어 파일 입출력 - 스트림(Stream)의 형성과 fopen함수

스트림이란(Stream)쉽게말해 사용자가 구현하려는 프로그램(Program)에서 파일(File)을 사용하기위해서는 파일(File)과 프로그램(Program)사이에 다리(Bridge)를 놓아야하는데 이 다리(Bridge)를 스트림(Stream)이라 한다. 하지만 실제로 다리가 놓이는 것은 아니며 스트림이 형성이 되었다고 한다면 이렇게 이해를 하면 좋을것 같다." 파일로부터 데이터를 읽어 들일(파일에 데이터를 쓸) 기본적인 준비가 완료 되었다 "그리고 알아두어야 할 점은 운영체제가 파일의 구조를 결정하고 관리하기에 스트림의 형성도 운영체제가 해준다. #includeFILE * fopen(const char * filename, const char * mode);- 성공 시 해당 파일의 FILE 구조체 변수의..

C언어 들여쓰기 단축키(자동정렬 단축키)

컴퓨터가 코드를 읽는데 있어서 들여쓰기는 중요한 것이 아니다 하지만 사람이 읽는데 있어 많은 어려움이 있기에 들여쓰기를 하는것 이다. 씨언어를 블로그나 워드 파일 등에서 복사&붙여 넣기를 하게 되면 보통의 경우엔 들여 쓰기가 엉망이다.이런 경우, 모르는 사람이라면 한줄한줄 탭키와 백스페이키를 누르며 힘들게 작업할것이다.하지만 이제는 그럴 필요가 없다. 먼저 예를 보여주겠습니다.아래의 코드를 보고 무엇인가 느껴지는 것이 없다면 프로그래머가 아닙니다. 이제 여러분의 코드들을 블럭을 친후에 단축키 "Alt + F8"를 입력 하여보자아마도 아래의 사진 처럼 시원하게 들여쓰기가 잘 되었을 것이다. 14년11월23일 추가!몇몇 컴파일러에서는 Alt + F8이 안된다고 합니다.이런분들은 Ctrl + K -> Ctrl..

C언어 포인터(Pointer)란? 포인터의 완벽 이해

"포인터란 어떠한 값을 저장하는게 아닌 어떠한 값의 주소(Address)를 저장하는 것 이다!" 어떠한 값의 주소라함은 해당값이 저장된 컴퓨터 메모리상의 주소를 의미한다.ex) num이라는 변수에는 5의 값이 저장되어있다. 그리고 *pnum이라는 포인터 변수에는 num의 주소 123456이 저장 된다는 것이다. 포인터 변수를 만들때는 변수이름앞에 *을 붙여주면 그변수는 포인터 변수가 된다.(사용할때 일반변수와의 구분을 위해 주로 '*p변수이름'의 형식으로 사용한다.) 간단하게 포인터 함수를 이용하여 포인터 변수 정의와 &연산자에 대하여 설명을 하겠다.#include int main(void){int *pnum; // 포인터 변수 선언int num = 12345; // 일반변수 선언 & 초기화pnum = ..

C언어 배열이란? - 1차원배열

배열은 다수의 데이터를 저장하고 처리하는 경우에 유용하게 사용할 수 있다.예를 들어 한반에 30명있을때 각각의 학생들의 점수를 입력받아 저장 해야할때 배열이 쓰이게된다. 위같은 상황에서 배열을 사용하지 않으면 변수선언은 물론 입력받는 것부터 저장, 출력도 30번을 적어야한다.이 세가지만 하더라도 코드의 줄은 90줄이다. 그래서우리는 배열이라는 것을 사용하는것이다. 한 반에 10명이 있을때 각각의 학생들의 점수를 입력받아 저장, 출력하는 코드를 짜보았다 코드는 아래와 같다.#include #define SIZE 10#pragma warning(disable:4996) int main(void){int students[SIZE];int i;int sum=0;for (i = 0; i < SIZE; i++) {..

c언어 반복문 연습 여러가지 기호로 삼각형 출력하기

사용자로 부터 정수를 입력받아 원하는 만큼 여러가지 기호 출력하기. (시마노님 요청)]- 반복문 사용- *, #, @ 를 이용하기아래의 결과 값을 참고하여 만들어 보자. #include#pragma warning(disable:4996) // scanf 오류 때문에 사용 void print(int n); // 함수원형 선언 int main(void){int n;printf("정수를 입력 :");scanf("%d", &n);print(n); // 함수호출return 0;}void print(int n){int i, j; // 반복을 위한 변수for (i = 0; i = 0; j--){if (j %3==0)printf("*");if (j%3==1)printf("@..