Computer >> Máy Tính >  >> Lập trình >> lập trình C

C Chương trình tìm tổng các phần tử vuông hoàn hảo trong một mảng bằng cách sử dụng con trỏ.

Vấn đề

Viết chương trình để tìm tổng các phần tử bình phương hoàn hảo trong một mảng bằng cách sử dụng con trỏ.

Cho một số phần tử trong mảng làm đầu vào và tổng của tất cả các bình phương hoàn hảo của các phần tử đó có trong mảng là đầu ra.

Giải pháp

Ví dụ:

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

Thuật toán

Tham khảo thuật toán đưa ra bên dưới để tìm tổng các phần tử bình phương hoàn hảo trong một mảng bằng cách sử dụng con trỏ.

Bước 1 - Đọc số phần tử trong mảng trong thời gian chạy.

Bước 2 - Nhập các phần tử.

Bước 3 - Khai báo và khởi tạo sum =0

Bước 4 - Khai báo một biến con trỏ.

Bước 5 - Kiểm tra xem phần tử mảng có phải là một hình vuông hoàn hảo hay không bằng cách sử dụng một biến con trỏ

Bước 6 - Nếu đó là một hình vuông hoàn hảo thì tính tổng =sum + số

Bước 7 - Trả lại số tiền.

Ví dụ

Sau đây là chương trình C để tìm tổng các phần tử bình phương hoàn hảo trong một mảng bằng cách sử dụng con trỏ -

#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;
}

Đầu ra

Khi chương trình trên được thực thi, nó tạo ra kết quả sau -

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