'Study/C언어'에 해당되는 글 6건

  1. 2015.03.27 C언어 HW 06
  2. 2015.03.27 C언어 HW 05
  3. 2015.03.27 C언어 HW 04
  4. 2015.03.27 C언어 HW 03
  5. 2015.03.27 C언어 HW 02
  6. 2015.03.27 C언어 HW 01

C언어 HW 06

|


[ hw06 ]


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


#1


#include <stdio.h>


int main()

{

int a[10];

int i;


for(i=0;i<10;i++)

{

printf("%d번째 정수를 입력하시오 : ", i+1);

scanf("%d", &a[i]);

}


for(i=0;i<9;i++)

{

if (a[i] > a[i+1])            // 따로 tmp 인수를 만들지 않고 기존의 인수를 활용하려고 하였다.

a[i+1] = a[i];

}

printf("가장 큰 정수값은 %d입니다.\n", a[9]);

return 0;

}


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


#2


#include <stdio.h>

#define size_a 10


float max(float *p);

float min(float *p);

float avg(float *p);



int main()

{

float a[size_a];

int i;

float *p;

p = a;


for(i=0;i<size_a;i++)

{

printf("%d번째 체중 : ", i+1);

scanf("%f", &a[i]);

}


printf("최고체중 : %0.1f    최저체중 : %0.1f    평균체중 : %0.1f\n", max(p), min(p), avg(p));

return 0;

}


float max(float *p){

int i;

float max;

for(i=0;i<size_a-1;i++)

{

if (*(p+i) > *(p+i+1))

max = *(p+i);

}

return max;

}


float min(float *p){

int i;

float min;

for(i=0;i<size_a-1;i++)

{

if (*(p+i) > *(p+i+1))

min = *(p+i+1);

}

return min;

}


float avg(float *p){

int i;

float avg = 0;

for(i=0;i<size_a;i++)

avg += *(p+i);


return avg/10;

}


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


#3


#include <stdio.h>


double dp(double x, int n);


int main(){

double x;

int n;


printf("x^n 을 계산하는 프로그램입니다. x와 n을 입력하시오. (x, n) :");

scanf("%lf, %d", &x, &n);


printf("%lf의 %d제곱 = %lf", x, n, dp(x, n));


return 0;

}


double dp(double x, int n){

if (n==1)

return x;

else

return x*dp(x, n-1);             // 재귀함수 사용

}


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


#4    // 구글 검색해서 힌트 얻음


#include <stdio.h>


int gcd(int a, int b);


int main(){

int a, b;


printf("최대공약수를 구할 두 수를 입력하세요(a, b) : ");

scanf("%d, %d", &a, &b);

printf("%d와 %d의 최대공약수는 %d 입니다.\n", a, b, gcd(a, b));


return 0;

}


int gcd(int a, int b){            // 정수론 시간에 배운 내용이었는데,, 이렇게 활용되는구나

if (b==0)

return a;

gcd(b, a%b);

}


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


#5


#include <stdio.h>

#include <stdlib.h>


int main(){

int *score;

int sn, i, a, b, c, d, f;

a = b = c = d = f = 0;


printf("학생 수 : ");

scanf("%d", &sn);


score = (int *)malloc(sizeof(int)*sn);


for(i=0;i<sn;i++){

printf("%d번째 학생의 점수를 입력하세요 : ", i+1);

scanf("%d", &score[i]);

if (score[i] >= 90)

a++;

else if (score[i] >= 80)

b++;

else if (score[i] >= 70)

c++;

else if (score[i] >= 60)

d++;

else

f++;

}


printf("\n90점 이상 : ");

for(i=0;i<a;i++){

printf("*");

}

printf("\n80점 이상 : ");

for(i=0;i<b;i++){

printf("*");

}

printf("\n70점 이상 : ");

for(i=0;i<c;i++){

printf("*");

}

printf("\n60점 이상 : ");

for(i=0;i<d;i++){

printf("*");

}

printf("\n60점 미만 : ");

for(i=0;i<f;i++){

printf("*");

}

printf("\n");


free(score);


return 0;

}



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


