반응형
구조체
1. 학생정보 입력 프로그램(ver1)
#include<stdio.h>
typedef struct student{
char name[20];
int age;
}STUDENT;
STUDENT input(){
STUDENT stu;
printf("\n-----------------------\n");
printf("이름 입력:");scanf("%s",&stu.name);
printf("나이 입력:");scanf("%d",&stu.age);
printf("\n-----------------------\n");
return stu;
}
void output(STUDENT stu){
printf("\n-----------------------\n");
printf("이름:%s\n",stu.name);
printf("나이:%d\n",stu.age);
printf("\n-----------------------\n");
}
int main(void){
STUDENT s;
int menu;
while(1){
printf("메뉴 선택:\n1.입력\n2.출력\n선택>>>");scanf("%d",&menu);
if(menu==1) s=input();
if(menu==2) output(s);
if(menu==3) break;
}
return 0;
}
*결과
2. 학생정보 입력 프로그램 (ver2)
#include <stdio.h>
typedef struct student{
char name[20];
int age;
}STUDENT;
void input(STUDENT s[],int size){
int i;
for(i=0;i<3;i++){ //3번 연속 입력
printf("\n-----------------------------\n");
printf("이름:");scanf("%s",&s[i].name);
printf("\n");
printf("나이:");scanf("%d",&s[i].age);
printf("\n-----------------------------\n");
}
}
int main(void){
STUDENT s[3];
int menu;
for(;;){
printf("메뉴를 선택하시오.\n1. 입력\n2.출력 \n선택>>>>");scanf("%d",&menu);
printf("\n");
if(menu==1) input(s,3); //STUDENT s 와 사이즈 3을 input메서드에 넣음.
if(menu==2) {
int i;
for(i=0;i<3;i++){
printf("\n-----------------------------\n");
printf("이름:%s\n",s[i].name);
printf("나이:%d\n",s[i].age);
printf("\n-----------------------------\n");
}
}
if(menu==3) break;
}
return 0;
}
*결과
3. r.x, r.y의 값은?
#include <stdio.h>
#include <stdlib.h>
typedef struct point{
int x;
int y;
}POINT;
POINT translate(POINT a,POINT b){
POINT newP;
newP.x=a.x+b.y; // a=p, b=d a.x=2, b.y=10
newP.y=a.y+b.y; // a.y=3 , b.y=10
//newP.x=12 , newP.y=13
//int x에는 12, int y에는 13 값이 들어감.
return newP;
}
int main(){
POINT p={2,3}; //p.x=2 ,p.y=3
POINT d={10,10}; //d.x=10, d.y=10
POINT r;
r=translate(p,d);
printf("%d %d",r.x,r.y);
return 0;
}
*결과
12 13
4. grade의 max값을 출력해라!
#include <stdio.h>
#include <stdlib.h>
struct student{
int number;
char name[20];
double grade;
};
struct student list[3] = {
{111, "A", 4.2},
{222, "B", 3.2},
{333, "C", 4.5}
};
int main(){
int i, j;
double keyValue;
for(i=1; i<3; i++){
keyValue = list[i].grade;
if(list[i-1].grade > keyValue){
keyValue = list[i-1].grade;
}
else{
continue;
}
}
printf("최댓값은 %0.1f", keyValue);
return 0;
}
반응형
'C언어 > C언어 문법' 카테고리의 다른 글
C언어 - strcpy 문자열 복사하기/c언어 문자열 복사/strcpy예제/자주 쓰이는 문자열 함수 정리 (0) | 2021.04.12 |
---|---|
C언어 문법 - 열거형 (enum) 관련 간단한 예제/ 간단한 코드 (0) | 2021.03.18 |
C언어 - 구조체 포인터/구조체 포인터 예제/구조체 포인터 쉽게 이해하기 (0) | 2021.03.15 |
C언어 getchar(),putchar() 간단한 예제/getchar(),putchar() 이해하기 쉬운 예제/ EOF 는? (0) | 2021.03.10 |
C언어 - 포인터/ 포인터 간단한 예제로 공부 (0) | 2021.03.10 |
댓글