Функции,вывод значений - C (СИ)

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

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

Здравствуйте!Помогите,пожалуйста,сделать так,чтобы конечный результат(разницу(razn)) выводился не в функции,а в основной программе,как в примере(скрин)
#include "stdafx.h"
#include <locale.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
#define N 3 //размер массива
 
void raznica(int *x, int n, char name)
{
int pol = 0;
int otr = 0;
int razn;
for (int i = 0; i<n; i++)
{
    if (x[i] > 0 ) {pol += x[i];}
    else {otr += x[i];}
}
razn = (abs(pol))-(abs(otr));
printf("Сумма положительных элементов %c: %d\n", name, pol );
printf("Сумма отрицательных элементов %c: %d\n", name, otr );
printf("Разница %d\n",abs(razn));
} 
int _tmain(int argc, _TCHAR* argv[])
{
setlocale(LC_ALL,"Russian");
printf("Найдите разницу между абсолютным значениям суммы положительных элементов и абсолютным значением суммы отрицательных элеметов векторов A,B,C");
int A[N]={15,16,17},
    B[N]={1,2,3},
    C[N]={21,22,23};
 
raznica (A, N, 'A');
raznica (B, N, 'B');
raznica (C, N, 'C');
 
_getch(); 
return 0;
}

Решение задачи: «Функции,вывод значений»

textual
Листинг программы
#include <locale.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
 
#define N 3 //размер массива
 
int raznica(int *x, int n, char name) // вот тут заменил
{
    int pol = 0;
    int otr = 0;
    int razn;
    for (int i = 0; i<n; i++)
    {
        if (x[i] > 0) { pol += x[i]; }
        else { otr += x[i]; }
    }
    razn = (abs(pol)) - (abs(otr));
    printf("Сумма положительных элементов %c: %d\n", name, pol);
    printf("Сумма отрицательных элементов %c: %d\n", name, otr);
    return abs(razn); // вот тут заменил
}
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "Russian");
    printf("Найдите разницу между абсолютным значениям суммы положительных элементов и абсолютным значением суммы отрицательных элеметов векторов A,B,C\n");
    int A[N] = { 15, 16, 17 },
        B[N] = { 1, 2, 3 },
        C[N] = { 21, 22, 23 };
 
    printf("Разница %d\n", raznica(A, N, 'A')); //
    printf("Разница %d\n", raznica(B, N, 'B')); // и вот этот блок подправил
    printf("Разница %d\n", raznica(C, N, 'C')); // 
 
    _getch();
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем размер массива (константа N)
  3. Создаем функцию для вычисления разницы между суммой положительных и отрицательных элементов массива (raznica)
  4. В функции main, устанавливаем русскую локаль (setlocale)
  5. Выводим сообщение с описанием задачи
  6. Определяем массивы A, B, C (присваиваем значения элементам)
  7. Вызываем функцию raznica для каждого из массивов (с разными именами)
  8. Выводим результат выполнения функции
  9. Ждем нажатия клавиши (getch)
  10. Завершаем программу (return 0)

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


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

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

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