#6



#include <stdio.h>

#include <stdlib.h>

#include <time.h>


int main(){


int num, seed;

int i = 1;


seed = time(NULL);

srand(seed);

num = rand() % 100;

while(1)

{

printf("어떤 숫자일지 맞춰보세요 : ");

scanf("%d", &seed);

if (num == seed){

printf("%d번만에 맞추셨네요~ 짝짝짝\n", i);

break;

}

else if (num > seed ){

printf("더 작은 수를 입력하셨네요~\n");

i++;

}

else{

printf("더 큰 수를 입력하셨네요~\n");

i++;

}

}


return 0;

}



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




'Study > C언어' 카테고리의 다른 글

C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 05

|


[ hw05 ]


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


#1


#include <stdio.h>

void pr99(int a, int b);


int main()

{

int i, j;

printf("구구단 몇단을 출력할까요? : ");

scanf("%d", &i);

printf("%d단\n", i);


for(j=1;j<10;j++)

{

pr99(i, j);

}

return 0;

}


void pr99(int a, int b){

printf("%d * %d = %d\n", a, b, a*b);

}


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


#2 ~ #3


문제 이해를 못했음


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


#4


#include <stdio.h>


void swap(char *p);


int main()

{

char a[26];

char *p;

int i;

int j=65;


p = &a[0];   // 이렇게 a[26]와 *p 를 따로 선언해서 받는게 아니라,, *p 에다가 바로 i문으로 돌려서 입력하는 방법은..?



for(i=0;i<26;i++)

{

a[i] = j;

j++;

}


for(i=0;i<26;i++)

printf("%c",a[i]);

printf("\n");


for(j=0;j<25;j++)

{

swap(p);

for(i=0;i<26;i++)

{

printf("%c",a[i]);

}

printf("\n");

}

return 0;

}


void swap(char *p){

char temp;

int i;

temp = *p;                                 // 1번째 주소를 일단 temp에 저장.


for(i=0;i<25;i++)

{

*(p+i) = *(p+i+1);               // 뒷 주소를 앞에다가 저장.

}

*(p+25) = temp;                        // 마지막 넘을 temp에 있는 것으로 저장.

}



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


#5  ??              // 이것 역시 문제 이해 못함..ㅎㅎ


100a + 10b + c   +   100c + 10a + c   =   100b + 10d + d


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




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 04

|


[ hw04 ]


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


#1


#include <stdio.h>


int main()

{

float a1, a2, b1, b2, c1, c2;


while(1)

{

printf("a1x + b1y = c1\na2x + b2y = c2\n");

printf("위 식들의 계수를 각각 입력하세요.(a1, b1, c1, a2, b2, c2)");

scanf("%f, %f, %f, %f, %f, %f", &a1, &b1, &c1, &a2, &b2, &c2);


if (a1 == 0 && a2 == 0)

printf("a1 과 a2 모두 0일 수 없습니다. 다시 입력하세요.");

else if (b1 == 0 && b2 == 0)

printf("b1 과 b2 모두 0일 수 없습니다. 다시 입력하세요.");

else

break;

}


/*


x 1 b2 -b1 c1                 // 행렬식으로 계산 중

y a1b2-a2b1      -a2   a1 c2


1 b2c1-b1c2

a1b2-a2b1     a1c2-a2c1



*/



printf("x, y = %f, %f", ((b2*c1)-(b1*c2))/((a1*b2)-(a2*b1)),  ((a1*c2)-(a2*c1))/((a1*b2)-(a2*b1)));

                                    // 한번에 코딩한 것은 자랑.ㅋㅋ


return 0;

}


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


#2

#include <stdio.h>


int main()

