printf("ho_tari\n");

C언어(3) 본문

(Telechips) AI 시스템 반도체 SW 개발자 교육/C

C언어(3)

호타리 2025. 2. 20. 16:51

2025.02.20

 

Git 설치

git-scm.com → 64bit Git for Windows setup download

1. github에서 저장소 생성

2. git초기화 : git init > .git 폴더가 생성됨 (rm -rf .git으로 삭제 가능)

3. 트렁크에 파일 담기 : git add .

4. 보낼 주소 등록 : git remote add origin https://github.com/아이디/저장소.git

5. 태크 확인 : git remote -v

6. 설명문 추가 : git commit -m "메시지"

7. 보내기 : git push origin master

파일 내용 수정 시 수정 된 내용 표시 : git status

수정 업로드 위해선 3, 6, 7번 작업 수행

branch 새로 추가 : git branch "이름"

branch 바꾸기 : git switch 새로운branch이름

코드 원래대로 복구

visual studio에서 branch 선택 가능

git clone 방법

로컬 Windows 디버거

포인터는 배열과 동등하다.

자신의 공간을 가지고 있지 않다.

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

//int s; // 전역변수

// 함수 선언 (function prototype)
int func(int, int);

void main(void) {
	int sum;
	sum = func(7, 3); // 함수 호출입니다.
	printf("sum = %d\n", sum);
	sum = func(3, 4); // 함수 호출입니다.
	printf("sum = %d\n", sum);
}

// 함수 정의(구현) 부분입니다.
int func(int v, int w) {
	static int s = 0; // 전역변수와 동일한 기능 static
	s += (v + w);
	return s;
}
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

/*
double average(double a, double b);

void main(void) {
	double res;
	res = average(1.5, 3.4);
	printf("%f", res);
}

double average(double a, double b) {
	double temp;
	temp = a + b;
	return (temp / 2.0);
}*/

/*
double centi_to_meter(int cm);

int main(void) {
	double res;

	res = centi_to_meter(187);
	printf("%.2lfm\n", res);

	return 0;
}

double centi_to_meter(int cm) {
	double result;
	result = (double)cm / 100.0;
	return result;
}*/

/*
// 함수 선언 (function prototype)
int get_num(void);

int main(void) {
	int result;

	result = get_num();
	printf("반환값 : %d\n", result);
	return 0;
}

int get_num(void) {
	int num;

	printf("양수 입력 : ");
	scanf("%d", &num);

	return num;
}
*/

/*
void print_char(char ch, int count);

int main(void) {
	print_char('@', 5);

	return 0;
}

void print_char(char ch, int count) {
	int i;

	for (i = 0; i < count; i++)
	{
		printf("%c", ch);
	}

	return 0;
}*/

/*
void fruit(int count);

int main(void) {
	fruit(1);

	return 0;
}

void fruit(int count) {
	printf("apple\n");
	if (count == 3) return;
	fruit(count+1);
	printf("jam\n");
}*/

/*
int sum(int num);

int main(void) {
	sum(10);
	sum(100);
	return 0;
}

int sum(int num) {
	int i;
	int result = 0;

	for (i = 1; i <= num; i++)
	{
		result += i;
	}
	printf("1부터 %d까지의 합은 %d입니다.\n", num, result);
}*/

/*
int func(int n);
int poly(int n);

int main(void) {
	printf("%d\n", func(-3));
	return 0;
}
int func(int n) {
	int res;
	res = poly(n);
	if (res >= 0) return res;
	else return -res;
}

int poly(int n) {
	return ((2 * n * n) + (3 * n));
}*/

/*
int rec_func(int n);

int main(void) {
	int result = rec_func(10);
	printf("%d", result);
	return 0;
}

int rec_func(int n) {
	if (n == 1) return 1;
	return rec_func(n - 1) + n;
}*/

/*
int factorial(int n);

int main(void) {
	int result = factorial(5);
	printf("%d", result);
	return 0;
}

int factorial(int n) {
	if (n == 1) return 1;
	return factorial(n - 1) * n;
}*/

