728x90
// 2021.03.12(금)
// 배열
// 백준 2562 최댓값
// 9개의 자연수 입력받고 최댓값과 최댓값이 몇번째 수 인지 구하기
#include <stdio.h>
int main() {
int i, arr[9], max = 0, idx;
for (i = 0; i < 9; i++) // sizeof(arr) : 길이 구함, 같은 곳에 없으면 len
scanf_s("%d", &arr[i]); // arr + i
for (i = 0; i < 9; i++)
{
if (arr[i] > max)
{
max = arr[i];
idx = i;
}
}
/*
scanf_s("%d", arr);
max = arr[0];
for (int i = 1; i < sizeof(arr) / sizeof(int); i++) {
scanf_s("%d", arr + i);
if (arr[i] > max)
{
max = arr[i];
idx = i;
}
}
*/
printf("%d\n%d", max, idx + 1);
return 0;
}
* scanf_s("%s", arr) // 지금은 안됨(입력 버퍼 오류 때문(스페이스)) 대신 scanf_s("%s, str, 10) // 10은 크기
* rewind // ? 버퍼지우기
* {} // 스코프 ? 범위
* static 변수(정적 변수) // 스코프에서 벗어나도 살아있음
* 동적 배열(포인터 활용) // 은행 계좌 - 10명 계좌 만들었는데 11명이 옴, 정적 배열이면 다시 짜야함, 동적 배열이면 붙힐 수 있음, 런타임 시간동안 할당 가능
* p = (int*)malloc(3 * sizeof(int)); // 반환형을 캐스팅 해야함(malloc이 반환하는 게 void *이므로 int*로 바꿔줌), 강제 형변환(명시적), double 값은 int에 넣으면 묵시적(자동 형변환)
* 가비지 컬렉터 : 알아서 메모리 해제 해줌 (자바, 파이썬), C나 C++ 프로그래머가 직접 해야함
* free(p) // 동적배열 해제하는 함수
* a = (int*)malloc(10 * sizeof(int)); // arr[10];
# include <stdio.h>
int main() {
int arr2[5][4];
static int a; // 정적 변수
int num[9] = { 1,2,3,4,5,6,7,8,9 };
int k = 0;
// 행렬 동적배열로 할당
int** twop = NULL;
int* p;
p = (int*)malloc(3 * sizeof(int*));
free(p);
/*
for (int i = 0; i < 3; i++) {
p = (int*)malloc(3 * sizeof(int));
twop[i] = p;
}
*/
}
// 동적 배열 할당
// 백준 2588 곱셈
#include <iostream>
using namespace std;
int main()
{
int a, b, *b_n, *mul, result = 0;
cin >> a; // a = 472 (첫 번째 수)
cin >> b; // b = 385 (두 번째 수)
b_n = (int*)malloc(3 * sizeof(int*)); // 두 번째 수의 각 자리 수를 저장할 배열 b_n
if (b_n == NULL) return -1;
for (int i = 0; i < 3; i++) // 두번째 수의 각 자리 수를 b_n에 저장 b_n = {3, 8, 5}
{
b_n[i] = b % 10;
b /= 10;
}
mul = (int*)malloc(3 * sizeof(int*)); // 곱셈 과정
if (mul == NULL) return -1;
for (int i = 0; i < 3; i++)
{
mul[i] = a * b_n[i];
cout << mul[i] << endl; // 곱셈 과정 출력
if (i == 1) mul[i] *= 10; // 3776 * 10
else if (i == 2) mul[i] *= 100; //1416 * 100
}
for (int i = 0; i < 3; i++)
{
result += mul[i];
}
cout << result;
free(b_n);
free(mul);
return 0;
}
// 동적 배열로 풀어라는 줄 알았는데 기억 풀어보라는 거였다..
// 백준 2588 나머지
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cin >> a >> b >> c;
cout << (a + b) % c << "\n" << ((a % c) + (b % c)) % c << "\n" << (a * b) % c << "\n" << ((a % c) * (b % c)) % c << "\n";
}
* #include<cstdio> // C언어 문법 사용 가능
* ctrl K + ctrl C // 주석 처리
* 디버깅
반응형
'전공 공부 > C++ 튜터링' 카테고리의 다른 글
C++ 튜터링 2주차 (0) | 2021.03.21 |
---|---|
백준 2941 크로아티아 알파벳 (0) | 2021.03.20 |
백준 10809 알파벳 찾기 (0) | 2021.03.20 |
백준 2751 수 정렬하기 2 (0) | 2021.03.20 |
백준 2750 수 정렬하기 (0) | 2021.03.20 |