반응형

Q. 두 개의 텍스트 파일이 같은지 다른지 확인해보자. 단순히 공백문자 하나가 차이를 보여도 두 텍스트 파일은 다른것이다.








비교할 문자들을 넣을 배열을 두개 선언하고,

두개의 파일을 읽기전용으로 오픈한다.










두개의 파일의 끝까지 반복문을 돌려놓고,

각각의 배열에 파일들의 문자를 저장한다.


두개의 배열을 서로 비교하여, 일치, 불일치를 판명하여 출력한다.




오픈한 파일을 닫는다.





*파일 경로를 직접 입력 받을 수도 있다. 입력 받을 배열을 선언해주고 scanf함수를 사용하여 입력 받아주면 된다.


-결과창-





*만약 공백이 다르거나 대문자와 소문자가 달라도 일치하지 않는다가 출력된다.


반응형
반응형

Q. 문자열을 저장하고 있는 파일을 열어서 A와 P로 시작하는 단어의 수를 세어서 출력하는 프로그램을 작성하라. 단, 모든 단어는 공백문자(스페이스바, \t, \n)에 의해 구분된다.










>>파일입출력

text.txt파일을 읽기용도로 오픈한다. 만약 없으면 파일오픈 실패 출력.




>>그 파일의 끝부분까지 반복문을 돌력 A,a 또는 P, p로 시작하는 단어의 수를 저장한다.

fscanf함수는 공백을 기준으로 문자열을 구분하기 때문에 사용했다.





>>저장한 수를 출력한다.


>>오픈한 파일을 닫아준다.



*파일의 경로는 프로젝트 파일이 있는 곳에 저장을 해주어 파일이름만 쓰는경우, 전체적인 파일의 경로까지 다 표시해주는 경우 둘다 가능하다.







text.txt의 전문이다.

스페이스와 엔터 둘다 구분이 가능한지 알아보기 위하여 둘 다 사용을 해보았다.










































-결과창-


반응형
반응형

Q. 복소수를 나타내는 구조체를 정의하고, 복소수의 덧셈과 곱셈을 위한 함수를 각각 정의하자. 이를 기반으로 프로그램 사용자로부터 두 개의 복소수 정보를 입력받아 덧셈과 곱셈을 해보자..


>>개요

복소수 덧셈 : (a+bi) + (c+di) = (a+c) + (b+d)i

복소수 곱셈 : (a+bi) x (c+di) = ac - bd + bci + adi



우선, 복소수의 실수부와 허수부를 한번에 쓸 수 있도록 구조체를 선언한다.

기존의 자료형이름 대신 새이름을 부여하기 위해 typedef를 선언했다.




구조체 변수를 대상으로 연산을 하려면 함수를 따로 정의해야 한다. 

Number 구조체 변수의 덧셈/곱셈 연산을 정의한다. (위-덧셈, 아래-곱셈)


메인함수에서 구조체 변수 Number를 선언하고 각각의 연산을 위해 함수를 호출한다. 


-결과창-



반응형
반응형

Q. 앞의 1번 문제에서 구현한 프로그램을 조금 변경하여 구조체 포인터 배열을 선언하고 구조체 변수를 동적으로 할당하는 형태로 프로그램을 재구현하라.



>>동적할당 함수 malloc을 쓰기 위하여 헤더파일 추가


>>book 구조체를 선언해준다.

   








-메인함수부-







































구조체 포인터를 선언한 후, p변수에 포인터 초기화 동시에 메모리공간을 동적으로 할당하여 준다. 그 후, 앞의 문제와 같이 반복문을 사용하여 입력과 출력을 해주고 마지막으로 동적할당된 메모리공간을 반환하여 준다.


-결과창-



반응형
반응형

Q. 간단한 도서 관리용 프로그램을 작성하라. [제목, 저자명, 페이지수]에 대한 정보를 저장할 수 있는 구조체를 정의하고, 구조체 배열을 선언하여 도서에 대한 정보를 저장하는 구조를 작성해 보자. main함수에서는 사용자로부터 3권의 도서에 대한 정보를 입력받고, 입력이 끝나면 도서에 대한 내용을 출력해 주도록 하자.





   이름을 저장할 배열, 제목을 저장할 배열, 페이지 수를 저      장할 인트형 변수를 구조체로 정의한다.







main 함수에서


구조체를 한번에 담을 배열을 선언하고,


반복문을 사용하여 입력받는다.















출력부분













#printf, scanf 입출력함수를 사용하여 빈칸은 인정이 안되므로 주의하자(빈칸까지 수용하려면 putchar, getchar을 이용하라)


-결과창-










반응형
반응형

