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