본문 바로가기

C

박시현 14주차 C프로그래밍 과제

C프로그래밍

14주차 과제

 

 

 

 

 

과 목 명 : C프로그래밍

담당교수 : 한성현 교수님

학 과 : 컴퓨터소프트웨어학과

학 년 : 1학년

학 번 : 2024001684

이 름 : 박시현

제 출 일 : 2024 6월 4일

 

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

세미콜론(;)을 안 쓰는 프로그래밍 언어도 있지만 C언어 계열은 사용해야한다.

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

void는 필수는 아니지만 하는것이 좋다.

출처:한성현 교수님의 강의자료

---------------------------실습 과제 1---------------------------

#include <stdio.h>
int main(void)
{
int x=10;
printf("%d",x);
return 0;
}

-----------------------------------------------------------------------

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

 

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

C언어의 기본적인 자료형 3가지:문자형,정수형,실수형

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

---------------------------실습 과제 2---------------------------

#include <stdio.h>
int main(void)
{
int num1, num2;
num1=100;
num2=95;
printf("두 수의 합은 %d입니다.\n",num1+num2);
return 0;
}

------------------------------------------------------------------------

출처:한성현 교수님의 강의자료

---------------------------실습 과제 3---------------------------

#include <stdio.h>
int main(void)
{
int num1, num2,sum;
double avg;
num1=100;
num2=95;
sum=num1+num2;
avg=sum/2.0;
printf("합: %d, 평균: %lf\n",sum,avg); 
return 0;
}

-----------------------------------------------------------------------

평균을 구할 땐 주로 double형(실수형)을 사용한다.

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

---------------------------실습 과제 4---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int num1, num2;
printf("1번째 숫자를 입력하세요=");
scanf("%d",&num1);
printf("2번째 숫자를 입력하세요=");
scanf("%d",&num2);
printf("합:%d, 평균:%lf\n",num1+num2,(num1+num2)/2.0);
return 0;
}

-----------------------------------------------------------------------

주소를 입력받아서 합과 평균을 출력한다.

출처:한성현 교수님의 강의자료

---------------------------실습 과제 5---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int kor, eng;
printf("국어 점수=");
scanf("%d",&kor);
printf("영어 점수=");
scanf("%d",&eng);
printf("합: %d, 평균:%lf\n",kor+eng, (kor+eng)/2.0);
return 0;
}

-----------------------------------------------------------------------

scanf함수를 사용해 점수를 입력받고 결과를 출력한다.

출처:한성현 교수님의 강의자료

---------------------------실습 과제 6---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int num1,kor1, eng1;
int num2,kor2, eng2;
printf("1 학번="); scanf("%d",&num1);
printf("1 국어 점수="); scanf("%d",&kor1);
printf("1 영어 점수=");scanf("%d",&eng1);
printf("2 학번="); scanf("%d",&num2);
printf("2 국어 점수="); scanf("%d",&kor2);
printf("2 영어 점수=");scanf("%d",&eng2);
printf("학번 :%d 국어:%d 영어:%d 합: %d, 평균:%lf\n",
num1, kor1, eng1,kor1+eng1, (kor1+eng1)/2.0);
printf("학번 :%d 국어:%d 영어:%d 합: %d, 평균:%lf\n",
num2, kor2, eng2, kor2+eng2, (kor2+eng2)/2.0);
printf("국어 총점 : %d, 평균 : %f\n",kor1+kor2, (kor1+kor2)/2.0);
printf("영어 총점 : %d, 평균 : %f\n",eng1+eng2, (eng1+eng2)/2.0);
return 0;
}

-----------------------------------------------------------------------

만약 3명,4명,100명이라면 배열과 for문을 사용하는것이 좋다.

출처:한성현 교수님의 강의자료

score[0,1,2,3,4,5,6]

출처:한성현 교수님의 강의자료

