Информатика, вопрос задал Undertaker101 , 2 года назад

В одновимірному масиві, що складається з N цілих елементів, обчислити:
• мінімальний за модулем елемент масиву;
• суму модулів елементів масиву, розміщених після першого елемента, що дорівнює нулю.

C

Ответы на вопрос

Ответил nazikmuz
1

Відповідь:

С code:

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include <time.h>

#include <windows.h>;

void randarr(int *arr,const int size){

for(int i = 0; i < size; i++){

 arr[i] = rand() % 30 - 20;

}

}

void printarr(int *arr,const int size){

for(int i = 0; i < size; i++){

 printf("%d\t",arr[i]);

}

printf("\n");

}

int min_abs(int *arr,const int size){

int min = abs(arr[0]);

for(int i = 0; i < size; i++){

 if(abs(arr[i]) < min){

  printf("%d %d\n",arr[i],min);

  min = abs(arr[i]);

 }

}

return min;

}

int first_null(int *arr,const int size){

int index = -1;

for(int i = 0; i < size; i++){

 if(arr[i] == 0){

  index = i;

  return index;

 }

}

return index;

}

int sum_abs(int *arr,const int size){

int ind = first_null(arr,size),sum = 0;

if(ind == -1){

 return sum;

}

else{

 for(int i = ind; i < size; i++){

  sum += abs(arr[i]);

 }

}

return sum;

}

int main(){

srand(time(NULL));

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

int N;

printf("Введiть розмiр масиву: ");

scanf("%d",&N);

int *arr = new int[N];

randarr(arr,N);

printarr(arr,N);

int sum = min_abs(arr,N);

printf("Мiнiмальний за модулем елемент масиву:%d\n",min_abs(arr,N));

printf("Сума модулiв елементiв пiсля першого нульового елементу:%d\n",sum_abs(arr,N));

delete[] arr;

return 0

}

Новые вопросы