{

int op;

float x, y;                // 근데 다른 이전의 문제에선 정수로 받아서 결과만 실수로 내주면 되는 것 같더니.. 이번엔 안된다.


printf("계산할 연산을 입력하세요.\n(1 : +,  2 : -, 3 : *, 4 : /) : ");

scanf("%d", &op);

printf("계산할 두 정수를 입력하세요 : ");

scanf("%f, %f", &x, &y);


switch(op)

{

case 1 : printf("'+' 연산의 결과값 : %0.0f\n", x+y); break;      // op를 char 형식으로 받고 case '+' 이런 식으로 하고싶었는데

case 2 : printf("'-' 연산의 결과값 : %0.0f\n", x-y); break;       // 안되는 듯함. 문자로 받아서 하는 방법은 없나요?

case 3 : printf("'*' 연산의 결과값 : %0.0f\n", x*y); break;

case 4 : while(1)                          // case 문에다가 while 문을 넣어보고 싶었음.

{

if (y == 0)

{

printf("/ 연산에서는 y(젯수)가 0이 될 수 없습니다. y의 값을 다시 입력하세요. : ");

scanf("%f", &y);

}

else

{

printf("'/' 연산의 결과값 : %f\n", x/y);

break;

}

} break;

}

return 0;

}



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


#3


#include <stdio.h>


int main()

{

int a, b, c, max;


printf("3개의 정수값을 입력하세요(a, b, c) : ");

scanf("%d, %d, %d", &a, &b, &c);


if (a > b)

{

if (a > c)

max = a;

else

max = c;

}

else

{

if (b > c)

max = b;

else

max = c;

}


a = max % 2;          // max 값에 이미 최대값이 들어가있기 때문에 이미 사용된 a 를 이용


if (a == 0)

printf("%d는 짝수입니다.\n", max);

else

printf("%d는 홀수입니다.\n", max);

return 0;

}




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 03

|


[ hw03 ]


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


#1


#include <stdio.h>


int main(){

int age;


while(1)

{

printf("나이를 입력하시오 : ");

scanf("%d", &age);


if (age >= 0)

break;

printf("나이를 잘못 입력하셨습니다. 다시 입력 해 주세요.\n");      // 사실 문제에선 그리 요구하는 필수사항은 아니었지만..ㅎㅎ

}


if (age < 8 || age >59)                                   // 어떻게 하면 더 효과적으로 if 및 else를 사용할 수 있을까?

printf("입장료는 무료입니다.\n");

else if (age < 20)

printf("입장료는 2,000원 입니다.\n");

else

printf("입장료는 3,000원 입니다.\n");

return 0;


}



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


#2


#include <stdio.h>


int main(){

char c;


printf("한 문자를 입력하시오 : ");

scanf("%c", &c);


if (48 <= c && c <=57)

printf("숫자 입니다.\n");

else if (65 <= c && c <= 90)

printf("%c", c+32);

else if (97 <= c && c <= 122)

printf("%c", c-32);

else

printf("영문자나 숫자가 아닙니다");

return 0;


}


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


#3


#include <stdio.h>


int main(){

int year;


printf("연도를 입력하시면 그 해가 윤년인지 아닌지 알려드립니다.\n연도를 입력하시오 : ");

scanf("%d", &year);


if (year % 400 == 0)

printf("%d년은 윤년입니다.\n", year);

else if (year % 100 == 0)

printf("%d년은 평년입니다.\n", year);

else if (year % 4 == 0)

printf("%d년은 윤년입니다.\n", year);

else

printf("%d년은 평년입니다.\n", year);

return 0;


}


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


#4


#include <stdio.h>


int main(){

int a, b;


while(1)

{

printf("서로 다른 두 숫자를 입력하시오 (a, b) : ");

scanf("%d, %d", &a, &b);

if (a!=b)

break;

else

printf("다시 입력하시오.\n");           // 조건에서 서로 다른걸 입력하랬는데 그걸 또 검사하는 나란 놈은..ㅋㅋ

}


if (a>b)

printf("%d\n", a);

else

printf("%d\n", b);

return 0;


}



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



#5



#include <stdio.h>