/*
int main(void) {
	int ary[5];

	ary[0] = 10;
	ary[1] = 20;
	ary[2] = ary[0] + ary[1];
	scanf("%d", &ary[3]);

	printf("%d\n", ary[2]);
	printf("%d\n", ary[3]);
	printf("%d\n", ary[4]);
	return 0;
}*/

/*
int main(void) {
	int score[5];
	int i;
	int total = 0;
	double avg;

	for (i = 0; i < 5; i++)
	{
		scanf("%d", &score[i]);
	}

	for (i = 0; i < 5; i++)
	{
		total += score[i];
	}

	avg = total / 5.0;

	for (i = 0; i < 5; i++)
	{
		printf("%5d", score[i]);
	}

	printf("\n");

	printf("평균 : %.1lf\n", avg);

	return 0;
}*/

/*
int main(void) {
	int score[5];
	int i;
	int total = 0;
	double avg;
	int count;

	count = sizeof(score) / sizeof(score[0]);

	for (i = 0; i < count; i++)
	{
		scanf("%d", &score[i]);
	}

	for (i = 0; i < count; i++)
	{
		total += score[i];
	}

	avg = total / (double)count;

	for (i = 0; i < count; i++)
	{
		printf("%5d", score[i]);
	}

	printf("\n");

	printf("평균 : %.1lf\n", avg);

	return 0;
}*/

/*
int main(void) {
	int ary[5];
	double ary2[10];
	int ary3[] = { 0, 0, 0 };
	char ary4[5];
}*/

/*
int main(void) {
	int array[6] = { 1, 2, 3 };
}*/

/*
int main(void) {
	int A[3] = { 1, 2, 3 };
	int B[10];
	int i;

	// 복사
	for (i = 0; i < 10; i++)
	{
		B[i] = A[i % 3];
	}
	
	// 출력
	for (i = 0; i < 10; i++)
	{
		printf("%3d", B[i]);
	}

	return 0;
}*/

/*
int  main(void) {
	char str[12] = { "Hello world" };

	str[5] = 0; // 0 = \0
	printf(str);

	return 0;
}*/

/*
void print(char inText[]) {
	int i = 0;
	while (1) {
		if (inText[i] == 0) return;
		putchar(inText[i]);
		i++;
	}
}*/

/*
int main(void) {
	char str[80] = "applejam";

	// print(str);
	printf("최초 문자열 : %s\n", str);
	printf("문자열 입력 : ");
	scanf("%s", str);
	str[5] = '_';
	printf("입력 후 문자열 : %s\n", str);

	return 0;
}
*/

/*
int main(void) {
	char str1[80] = "cat";
	char str2[80];

	// strcpy(str1, "tiger");
	// strcpy(str2, str1);
	sprintf(str1, "%s and tiger", str1);
	sprintf(str2, str1);
	printf("%s, %s\n", str1, str2);

	return 0;
}*/

/*
int main(void) {
	char str[80];

	printf("문자열 입력 : ");
	gets(str); // 공백까지도 입력 받을 수 있음
	puts("입력된 문자열 : ");
	puts(str);

	return 0;
}*/

#include <string.h>

/*
int main(void) {
	char str1[80], str2[80];
	char temp[80];

	printf("두 문자열 입력 : ");
	scanf("%s %s", str1, str2);
	printf("바꾸기 전 : %s, %s\n", str1, str2);
	strcpy(temp, str1);
	strcpy(str1, str2);
	strcpy(str2, temp);
	printf("바꾼 후 : %s, %s\n", str1, str2);

	return 0;
}*/

