Определить разность между суммой модулей отрицательных элементов и суммой положительных - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать программу, определяющую разность между суммой модулей отрицательных элементов и суммой положительных элементов одномерного массива. При вводе/выводе элементов использовать индексы, а обработку элементов массива осуществлять с помощью указателей. Расчет должен производиться в функции, в которую массив передается по указателю.
#include <stdio.h> 
#include <math.h> 
#include <stdlib.h> 
#include <conio.h> 
 
float Difference (float *a,int N) 
{ 
int i; 
float Positive=0, Negative=0; 
for (i=0; i<N; i++) 
if (*(a+i)<0) 
Negative+=abs(*(a+i)); 
else 
if (*(a+i)>0) 
Positive+=(*(a+i)); 
return Negative-Positive; 
} 
 
int main() 
{ 
const int NN=10; 
float *aa; 
aa = (float*) calloc(sizeof(float), NN); 
int i=0; 
printf("Enter the numbers(in the end please enter 0):\n"); 
scanf("%f", &aa[0]); 
if (aa[0]==0) 
printf("0 is bad number. Try again.\n"); 
 
while ((aa[i]!=0)||((i==0)&&(aa[0]==0))) 
{ 
i++; 
if (i>=NN) 
{ 
realloc (aa, i * sizeof(float)); 
//aa = (float *) realloc(aa, i); 
} 
scanf("%f", &aa[i]); 
 
} 
 
printf("%.1f\n", Difference(aa, i)); 
getch(); 
return 0; 
}
если, например, ввести 12 единиц, а потом 0, считает неправильно

Решение задачи: «Определить разность между суммой модулей отрицательных элементов и суммой положительных»

textual
Листинг программы
aa = realloc (aa, i * sizeof(float));

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4 из 5
Похожие ответы