int main(){

int grade;


printf("학년에 따른 등록금 안내 해드립니다. 몇학년 이세요? : ");

scanf("%d", &grade);


switch(grade)

{

case 1 : printf("300만원\n"); break;              // 근데 왜 break; 까지 엔터 치면 칸이 이쁘게 안나올까..? 결과는 맞는데.ㅎㅎ

case 2 : printf("250만원\n"); break;

case 3 : printf("250만원\n"); break;

case 4 : printf("200만원\n"); break;

default : printf("그런 학년은 없습니다.\n");    // default 라 함은 else와 같은 맥락~

}

return 0;


}


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


#6


#include <stdio.h>


int main(){

int no;

float kw;


printf("사용 전력랑(Kw)를 입력하세요 : ");

scanf("%f", &kw);


while(1)

{

printf("코드번호를 입력하세요. (가정용은 1, 산업용은 2, 교육용은 3 입니다.) : ");

scanf("%d", &no);


if(no == 1 || no == 2 || no == 3)

break;

else

printf("코드번호를 잘못 입력하셨습니다. 다시 입력하세요.\n");

}


switch(no)

{

case 1 : printf("%0.1f원 입니다.\n", kw*127.8+1130); break;

case 2 : printf("%0.1f원 입니다.\n", kw*88.5+660); break;

case 3 : printf("%0.1f원 입니다.\n", kw*52.0+370); break;

}

return 0;


}


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




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


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;


}



'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 01  (0) 2015.03.27
And


C언어 HW 01

|


이 게시판 들에는 학원에서 내준 숙제에 대해 내 나름대로의 풀이를 적으려 한다.

각각의 문제는 보내준 분의 개인 자료이니 나만의 답만 적으려 한다.

문제가 무엇이었을지, 결과값은 어떻게 나올지 내 스스로 유추하는 것도 공부일듯~




[ hw01 ]


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


#1


#include <stdio.h>


int main(){

printf("컴퓨터시스템 학생들이\n모두 컴퓨터프로그래밍을\n");

printf("잘 할 수 있기를 바랍니다.\n");


return 0;

}


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


#2


#include <stdio.h>


int main(){

int age;

printf("나이를 입력하세요: ");

scanf("%d", &age);

printf("당신은 10년 후에 %d살입니다.\n", age+10);


return 0;

}



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


#3


#include <stdio.h>


int main(){

int w, h;


printf("== 사각형의 면적계산 프로그램 ==\n");

printf("사각형의 가로길이: ");

scanf("%d", &w);

printf("사각형의 세로길이: ");

scanf("%d", &h);

printf("\n사각형의 면적은 %d입니다.\n", w*h);


return 0;

}


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


#4


#include <stdio.h>


int main(){


char a;


printf("문자를 입력하세요: ");

scanf("%c", &a);

printf("문자 = %c       ASCII코드값 = %d\n", a, a);


return 0;


}



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


#5


#include <stdio.h>


int main(){


char s[10] = {0};            // pointer 변수로 받아도 될듯.


printf("당신의 이름은 무엇입니까?  ");

scanf("%s", &s);

printf("당신의 이름은 %s 이군요..\n", s);

return 0;


}



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


#6


#include <stdio.h>


int main(){


int c;


printf("온도(C)를 입력하세요: ");

scanf("%d", &c);

printf("화씨(F)온도는 %f도입니다.\n", 1.8*c+32);      // 이거 때문에 처음엔 좀 힘들었지..ㅎㅎ %f로 출력. 지금이라면 소수점도 넣을텐데


return 0;

}



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


#7


#include <stdio.h>


int main(){


int bp, dp;


printf("과자 판매액(만원)     : ");

scanf("%d", &bp);

printf("음료수 판매액(만원)   : ");

scanf("%d", &dp);

printf("오늘의 수익(만원)     : %0.2f\n", 0.15*bp+0.1*dp);   // 여기서 바로 소수점 제한을 뒀군. bp와 dp는 정수로, 출력은 실수로~

return 0;


}


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




'Study > C언어' 카테고리의 다른 글

C언어 HW 06  (0) 2015.03.27
C언어 HW 05  (0) 2015.03.27
C언어 HW 04  (0) 2015.03.27
C언어 HW 03  (0) 2015.03.27
C언어 HW 02  (0) 2015.03.27
And


prev | 1 | next