안녕하세요..^^* 오늘은 재귀호출을 이용해서 간단한 승패판단 프로그램을 짜 보도록 하겠습니다. 여기서 규칙을 정해야 되겠죠. 규칙 1 사과를 1개에서 3개를 제거할 수 있다. 무조건 제거해야 된다. 규칙 2 사과가 0개가 되어서 돌려주면 지는 것이다. 자 규칙 1과 2를 보고 여기서 보도록 하죠. 0이면 내가 사과를 0개를 가지고 있으니까. 안되는 것이죠. 그럼 사과를 4개를 가진다고 해 보겠습니다. 그렇다면 4개에서 1개를 남한테 주면 3개가 남죠. 그럼 다른 사람이 3개를 돌려주면 지고 2개를 남한테 주면 2개를 가진 사람이 2개를 줘 버리면 0개이고 3개를 다 줘버리면 1개가 남으니 상대가 1개를 돌려주면 그냥 지므로 무조건 집니다. 그렇다면 5개는 어떨까요? 내가 일단 1개를 주면 4개겠죠? 그..
안녕하세요..^^* 오늘은 배열을 오름차순으로 정리하는 법을 배워 보고자 합니다. 오름 차순이란 작은 값부터 큰 값으로 점점 나아가는 것이죠. 그럼 지금부터 한번 시작해 보도록 하겠습니다. 입력할 숫자 5를 누르고 즉 5개를 입력하는 것이죠. 5 4 3 2 1 을 누르니까 오름차순으로 1 2 3 4 5로 되어 버렸습니다. 이걸 이해하기 전에 조금 더 쉬운 소스코드를 이해해 보도록 하죠. 5를 똑같이 치고 5 6 7 0 1을 눌렀습니다. 0 6 7 5 1이 나왔네요. 이건 어떤 소스코드냐하면 제일 앞의 배열에 있는 값보다 작은 값이 나온다면 바꿔치는 것입니다. 4번째가 0이니 5보다 작으니까 바꿔치고 0과 1은 0이 더 작으니 그냥 나두는 소스코드이죠.^^* 쉬운 소스코드를 보죠. for문을 쓰고 일단 t..
안녕하세요..^^* 오늘은 배열 값을 바꾸는 프로그램을 한번 짜 보도록 하겠습니다. 배열은 같은 타입의 연속된 변수의 나열이라고 정의를 하죠. 예를 들면 a[3]==5이고 a[5]==7이면 이 두개를 바꿔치기 한다고 보시면 됩니다. 그럼 지금부터 시작을 해 보도록 할께요. 자 여기서 저희는 아무 숫자 하나를 입력합니다. 7을 입력하고 아무거나 쳐 볼께요 3 2 3 4 5 6 7이겠죠. 그럼 다시 밑에 3을 입력합니다. 그럼 3은 앞에서부터 검색해서 3과 제일 뒤에 숫자를 바꿔치기 하는 프로그램입니다. 즉 순방향으로 검색해서 그 값의 색인을 찾고 그것을 제일 뒤에거랑 비교해서 그 값이 다르면 바꾸는 프로그램입니다. 만약 제일 뒤에 값이 7이 아니라 3이라면 6과 3을 바꿔서 6 2 3 4 5 3 3 이 되..
안녕하세요..^^* 오늘은 배열을 검색하는 프로그램을 짜 볼까 합니다. 한번 짜보면 쉽지만 생각보다 그렇게 쉽지가 않습니다. 함수도 몇개 정의해야하고 초보자가 하기엔 좀 어려울 수도 있지만 한번 시작을 해 보도록 하겠습니다. 일단 배열이 이렇게 주어져 있습니다. 그럼 배열을 2개 검색한다에서 2를 치고 1에서 100사이의 값을 2개 입력합니다. 그 다음에 +는 순방향 검색 -는 역방향검색으로 합니다. 그럼 2와 1 중 1이 작은 값이니 1을 역방향으로 검색하면 a[8]이고 순방향으로 검색하면 a[0]=1이니까 쉽게 할 수 있겠죠.ㅎㅎ 그럼 이런 것들을 나타내는 프로그램을 한번 짜 보도록 하겠습니다. 일단 get_array함수를 정의할건데요 이 함수는 vn보다 작은 j에 대해서 배열 v[j]만큼 입력하고 ..
배열이란 같은 타입의 연속된 변수들로 구성된 복합 변수인데요. ㅎㅎ 이것의 인덱스란 즉 a[3]이라고 할때 3을 말하는 것이라고 할 수 있습니다. 배열은 a[0] 부터 a[n-1]까지입니다. 흔히들 1부터 n까지라고 착각하시는 분들이 있더라구요. 어쨋던 오늘은 []안에 있는 인덱스를 한번 구해 보도록 하겠습니다. a[9]={1,2,3,4,5,4,3,2,1}입니다. 여기서 2와 5를 눌렀는데 그 중에 작은 값의 인덱스를 찾을려고 하고 있는데요. 이것의 인덱스는 1입니다. 왜냐하면 a[0]=1이고 a[1]=2이기 때문이죠. 0부터 시작하기 때문에 주의 하셔야 합니다. 그럼 이런 간단한 프로그램을 한번 짜 보도록 하겠습니다. 자 이제 배열을 선언하고 프로그램을 짭니다. 중요한 부분은 for문인데요. 저 문장에..
혹시 덧셈 뺄셈 곱셈 나눗셈 등을 보고 연산자라고 하죠. 그것뿐만 아니라 = +=과 같은 대입연산자와 ++i 같은 증감연산자, && and ll or 같은 논리연산자가 있는데요. 오늘은 c언어에서 4칙연산을 하는 연산자와 증감연산자에 대해서 알아 보겠습니다. 첫번째로는 4칙연산에 대한 연산자입니다. 덧셈과 뺄셈 곱셈은 별표를 왜냐하면 곱셈으로 하면 x와 헷갈릴 수 있다고 해서 이렇게 바꾸어 놓았습니다. 나누기는 / 그리고 나머지는 %로 정의해서 적어 주시면 됩니다. 이번에는 증감연산자에 대해서 알아볼까요. 전치증감과 후치증감이 있습니다. 이말이 뭐냐하면 ++a는 a에다가 1을 더한 값을 출력하는 것이고 a++는 일단 a를 출력한 후에 1을 더하는 것입니다. 즉 두번째 b를 보시면 1을 더해서 6이나와야 ..
저번 포스팅에서는 한 수의 약수를 나열하는 것을 배워 봤습니다. 그를 응용해서 오늘은 두 수의 공약수를 구하는 프로그램과 최대공약수 구하는 프로그램을 한번 짜 보도록 하겠습니다. 일단 소스코드를 보겠습니다. 정수형 변수 i 와 a, b를 선언합니다. 그 다음에 입력을 하는 것이죠. 가장 중요한 부분은 바로 for문과 if문이 아닐 까 싶습니다. for문에서 i는 1까지부터 i는 a와 b모두 같거나 작게 만들어 줍니다. 이때 if문을 써서 a나누기 i가 0이고 b나누기 i가 0이면 그 i값을 인쇄를 하는것이죠. 24와 36을 예로 들어 보겠습니다. 24와보다 작은 수와 36보다 작은 수 둘다 작은 수니 24보다 작은 수겠죠. 거기에서 24와 36은 1로 나누어지니 1을 하고 2로 나누어지니 2를하고 이런식..
오늘은 약수인지 판별하는 것에서 업그레이드해서 약수를 나열하는 것을 한번 배워 보겠습니다. 생각보다 어렵지 않습니다. 바로 for문과 if문을 쓰게 되면 아주 간단하게 해결되기 때문이죠.^^* 그럼 지금부터 차근차근 한번 알아보도록 하겠습니다. 일단 결과가 이렇게 나옵니다. 40의 약수는 1 2 4 5... 40이런식으로나오게 말이죠..^^* 소스 코드 짜는건 아주 간단합니다. 일단 divisor함수를 생성하는 것인데요. i를 선언해서 for문으로 만든다음에 n나누기 i가 0이라는 말이 즉 n은 i로 나누어 떨어진다는 뜻이니까요. 그렇게 해서 이제 print divisor함수를 불러오는 겁니다. 어떤가요?? 아주 간단하지만 정말 이해하기 어려운게 c언어랍니다. 처음이 어렵지만 한번 해 보면 그렇게 어렵지..
오늘도 과제와 시름하다가 블로그는 뒷전이네요.ㅠㅠ 간단하게 오늘은 공배수 판별을 해 볼건데요. 15는 5와 3의 공배수이지만 24는 8과 15의 공배수가 아닌건 알구 계시죠?? 그럼 지금부터 소스코드를 올리면서 한번 해 보도록 할께요..^^* 일단 소스코드입니다. 일단 선언을 함수형태로 해 줘야 되겠쬬. 그 다음에 x나누기 a가 0 and x나누기 b가 0이면 리턴 1로 갑니다. 여기서 1이라는 뜻은 참이라는 뜻이지요. 아니면 0이라고 합니다. 위에게 먼저고 아래것이 먼저고 위에것이 나중입니다. 즉 공배수가 리턴 1로 갔다면 공배수가 참이라면 a common multiple 공배수이다 그렇지 않으면 공배수가 아니라고 단정 지은 다음에 리턴 0로 가는 겁니다. 결과값입니다. 이렇게 나오면 정상이라는 것이죠..
if문을 배워 봤으면 응용을 해야 하겠죠?? 조금 기초를 다져 놓으면 그 다음에 수월해 지는 것이 바로 c 언어 같습니다. 몇시간을 고민해도 안되다가 계속 찾아보게 되고 그 기본 로직만 알게되면 1분안에도 간단한 프로그램 하나를 짤 수가 있죠. 저도 생초보이고 이제 배우는 단계라 저를 따라 오시면 쉽게 하실 수 있을 것입니다. 일단 빈 프로젝트 열고 그 다음에 어떻게 하실지 모르시는 분은 없겠죠? 혹시 있다면 이 카테고리에 제일 처음으로 가 보시기 바랍니다. 일단 기본 툴은 적고 짝수라는 말은 2로 나누었을 때 나머지가 0이라는 뜻이죠? 그러니 a%2==0 ==같다는 뜻이고 =은 저장한다는 뜻입니다. 그래서 a는 even 짝수이고 else문을 활용하시면 됩니다. 출력을 하면 이렇게 나오겠죠??ㅎㅎ 같은 ..
if문을 배웠으니 실습을 해 봐야 되겠죠??ㅎㅎ 오늘 실컴 과제를 끝내고 저와 비슷하게 헤매시는 분들을 위해서 소스 하나 올려 놓을려고 합니다. 물론 저와 같은 분반일수도 있겠죠??ㅎㅎ 그럼 지금부터 학점관리 프로그램을 짜보겠습니다. 첫번째는 시험성적이고 두번째는 결석일수입니다. 즉 결석일수가 높으면 a+이 안나오게 하는 것이죠. 점수는 위에 것 보다 더 높지만 성적은 결석일수 때문에 D라는 것을 알 수 있습니다. 그리고 성적이 어느정도 아래이면 결석일수가 작아도 F라는 것을 알 수 있죠. 소스 프로그램입니다. 여기서 중첩 if문을 쓸건데요. 일단 실수형 변수 s와 정수형 변수 a를 선언합니다. 그 다음에 s와 a를 입력하고 s즉 성적이 70점보다 높은데 그때 결석일수가 5일보다 많으면 D를 주는 것입니..
저번 시간에 if문을 실용컴퓨터 시간에 들었는데 제 복습겸 포스팅 채우기용으로 시작하겠습니다. if문은 엄청 쉽습니다. 만약 ~~라면 어떤 변수를 출력하라는 아주 간단한 명령인데요. 그러면 어떻게 하는지 지금부터 간단히 알아 보도록 하겠습니다. 일단 처음에 빈 프로젝트 만드는 법은 다들 아실거라 믿습니다. 모르시는 분들은 제 c++에 제일 첫 포스팅에 잘 나와 있으니 거기서 배우시면 됩니다. 일단 int a라는 정수형 변수로 선언하고 scanf 즉 정수형 변수 를 a라는 것에 입력하라는 것입니다. 밑에 만약 a가 1이라면 즉 ==는 1이고 =는 저장하라는 뜻입니다. a=a+2라는 뜻은 a+2의 값을 a에 저장하라는 뜻이죠..^^* 컨트롤 f5를 눌러 보겠습니다. 1을 누르면 a는 1이라는 것이 나오고 2..