Функции,вывод значений - 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;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем размер массива (константа N)
- Создаем функцию для вычисления разницы между суммой положительных и отрицательных элементов массива (raznica)
- В функции main, устанавливаем русскую локаль (setlocale)
- Выводим сообщение с описанием задачи
- Определяем массивы A, B, C (присваиваем значения элементам)
- Вызываем функцию raznica для каждого из массивов (с разными именами)
- Выводим результат выполнения функции
- Ждем нажатия клавиши (getch)
- Завершаем программу (return 0)