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

โปรแกรม C เพื่อค้นหาประเภทอาร์เรย์ที่ผู้ใช้ป้อนโดยใช้พอยน์เตอร์


ปัญหา

เขียนโปรแกรม C เพื่อค้นหาประเภทอาร์เรย์ที่เราต้องตรวจสอบ ไม่ว่าองค์ประกอบที่กำหนดในอาร์เรย์จะเป็นตัวเลขคู่หรือเลขคี่ หรือทั้งสองอย่างรวมกันโดยใช้พอยน์เตอร์

วิธีแก้ปัญหา

ผู้ใช้ต้องป้อนอาร์เรย์ของจำนวนเต็ม จากนั้นจึงแสดงประเภทของอาร์เรย์

ตัวอย่างที่ 1 − อินพุต:5 3 1, เอาต์พุต:อาร์เรย์คี่

ตัวอย่างที่ 2 − อินพุต:2 4 6 8, เอาต์พุต:อาร์เรย์คู่

ตัวอย่างที่ 3 − อินพุต:1 2 3 4 5, เอาต์พุต:อาร์เรย์แบบผสม

อัลกอริทึม

อ้างถึงอัลกอริทึมที่ระบุด้านล่างเพื่อค้นหาประเภทอาร์เรย์ที่ผู้ใช้ป้อนโดยใช้พอยน์เตอร์

ขั้นตอนที่ 1:อ่านขนาดของอาร์เรย์ที่รันไทม์

ขั้นตอนที่ 2:ป้อนองค์ประกอบอาร์เรย์

ขั้นตอนที่ 3:ประกาศตัวแปรตัวชี้

ขั้นตอนที่ 3:ตรวจสอบว่าองค์ประกอบทั้งหมดของอาร์เรย์เป็นเลขคี่โดยใช้ตัวแปรตัวชี้หรือไม่

จากนั้นพิมพ์ "คี่"

ขั้นตอนที่ 4:ตรวจสอบว่าองค์ประกอบทั้งหมดของอาร์เรย์เป็นแบบคู่โดยใช้ตัวแปรตัวชี้หรือไม่

จากนั้นพิมพ์ "คู่"

ขั้นตอนที่ 5:มิฉะนั้น พิมพ์ "ผสม"

ตัวอย่าง

ต่อไปนี้เป็นโปรแกรม C เพื่อค้นหาประเภทอาร์เรย์ที่ผู้ใช้ป้อนโดยใช้พอยน์เตอร์ -

#include<stdio.h>
#include<stdlib.h>
int*createArray (int);
void readArray(int,int *);
int findType(int , int *);
int main(){
   int *a,n,c=0,d=0;
   printf("Enter the size of array\n");
   scanf("%d",&n);
   printf("Enter the elements of array\n");
   createArray(n);
   readArray(n,a);
   findType(n,a);
   return 0;
}
int *createArray(int n){
   int *a;
   a=(int*)malloc(n*sizeof(int));
   return a;
}
void readArray(int n,int *a){
   for(int i=0;i<n;i++){
      scanf("%d",a+i);
}}
int findType(int n, int *a){
   int c=0,d=0;
   for(int i=0;i<n;i++){
      if(a[i]%2==0){
         c++;
      }
      else{
         d++;
   }}
   if(c==n){
      printf("The array type is Even\n");
   }
   if(d==n){
      printf("The array type is Odd\n");
   }
   if(c!=n && d!=n){
      printf("The array type is Mixed\n");
   }
   return 0;
}

ผลลัพธ์

เมื่อโปรแกรมข้างต้นทำงาน มันจะสร้างผลลัพธ์ต่อไปนี้ -

Enter the size of array
4
Enter the elements of array
12
14
16
18
The array type is Even