문제
포인터를 사용하여 배열에서 완전제곱원소의 합을 구하는 프로그램을 작성하십시오.
배열의 여러 요소가 입력으로 주어지고 배열에 있는 요소의 모든 완전제곱합이 출력됩니다.
해결책
예를 들어,
Input= 1, 2, 3, 4, 5, 9,10,11,16 The perfect squares are 1, 4, 9,16. Sum = 1 + 4 + 9 +16 = 30 Output: 30
알고리즘
포인터를 사용하여 배열의 완전제곱원소의 합을 구하려면 아래의 알고리즘을 참조하십시오.
1단계 − 런타임에 배열의 요소 수를 읽습니다.
2단계 - 요소를 입력합니다.
3단계 - sum=0 선언 및 초기화
4단계 - 포인터 변수를 선언합니다.
5단계 − 포인터 변수
를 이용하여 배열 요소가 완전제곱수인지 확인6단계 − 완전제곱식이면 sum=sum+number
를 계산합니다.7단계 - 반환 합계.
예시
다음은 포인터를 사용하여 배열에서 완전제곱 요소의 합을 찾는 C 프로그램입니다 -
#include<stdio.h> #include<stdlib.h> #include<math.h> int sumPositive(int n,int *a){ int i,sum=0,m; for(i=0;i<n;i++){ m=sqrt(*(a+i)); if(pow(m,2)==*(a+i)){ sum+=*(a+i); } } return sum; } int main(){ int i,*a,n; printf("Enter the size of array:\n"); scanf("%d",&n); a=(int*)malloc(n*sizeof(int)); printf("Enter the elements of array:\n"); for(i=0;i<n;i++){ scanf("%d",a+i); } printf("Sum of positive square elements is %d",sumPositive(n,a)); return 0; }
출력
위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -
Enter the size of array: 10 Enter the elements of array: 1 2 3 4 5 6 7 8 9 10 Sum of positive square elements is 14