본문 바로가기
프로그래밍/c언어

열혈강의 c 15장 도전 프로그래밍 two

by -현's- 2011. 4. 8.
반응형


1. 길이가 10인 배열을 선언하고 총 10개의 정수를 입력받아서, 홀수와 짝수를 구분해서 출력하는 프로그램
#include<stdio.h>
int hol(int a);
int jja(int a);

int main()
{
 int i;
 int a[10];


 printf("총 10개의 숫자입력\n");

 for(i=0; i<10; i++)
 {
  scanf("%d", &a[i]);
 }

 

 printf("홀수출력: ");
 for(i=0; i<10; i++)
 {

  hol(a[i]);
 }

 printf("\n짝수출력: ");
 for(i=0; i<10; i++)
 {
  jja(a[i]);
 }
 return 0;
}

int hol(int a)
{
 if(a%2==1)
  printf("%d, ", a);
 
 return 0;
}

int jja(int a)
{
 if(a%2==0)
  printf("%d, ", a);

 return 0;
}


2. 사용자로부터 10진수 형태로 정수를 하나 입력받은 다음 2진수로 변환해서 출력하는 프로그램

#include<stdio.h>

int main()
{

int i;
int a;
int t;
int cnt=-1;
int b[100];

printf("정수 입력\n");

scanf("%d", &a);
t=a;
for(i=0; i<100; i++)
{
if(t!=0)
{
b[i]=t%2;
t=t/2;   //int형은 자동으로 정수변환

cnt++;
}


else
break;

}

for(i=cnt; i>=0; i--)
{
printf("%d", b[i]);
}
printf("\n");
return 0;

}

 


3. 길이가 10인 배열을 선언하고 총 10개의 정수를 입력받는다. 단 입력받은 숫자가 홀수이면 배열의 앞에서부터 채워나가고,
짝수이면 뒤에서부터 채워나가는 형식을 취하기로 하자.


#include<stdio.h>

int main()
{

 int i;
 int a=0, b=9;
 int aaa[10];
 int bbb[10];

 

 printf("총 10개의 숫자입력\n");
 
 for(i=0; i<10; i++)
 {
  scanf("%d", &aaa[i]);
 }


 for(i=0; i<10; i++)
 {
  if(aaa[i]%2==1)
  {
   bbb[a]=aaa[i];
   a++;
  }

 
  else if(aaa[i]%2==0)
  {
   bbb[b]=aaa[i];
   b--;
  }
 }

 printf("배열요소의 출력: ");
 for(i=0; i<10; i++)
  printf("%d ", bbb[i]);


 printf("\n");

 return 0;

}

#include<string.h>

 

4. 회문은 앞으로 읽으나 뒤로 읽으나 차이가 없는 단어들을 말한다. 예를 들어서 "level", "bob"과 같은 단어들은 회문에 속한다.
인자로 전달되는 문자열이 회문인지 아닌지를 출력해 주는 기능의 함수를 정의하고, 그에 적절한 main함수를 구현해 보자. 단, 문제의 편의를
위해서 대소문자까지 일치해야 회문으로 인정하기로 하자.

#include<stdio.h>

int main()
{


 int k=0;
 int cnt=0;
 int i;
 char str[100];

 printf("문자열 입력:\n");
 
    scanf("%s", str);

 while(str[k]!='\0')
 {
  k++;
 }

 

 for(i=0; i<k/2 ;i++)
 {
  if(str[i]==str[k-i-1])
  {
   cnt++;   
  }

 }


 if(cnt==k/2)
 {
  printf("회문입니다\n");
 }
 else
  printf("회문이 아닙니다\n");


 return 0;
}

 


5.

#include<stdio.h>

void DesSort(int *a);
int main()
{
 int i;
 int arr[7];

 printf("배열입력\n");
 for(i=0; i<7; i++)
 {
  scanf("%d", &arr[i]);
 }

 DesSort(arr);


 for(i=0; i<7; i++)
 {
  printf("%d ", arr[i]);
 }


 printf("\n");

 return 0;
 
}

void DesSort(int *a)
{
 int i, j, t;

 for(i=0; i<6; i++)
 {
  for(j=0; j<6-i; j++)
  {
   if(a[j]<a[j+1])
   {
    t=a[j];
    a[j]=a[j+1];
    a[j+1]=t;
   }
  }
 }

}

반응형

댓글