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

配列要素と印刷要素を動的に合計するCプログラム


数nがあるとします。サイズnの配列を動的に作成し、n個の数値を1つずつ取得して、合計を求める必要があります。配列を作成するには、stdlib.hヘッダーファイル内にあるmalloc()またはcalloc()関数を使用できます。 nの値は、stdinを介した入力としても提供されます。

したがって、入力がn =6で、配列要素が9、8、7、2、4、3の場合、9 + 8 + 7 + 2 + 4 + 3 =33の合計であるため、出力は33になります。

これを解決するには、次の手順に従います-

  • 合計:=0

  • 1つの入力を取り、それをnに保存します

  • arr:=サイズnの配列を動的に作成する

  • 初期化i:=0の場合、i

    • 入力を受け取り、それをarr [i]

      に保存します
  • 初期化i:=0の場合、i

    • 合計:=合計+ arr [i]

  • 合計を返す

理解を深めるために、次の実装を見てみましょう-

#include <stdio.h>
#include <stdlib.h>
int main(){
    int *arr;
    int n;
    int sum = 0;
    scanf("%d", &n);
    arr = (int*) malloc(n*sizeof(int));
    for(int i = 0; i < n; i++){
        scanf("%d", (arr+i));
    }
    for(int i = 0; i < n; i++){
        sum += arr[i];
    }
    printf("%d", sum);
}

入力

6 9 8 7 2 4 3

出力

33

  1. コーナー要素とその合計をCプログラムの2次元行列に出力します。

    サイズが2X2の配列を考えると、配列に格納されているすべてのコーナー要素の合計を出力することが課題になります。 行「r」と列「c」が0から行と列を開始する行列mat[r][c]を想定すると、そのコーナー要素は次のようになります。 mat [0] [0]、mat [0] [c-1]、mat [r-1] [0]、mat[r-1][c-1]。ここでのタスクは、これらのコーナー要素を取得し、それらのコーナー要素を合計することです。つまり、mat [0] [0] + mat [0] [c-1] + mat [r-1] [0] + mat [r-1] [c-1]、結果を画面に印刷します。 例 Input

  2. Cプログラムで、配列内の最後に出現する要素を相対的な順序で出力します。

    要素を含む配列a[]が与えられ、タスクは、リスト内の指定された要素の最後の出現を出力することです。ここでは、重複する要素を削除するだけでなく、配列内の要素が最後に発生したときの順序を維持する必要があります。 6つの要素の配列があり、いくつかの重複する値、つまり{1,3、2、3、1、2}も含まれているため、結果は312の形式になります。 例 Input: a[]={4,2,2,4,1,5,1} Output : 2 4 5 1 アルゴリズム START Step 1-> Declare function void printelements(int a[], int n) &nbs