문제1
구구단 출력
설명 : 이차원 배열을 선언하고 반복문을 통해 구구단 3단을 이차원 배열에 저장한 후 출력
조건 : 반드시 다차원 배열과 반복문을 이용
출력 결과 예시
풀이
#include <stdio.h>
int main()
{
int mul[3][9]; //[0][0~8]에는 1단, [1][0~8]에는 2단, [2][0~8]에는 3단 저장
for (int i = 0; i <= 2; i++) { //1, 2, 3단
for (int j = 0; j <= 8; j++) { //1~9 까지 곱
mul[i][j] = (i + 1) * (j + 1); //i와 j가 0부터 시작하므로 +1을 해줌
printf("%d * %d = %d\n", i + 1, j + 1, mul[i][j]);
}
printf("\n");
}
}
문제2
백준 2577번
세 개의 자연수 A, B, C가 주어질 때 A × B × C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.
예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다.
입력 : 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
출력 : 첫째 줄에는 A × B × C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
출력 결과 예시
풀이
#include <stdio.h>
int main() {
int num[10] = { 0, }; //각 배열 값을 0으로 초기와
int a, b, c, mul;
scanf("%d %d %d", &a, &b, &c); //정수 3개 입력 받기
mul = a * b * c; //곱
for(int i = mul; i > 0; i /= 10) { // 곱해준 수를 i에 대입, 몫이 0으로 될 때까지 10으로 나눔
num[i % 10] += 1; // i를 10으로 나눈 나머지를 0이면 0번지에, 1이면 1번지에 각 각 나온 횟수만큼 1씩 증가시킴
}
for (int j = 0; j <= 9; j++) {
printf("%d\n", num[j]); // 횟수 출력
}
}
제출 시 scanf_s 말고 scanf로 수정하기
문제3
백준 1152번
입력 : 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다.
출력 : 첫째 줄에 단어의 개수를 출력한다.
출력 결과 예시
풀이
#include <stdio.h>
char sentence[1000001]; //0~1000000개의 총 1000001개의 칸 생성
int main() {
int i, word = 0;
scanf("%[^\n]s", &sentence); //[\n]의 의미는 엔터가 입력될 때까지 입력 받으라는 뜻
for (i = 1; i <= 1000000; i++) {
if (sentence[i-1] == ' ' && sentence[i] != ' ') { //문자 앞이 공백이고 다음 문자가 공백이 아닐 때
word++;
}
if (sentence[i-1] == ' ' && sentence[i] == NULL) { //문자 앞이 공백이고 다음 문자가 NULL값일 때
word--;
}
}
if (sentence[0] == ' ') {
word--;
}
printf("%d", word+1);
}
공백을 기준으로 세는 것이므로,
문자열 앞, 뒤에 공백이 없을 때 +1을 해 주어야 한다.
앞, 뒤에 공백이 있을 때에는 -1을 해 주어야 한다.
'Programming Language > C' 카테고리의 다른 글
백준 2480번 : 주사위 세개 (0) | 2022.06.23 |
---|---|
C언어 멘토링 | 6주차 [과제] | 백준 2675번, 1157번 (0) | 2022.06.01 |
C언어 멘토링 | 4주차 [과제] (0) | 2022.05.07 |
C언어 멘토링 | 3주차 [과제] (0) | 2022.05.03 |
C언어 멘토링 | 2주차 [과제] (0) | 2022.04.07 |