'c언어 최대공약수'에 해당되는 글 1건
- 2015.03.27 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;
}
---------------------------------------------------------------------