Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C言語でforループを使用して、配列内の偶数と奇数を分離するにはどうすればよいですか?


配列は、単一の名前で保存される関連データ項目のグループです。

たとえば、int student [30]; // studentは、単一の変数名を持つ30のデータ項目のコレクションを保持する配列名です

配列の操作

  • 検索 −特定の要素が存在するかどうかを確認するために使用されます

  • 並べ替え −配列内の要素を昇順または降順で配置するのに役立ちます。

  • トラバース −配列内のすべての要素を順番に処理します。

  • 挿入 −要素を配列に挿入するのに役立ちます。

  • 削除 −配列内の要素を削除するのに役立ちます。

配列内の偶数を検索するロジック 次のとおりです-

for(i = 0; i < size; i ++){
   if(a[i] % 2 == 0){
      even[Ecount] = a[i];
      Ecount++;
   }
}

配列内の奇数を見つけるロジック 次のとおりです-

for(i = 0; i < size; i ++){
   if(a[i] % 2 != 0){
      odd[Ocount] = a[i];
      Ocount++;
   }
}

偶数を表示するには 、以下のように表示関数を呼び出します-

printf("no: of elements comes under even are = %d \n", Ecount);
printf("The elements that are present in an even array is: ");
void display(int a[], int size){
   int i;
   for(i = 0; i < size; i++){
      printf("%d \t ", a[i]);
   }
   printf("\n");
}

奇数を表示するには 、以下のように表示関数を呼び出します-

printf("no: of elements comes under odd are = %d \n", Ocount);
printf("The elements that are present in an odd array is : ");
void display(int a[], int size){
   int i;
   for(i = 0; i < size; i++){
      printf("%d \t ", a[i]);
   }
   printf("\n");
}

プログラム

以下は、forループを使用して配列内の偶数と奇数を分離するCプログラムです-

#include<stdio.h>
void display(int a[], int size);
int main(){
   int size, i, a[10], even[20], odd[20];
   int Ecount = 0, Ocount = 0;
   printf("enter size of array :\n");
   scanf("%d", &size);
   printf("enter array elements:\n");
   for(i = 0; i < size; i++){
      scanf("%d", &a[i]);
   }
   for(i = 0; i < size; i ++){
      if(a[i] % 2 == 0){
         even[Ecount] = a[i];
         Ecount++;
      }
      else{
         odd[Ocount] = a[i];
         Ocount++;
      }
   }
   printf("no: of elements comes under even are = %d \n", Ecount);
   printf("The elements that are present in an even array is: ");
   display(even, Ecount);
   printf("no: of elements comes under odd are = %d \n", Ocount);
   printf("The elements that are present in an odd array is : ");
   display(odd, Ocount);
   return 0;
}
void display(int a[], int size){
   int i;
   for(i = 0; i < size; i++){
      printf("%d \t ", a[i]);
   }
   printf("\n");
}

出力

上記のプログラムを実行すると、次の結果が得られます-

enter size of array:
5
enter array elements:
23
45
67
12
34
no: of elements comes under even are = 2
The elements that are present in an even array is: 12 34
no: of elements comes under odd are = 3
The elements that are present in an odd array is : 23 45 67

  1. C言語のポインタを使用して配列要素の合計を計算するにはどうすればよいですか?

    ポインタは、他の変数のアドレスを格納する変数です。 次のステートメントを検討してください- int qty = 179; ポインタの宣言 ポインタを宣言するための構文は次のとおりです- int *p; ここで、「p」は他の変数のアドレスを保持するポインタ変数です。 ポインタの初期化 アドレス演算子(&)は、ポインタ変数を初期化するために使用されます。 たとえば、 int qty = 175; int *p; p= &qty; ポインタの配列 これは、アドレスのコレクション(または)ポインターのコレクションです。 宣言 以下は、ポインタの配列の宣言です- dataty

  2. C言語でネストされたforループおよびその他の関連ステートメント

    ネストされたforループでは、複数のforステートメントがループの本体に含まれています。 反復回数は、外側のループの反復回数に内側のループの反復回数を掛けたものに等しくなります。 例 以下は、ネストされたforループのCプログラムです- #include<stdio.h> main( ){    int i,j;    for (i=1; i<=2; i++){       for (j=1;j<=2; j++){          printf