티스토리 뷰
1. level 1-1
names 배열에 kim lee han park uk 저장
빈 tmp 배열 정의
names 배열에서 tmp에 복사한 후 쉼표 추가
tmp 출력
실행결과
tmp : kim,lee,han,park,uk
2. level 1-2
각 행의 점수 평균을 구하고 출력하는 프로그램
#include <stdio.h>
#include <string.h>
int main()
{
int score[4][5] = { 78,90,34,46,80,98,74,84,76,72,76,48,34,72,89,61,91,67,88,83 };
int i, j, sum = 0, row, col;
row = sizeof(score)/sizeof(score[0]);
col = sizeof(score[0])/sizeof(score[0][0]);
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
{
printf("%d, ", score[i][j]);
sum += score[i][j];
}
printf("=> %.2lf\n", (double)sum / col);
sum = 0;
}
return 0;
}
전체 배열의 사이즈 에서 한 행의 사이즈를 나누면 row의 개수
한 행의 사이즈에서 한 행의 원소의 사이즈를 나누면 col의 개수
결과
78, 90, 34, 46, 80, => 65.60
98, 74, 84, 76, 72, => 80.80
76, 48, 34, 72, 89, => 63.80
61, 91, 67, 88, 83, => 78.00
3. level 1-3
성명을 입력받아 문자열에 저장한 후 출력하는 프로그램
#include <stdio.h>
#include <string.h>
int main()
{
char names[10][20];
int i, Cn;
for (i = 0; i < 10; i++)
{
printf("%d, 성명? (입력종료:end) ", i + 1);
gets(names[i]);//입력
if (strcmp(names[i], "end")==0)
break;//종료 조건
}
Cn = i;//입력된 인원수 저장
printf("\n입력된 성명 => \n");
for (i=0;i<Cn;i++)
printf("%-10s,", names[i]);
printf("\n");
return 0;
}
end를 입력했을 때 종료되어야 한다. 이때 if문을 이용했다.
아무생각없이 names[i]=="end" 를 사용했는데 문자열은 strcmp 를 이용해야한다.
주의할 것
결과
1, 성명? (입력종료:end) 길동이
2, 성명? (입력종료:end) 춘향이
3, 성명? (입력종료:end) 까꿍이
4, 성명? (입력종료:end) 몽룡이
5, 성명? (입력종료:end) end
입력된 성명 =>
길동이 ,춘향이 ,까꿍이 ,몽룡이 ,
4. level 2-1
정답 배열과 비교해 학생들의 점수를 출력
#include <stdio.h>
#include <string.h>
#define stuSZ 5
int main()
{
int answer[20] = { 1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4 };
int student[stuSZ][20] = { {1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,1},
{1,1,3,1,1,3,3,4,3,2,3,4,1,2,3,4,3,2,3,1},
{4,3,1,1,1,2,3,4,1,2,2,4,2,2,3,4,4,2,3,2},
{1,2,4,4,1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4},
{4,2,3,4,1,4,3,4,1,1,3,4,1,2,3,1,1,2,3,4} };
int i, j, sum = 0;
for (i = 0; i < stuSZ; i++)
{
for (j = 0; j < 20; j++)
{
if (answer[j]== student[i][j])
sum += 5;
}
printf("%d번 점수: %d\n", i + 1, sum);
sum = 0;
}
return 0;
}
결과
1번 점수: 95
2번 점수: 70
3번 점수: 60
4번 점수: 95
5번 점수: 80
5. level 2-2
#include <stdio.h>
#include <string.h>
#pragma warning(disable:4996)
#define STUDENT 4
#define SUBJECT 5
void heading();
int main()
{
char names[STUDENT + 1][20] = {"홍길동","성춘향","진달래","개나리","한송이"};
int score[STUDENT][SUBJECT + 2] = {
{78,90,34,46,80},
{98,74,84,76,72},
{76,48,34,72,89},
{61,91,67,88,83} };
int i, j, sum = 0, row, col;
row = sizeof(score)/sizeof(score[0]);
col = sizeof(score[0]) / sizeof(score[0][0]);
for (i = 0; i < row; i++)
{
for (j = 0; j < col - 2; j++)
{
sum += score[i][j]; //점수 합
}
score[i][5] = sum;
score[i][6] = sum / (col - 2);//점수 평균
sum = 0;
}
heading(); //타이틀 출력
for (i = 0; i < row; i++)
{
printf("%5s, ", names[i]);
for (j = 0; j < col; j++)
{
printf("%3d, ", score[i][j]);
}
printf("\n");
}
return 0;
}
void heading()
{
printf("===========================================\n");
printf("성명 국어 영어 수학 과학 사회 총점 평균\n");
printf("===========================================\n");
}
결과
===========================================
성명 국어 영어 수학 과학 사회 총점 평균
===========================================
홍길동, 78, 90, 34, 46, 80, 328, 65,
성춘향, 98, 74, 84, 76, 72, 404, 80,
진달래, 76, 48, 34, 72, 89, 319, 63,
개나리, 61, 91, 67, 88, 83, 390, 78,
6. level 3-1
그저 노가다 문제로 보이는 문제
#include <stdio.h>
#include <string.h>
int main()
{
int mat1[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 };
int mat2[4][3] = { 13,14,15,16,17,18,19,20,21,22,23,24 };
int matrix[3][3] = { 0 };
int i, j, sum1 = 0, sum2 = 0, sum3 = 0;
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
{//행렬계산
sum1 += mat1[i][j] * mat2[j][0];
sum2 += mat1[i][j] * mat2[j][1];
sum3 += mat1[i][j] * mat2[j][2];
}
matrix[i][0] = sum1;
matrix[i][1] = sum2;
matrix[i][2] = sum3;
//matrix 배열에 합 대입
sum1 = 0, sum2 = 0, sum3 = 0;
}
printf("3*4 mat1 행렬 \n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 4; j++)
printf("%3d, ", mat1[i][j]);
printf("\n");
}
printf("\n4*3 mat2 행렬 \n");
for (i = 0; i < 4; i++)
{
for (j = 0; j < 3; j++)
printf("%3d, ", mat2[i][j]);
printf("\n");
}
printf("\nmat1 * mat2을 곱하여 3*3을 구한 matrix 행렬 \n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
printf("%3d, ", matrix[i][j]);
printf("\n");
}
return 0;
}
결과
3*4 mat1 행렬
1, 2, 3, 4,
5, 6, 7, 8,
9, 10, 11, 12,
4*3 mat2 행렬
13, 14, 15,
16, 17, 18,
19, 20, 21,
22, 23, 24,
mat1 * mat2을 곱하여 3*3을 구한 matrix 행렬
190, 200, 210,
470, 496, 522,
750, 792, 834,
7. level 3-2
전체 코드(일부 생략)
#include <stdio.h>
#include <stdlib.h>
#pragma warning(disable:4996)
int dayStartFunc(int year, int mon, int day);
int main()
{
int inputDate, year, month, day;
int dayStart;
char days[7][10] = { "일","월","화","수","목","금","토" };
scanf("%d", &inputDate);
year = inputDate / 10000;
month = inputDate % 10000 / 100;
day = inputDate % 10000 % 100;
dayStart = dayStartFunc(year, month, day);
printf("\n%d년 %d월 %d 일은, %s요일\n", year, month, day, days[(dayStart) % 7 ==0? 0 : (dayStart) %7]);
return 0;
}
int dayStartFunc(int year, int mon, int day)
{
int yearMonth[] = { 0, 31,28,31,30,31,30,31,31,30,31,30,31 };
int i, t_day;
t_day = 365 * (year-1);
for (i = 1; i < year; i++)
if ((i % 4 == 0 && i % 100 != 0) || i % 400 == 0)
t_day++;
for (i = 1; i < mon ; i++)
{
if (((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) && i == 2)
t_day += 29;
else
t_day += yearMonth[i];
}
return t_day + day;
}
결과
20200609
2020년 6월 9 일은, 화요일
20200705
2020년 7월 5 일은, 일요일
'흔한 생활 > 잡다한 공부' 카테고리의 다른 글
[C언어] 든든한 C 프로그래밍 3판 11장 연습문제 답 풀이 (0) | 2023.07.10 |
---|---|
[C언어] 든든한 C 프로그래밍 3판 10장 워크북 답 풀이 (0) | 2023.07.09 |
[C언어] 든든한 C 프로그래밍 3판 10장 연습문제 답 풀이 (0) | 2023.07.07 |
[C언어] 든든한 C 프로그래밍 3판 9장 연습문제 답 풀이 (1) | 2023.07.06 |
[C언어] 든든한 C 프로그래밍 3판 3장 연습문제 답 풀이 (0) | 2023.07.04 |
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카시오
- 오블완
- 시계 줄
- 맛집
- 문서 스캔
- mealy
- 배송기간
- Liiv M
- 알뜰폰요금제
- 타란튤라
- 리브엠
- 방어동작
- 네이버페이
- 교체
- 방향장
- f-94w
- 경북대
- 10만포인트
- 계산방법
- 티스토리챌린지
- 할인
- f-91w
- 파스타
- a모바일
- 메쉬 밴드
- 알뜰 요금제
- 북문
- 카카오페이
- 알리익스프레스
- 리브모바일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함