Q.야구게임을 컴퓨터와 할 수 있도록 프로그램을 작성해보자

>>개요 

컴퓨터가 0부터 9까지의 수 중에서 랜덤으로 세 숫자를 고르고, 사용자는 이것을 맞추는 게임이다. 숫자와 순서까지 모두 맞춰야하는데, 말할때마다 얼마나 비슷한지 알려주어야 한다.




배열 3자리를 선언하고 1부터 9까지의 수를 하나 랜덤으로 받는다. 단, 각 자리의 숫자가 중복되지 않게 앞자리 수와 같으면 다시 반복문을 돌려 다른 랜덤한 수를 받는다.






 컴퓨터가 세자리를 다 골랐다면, 게임을 시작한다. 무한 반복문 안에서 돌려 자신이 예상한 수를 입력하게한다. com배열과 usr배열을 순차적으로 방문하면서 수가 같으면서 자리까지 같으면 strike(str)변수를 하나 증가시켜주고, 숫자는 같은데 자리가 다르다면 ball변수를 하나 더해준다. 그런다음 결과를 알려준다. 만약 세자리 숫자와 순서가 모두 같을 경우,(3strike라면) 반복문을 빠져나와 게임을 종료한다.


-결과창- 


반응형
반응형

Q. 사용자로부터 가위 바위 보 중에서 하나를 입력 받은 후, 컴퓨터는 난수 생성을 통해서 가위 바위 보 중 하나를 선택하게 한다. 이 둘을 비교하여 승자와 패자를 가려라. 프로그램의 진행은 사용자가 질 때까지 계속되고, 게임을 결과를 출력해야 한다.


>>난수 발생 함수와 간단한 조건문을 사용하여 가위바위보 프로그램을 만들 수 있다.



사람이 질때까지 가위바위보를 반복해야 하므로 무한 반복문을 사용하여 만약 사람이 질 경우 break; 문을 사용하여 반복문을 빠져나오도록 하자. 또한 게임의 결과를 출력하기 위하여 변수를 따로따로 설정하여 이길경우 win변수를 1더해주고, 비길경우 moo변수를 1더해준다.


-결과창-




반응형
반응형

Q. 0이상 99 이하의 난수를 총 다섯개 생성하는 프로그램을 작성하시오.



















-결과창-




stdlib.h 헤더함수에는 rand함수가 들어가 있어 난수를 발생시킬 경우 사용된다. rand()함수를 %연산사를 사용하여 어떤수의 나머지값들만 랜덤으로 출력될수 있게도 가능하다.



srand((unsigned)time(NULL)); 을 사용하지 않고 난수를 발생시킨다면, 프로그램을 몇번 돌려도 계속 똑같은 값이 나온다. 그러므로 헤더파일 time.h에 선언되어 있는 time함수를 사용해 시간을 초단위로 계산하여 프로그램 실행 시마다 다른 정수 하나를 얻을 수 있게 선언해 주면 된다. 


Q. 두개의 주사위를 던졌을때, 결과를 출력하는 프로그램을 짜보자.












위의 문제와 비슷하지만 다른 점은 rand()함수를 어떤수로 나눈 나머지에다 1을 더한 것이다. 이유는 주사위에는 0이란 수가 존재하지 않고, 1을 더한다면 나머지에 1을 더한 수 들이 랜덤으로 출력되기 때문이다.


-결과창-




반응형
반응형

Q. 달팽이 배열을 만들어서 출력하는 프로그램을 작성하라.


 








>>달팽이 배열의 길이를 입력해준다.


>>길이가 0이 되기 전까지 반복문 돌린다.


>>왼쪽에서 오른쪽으로 순차적으로 값을 저장

    (turn이 음수가되면, 오른쪽에서 왼쪽으로 감)







>>길이를 하나 줄여주고!

>>위에서 아래쪽으로 저장해주는 반복문

   (turn이 음수가되면 아래쪽에서 위쪽으로 저장)







>>turn의 부호를 바꿔준다.


>>배열을 출력해준다.










-결과창-




반응형
반응형

Q. 길이가 4X4인 int형 2차원 배열을 선언하고, 배열의 요소들을 오른쪽 방향으로 90도씩 이동시켜서 그 결과를 출력하는 프로그램을 작성하라.


>>길이가 4 X 4인 배열을 선언하고 초기화를 해     준다.


>>아래와 같이 배열에 수를 넣고 출력



위와 같이 저장된 배열을 90도로 돌려 자리 이동을 시키려면, 


00자리 값을 03으로 옮기고, 01자리는 13...이런식으로 옮겨주어야 한다.





    




-결과창-



반응형

+ Recent posts

반응형
반응형