---------------------------실습 과제 7---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, num[5],kor[5],eng[5],mat[5], total[5];
double avgkor=0.0, avgeng=0.0, avgmat=0.0;
double avg[5];
for(i=0;i<5;i++){
printf("%d번째 학생의 학번=",i+1);
scanf("%d",&num[i]);
printf("국어 점수="); scanf("%d",&kor[i]);
printf("영어 점수="); scanf("%d",&eng[i]);
printf("수학 점수="); scanf("%d",&mat[i]);
total[i]=kor[i]+eng[i]+mat[i];
avg[i]=total[i]/3.0;
avgkor=avgkor+kor[i];
avgeng=avgeng+eng[i];
avgmat=avgmat+mat[i];
}
printf(" 학번 국어 영어 수학 총점 평균\n");
for(i=0;i<5;i++){
printf("%8d %6d %6d %6d %6d %7.2f\n",num[i],kor[i],eng[i],mat[i],total[i],avg[i]);
}
printf(" 국어 평균: %7.2f\n 영어 평균: %7.2f\n 수학 평균: %7.2f\n",avgkor/5., avgeng/5., avgmat/5.);
return 0;
}

-----------------------------------------------------------------------

실습 과제 6의 단점을 배열과 for문으로 해결했다.

---------------------------실습 과제 7-1---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int i, num[3],kor[3],eng[3],mat[3], total[3],c[3];
double avgkor=0.0, avgeng=0.0, avgmat=0.0,avgc=0.0;
double avg[3];
for(i=0;i<3;i++){
printf("%d번째 학생의 학번=",i+1);
scanf("%d",&num[i]);
printf("국어 점수="); scanf("%d",&kor[i]);
printf("영어 점수="); scanf("%d",&eng[i]);
printf("수학 점수="); scanf("%d",&mat[i]);
printf("C언어 점수="); scanf("%d",&c[i]);
total[i]=kor[i]+eng[i] +mat[i] +c[i] ;
avg[i]=total[i]/4.0;
avgkor=avgkor+kor[i];
avgeng=avgeng+eng[i];
avgmat=avgmat+mat[i];
avgc=avgmat+c[i];
}
printf(" 학번 국어 영어 수학 C언어 총점 평균\n");
for(i=0;i<3;i++){
printf("%8d %6d %6d %6d %6d %6d %7.2f\n",num[i],kor[i],eng[i],mat[i],c[i],total[i],avg[i]);
}
printf(" 국어 평균: %7.2f\n 영어 평균: %7.2f\n 수학 평균: %7.2f\n C언어 평균: %7.2f\n",avgkor/3., avgeng/3., avgmat/3.,avgc/3.);
return 0;
}

-------------------------------------------------------------------------

학생의 수를 5명에서 3명으로 바꾸고 C언어 과목을 추가하였다.

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

---------------------------숫자 맞추기 게임1---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int guess;
int random;
int count=1;
srand((unsigned int)time(NULL));
random = rand()% 100 + 1;
printf("%d\n",random);
do{
printf("[ %02d회 ] 1~100까지 숫자 하나를 입력하세요:",count);
scanf("%d",&guess);
if(guess==random) printf(" => 빙고!\n");
else if(guess>random) printf(" => 더 작은 수를 입력하세요.\n");
else printf(" => 더 큰 수를 입력하세요.\n");
count++;
}while(guess!=random);
return 0;
}

-------------------------------------------------------------------------

---------------------------숫자 맞추기 게임2--------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int guess;
int random;
int count=1;
srand((unsigned int)time(NULL));
random = rand()% 100 + 1;
do{
printf("[ %02d회 ] 1~100까지 숫자 하나를 입력하세요:",count);
scanf("%d",&guess);
if(guess==random) printf(" => 빙고!\n");
else if(guess>random) printf(" => 더 작은 수를 입력하세요.\n");
else printf(" => 더 큰 수를 입력하세요.\n");
count++;
}while(guess!=random);
return 0;
}#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int main() {
#define MAX_TRIES 10
int guess;
int random;
int count = 1;
int remainingTries = MAX_TRIES;
 
