배열 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.삭제
당신의 선택은:
'Dev. > C++' 카테고리의 다른 글
동적 메모리 할당 (복습 ) (0) | 2022.04.10 |
---|---|
구조체 종합문제 (0) | 2022.04.06 |
구조체배열 응용문제 (0) | 2022.04.05 |
구조체와 배열/구조체와 포인터 (0) | 2022.04.05 |
메모리의 동적할당/malloc (0) | 2022.04.04 |
댓글