본문 바로가기

학습공간/C, 프로그래밍기초

[9주차] 구조체와 사용자 정의 자료형 1, 2 (배열, 구조체, 포인터)

반응형

프로그래밍기초 연습문제 풀이

 

01. 학번/이름(문자), 국어/영어/수학/합계(정수), 평균(실수) 형태의 구조체를 선언하고 출력해보기

#include <stdio.h>
struct student
{
 int bunho;
 char name[10];
 int kor;
 int eng;
 int math;
 int sum;
 double ave;
};
void main()
{
 struct student std1;
 
 std1.bunho = 11;
 std1.name = "shim";
 std1.kor = 90;
 std1.eng = 90;
 std1.math = 90;
 std1.sum = std1.kor + std1.eng + std1.math;
 std1.ave = std1.sum / 3;
 
 printf("---성적표---\n");
 printf("---------------------------------------\n");
 printf("번호 이름 국어 영어 수학 합계 평균\n");
 printf("---------------------------------------\n");
 printf("%d %s %d %d %d %d %d %4.1f\n",std1.bunho, std1.name, std1.kor, std1.eng, std1.math, std1.sum, std1.ave);
 printf("---------------------------------------\n");
}

02. 학번/이름(문자), 국어/영어/수학/합계(정수), 평균(실수) 형태의 구조체를 선언하고 값을 입력받아 출력해보기#include <stdio.h> 
typedef struct
{
 char hakbun[8];
 char name[10];
 int kor, eng, math, sum;
 double ave;
}STUDENT;
main()
{
 STUDENT std1;
 printf("학번="); scanf("%s", &std1. hakbun);
 printf("이름="); scanf("%s", &std1. name);
 printf("국어="); scanf("%d", &std1. kor);
 printf("영어="); scanf("%d", &std1. eng);
 printf("수학="); scanf("%d", &std1. math);
 std1.sum = std1.kor + std1.eng + std1.math;
 std1.ave = std1.sum/ 3.0;
 printf("\t\t---성적표---\n");
 printf("------------------------------------\n");
 printf("\t학번\t이름\t국어\t영어\t수학\t합계\t평균\t\n");
 printf("------------------------------------\n");
 printf("\t%s\t%s\t%d\t%d\t%d\t%d\t%4.1f\n", std1. hakbun, std1.name, std1.kor, std1.eng, std1.math, std1.sum, std1.ave);
 printf("------------------------------------\n");
}

03. 상품명(문자), 수량/단가/금액(정수), 이익금(실수) 형태의 구조체를 선언하고 값을 입력받아 출력해보기
#include <stdio.h> 
typedef struct
{
 char name[10];
 int su, dan, sum;
 double ik;
}STUDENT;
main()
{
 STUDENT std1;
 printf("상품명:"); scanf("%s", &std1. name);
 printf("수량:"); scanf("%d", &std1. su);
 printf("단가:"); scanf("%d", &std1. dan);
 std1.sum = std1.su * std1.dan;
 std1.ik = std1.sum*0.1;
 printf("\t***매출 일람표***\n");
 printf("-------------------------------------\n");
 printf("상품명\t수량\t단가\t금액\t이익금\t\n");
 printf("-------------------------------------\n");
 printf("%s\t%d\t%d\t%d\t%4.1f\n", std1.name, std1.su, std1.dan, std1.sum, std1.ik);
 printf("-------------------------------------\n");
}

04. 위의 문제를 구조체배열로 객체를 생성하여 행을 6 회 입력받아 출력해보기

#include <stdio.h> 
typedef struct
{
 char name[10];
 int su, Pdan,Mdan,un,Psum,Msum;
 int ik;
 double ikz;
}STUDENT;
main()

 int i;
 STUDENT std1[6];
 {
  for(i=0; i<6; i++)
  {
   printf("상품명:"); scanf("%s", &std1[i]. name);
   printf("수량:"); scanf("%d", &std1[i]. su);
   printf("판매단가:"); scanf("%d", &std1[i]. Pdan);
   printf("매입단가:"); scanf("%d", &std1[i]. Mdan);
   printf("운송료:"); scanf("%d", &std1[i]. un);
   printf("\n");
  }
 }
 
 for(i=0; i<6; i++)
 {
   std1[i].Psum = std1[i].su * std1[i].Pdan; 
  std1[i].Msum = std1[i].su * std1[i].Mdan;
 
  std1[i].ik = std1[i].Psum - (std1[i].Msum + std1[i].un);
  std1[i].ikz = std1[i].ik/ std1[i].Msum *100;
 }
 printf("\t<<상품별 판매 이익금 및 이익률표>>\n");
 printf("-------------------------------------------------------------------------\n");
 printf("상품명\t수량\t판매단가\t매입단가\t운송료\t이익금\t이익률\t\n");
 printf("-------------------------------------------------------------------------\n");
 for(i=0; i<6; i++)
  printf("%s\t%d\t%d\t\t%d\t\t%d\t%d\t%3.2f\n", std1[i].name, std1[i].su, std1[i].Pdan, std1[i].Mdan, std1[i].un, std1[i].ik, std1[i].ikz);
 printf("-------------------------------------------------------------------------\n");
}

반응형