#include <stdio.h>
#include <math.h>
struct point {
int x;
int y;
};
void comparePoint(struct point p1, struct point p2) {
if (p1.x == p2.x && p1.y == p2.y) {
printf("p1과 p2와 같습니다.");
}
} // 이렇게 함수를 사용하는것이 더 체계적이다.
// 왜냐하면 point라는 구조체 하나만 비교를 할 수있는 함수이기 때문이다.
int main(void) {
struct point p1, p2;
p1.x = 30;
p1.y = 10;
p2.x = 30;
p2.y = 10;
/*
if(p1 == p2){
printf("p1과 p2는 같습니다");
} 라는 표현이 안된다. p1과 p2자체는 비교가 안되기 때문이다.*/
if (p1.x == p2.x && p1.y == p2.y) {
printf("p1과 p2는 같습니다\n");
}
comparePoint(p1, p2); // 이렇게 매인함수에서 함수만 호출하니까 훨씬 깔끔하다.
return 0;
}
만약이곳에 printf하여 출력하지 않으면 값은 당연히 나오지않을것이다. 하지만 프로그램상에 값들이 다 저장되어있다.(즉 램에 일시적으로 학생들의 정보들이 다 저장되어 있다는 것이다.) 그것을 확인하기위해 for문을 또 활용해서 출력을 하면된다.
#include <stdio.h>
#include <math.h>
#define SIZE 5
struct student {
int number;
char name[20];
double grade; // GPA -> 학점
};
int main(void)
{
struct student list[SIZE];
int i;
for (i = 0; i < SIZE; i++) {
printf("학번을 입력해주세요 : ");
scanf("%d", &list[i].number);
printf("이름을 입력하세요 : ");
scanf("%s", &list[i].name);
printf("학점을 입력하세요 : ");
scanf("%lf", &list[i].grade);
}
for (i = 0; i < SIZE; i++) {
printf("학번 : %d, 이름 : %s, 학점 : %lf\n", list[i].number, list[i].name, list[i].grade);
}
return 0;
}
입력받은값을 출력하기. 이렇게 구조체를 활용하면 체계적으로 값을 입력하고 출력할 수 있다.