'malloc'에 해당되는 글 1건
- 2015.03.27 C언어 HW 02
[ hw02 ]
---------------------------------------------------------------------
#1
#include <stdio.h>
#include <stdlib.h>
int main(){
int age;
char *location, *blood, *name;
location = (char *)malloc(sizeof(char) * 10); // 기억이 나지 않아 살짝 구글링 했지..
blood = (char *)malloc(sizeof(char) * 10); // 근데 이렇게 말고 진짜로.. 내가 입력받는 만큼 생성하는 것은 없나?
name = (char *)malloc(sizeof(char) * 10);
printf("당신이 사는 곳은? ");
scanf("%s", location);
printf("당신의 혈액형은? ");
scanf("%s", blood);
printf("당신의 나이는? ");
scanf("%d", &age);
printf("당신의 이름은? ");
scanf("%s", name);
printf("아하, 당신은 %s에 사는 %d살의 %s이라는 분이군요! 혈액형은 %s.\n", location, age, name, blood);
free(location); // free로 메모리 없애주기
free(blood);
free(name);
return 0;
}
---------------------------------------------------------------------
#2
#include <stdio.h>
int main(){
float second;
printf("10km/h로 달리는 철수가 달린 초(second)를 입력하면 뛴 거리(km)를 계산하는 프로그램 입니다.\n철수가 달린 초(second) : ");
scanf("%f", &second);
// 10km/h -> 10/60/60 km/s // 1초에 몇키로를 가는지 계산하는 중..ㅋㅋ
printf("철수가 뛴 거리(km) : %0.3f\n", ((second*10)/60)/60); // 1초에 몇키로를 가는지만 알면 거기에 시간을 곱하면 된다.
return 0;
}
---------------------------------------------------------------------
#3
#include <stdio.h>
int main(){
int minute, day, hour;
printf("분(min)을 입력하세요 : ");
scanf("%d", &minute);
day = minute/(24*60); // day는 int 형이기 때문에 나누면 정수만 입력된다. 즉 몇일인지가 day 입력 된다.
minute = minute - (day*24*60); // 그리고 입력된 분에서 day 대한 분만큼 뺀다.
hour = minute/60; // 그리고 같은 원리로 시간이 int형이니 초로 나눠서 시간을 만든다.
minute = minute -(hour*60); // 역시나 같은 원리~
printf("%d 일 %d 시간 %d 분\n", day, hour, minute);
return 0;
}
---------------------------------------------------------------------
#4
#include <stdio.h>
int main(){
float time;
int hour, minute, second;
printf("시간을 입력하세요 : ");
scanf("%f", &time);
hour = time;
time = time - hour; // time은 실수, hour은 정수이므로 소수부분만 time에 다시 입력되겠지..ㅎㅎ
minute = time * 60; // 그리곤 거기에 60을 곱해서 다시 int형인 분으로 넣으면 몇분인지 정수만 또 나온다.
// 1분 = 60초
second = ((time * 60) - minute)*60; // 여기선 다시 분에 대한 소수점만 나오게 한다음 60을 곱해서 몇초인지 구함
printf("%d시간 %d분 %d초\n", hour, minute, second);
return 0;
}
---------------------------------------------------------------------
#5
#include <stdio.h>
int main(){
float time;
int day, hour, minute, second;
printf("일 수를 입력하세요 : ");
scanf("%f", &time);
day = time;
time = time - day; // 이것도 위에랑 비슷~ 소수부분만 남기는 스킬을 활용했다.
//0.xx 일 남음 & 1일 = 24시간 // 근데 알고보니 뭐 시간에 관련된 함수 있는거 아님..? ㅋㅋㅋㅋㅋ
hour = time * 24;
time = (time * 24) - hour;
// 0.xx 시간 남음 & 1시간 = 60분
minute = time * 60; // 1시간이 60분이니 시간을 나타낸 소수점에 60을 곱하면 소수점이 몇분인지 나온다.
time = (time * 60) - minute;
//0.xx 분 남음 & 1분 = 60초
second = time * 60; // 위에랑 같은 원리
printf("%d일 %2d시간 %2d분 %2d초\n", day, hour, minute, second);
return 0;
}
---------------------------------------------------------------------
#6
#include <stdio.h>
int main(){
printf("char : %d 바이트\n", sizeof(char)); // 각각의 형이 몇바이트인지 알기 위함임.
printf("short : %d 바이트\n", sizeof(short));
printf("int : %d 바이트\n", sizeof(int));
printf("long : %d 바이트\n", sizeof(long));
printf("float : %d 바이트\n", sizeof(float));
printf("double : %d 바이트\n", sizeof(double));
printf("long double : %d 바이트\n", sizeof(long double));
return 0;
}
---------------------------------------------------------------------
#7
#include <stdio.h>
int main(){
int kor, eng, math;
printf("각각의 점수를 입력하시오(국어, 영어, 수학) : ");
scanf("%d, %d, %d", &kor, &eng, &math);
printf(" ==================================================\n");
printf("│ 국어 │ 영어 │ 수학 │ 총점 │ 평균 │\n");
printf(" ==================================================\n");
printf("│ %2d │ %2d │ %2d │ %3d │ %0.2f │\n", kor, eng, math, kor+eng+math, (kor+eng+math)/3);
printf(" ==================================================\n");
return 0; // 여기서 다시 공부. int 형으로 받아도 실수가 발생할 때만 출력을 실수로 하면 된다.
}
---------------------------------------------------------------------
#8
#include <stdio.h>
int main(){
printf("C에서 주석문을 넣는 방법에는 %c%c %c%c %c%c과 %c%c %c%c%c 등이 있다.\n:", 47, 42, 126, 126, 42, 47, 47, 47, 126, 126, 126 ); // ' // ' 나 /* */ 때문에 해당 기호에 대한 아스키코드를 썼는데... 일부만 써도 될껄 그랬다는 생각이 든다..ㅎㅎ
printf("줄을 바꾸려면 특수문자 %cn을 출력하면 된다.\n", 92);
printf("C에서 문자열 상수는 %c %c%c %c로, 문자상수는 %c%c%c로 표시한다.\n", 34, 126, 126, 34, 39, 126, 39);
return 0;
}
---------------------------------------------------------------------
#9
#include <stdio.h>
int main(){
int speed;
float hour, minute, second;
printf("시속(km/h) : ");
scanf("%d", &speed);
printf("운전시간(시, 분, 초) : ");
scanf("%f, %f, %f", &hour, &minute, &second);
//1시간에 120km, 1분에 2km, 1초에 2/60 km) // 각 시간 단위당 몇키로 갔는지 계산 함
printf("\n달린 거리(km) : %0.2f\n", (120*hour)+(2*minute)+(second/30));
return 0;
}