/*
int main(void) {
	char inStr[80];
	char outStr[80] = { 0 };
	int count = 0;

	printf("문장 입력 : ");
	gets(inStr);

	for (int i = 0; i < strlen(inStr); i++)
	{
		if (inStr[i] >= 'A' && inStr[i] <= 'Z')
		{
			count++;
			outStr[i] = inStr[i] + 32; // 'A'의 아스키 코드는 65, 'a'의 아스키코드는 97, 97 - 65 = 32
		}
		else
		{
			outStr[i] = inStr[i];
		}
	}
	printf("바뀐 문장 : %s\n바뀐 문자 수 : %d", outStr, count);

	return 0;
}
*/

/*
int main(void) {
	char a[4];
	int b;

	b = 0x12345678;

	memcpy(a, &b, 4);

	printf("%x", a[0]);

	return 0;
}*/

/*
int main(void) {
	int a;
	int* pa;

	pa = &a;
	*pa = 10;

	printf("포인터로 a 값 출력 : %d\n", *pa);
	printf("변수명으로 a 값 출력 : %d\n", a);

	return 0;
}*/

/*
int main(void) {
	int a;
	int* b;
	b = &a;
	a = 10;
	printf("%d, %d", a, *b);

	return 0;
}*/

/*
int main(void) {
	int a;
	int* b;

	b = &a;

	scanf("%d", b);

	printf("%d, %d", a, *b);

	return 0;
}*/

/*
int main(void) {
	char ch;
	int in;
	double db;

	char* pc = &ch;
	int* pi = &in;
	double* pd = &db;

	printf("char형 변수의 주소 크기 : %d\n", sizeof(&ch));
	printf("int형 변수의 주소 크기 : %d\n", sizeof(&in));
	printf("double형 변수의 주소 크기 : %d\n", sizeof(&db));

	printf("char * 포인터의 크기 : %d\n", sizeof(pc));
	printf("in * 포인터의 크기 : %d\n", sizeof(pi));
	printf("double * 포인터의 크기 : %d\n", sizeof(pd));

	printf("char * 포인터가 가르키는 변수의 크기 : %d\n", sizeof(*pc));
	printf("int * 포인터가 가르키는 변수의 크기 : %d\n", sizeof(*pi));
	printf("double * 포인터가 가르키는 변수의 크기 : %d\n", sizeof(*pd));

	return 0;
}*/

/*
void swap(int* pa, int* pb);

int main(void) {
	int a = 10, b = 20;
	swap(&a, &b); // 포인터가 받으려고 하는거면 주소를 보내야 한다.
	printf("a : %d, b : %d\n", a, b);

	return 0;
}

void swap(int* pa, int* pb) {
	int temp;
	temp = *pa;
	*pa = *pb;
	*pb = temp;

}
*/

/*
int main(void) {
	int a = 10, b = 20;
	int* pa = &a, * pb = &b, *pt;
	pt = pa;
	pa = pb;
	pb = pt;
	printf("%d, %d", *pa, *pb);

	return 0;
}*/

/*
void swap(double* pa, double* pb);
void line_up(double* maxp, double* midp, double* minp);

int main(void) {
	double max, mid, min;

	printf("실수값 3개 입력 : ");
	scanf("%lf%lf%lf", &max, &mid, &min);
	line_up(&max, &mid, &min);
	printf("정렬된 값 출력 : %.1lf, %.1lf, %.1lf\n", max, mid, min);

	return 0;
}

void swap(double* pa, double* pb) {
	double temp;

	temp = *pa;
	*pa = *pb;
	*pb = temp;
}

void line_up(double* maxp, double* midp, double* minp) {
	if (*maxp < *midp)
	{
		swap(maxp, midp);
	}
	if (*maxp < *minp)
	{
		swap(maxp, minp);
	}
	if (*midp < *minp)
	{
		swap(midp, minp);
	}
}*/

0220.c
0.01MB
main.c
0.00MB

'(Telechips) AI 시스템 반도체 SW 개발자 교육 > C' 카테고리의 다른 글

C언어(5)  (0) 2025.02.24
C언어(4)  (0) 2025.02.21
C언어(2)  (0) 2025.02.19
C언어(1)  (0) 2025.02.18