programming/c,c++

이것이 C언어다::8장

krystalS2ee 2020. 3. 26. 01:55

8.1
1.

int arr[5];
double arr[10];
int arr[3];
char str[5];


2.

int arr[5]={1,2,3};


//8.1__3번
#include<stdio.h>
int main()
{
 double ary[5] = { 1.0, 2.1, 3.2, 4.3, 5.4 };
 int i;
 for (i = 4; i >= 0; i--)
 {
  printf("%.1lf  ", ary[i]);
 }
 printf("\n");
 return 0;
}

 

 

 

//8.1__4번
#include<stdio.h>
int main()
{
 int A[3] = { 1, 2, 3 };
 int B[10];
 int i, cnt = 0;
 
 for (i = 0; i < 10; i++)
 {
  B[i] = A[cnt];
  printf("%d  ", B[i]);
  cnt++;
  if (cnt == 3)  cnt = 0;
 }
 printf("\n");
 return 0;
}

 

//8.1__5번
#include<stdio.h>
int main()
{
 int ary[10] = { 1, 2 };
 int i;

 for (i = 0; i < 10; i++)
 {
  if (i >= 2)
   ary[i] = ary[i - 2] + ary[i - 1];
  printf("%d  ", ary[i]);
 }
 puts("");
 return 0;
}

 

 

apple-juice

1.
1,2번

2.
4번

3.
temp,str1
str1,str2
str2,temp

 

//8.2__4번
#include<stdio.h>
int main()
{
 char str[10];
 gets(str);
 puts(str);
 return 0;
}

 


5.
apple-juice

 

}
#include<stdio.h>
int main()
{
 int score[5];
 int i, min, max, tot = 0, cnt = 0;
 double avg;

 printf("5명 심사위원의 점수 입력: ");
 for (i = 0; i < 5; i++)
 {
  scanf("%d", &score[i]);
  if (i == 0)
   max = min = score[i];
  max = max > score[i] ? max : score[i];
  min = min < score[i] ? min : score[i];
 }


 printf("유효점수:  ");
 for (i = 0; i < 5; i++)
 {
  if (score[i] != max&&score[i] != min)
  {
   printf("%d  ", score[i]);
   tot += score[i];
   cnt++;
  }
 }
 avg = tot / (double)cnt;
 printf("\n평균:  %.1lf\n", avg);
 return 0;
}

 

 

//도전2_대소문자 변환 프로그램
#include<stdio.h>
int main()
{
 char str[80];
 int i, cnt = 0;

 printf("문장 입력:  ");
 gets(str);

 /*while (str[i] != 0)
 {
 if (str[i] >= 'A'&& str[i] <= 'Z')
 {
 str[i] += 'a' - 'A';
 cnt++;
 }
 i++;
 }*/
 for (i = 0; str[i]; i++)
 {
  if (str[i] >= 'A'&& str[i] <= 'Z')
  {
   str[i] += 'a' - 'A';
   cnt++;
  }
 }
 printf("바뀐 문장: %s\n", str);
 printf("바뀐 문자 수: %d\n", cnt);

 return 0;
}

 

 

//도전3_로또 프로그램
#include<stdio.h>
int main()
{
 int num[6];
 int i, id;

 for (i = 0; i < 6; i++)
 {
  printf("로또번호 입력:  ");
  scanf("%d", &num[i]);
  if (i > 0)
  {
   for (id = 0; id < i; id++)
   {
    if (num[i] == num[id])
    {
     printf("같은번호가 있습니다!\n");
     i--;
    }
   }
  }
 }
 printf("입력된 로또 번호:  ");
 for (i = 0; i < 6; i++)
 {
  printf("   %d", num[i]);
 }
 puts("");
 return 0;
}

 

 

1.배열이란 무엇인가

-같은 타입의 데이터가 여러 개 저장되어 있는 데이터 저장장소이다

 

2.배열이 왜 필요한지 구체적인 예를 들어 설명하시오

-같은 int타입의 a1,a2,~ a100까지의 100개의 변수는 선언과 초기화를 적어도 100번 해주어야하는데, 배열을 사용하면
 선언과 초기화를 동시에 한꺼번에 처리할 수 있어서 많은 데이터를 다룰 때 간편하다.

 

3.정수형 변수 10개를 선언하는 것과 정수배열 10개를 선언하는 것의 차이는?

-정수형 변수의 경우 변수의 값이 저장되는 곳이 임의로 배정되는 반면 정수배열 10개는 0-9까지 번호(index) 순서대로 차곡차곡 저장된다.

 

4.널문자의 용도는 무엇인가?

-문자의 끝을 인식하게 해준다. 데이터와 쓰레기 값을 분리한다.

 

5.널문자는 누가 저장해주는가?

-배열을 초기화하듯이 문자배열을 초기화할 때는 코드를 짜는 사람이 작성해야하고,
 문자열 상수를 사용하여 초기화할 때는 자동으로 컴파일러가 저장해준다.

 

}
#include<stdio.h>
int main()
{
 int num[5];
 int i;
 int max;

 for (i = 0; i < 5; i++)
 {
  printf("정수 입력: ");
  scanf("%d", &num[i]);
  if (i==0)  max = num[0];
  max = max > num[i] ? max : num[i];
 }

 printf("최대값: %d\n", max);
 return 0;

}

 

 

 

//P_7번_정수5개, 최소값
#include<stdio.h>
int main()
{
 int num[5];
 int i;
 int min;

 for (i = 0; i < 5; i++)
 {
  printf("정수 입력: ");
  scanf("%d", &num[i]);
  if (i==0)  min = num[0];
  min = min < num[i] ? min : num[i];
 }

 printf("최소값: %d\n", min);
 return 0;

}

 

 

//8.문자열 길이
#include<stdio.h>
int main()
{
 char str[80];
 int i= 0;

 printf("문자열 입력(띄어쓰기X): ");
 scanf("%s",&str[i]);

 while(str[i])
 {
  i++;
 }
 printf("입력 문자열의 길이:%d\n", i);

 return 0;
}

 

.

.