Определить разность между суммой модулей отрицательных элементов и суммой положительных - C (СИ)
Формулировка задачи:
Написать программу, определяющую разность между суммой модулей отрицательных элементов и суммой положительных элементов одномерного массива. При вводе/выводе элементов использовать индексы, а обработку элементов массива осуществлять с помощью указателей. Расчет должен производиться в функции, в которую массив передается по указателю.
если, например, ввести 12 единиц, а потом 0, считает неправильно
#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; }
Решение задачи: «Определить разность между суммой модулей отрицательных элементов и суммой положительных»
textual
Листинг программы
aa = realloc (aa, i * sizeof(float));
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д