Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C หาผลรวมสมาชิกที่เป็นกำลังสองสมบูรณ์ในอาร์เรย์ ด้วย Pointers

โจทย์

เขียนโปรแกรมหาผลรวมสมาชิกที่เป็นกำลังสองสมบูรณ์ในอาร์เรย์ โดยใช้ pointers

Input: จำนวนสมาชิก และค่าสมาชิก Output: ผลรวมกำลังสองสมบูรณ์

วิธีแก้

เช่น Input = 1, 2, 3, 4, 5, 9, 10, 11, 16

กำลังสองสมบูรณ์คือ 1, 4, 9, 16 → Sum = 30

อัลกอริทึม

ขั้นตอน 1 - อ่านจำนวนสมาชิกอาร์เรย์

ขั้นตอน 2 - ป้อนค่าสมาชิก

ขั้นตอน 3 - กำหนด sum = 0

ขั้นตอน 4 - ประกาศตัวแปร pointer

ขั้นตอน 5 - ตรวจสอบสมาชิกเป็นกำลังสองสมบูรณ์ด้วย pointer

ขั้นตอน 6 - ถ้าใช่ sum = sum + ค่านั้น

ขั้นตอน 7 - คืนค่า sum

ตัวอย่าง

โปรแกรม C หาผลรวมกำลังสองสมบูรณ์ด้วย pointers:

#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