*윤*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 7
검색어 입력폼
  • 문제 : 두 집합의 교집합 출력, 두 집합의 합집합을 출력, Histogram 출력, 배열을 이용한 성적표 출력, 홀수 마방진, 같은 숫자 찾기
    문제 : 두 집합의 교집합 출력, 두 집합의 합집합을 출력, Histogram 출력, 배열을 이용한 성적표 출력, 홀수 마방진, 같은 숫자 찾기두 집합의 교집합 출력Solution두 집합의 교집합을 출력하기 위해서는 일단 교집합을 출력할 두 집합을 만들어야 한다. 그렇기 때문에 크기가 20인 1차원 배열을 두 개 만들어 준다. 그 후, 배열에 1~100까지의 숫자들을 랜덤으로 20개 설정한다. 그러나 각 집합의 원소들의 중복을 허용하지 않기 때문에 반복문을 이용하여 각 인덱스를 돌면서 조건문을 사용하여 중복이 나오면 다시 랜덤으로 난수를 설정하도록 한다. 이 과정을 배열이 두 개이기 때문에 두 번을 동일하게 수행해준다. 그런 다음 마지막으로 두 개의 원소 중 중복되는 것을 골라야 하기 때문에 반복문을 통해 각 인덱스를 돌면서 조건문을 통해 두 개의 원소가 같다면 same변수에 넣고 이를 계속하여 더해주도록 한다. 마지막으로 이 변수를 출력해주면 교집합을 출력 할 수 있다.Source codevoid findIntersectionSet(){int vinte[20], twenty[20];int i, j, same = 0;for (i = 0; i < 20; i++) {vinte[i] = rand() % 100 + 1;//난수 20개 설정for (j = 0; j < i; j++) {if (vinte[i] == vinte[j]) {vinte[i] = rand() % 100 + 1;j = 0;}}printf("%d ", vinte[i]);}printf("n");//배열1for (i = 0; i < 20; i++) {twenty[i] = rand() % 100 + 1;//난수 20개 설정for (j = 0; j < i; j++) {if (twenty[i] == twenty[j]) {twenty[i] = rand() % 100 + 1;j = 0;}}printf("%d ", twenty[i]);}printf("n");//배열2for (i = 0; i < 20; i++) {for (j = 0; j < 20; j++) {if (vinte[i] == twenty[j]) {same = same + vinte[i];}}}printf("%d", same);printf("n");}두 집합의 합집합을 출력Solution두 집합의 합집합을 출력하기 위해서도 위의 교집합과 유사하게 두 두 개의 배열이 필요하다. 그 후, 합집합이란, 모든 원소들을 다 더한 후, 교집합의 부분을 빼주면 되기 때문에 same전까지의 작업만 교집합과 동일하게 해준 후, 각 배열을 다 더하는 sum과 sum1의 변수를 만들어 주고, 위에서 교집합 부분을 구하는 방법과 같이 same변수를 통해서 교집합을 구하고 나서 마지막으로 total변수를 이용하여 sum과 sum1을 더하고 same을 빼주면 합집합을 구할 수 있다.Source codevoid findUnionSet(){int vinte[20], twenty[20];int i, j, same = 0;long long sum1 = 0, sum = 0, total;for (i = 0; i < 20; i++) {vinte[i] = rand() % 100 + 1;//난수 20개 설정for (j = 0; j < i; j++) {if (vinte[i] == vinte[j]) {vinte[i] = rand() % 100 + 1;j = 0;}}printf("%d ", vinte[i]);sum = sum + vinte[i];}printf("n");//배열1for (i = 0; i < 20; i++) {twenty[i] = rand() % 100 + 1;//난수 20개 설정for (j = 0; j < i; j++) {if (twenty[i] == twenty[j]) {twenty[i] = rand() % 100 + 1;j = 0;}}printf("%d ", twenty[i]);sum1 = sum1 + twenty[i];}printf("n");//배열2for (i = 0; i < 20; i++) {for (j = 0; j < 20; j++) {if (vinte[i] == twenty[j]) {same = same + vinte[i];}}}total = (sum + sum1) - same;printf("%lld", total);printf("n");}Histogram 출력일단 난수를 1000개 생성해야 하기 때문에 1000크기의 배열을 생성해 준다. 그 후, 반복문을 이용하여 1~20까지의 난수를 생성해야하기 때문에 식을 rand() % 20 + 1이렇게 만들어 준다. 다음 조건문을 이용하여 특정 수의 난수가 나오면 별을 찍기 위한 배열 star에 넣고, 개수에 따라 값을 1씩 증가시켜준다. 그 다음 반복문을 이용하여 star의 배열의 값에 따라 *을 출력시켜주면 된다.Solutionvoid printHistogram(){long long mil[1000];long long star[20] = { 0 };int i, j;for (i = 0; i < 1000; i++) {mil[i] = rand() % 20 + 1;//난수1000개 생성for (j = 0; j < 20; j++) {if (mil[i] == (j + 1)) {star[j] = star[j] + 1;}}}for (i = 0; i < 20; i++) {printf("%d ", i+1);for (j = 0; j < star[i]; j++) {printf("*");}printf(" %dn",j);}}배열을 이용한 성적표 출력Solution배열을 이용한 성적표를 출력하는 것이기 때문에 일단 ID를 받을 배열과 성적을 담을 배열을 각각 1차원, 2차원의 배열로 생성시켜준다. 그 후, 반복문을 이용하여 ID와 성적을 scanf를 통해 입력받고, 성적 이외에도 총점과 평균을 출력하여야 하기 때문에 이를 위해 sum배열을 생성하여 반복문을 돌 때, 같이 sum의 배열에 값을 넣어 총점을 만든다. 그리고 평균을 총점을 과목수로 나눈 것이기 때문에 4로 나누면 총점을 구할 수 있다. 이를 반복문을 통해 출력시키면 최종적으로 성적표를 출력시킬 수 있다.Solution codevoid printScoreReport(){int student[5];int score[5][4];int i, j;float sum[5];for (i = 0; i < 5; i++) {printf("Input ID : ");scanf("%d", &student[i]);printf("Input Scores : ");sum[i] = 0;for (j = 0; j < 4; j++) {scanf("%d", &score[i][j]);sum[i] = sum[i] + score[i][j];}}printf("nIDt국어t영어t수학tC++t총점t평균tn");for (i = 0; i < 5; i++) {printf("%dt", student[i]);for (j = 0; j < 4; j++) {printf("%dt",score[i][j]);}printf("%.0ft%.2f",sum[i], (sum[i] / 4));printf("n");}}홀수 마방진Solution홀수 마방진을 출력하기 위해서는 몇 가지 규칙들을 만족해야 한다. 먼저 정사각형의 맨 아랫줄을 가운데를 1로 고정시켜야 한다. 이 정사각형을 일단 행렬로 인식하면 접근하기가 쉽다. 그렇기 때문에 행렬은 0부터 시작하기 때문에 입력받은 마방진의 크기에서1을 빼면 맨아랫줄에 접근할 수 있다. 또한 가운데는 입력받은 크기에서 절반을 나눠주면 가운데에 접근할 수 있다. 따라서 우선 다른 자리들은 모두 0으로 초기화 시켜준 후, 맨 아랫줄 가운데만 1을 넣어준다. 그 후, 1은 넣었으니 반복문을 이용하여 2부터 size*size의 수까지 출력하기 한다. 이 때의 조건은 아까 1의 자리를 기준으로 오른쪽 하단의 자리에 넣는다. 그러나 오른쪽 하단이 입력받은 크기의 외부에 위치하면 최상단과 이어진다고 생각하고 최상단에 넣는다. 하지만 그 자리가 이미 채워져 있다면, 이전 자리에서 1위의 자리에 넣는다. 그렇기 때문에 우측 하단으로 이동하기 위해서는 행렬로 보면 x와 y가 모두 증가되는 것이기 때문에 1씩 증가시켜준다. 그러나 조건문을 이용하여 입력받은 크기와 같다면 영역을 벗어난 것이니 최상단으로 보내주기 위해 0으로 만들어준다. 그리고 이미 우측 하단에 값이 있는 경우에는 y의 값만 1 감소시켜 주면 된다. 마지막으로 배열을 출력시키면 결과값을 구할 수 있다.Source codevoid mabangjin(){int magic[10][10]={0}; //최대 10*10의 마방진을 생성하는 2차원 배열int size, x, y, i, saveX, saveY;do {scanf("%d", &size); //마방진의 크기를 입력받는다.if ((size % 2) == 0) {size = (size + 1);}} while (size11); //0에서 10사이를 입력받을 때 까지 반복//최상단 가운데 지점에 1을 넣기 위해 x, y 좌표를 설정x = size / 2;y = (size-1);//위에서 설정한 초기 좌표에 1을 대입magic[y][x] = 1;//반복문을 돌며 2부터(1은 이미 고정) size*size까지의 수를 규칙에 따라 대입for (i = 2; i 0){//전 좌표값에서 위방향으로 한칸 이동시킨다.x = saveX;y = saveY-1;}//우측 하단의 좌표가 비어 있는 경우magic[y][x] = i; //설정된 좌표값에 숫자를 대입}//2차원 배열을 화면에 출력for (y = 0; y
    공학/기술| 2018.05.21| 11페이지| 1,500원| 조회(266)
    미리보기
  • 문제 : 행렬의 회전, 행렬을 거꾸로 출력, 마름모 배열, 행렬의 합, 나선형 모양 출력
    문제 : 행렬의 회전, 행렬을 거꾸로 출력, 마름모 배열, 행렬의 합, 나선형 모양 출력행렬의 회전Solution일단 크기가 최대 10인 배열을 만들고 사용자에게 행렬의 크기를 입력 받는다. 또한 주어진 행렬의 규칙성을 보면 제일 오른쪽 위부터 숫자가 시작하고 있다. 그렇기 때문에 행은 고정되고 열만 바꿔주고 배열에 숫자를 하나씩 넣어준다. 한 열이 끝나면 행을 하나 줄여 고정한 후 열만 바꿔준다. 이러한 과정을 행렬의 크기만큼 반복문을 통해 숫자를 넣어주고 마지막으로 이 배열을 행렬 크기에 맞게 출력해준다.Source codevoid arrayRotation() // 문제1. 행렬의 회전{int m[10][10];int len, i, j, num = 1;do {scanf("%d", &len);} while (len < 0 || len > 10);//행렬 입력for (j = len - 1; j >= 0; j--) {for (i = 0; i
    공학/기술| 2018.05.21| 9페이지| 1,500원| 조회(214)
    미리보기
  • 문제 : 수의 합 출력, 홀수의 합 출력, 2의 n제곱 계산하기, Fibonacci 수열 출력, 계단 오르기, 카드출력, 삼각수 구하기, 일요일 찾기
    문제 : 수의 합 출력, 홀수의 합 출력, 2의 n제곱 계산하기, Fibonacci 수열 출력, 계단 오르기, 카드출력, 삼각수 구하기, 일요일 찾기수의 합 출력Solution재귀 함수를 이용하여 1부터 입력 받은 n까지의 값을 출력하기 위해서는 일단 base case를 나눠주어야 한다. 먼저 이 경우에는 n이 1이라면 1인 자기 자신만 더하면 되기 때문에 또 다시 자신의 함수를 부를 필요가 없다. 따라서 이 경우에는 1의 합인 1만 return되도록 하고 나머지 상황에서는 입력 받은 값과 그것보다 하나 작은 수의 함수를 불러주면 1부터 n까지의 합을 return할 수 있다.Source codevoid print_Sum(){long long n;scanf("%lld", &n);printf("%lldn", sum_recursion(n));}long long sum_recursion(long long n){if (n == 1)return 1;elsereturn n + sum_recursion(n - 1);}홀수의 합 출력Solution재귀함수를 이용하여 홀수의 합을 출력하기 위한 base case로는 크게는 2가지, 작게는 3가지로 나누었다. n이 짝수 일 때와 홀수 일 때, 홀수 중에서도 n이 1일 때, 1이 아닐 때로 나누었다.만약 n이 짝수라면 그 수는 더할 필요가 없기 때문에 더하지 않고 하나 작은 수의 함수를 호출하고, n이 홀수이면서 1이라면 1의 값만 더하면 되기 때문에 return 1을 해주고 나머지 경우인 n이 홀수이면서 1이 아닐 때는 입력 받은 값과 그것보다 하나 작은 수의 함수를 불러주면 홀수의 합을 return할 수 있다.Source codevoid print_oddSum(){long long n;scanf("%lld", &n);printf("%lldn", oddSum_recursion(n));}long long oddSum_recursion(long long n){if (n % 2 == 0) {return oddSum_recursion(n - 1);}if ((n % 2 != 0) && (n != 1)) {return n + oddSum_recursion(n - 1);}if ((n % 2 != 0) && (n = 1)) {return 1;}}2의 n제곱 계산하기Solution재귀함수 2의 n제곱값의 base case는 n이 1일 때와 1이 아닐 때로 나눌 수 있다. N이 1이라면 2의1승이기 때문에 return 2를 해주어야 하고 나머지 경우에는 2* n보다 하나 함수를 불러주면 2의 n제곱의 값을 return할 수 있다.Source codevoid print_exp(){long long i, n = 30;for (i = 1; i
    공학/기술| 2018.05.21| 10페이지| 1,500원| 조회(253)
    미리보기
  • 문제: 조합 값 구하기, 완전수 구하기, 친화수 구하기, 합의 제곱과 제곱의 합, 숫자 야구게임, 바이오리듬 구하기
    문제: 조합 값 구하기, 완전수 구하기, 친화수 구하기, 합의 제곱과 제곱의 합, 숫자 야구게임, 바이오리듬 구하기조합 값 구하기Solution조합 값을 구하기 위해서는 일단 3개의 함수가 필요하다. 조합 입력값 함수, 팩토리얼 계산을 하는 함수 그리고 팩토리얼을 이용하여 조합 계산을 하는 함수이다. 일단 조합 입력값 함수에는 사용자에게 입력값을 받아야 하기 때문에 scanf를 이용하여 입력받고 그 값을 return한다. 팩토리얼 계산을 하는 함수에서는 재귀함수를 이용하여 입력받은 값이 0이면 1을 return하고 0이 아닐시 n * factorial(n - 1)을 return하여 재귀를 사용한다. 마지막으로 조합 값을 구하기 위해서는 아까 구한 factorial 함수를 이용하여 n!을 구하고 k!*(n-k)!을 구해 n!을 k!*(n-k)!를 나눠주면 구할 수 있다.Source code// 조합 입력값 함수long long get_integer(){long long n;scanf("%lld", &n);return n;}// 팩토리얼 계산을 하는 함수long long factorial(long long n){if (n == 0) {return 1;}else {return n * factorial(n - 1);}}// 팩토리얼을 이용하여 조합 계산을 하는 함수long long combination(long long n, long long k){return factorial(n) / (factorial(k)*factorial(n - k));}// 조합 계산void computeCombination(){long long n = get_integer();long long k = get_integer();printf("%lldn", combination(n, k));}완전수 구하기Solution완전수란 자신을 제외한 약수의 총합이 자신과 같은 수이다. 그렇기 때문에 일단 어떠한 수의 약수를 구하고 구한 약수들을 다 더해서 처음의 어떠한 값이 나오면 완전수인 것이다. 약수를 구하기 위해서 반복문 while을 통해서 구하려는 값보다 작은 값까지 돌면서 나머지가 0이면 약수이기 때문에 약수의 합을 구할 변수인 sum에 계속해서 더해준다. 그리고 만약 sum과 구하려는 값이 같다면 return 1 그렇지 않다면 return0을 하도록 만들어준다.Source code// 주어진 수가 완전수인지 아닌지를 판단하는 함수int checkPerfect(int n){int i = 2, sum = 1;while (i
    공학/기술| 2018.05.21| 15페이지| 1,500원| 조회(386)
    미리보기
  • 최소값 찾기, 두 수 사이의 소수 개수, 1의 개수 세기, 369게임, Palindrome 체크, 해당 년도 달력 출력
    < 최소값 찾기>1.1. Solution일단 min을 가장 큰 값으로 설정을 해둔다. 그 후 0부터 1000000사이의 값을 입력받고 입력받은 n의 값이 초기에 설정해 둔 min값보다 작다면 min을 n으로 바꾼다. 그리고 sum에 계속해서 n값을 더한다. 이 과정을 0을 입력받을 때까지 입력받고 최소값 min과 sum값을 출력한다.<중략>< 두 수 사이의 소수 개수>1.3. Solution일단 소수란 1과 자기자신이랑만 나눠져야만 한다. 그렇기 때문에 조건에서는 두 수를 입력받는데 입력받은 작은 수에서 큰수까지 소수의 약수조건을 확인하는 문장을 넣어야한다. 따라서 j가 2부터 입력받은 숫자 직전까지 입력받은 작은수를 나눠서 0이 안되게하는 while 반복문을 사용한다. 이 때, while 반복문이 소수확인을 위해 비교한 수가 입력받은 수랑 같을 때 빠져나온 경우는 소수에 해당하기 때문에 sum에 1씩 더한다. 그 결과 입력받은 두 수 사이의 소수의 개수를 구할 수 있게 된다.
    공학/기술| 2018.05.21| 8페이지| 1,500원| 조회(402)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 21일 목요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
5:59 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감