Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 포인터를 사용하여 배열에서 완전제곱 요소의 합을 찾는 프로그램.

<시간/>

문제

포인터를 사용하여 배열에서 완전제곱원소의 합을 구하는 프로그램을 작성하십시오.

배열의 여러 요소가 입력으로 주어지고 배열에 있는 요소의 모든 완전제곱합이 출력됩니다.

해결책

예를 들어,

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