- 배열과 반복문
- 배열 요소의 합 구하기
- 배열에서 특정 범위의 데이터를 출력하고 개수 확인하기
- 배열에서 가장 큰 수 찾기
- 입력받은 숫자 만큼 배열 내 값 일괄 증가하기
- 배열 값을 거꾸로 나열한 새로운 배열 만들기 (2가지 방법)
1. 배열과 반복문
반복문을 이용한 배열의 전체 요소 접근
int ar8[3] ={10,20,30};
int ar8cnt=sizeof(ar8)/sizeof(int);
for(int i =0; i<ar8cnt; i++)
printf("ar8[%d]:%d\n",i,ar8[i]);
/* 결과 */
ar8[0]:10
ar8[1]:20
ar8[2]:30
배열 요소의 합 구하기
1. ar 이름의 5칸 짜리 배열을 2,7,5,1,8 순으로 선언과 동시에 초기화
2. 5개 요소의 합을 구하여 출력
int ar[5] ={2,7,5,1,8};
int sum=0;
for(int a =0; a<5; a++)
sum +=ar[a];
printf("sum:%d\n",&sum);
// >> &sum 은 이상한 값이 나온다.
//배열이기 때문에 sum으로출력해야함
puts("");
int arr[] ={2,7,5,1,8}, Sum=0;
int arrCnt = sizeof(arr) /sizeof(int);
for(int e =0; e<arrCnt; e++){
Sum +=arr[e];
printf("%d ", arr[e] );
}
puts("");
printf("ar 배열 내부 데이터들의 합:%d\n", Sum);
/* 결과 */
sum:6487404
2 7 5 1 8
ar 배열 내부 데이터들의 합:23
>>&sum 은 이상한 값(6487404)이 나온다.
배열이기 때문에 &sum이 아니라 sum으로 출력해야함
배열에서 특정 범위의 데이터를 출력하고, 개수 확인하기
ar10배열에서 3~8범위의 데이터 출력 + 데이터 개수 출력
int ar10[] ={ 8,9,5,1,7,4,2 };
int ar10Cnt=sizeof(ar10)/sizeof(int), dataCnt=0;
for(int f=0; f<ar10Cnt;f++){
if(ar10[f] >= 3 && ar10[f] <= 8){
printf("ar10[%d]: %d\n",f,ar10[f]);
dataCnt++;
}
}
printf("\n3~8 범위의 숫자 개수: %d개\n", dataCnt);
/* 결과 */
ar10[0]: 8
ar10[2]: 5
ar10[4]: 7
ar10[5]: 4
3~8 범위의 숫자 개수: 4개
배열에서 가장 큰 수 찾기
ar배열에서 가장 큰 수를 찾아서 출력
ar[0]이 가장 큰 수라고 가정하고,
그 뒤 배열을 전부 비교해서 가장 큰수를 Max에 넣어 찾는다.
int ar[] = {3,7,2,11,9,5,10};
int Max =ar[0];
int cnt =sizeof(ar)/sizeof(int);
printf("ar: ");
for(int i=0; i<cnt; i++)
printf("%d ",ar[i]);
puts("\n");
//ar[0]이 가장 큰 수라고 가정하고,
//그 뒤 배열을 전부 비교해서 가장 큰수를 Max에 넣어 찾는다.
for(int i=0; i<cnt; i++){
if(Max <ar[i])
Max =ar[i];
}
printf("가장 큰 수:%d\n",Max);
입력받은 숫자 만큼 배열 내 값 일괄 증가하기
숫자를 입력 받아 base 배열 내부의 값들을 숫자만큼 증가시켜서
newAr 배열에 저장하여 출력하는 코드 작성
int base[] = {1,2,3,4,5};
int baseLen = sizeof(base) / sizeof(int);
int newAr[5], addVal;
printf("base : ");
for (int a = 0; a < baseLen; a++)
printf("%d",base[a]);
puts("");
printf("증가값 입력: "); scanf_s("%d",&addVal);
printf("newAr : ");
for(int a = 0; a < baseLen; a++) {
newAr[a] =base[a] + addVal;
printf("%d ",newAr[a]);
}
배열 값을 거꾸로 나열한 새로운 배열 만들기
base 배열의 크기와 동일한 크기의 빈 배열을 선언하고
새로운 배열에 base 배열 내부 데이터를 거꾸로 저장 후 출력
/* 내 답*/
printf("newAr : ");
for (int b= baseLen-1; b >= 0; b--){
newAr[b]=base[b];
printf("%d ",base[b]);
}
/*선생님 답*/
int revAr[5], idx = baseLen-1;
for (int c =0; c<baseLen; c++)
revAr[idx - c]=base[c];
printf("base\t: ");
for (int c =0; c < baseLen; c++)
printf("%d", base[c]);
puts("");
printf("revAr\t: ");
for (int c =0; c<baseLen; c++)
printf("%d ", revAr[c]);
'language > C' 카테고리의 다른 글
배열(array) (0) | 2022.09.13 |
---|---|
_sleep(숫자) - 반복문 응용 (0) | 2022.09.13 |
continue / break / 삼항연산자 (0) | 2022.09.13 |
C언어 자판기 코드 (0) | 2022.09.07 |
반복 제어문 while (0) | 2022.09.07 |