srand((unsigned int)time(NULL));
random = rand() % 100 + 1;
 
printf("숫자 맞추기 게임을 시작합니다! 1부터 100까지의 숫자 중에서 맞춰보세요.\n");
 
do {
printf("[ %02d회 ] 1~100까지 숫자 하나를 입력하세요:", count);
scanf("%d", &guess);
 
if (guess == random) {
printf(" => 빙고! 정답입니다!\n");
break;
} else if (guess > random) {
printf(" => 더 작은 수를 입력하세요.\n");
} else {
printf(" => 더 큰 수를 입력하세요.\n");
}
 
remainingTries--;
if (remainingTries == 0) {
printf("이런~ 정답은 %d였습니다~\n", random);
break;
} else {
printf("남은 시도 횟수: %d\n", remainingTries);
}
 
count++;
} while (guess != random);
 
printf("게임 종료!\n");
 
return 0;
}

-------------------------------------------------------------------------

횟수 카운트 기능과 틀렸을 때 원래 어떤 숫자였는지 알려주는 요소를 넣었다.

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

---------------------------사람형---------------------------

#include <stdio.h>
struct Man{ 
int age; 
double weight; 
};
int main(void)
{
struct Man jojo;
jojo.age=21
printf("%d\n",jojo.age);
return 0;
}

------------------------------------------------------------------

출처:한성현 교수님의 강의자료
출처:한성현 교수님의 강의자료

---------------------------멤버 값 대입---------------------------

#include <stdio.h>
struct score { 
char hakbun[10];
char name[10];
int kor, eng, tot;
double ave;
};
int main(void)
{
struct score h = { "2020001","han",80,89 };
h.tot = h.kor + h.eng;
h.ave = h.tot / 2.0;
printf("%s %s %d %d %d %f\n", h.hakbun, h.name,
h.kor, h.eng, h.tot, h.ave);
return 0;
}

-----------------------------------------------------------------------

tot와 ave의 값이 바뀌었다

 

출처:한성현 교수님의 강의자료

---------------------------대입 연산---------------------------

#include <stdio.h>
struct score { 
char hakbun[10];
char name[10];
int kor, eng, tot;
double ave;
};
int main(void)
{
struct score h = { "2020001","han",80,89 };
h.tot = h.kor + h.eng;
h.ave = h.tot / 2.0;
printf("%s %s %d %d %d %f\n", h.hakbun, h.name,
h.kor, h.eng, h.tot, h.ave);
return 0;
}

-----------------------------------------------------------------------

출처:한성현 교수님의 강의자료

---------------------------성적 처리 프로그램(구조체)---------------------------

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
struct Grade {
int num,kor,eng,mat,total;
double avg;
};
int main(void) {
int i;
struct Grade man[5];
double avgkor=0.0, avgeng=0.0, avgmat=0.0;
for(i=0;i<5;i++){
printf("%d번째 학생의 학번=",i+1);
scanf("%d",&man[i].num);
printf("국어 점수="); scanf("%d",&man[i].kor);
printf("영어 점수="); scanf("%d",&man[i].eng);
printf("수학 점수="); scanf("%d",&man[i].mat);
man[i].total=man[i].kor+man[i].eng+man[i].mat; 
man[i].avg=man[i].total/3.0;
avgkor=avgkor+man[i].kor; 
avgeng=avgeng+man[i].eng; 
avgmat=avgmat+man[i].mat;
}
printf(" 학번 국어 영어 수학 총점 평균\n");
for(i=0;i<5;i++){
printf("%8d %6d %6d %6d %6d %7.2f\n",
man[i].num,man[i].kor,man[i].eng,man[i].mat,man[i].total,man[i].avg);
}
printf(" 국어 평균: %7.2f\n 영어 평균: %7.2f\n 수학 평균: %7.2f\n",
avgkor/5., avgeng/5., avgmat/5.);
return 0;
}

---------------------------------------------------------------------------------------------