반응형

간단한 "찾아 바꾸기" 기능을 구현하여 보자. 첫 번째로 사용자에게 최대 80 문자의 문자열을 입력하도록 한다. 두 번째로 찾을 문자열을 입력받는다. 세 번째로 바꿀 문자열을 입력받는다. 문자열을 찾아서 바꾼 후에 결과 문자열을 화면에 출력한다.

//개인적으로 최고로 어려웠던 문제네요.. 오래걸렸습니다. 



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void)
{
char a[SIZE]="";
char find[15]="";
char change[15]="";
char seps[]=" ";
char b[10][20];
char *token;
int j,count;
count=0;
printf("문자열을 입력하세요: ");
gets(a);
printf("찾을 문자열: ");
gets(find);
printf("바꿀 문자열: ");
gets(change);
token=strtok(a,seps);
while(token!=NULL)
{
    strcpy(b[count],token);
    count++;
token=strtok(NULL,seps);
}
for(j=0;j<count;j++)
{
if(strcmp(b[j],find)==0)
    {strcpy(b[j],change);
break;}
}
printf("결과: ");
for(j=0;j<count;j++)
{
printf("%s ",b[j]);
}
printf("\n");
return 0;
}
cs




참고로 제 코드 말고도 인터넷에 찾아보니 좋은 코드가 있어서 공유하고자 합니다.

http://blog.naver.com/misoo12/100147994737


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

포인터 평면 위의 점  (0) 2016.12.27
좌표 일치 확인  (0) 2016.12.27
전광판 만들기  (0) 2016.08.22
문자열로 연산하기  (0) 2016.08.22
구두점 개수 세기  (0) 2016.08.21
반응형

요즘 길거리에서는 글자들이 흘러가는 LED 전광판을 볼 수 있다. 이것을 프로그램으로 구현하여 보자.

나는 스크린샷을 찍으려고 count 변수를 이용하여 100번만 반복되게 하였지만, count 관련 줄들을 지우면 무한 반복하게 할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void)
{
    char a[SIZE]="";
    char temp;
    int i,j,count;
    j=0; count=0;
    printf("광고하고 싶은 텍스트를 입력하세요: ");
    gets(a);
    strcat(a," ");
    while(count<=100)
    {
        for(i=0;i<strlen(a);i++)
        {printf("%c", a[i]);}
        printf("\n");
        for(i=0;i<strlen(a);i++)
        {
            if(i==0)
                {temp = a[strlen(a)];
                a[strlen(a)]=a[i];
                a[i]=a[i+1];}
            else if(i==strlen(a)-1)
                a[i]=temp;
        a[i]=a[i+1];
        }
    count++;
    }
return 0;
}
cs



반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

좌표 일치 확인  (0) 2016.12.27
찾아 바꾸기  (0) 2016.08.22
문자열로 연산하기  (0) 2016.08.22
구두점 개수 세기  (0) 2016.08.21
영어 이름 입력  (0) 2016.08.21
반응형

