Small Grey Outline Pointer 구조체 종합문제 5
본문 바로가기
Dev./C++

구조체 종합문제 5

by sso. 2022. 4. 10.

배열 swap 함수 사용하여 값 바꾸기 

#include <stdio.h>
#include <stdlib.h>


void swapArr(int* arr1, int* arr2, int length) {
	int temp = 0;
	for (int i = 0; i < length; i++) {
		temp = arr1[i];
		arr1[i] = arr2[i];
		arr2[i] = temp;
	}
}

void main() {

	int arr1[5] = { 1,3,5,7,9 };
	int arr2[5] = { 2,4,6,8,10 };
	int length = 5;
	int i;


	swapArr(arr1, arr2, length);

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

	printf("\n");

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

	return 0;

}

2 4 6 8 10
1 3 5 7 9

 

 

 

 

 


 

 

 

 

구조체 정의하고, 구조체 배열 선언하여 도서에 대한 정보 저장후 출력하기 

#include <stdio.h>
#include <stdlib.h>


struct Book
{
	char title[100];
	char writer[100];
	int publsiched;

};



void ex0503() {

	printf("===도서 정보 입력===\n");

	struct Book data[3];

	for (int i = 0; i < 3; i++) {

		printf("제목: ");
		gets(data[i].title);
		//scanf("%s", data[i].title);

		printf("저자: ");
		gets(data[i].writer);
		//scanf("%s", data[i].writer);
	
		printf("출간년도: ");
		scanf_s("%d", &data[i].publsiched);
		getchar();
	}


	printf("===도서 정보 출력===\n");


		for (int i = 0; i < 3; i++) {
			printf("<Book %d>\n제목:%s\n저자:%s\n출간년도:%d\n",i+1, data[i].title, data[i].writer, data[i].publsiched);
		}

		
}


	void main() {

		ex0503();

	}

===도서 정보 입력===
제목: react.js
저자: kang
출간년도: 2019
제목: c programing
저자: park
출간년도: 2020
제목: Modern Javascript
저자: kim
출간년도: 2015
===도서 정보 출력===
<Book 1>
제목:react.js
저자:kang
출간년도:2019
<Book 2>
제목:c programing
저자:park
출간년도:2020
<Book 3>
제목:Modern Javascript
저자:kim
출간년도:2015

 

 

scanf("%s", data[i].writer); => scanf로 입력 받으니까 문자열의 공백이 먹혀들어가서 gets로 바꿈

 

printf("출간년도: ");
scanf_s("%d", &data[i].publsiched);
getchar(); => 출간년도 %d 입력 받고 엔터누르면 에러가 나서 getchar(); 붙여줬더니 잘 작동됨

왜 그런지는 잘 모름...

 

 


 

학생프로그램 관리

(아직 검색,삭제 기능은 추가 안함!!!)

#include <stdio.h>
#include <string.h>

#define 입력 1
#define 출력 2
#define 검색 3
#define 삭제 4


typedef struct Data
{
	char name[30];
	int Num;


}Student;


Student student(Student data) {

	char name[30];
	int i;

	printf("[입력]\n");
	printf("학생 번호: ");
	scanf_s("%d", &data.Num);
	printf("학생 이름: ");
	gets(data.name);
	gets(data.name);
	//getchar();
	//getchar();
	return data;
};
	



void total0504(){

	int choice, cnt = 0;
	Student data[30];

	while (1) {

		printf("===메뉴===\n1.입력\n2.출력\n3.검색\n4.삭제\n");
		printf("당신의 선택은: ");
		scanf_s("%d", &choice);	// 선택할 MENU 번호


		switch (choice)
		{
		case 1: data[cnt] = student(data[cnt]);
			cnt += 1;

			break;

		case 2: printf("[출력]\n");
			for (int i = 0; i < cnt; i++) {

				printf("학생번호: %d 학생이름:%s\n", data[i].Num, data[i].name);
			}
			break;

		case 3: printf("[검색]");
			
			break;

		case 4: printf("[삭제]");
			 break;

		default: printf("잘못 된 입력! 동작 취소 합니다");
			break;
		}

	}


}



void main() {
	total0504();
}

 

===메뉴===
1.입력
2.출력
3.검색
4.삭제
당신의 선택은: 1
[입력]
학생 번호: 12
학생 이름: ruru
===메뉴===
1.입력
2.출력
3.검색
4.삭제
당신의 선택은: 1
[입력]
학생 번호: 34
학생 이름: mimi
===메뉴===
1.입력
2.출력
3.검색
4.삭제
당신의 선택은: 2
[출력]
학생번호: 12 학생이름:ruru
학생번호: 34 학생이름:mimi
===메뉴===
1.입력
2.출력
3.검색
4.삭제
당신의 선택은:

728x90

'Dev. > C++' 카테고리의 다른 글

동적 메모리 할당 (복습 )  (0) 2022.04.10
구조체 종합문제  (0) 2022.04.06
구조체배열 응용문제  (0) 2022.04.05
구조체와 배열/구조체와 포인터  (0) 2022.04.05
메모리의 동적할당/malloc  (0) 2022.04.04

댓글