ปัญหา
เขียนโปรแกรม C เพื่อคำนวณผลรวมและผลิตภัณฑ์ขององค์ประกอบทั้งหมดในอาร์เรย์สองมิติโดยใช้การรวบรวมรันไทม์
วิธีแก้ปัญหา
-
การคอมไพล์รันไทม์หรือการเริ่มต้นเรียกอีกอย่างว่าการจัดสรรแบบไดนามิก การจัดสรรหน่วยความจำในขณะที่ดำเนินการ (รันไทม์) เรียกว่าการจัดสรรหน่วยความจำแบบไดนามิก
-
ฟังก์ชัน calloc() และ malloc() รองรับการจัดสรรหน่วยความจำแบบไดนามิก
ในโปรแกรมนี้ เราจะคำนวณผลรวมขององค์ประกอบทั้งหมดและผลิตภัณฑ์ขององค์ประกอบทั้งหมดของอาร์เรย์สองมิติ ณ รันไทม์
ลอจิกสำหรับการคำนวณผลรวมขององค์ประกอบทั้งหมดในอาร์เรย์ 2 มิติ -
printf("Sum array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ sum[i][j]=A[i][j]+B[i][j]; printf("%d\t",sum[i][j]); } printf("\n"); }
ลอจิกสำหรับผลิตภัณฑ์คำนวณขององค์ประกอบทั้งหมดในอาร์เรย์ 2 มิติ -
printf("Product array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ product[i][j]=A[i][j]*B[i][j]; printf("%d\t",product[i][j]); } printf("\n"); } }
ตัวอย่าง
#include<stdio.h> void main(){ //Declaring the array - run time// int A[2][3],B[2][3],i,j,sum[i][j],product[i][j]; //Reading elements into the array's A and B using for loop// printf("Enter elements into the array A: \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("A[%d][%d] :",i,j); scanf("%d",&A[i][j]); } printf("\n"); } for(i=0;i<2;i++){ for(j=0;j<3;j++){ printf("B[%d][%d] :",i,j); scanf("%d",&B[i][j]); } printf("\n"); } //Calculating sum and printing output// printf("Sum array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ sum[i][j]=A[i][j]+B[i][j]; printf("%d\t",sum[i][j]); } printf("\n"); } //Calculating product and printing output// printf("Product array is : \n"); for(i=0;i<2;i++){ for(j=0;j<3;j++){ product[i][j]=A[i][j]*B[i][j]; printf("%d\t",product[i][j]); } printf("\n"); } }
ผลลัพธ์
Enter elements into the array A: A[0][0] :A[0][1] :A[0][2] : A[1][0] :A[1][1] :A[1][2] : B[0][0] :B[0][1] :B[0][2] : B[1][0] :B[1][1] :B[1][2] : Sum array is : 000 000 Product array is : 000 000