EASY7
[C언어 13강]함수에서 배열 사용하기 본문
[1] 배열의 크기를 직접 지정할 때
#include<stdio.h>
void main()
{
int sample[5]={10,20,30,40,50,};
int avg;
avg=function(array, 5);
printf("평균은 %d입니다.",avg);
}
int function(int a[] , int length)/*배열의 크기 직접 지정할 때*/
{
int i, tot=0;
for(i=0; i<length; i++ )
tot+=a[i];
return tot;
}
Q. for에서 length 쓰려고 그러는데 array.length같은 것은 못쓰나요?
[2]배열의 크기를 미리 지정할 때 프로젝트 전제에 적용됨
#include<stdio.h>
#define SIZE 10 /* 상수 정의함. =쓰지말고 ;도 쓰지말기*/
void main()
{
int sample[5]={10,20,30,40,50,};
int avg;
avg=function(array)/SIZE;
printf("평균은 %d입니다.",avg);
}
int function(int a[])/*배열의 크기 직접 지정할 때*/
{
int i, tot=0;
for(i=0; i<SIZE; i++ )
tot+=a[i];
return tot;
}
[3] sizeof()함수 이용하기
배열의 크기가 10일 때 int type이면 4byte씩 할당됨
sizeof(array)하면 4*10=40이 반환됨
sizeof(array[0]);의 값은 4 반환
포인터 이용
sizeof(*array) array배열의 첫번째 원소!
실제 원소의 개수를 구할 때는
length=sizeof(array)/sizeof(*array);
Q.배열이 미리 정해놓은 크기와 실제 데이터가 있는 개수는 어떻게구별?
실습1. 배열에 등록된 데이터 중 3의 배수이면서 5의 배수를 만족하는 데이터의 개수
#include<stdio.h>
void main()
{
int arr[]={12,25,9,33,55,60,4,15,80,35,45,23,105};
int i=0, num=0;
while(i<sizeof(arr)/sizeof(*arr))
{
if(arr[i]%3==0 && arr[i]%5==0)
num++
i++
}
printf("이 배열에서 3의 배수이면서 5의 배수인 데이터의 개수는 %d입니다.", num);
}
선생님께서는 함수도 이용하셨네요
#include<stdio.h>
void main()
{
int arr[]={12,25,9,33,55,60,4,15,80,35,45,23,105};
int length=sizeof(arr)/sizeof(*arr);
for(int i=0;i<length; i++)
printf("%d\n" , arr[i]);
printf("이 배열에서 3의 배수이면서 5의 배수인 데이터의 개수는 %d입니다.", calc(arr, length);
}
int calc(int array[], int length)
{
int i, num=0;
while(i<length)
{
if(arr[i]%3==0 && arr[i]%5==0)
num++
i++
}
return num;
}
Q. while문에서 괄호안에 int i써도 되나?
'개발 공부 > C' 카테고리의 다른 글
[C언어 15강] 문자열은 배열이다 , strlen (0) | 2016.07.08 |
---|---|
[C언어 14강] 함수와 배열을 이용한 실습 (0) | 2016.07.08 |
[C언어 12강] 배열이란 무엇인가 (0) | 2016.07.07 |
[C언어 11강] 함수란 무엇인가 (0) | 2016.07.07 |
[C언어 10강] 실제 응용프로그램에서 반복문 (0) | 2016.07.06 |