다음과 같이 연산의 이름을 문자열로 받아서 해당 연산을 실행하는 프로그램을 작성하라. 연산을 나타내는 문자열은 "add", "sub", "mul", "div"으로 하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define SIZE 80
int compare(char *a);
int main(void)
{
    char a[SIZE]="";
    char seps[]=" ";
    char *ope, *x, *y;
    int i,j,k;
    printf("연산을 입력하세요: ");
    gets(a);
    ope=strtok(a,seps);
    x=strtok(NULL,seps);
    y=strtok(NULL,seps);
    i=compare(ope);
    j=atoi(x);
    k=atoi(y);
    printf("연산의 결과: ");
    if(i==0)
    printf("%d\n", j+k);
    else if(i==1)
    printf("%d\n", j-k);
    else if(i==2)
    printf("%d\n", j*k);
    else if(i==3)
    printf("%d\n", j/k);
    return 0;    
}
int compare(char *a)
{
if(strncmp(a,"add",3)==0)
    return 0;
else if(strncmp(a,"sub",3)==0)
    return 1;
else if(strncmp(a,"mul",3)==0)
    return 2;
else if(strncmp(a,"div",3)==0)
    return 3;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

찾아 바꾸기  (0) 2016.08.22
전광판 만들기  (0) 2016.08.22
구두점 개수 세기  (0) 2016.08.21
영어 이름 입력  (0) 2016.08.21
문자열 역순 출력  (0) 2016.08.21
반응형

사용자로부터 문자열을 받아서 문자열에 포함된 구두점의 개수를 세는 프로그램을 작성하라. 여기서 구두점에는 마침표와 쉼표만이 포함된다고 가정하자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#define SIZE 80
int main(void)
{
    char a[SIZE]="";
    int count=0;
    int i;
    printf("텍스트를 입력하세요: ");
    gets(a);
    for(i=0;a[i]!=NULL;i++)
        {if(a[i]=='.'||a[i]==',')
            count++;}
    printf("구두점의 개수는 %d입니다.\n", count);
    return 0;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

전광판 만들기  (0) 2016.08.22
문자열로 연산하기  (0) 2016.08.22
영어 이름 입력  (0) 2016.08.21
문자열 역순 출력  (0) 2016.08.21
회문(palindrome)  (0) 2016.08.20
반응형

사용자에게 영어 이름을 성과 이름으로 나누어서 대문자로 입력하도록 하여서 성과 이름의 위치를 바꾸고 소문자로 변환하여 출력하는 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <string.h>
#include <ctype.h>
void token1(char seps[], char *token);
#define SIZE 80
int main(void)
{
char a[SIZE]="";
char seps[]=" ";
char *family, *token;
int i;
printf("문자열을 입력하시오: ");
gets(a);
for(i=0;a[i]!=NULL;i++)
    a[i]=tolower(a[i]);
token=strtok(a,seps);
family=token;
token1(seps,token);
printf(", %s", family);
return 0;
}
void token1(char seps[], char *token)
{
    token=strtok(NULL,seps);
    if(token!=NULL)
    {printf("%s ", token);
    token1(seps,token);
    }
}
 
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

문자열로 연산하기  (0) 2016.08.22
구두점 개수 세기  (0) 2016.08.21
문자열 역순 출력  (0) 2016.08.21
회문(palindrome)  (0) 2016.08.20
문장 교정  (0) 2016.08.20
반응형

엔터키가 눌려질 때까지 사용자로부터 문자열을 입력받아서 문자열에 포함된 단어들을 역순으로 배열하여 출력하는 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>
#include <string.h>
#define SIZE 80
void token1(char seps[], char *token);
int main(void)
{
char a[SIZE]="";
char seps[]=" ";
char *token;
char *c;
int i,count;
count=0;
printf("문자열을 입력하세요: ");
gets(a);
printf("출력문자열 : ");
token=strtok(a,seps);
c=token;
token1(seps,token);
printf("%s",c);
printf("\n");
return 0;
}
void token1(char seps[], char *token)
{
    token=strtok(NULL,seps);
    if(token!=NULL)
    {
    token1(seps,token);
    printf("%s ", token);}
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

구두점 개수 세기  (0) 2016.08.21
영어 이름 입력  (0) 2016.08.21
회문(palindrome)  (0) 2016.08.20
문장 교정  (0) 2016.08.20
단어 수 계산  (0) 2016.08.20
반응형

간단한 철자 교정 프로그램을 작성하여 보자. 문자열을 입력으로 받아서 문자열 안에 마침표가 있으면 문자열의 첫 번째 문자가 대문자인지를 검사한다. 만약 대문자가 아니면 대문자로 변호나한다. 또한 문장의 끝에 마침표가 존재하는지를 검사한다. 역시 마침표가 없으면 넣어준다. 즉 입력된 문자열이 "pointer is easy"라면 

"Pointer is easy."로 변환하여 화면에 출력한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void)
{
char a[SIZE]="";
printf("텍스트를 입력하세요: ");
gets(a);
if(a[0]>='a'||a[0]<='z')
    a[0]=a[0]-'a'+'A';
if(a[strlen(a)-1]!='.')
    {a[strlen(a)]='.';
a[strlen(a)+1]=NULL;}
printf("결과 텍스트 출력:%s\n", a);
return 0;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

문자열 역순 출력  (0) 2016.08.21
회문(palindrome)  (0) 2016.08.20
단어 수 계산  (0) 2016.08.20
질문에 대한 답변  (0) 2016.08.20
대소문자 변환기  (0) 2016.08.20
반응형

영문 문자열 안에 포함된 영단어의 개수를 계산하여 화면에 출력하는 프로그램을 작성하여 보자.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#define SIZE 80
int main(void)
{
    char a[SIZE]="";
    int i, count;
    count=1;
    printf("문자열을 입력하세요: ");
    gets(a);
    for(i=0;a[i]!=NULL;i++)
        if(a[i]==' ')
            count++;
    printf("단어의 수는 %d입니다.\n", count);
    return 0;
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <string.h>
#define SIZE 80
int main(void)
{
    char a[SIZE]="";
    char seps[]=" ";
    int count;
    char *token;
    count=0;
printf("문자열을 입력하세요: ");
gets(a);
token=strtok(a,seps);
while(token!=NULL)
{
    count++;
    token=strtok(NULL,seps);
}
printf("단어의 수는 %d입니다.\n", count);
return 0;
 
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

회문(palindrome)  (0) 2016.08.20
문장 교정  (0) 2016.08.20
질문에 대한 답변  (0) 2016.08.20
대소문자 변환기  (0) 2016.08.20
문자열내 문자 빈도수  (0) 2016.08.20
반응형

사용자에게 질문을 제시하고 답변을 받아서 긍정이면 1을 반환하고 부정이면 0을 반환하는 함수 get_response(char *prompt)를 작성하고 테스트하라. 여기서 매개변수 prompt는 사용자에게 제시하는 질문이다. 긍정을 의미하는 문자열은 "yes", "ok"로 가정하라. 부정을 의미하는 문자열은 "no"로 가정하라. 대소문자는 구별하지 않도록 하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <string.h>
#define SIZE 30
int get_response(char *prompt);
int main(void)
{
    char a[SIZE]="";
    int x=0;
    while(1)
    {
printf("게임을 하시겠습니까?(나가기는 quit)");
x=get_response(a);
if(x==1)
printf("긍정적인 답변\n");
else if(x==0)
    printf("부정적인 답변\n");
else if(x==-1)
    break;
else
    printf("잘못된 입력입니다.\n");
    }
return 0;
}
int get_response(char *prompt)
{
gets(prompt);
if(strcmp("yes",prompt)==0||strcmp("YES",prompt)==0||strcmp("ok",prompt)==0||strcmp("OK",prompt)==0)
    {return 1;}
else if(strcmp("no",prompt)==0||strcmp("NO",prompt)==0)
    {return 0;}
else if(strcmp("quit",prompt)==0)
    return -1;
else
    return -2;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

문장 교정  (0) 2016.08.20
단어 수 계산  (0) 2016.08.20
대소문자 변환기  (0) 2016.08.20
문자열내 문자 빈도수  (0) 2016.08.20
문자열 속의 문자 개수 세기  (4) 2016.08.19
반응형

문자열을 사용자로부터 받아서 영어의 대문자는 소문자로, 소문자는 대문자로 변환하여 출력하는 프로그램을 작성하여 보자. getchar()를 이용하여 키보드로부터 문자를 하나 입력받는다. 입력받은 문자가 소문자이면 대문자로, 대문자라면 소문자로 변환하여 putchar()를 이용하여 출력한다. 만약 영어 알파벳의 범위를 벗어나는 문자가 들어오면 경고 메시지를 출력한다. 이 작업을 사용자가 '.'를 입력할 때까지 되풀이 하는 프로그램을 자것ㅇ한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
void transform(char a);
int main(void)
{
char a;
while(1){
printf("문자를 입력하세요: ");
a=getchar();
getchar();
if(a=='.')
    break;
transform(a);
}
return 0;
}
void transform(char a)
{
if((a>='a')&&(a<='z'))
    {a=a-'a'+'A';
putchar(a);
printf("\n");}
else if((a>='A')&&(a<='Z'))
    {a=a+'a'-'A';
putchar(a);
printf("\n");}
else
    printf("잘못된 입력입니다.\n");
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

단어 수 계산  (0) 2016.08.20
질문에 대한 답변  (0) 2016.08.20
문자열내 문자 빈도수  (0) 2016.08.20
문자열 속의 문자 개수 세기  (4) 2016.08.19
공백 제거  (0) 2016.08.19
반응형

사용자로부터 받은 문자열에서 각각의 문자가 나타나는 빈도를 계산하여 출력하는 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <stdio.h>
#define SIZE 80
void count(char *a, char *b, int *x);
int main(void)
{
char a[SIZE]="";
char b[]="abcdefghijklmnopqrstuvwxyz";
int x[sizeof(b)/sizeof(b[0])]={0};
int i;
printf("문자열을 입력하시오: ");
gets(a);
count(a,b,x);
for(i=0;b[i]!=NULL;i++)
    printf("%c: %d\n", b[i], x[i]);
return 0;
}
void count(char *a, char *b, int *x)
{
int i,j;
for(j=0;b[j]!=NULL;j++)
    {for(i=0;a[i]!=NULL;i++)
    {if(b[j]==a[i])
    x[j]++;
}}
}
cs






반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

질문에 대한 답변  (0) 2016.08.20
대소문자 변환기  (0) 2016.08.20
문자열 속의 문자 개수 세기  (4) 2016.08.19
공백 제거  (0) 2016.08.19
아스키 코드  (0) 2016.08.19
반응형

문자열 안에 포함된 특정한 문자의 개수를 세는 함수 int str_chr(char *s, int c)를 작성하라. s는 문자열이고 c는 개수를 셀 문자이다.

나는 문제를 제대로 안 읽고 코딩을해서 str_chr 함수를 count 함수로 하였다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <stdio.h>
#define SIZE 80
int count(char *c, char x);
int main(void)
{
    char a[SIZE]={0};
    int ch,w;
    printf("문자열을 입력하세요: ");
    gets(a);
    printf("개수를 셀 문자를 입력하세요: ");
    scanf("%c"&ch);
    w=count(a,ch);
    printf("%c의 개수 : %d\n", ch, w);
    return 0;
}
int count(char *c, char x)
{
int i, count;
count=0;
for(i=0;c[i]!=NULL;i++)
{
    if(c[i]==x)
        count++;
    else
        continue;
}
return count;
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

대소문자 변환기  (0) 2016.08.20
문자열내 문자 빈도수  (0) 2016.08.20
공백 제거  (0) 2016.08.19
아스키 코드  (0) 2016.08.19
대문자 변환기  (0) 2016.08.19
반응형

문자열을 입력으로 받아서 문자열에 포함된 모든 공백 문자를 삭제하는 함수를 작성하고 테스트하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
# define SIZE 80
void delete_space(char *c);
int main(void)
{
    char a[SIZE]={0};
printf("공백 문자가 있는 문자열을 입력하시오: ");
gets(a);
delete_space(a);
return 0;
}
void delete_space(char *c)
{
 int i;
 for(i=0;c[i]!=NULL;i++)
 {
 if(c[i]!=' ')
     printf("%c",c[i]);
 else
     continue;
 }
 printf("\n");
}
cs





반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

문자열내 문자 빈도수  (0) 2016.08.20
문자열 속의 문자 개수 세기  (4) 2016.08.19
아스키 코드  (0) 2016.08.19
대문자 변환기  (0) 2016.08.19
배열 합치기  (0) 2016.08.16
반응형

사용자로부터 문자를 입력받아서 그 문자의 아스키 코드값을 출력하는 프로그램을 작성하라.

1
2
3
4
5
6
7
8
9
#include <stdio.h>
int main(void)
{
char a;
printf("문자를 입력하시오: ");
a=getchar();
printf("아스키코드값=%d\n", a);
return 0;
}
cs



반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

문자열 속의 문자 개수 세기  (4) 2016.08.19
공백 제거  (0) 2016.08.19
대문자 변환기  (0) 2016.08.19
배열 합치기  (0) 2016.08.16
최대공약수와 최소공배수  (0) 2016.08.15
반응형

문자열을 받아서 문자열에 포함된 문자를 대문자로 변환하는 함수 str_upper(char *s) 를 작성하고 테스트하라.

'a'아스키코드 : 97 'A' 아스키코드 : 65 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <stdio.h>
#define SIZE 50
int str_upper(char *s);
int main(void)
{
    char a[SIZE]={0};
    int x;
    x=str_upper(a);
    if(x==1)
    printf("변환된 문자열: %s\n", a);
    else
    return 0;
    return 0;
 
}
int str_upper(char *s)
{
int i;
int result=1;
printf("문자열을 입력하세요(소문자만): ");
    scanf("%s", s); //char *gets(char a);
for(i=0;s[i]!=NULL;i++)
{
if(s[i]>='a'&&s[i]<='z')
    s[i]=s[i]-'a'+'A';
else
    {printf("잘못된 입력입니다.\n");
result=0;
break;}
}
return result;
}
cs






반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

공백 제거  (0) 2016.08.19
아스키 코드  (0) 2016.08.19
배열 합치기  (0) 2016.08.16
최대공약수와 최소공배수  (0) 2016.08.15
배열 탐색  (0) 2016.08.15
반응형

2개의 정렬된 정수 배열 A[]와 B[] 가 있다고 가정하자. 2개의 배열을 합쳐서 하나의 정렬된 배열 C[]로 만든느 함수를 작성하고 테스트한다. 다음과 같은 함수 원형을 가진다고 가정하라.

void merge(int *A, int *B, int *C, int size){...}

여기서 배열 A[], B[]는 똑같은 크기로 정의되어 있다고 가정한다. 배열 C[]에는 충분한 공간이 확보되어 있다고 가정하자. 합치는 알고리즘은 다음과 같다. 먼저 A[0]와B[0]를 비교한다. 만약 A[0]가 B[0]보다 작으면 A[0]를 C[0]에 복사한다. 다음에는 A[1]과 B[0]를 비교한다.이번에는 B[0]가 A[1]보다 작다면 B[0]를 C[1]에 저장한다.  똑같은 방식으로 남아있는 원소들을 비교하여 더 작은 원소를 C[]로 복사한다. 만약 A[]나 B[]중에서 어느 하나가 먼저 끝나게 되면 남아있는 원소들을 전부 C[]로 이동한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#define SIZE 4
void merge(int *A, int *B, int *C, int size);
int main(void)
{
    int A[SIZE]={2,5,7,8};
    int B[SIZE]={1,3,4,6};
    int C[SIZE*2]={0};
    int i;
    printf("배열A: ");
    for(i=0;i<SIZE;i++)
        printf("%d ", A[i]);
    printf("\n");
    printf("배열B: ");
    for(i=0;i<SIZE;i++)
        printf("%d ", B[i]);
    printf("\n");
    merge(A,B,C,SIZE*2);
    printf("배열C: ");
    for(i=0;i<SIZE*2;i++)
        printf("%d ", C[i]);
    printf("\n");
    return 0;
}
void merge(int *A, int *B, int *C, int size)
{
int i,j,k;
i=0;j=0;k=0;
    for(k=0;k<size;k++)
    {
        if(i>=size/2)
        {
            C[k]=B[j];        
        j++;}
        else if(j>=size/2)
        {
            C[k]=A[i];        
        i++;}
        else if(A[i]<B[j])
            {C[k]=A[i];
        i++;}
        else if(A[i]>B[j])
            {C[k]=B[j];
        j++;}
    }
 
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

아스키 코드  (0) 2016.08.19
대문자 변환기  (0) 2016.08.19
최대공약수와 최소공배수  (0) 2016.08.15
배열 탐색  (0) 2016.08.15
월급의 총액  (0) 2016.08.15
반응형

2개의 정수를 입력받아서 최대 공약수와 최소 공배수를 반환하는 함수를 작성하고 테스트하라. 최대 공약수는 유클리드의 방법을 사용하여서 계산한다.


유클리드 호제법 https://ko.wikipedia.org/wiki/%EC%9C%A0%ED%81%B4%EB%A6%AC%EB%93%9C_%ED%98%B8%EC%A0%9C%EB%B2%95

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <stdio.h>
void get_lcm_gcd(int x, int y, int *p_lcm, int *p_gcd);
int main(void)
{
    int x, y, i, j;
    printf("x값을 입력하세요: ");
    scanf("%d"&x);
    printf("y값을 입력하세요: ");
    scanf("%d"&y);
    get_lcm_gcd(x,y,&i,&j);
    printf("최소공배수 : %d\n최대공약수 : %d\n", i, j);
    return 0;
}
void get_lcm_gcd(int x, int y, int *p_lcm, int *p_gcd)
{
    int r;
    int a,b;
    a=x; b=y;
    while(b!=0)
    {
    r=a%b;
    a=b;
    b=r;
    }
    *p_gcd=a;
    *p_lcm=(x*y)/(*p_gcd);
}
cs






반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

대문자 변환기  (0) 2016.08.19
배열 합치기  (0) 2016.08.16
배열 탐색  (0) 2016.08.15
월급의 총액  (0) 2016.08.15
기본급과 보너스  (0) 2016.08.15
반응형

직원들의 월급이 젖아된 배열에서 월급이 200만원인 사람을 찾고 싶을 때가 있다. 주어진 값을 배열 A[]에서 탐색하여 배열 원소의 인덱스를 반환하는 함수를 작성하고 테스트하라.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#define SIZE 5
int search(int *A, int sizeint search_value);
int main(void)
{
    int A[SIZE]={500,400,300,200,100};
    int i;
    for(i=0;i<SIZE;i++)
        printf("사원%d월급 : %d\n", i+1, A[i]);
    printf("월급이 200만원이 사원 : %d\n",search(A,SIZE,200));
    return 0;
}
int search(int *A, int sizeint search_value)
{
    int i;
    for(i=0;i<size;i++)
        if(A[i]==search_value)
            return i+1;
}
 
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

배열 합치기  (0) 2016.08.16
최대공약수와 최소공배수  (0) 2016.08.15
월급의 총액  (0) 2016.08.15
기본급과 보너스  (0) 2016.08.15
배열 복사  (0) 2016.08.15
반응형

직원들의 월급이 배열 A[]에 저장되어 있다고 가정하자. 이번 달에 회사에서 지급할 월급의 총액을 계산하고자 한다. 정수형 배열 원소들의 합을 구하여 반환하는 함수를 작성하고 테스트하라.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#define SIZE 5
int array_sum(int *A, int size);
int main(void)
{
    int A[SIZE]={100,200,300,400,500};
    int i;
    for(i=0;i<SIZE;i++)
    printf("사원%d월급: %d\n",i+1, A[i]);
    printf("월급총합계: %d\n",     array_sum(A,SIZE));
    return 0;
}
int array_sum(int *A, int size)
{
int i, sum;
sum=0;
for(i=0;i<SIZE;i++)
{
    sum+=A[i];
}
return sum;
}
cs


반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

최대공약수와 최소공배수  (0) 2016.08.15
배열 탐색  (0) 2016.08.15
기본급과 보너스  (0) 2016.08.15
배열 복사  (0) 2016.08.15
학점과 점수  (0) 2016.08.15
반응형

직원들의 기본급이 배열 A[]에 저장되어 있다. 배열 B[]에는 직원들의 보너스가 저장되어 있다. 기본급과 보너스를 합하여 이번 달에 지급할 월급의 총액을 계산하고자 한다. A[]와 B[]를 더하여 배열 C[]에 저장하는 함수를 작성하고 테스트하라. 즉 모든 i에 대하여 C[i] = A[i] + B[i]가 된다.


나는 편의상 a[],b[].c[]로 하였고 보너스는 기본급의 10퍼센트로 하였다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#define SIZE 5
void array_add(int *A, int *B, int *C, int size);
void bonus(int *A, int *B);
int main(void)
{
    int a[SIZE]={100,200,350,400,500};
    int b[SIZE]={0};
    int c[SIZE]={0};
    int i;
    bonus(a,b);
    array_add(a,b,c,SIZE);
    for(i=0;i<SIZE;i++)
        printf("사원%d기본급 : %d\n",i+1,a[i]);
    for(i=0;i<SIZE;i++)
        printf("사원%d보너스 : %d\n",i+1,b[i]);
    for(i=0;i<SIZE;i++)
        printf("사원%d총합계 : %d\n",i+1,c[i]);
    return 0;
}
void array_add(int *A, int *B, int *C, int size)
{
int i;
for(i=0;i<size;i++)
{
C[i]=A[i]+B[i];
}
}
void bonus(int *A, int *B)
{
int i;
for(i=0;i<SIZE;i++)
{
    B[i]=A[i]*(0.1);
}
}
cs




반응형

'컴퓨터 & 프로그래밍 & 전자공학 > C언어' 카테고리의 다른 글

배열 탐색  (0) 2016.08.15
월급의 총액  (0) 2016.08.15
배열 복사  (0) 2016.08.15
학점과 점수  (0) 2016.08.15
배열 출력  (0) 2016.08.15

+ Recent posts