Добрый вечер!
Виктор Александрович, подскажите, пожалуйста, что не так?!
Решил попробовать переделать практическую работу по одномерным массивам через указатели --> возникла проблема
Суть проблемы в том, что после красной черты на скрине, действия выполняются неправильно.
Подозреваю, что ошибка в коде...
Но вот где?
Буду благодарен за помощь.
Код:
#include "stdafx.h"
#include "math.h"
#include "stdlib.h"
#include "ctime"
using namespace std;
void arr_in(int *a, int n)
{
for (int i=0;i<n;i++)
{
a[i]=rand()%30; //ввод случайных элементов массива
}
}
void arr_out (int a[], int n)
{ for (int i=0;i<n;i++)
printf("%i \t", a[i]);
printf ("\n");
}
void sum_(int a[], int n, float s1, float s2, float s3)
{
for(int i=0; i<10; i++)
{
s1=s1+a[i];
}
printf ("Obschee kol-vo pervoi dekadi: %f \n",s1);
for(int i=10; i<20; i++)
{
s2=s2+a[i];
}
printf ("Obschee kol-vo vtoroi dekadi: %f \n",s2);
for(int i=20; i<=30; i++)
{
s3=s3+a[i];
}
printf ("Obschee kol-vo tret`ei dekadi: %f \n",s3);
}
void sz_ (int *a, int n, float sz,int sum)
{
for(int i=0;i<n;i++)
{
sz=sum/31;
}
printf ("Srednednevnoe kol-vo osadkov: %f \n",sz);
}
void sz_1 (int *a, int n, float sz1, float s1)
{
for(int i=0; i<10; i++)
{
sz1 = s1/10;
}
printf ("Srednednevnoe kol-vo pervoi dekadi: %f \n",sz1);
}
void sz_2(int *a, int n, float sz2, float s2)
{
for(int i=10; i<20; i++)
{
sz2=s2/10;
}
printf ("Srednednevnoe kol-vo vtoroi dekadi: %f \n",sz2);
}
void sz_3 (int *a, int n, float sz3, float s3)
{
for(int i=20; i<30; i++)
{
sz3=s3/11;
}
}
void sravn (int *a, int n, float s1, float s2, float s3)
{
if (s1>s2)
{
printf ("V pervoi dekade yanvarya bilo bolshe osadkov, chem vo vtoroi \n\n");}
else
{
printf ("Vo vtoroi dekade yanvaria bilo bolshe osadkov, chem v pervoi \n\n");}
if ((s1>s2&&s2>s3)||(s1>s3&&s3>s2))
printf ("V pervoi dekade bilo bolshe vsego osadkov \n\n");
else if ((s2>s1&&s1>s3)||(s2>s3&&s3>s2))
printf ("Vo vtoroi dekade bilo bolshe vsego osadkov \n\n");
else if ((s3>s1&&s1>s2)||(s3>s2&&s2>s1))
printf ("V treriei dekade bilo bolshe vsego osadkov \n\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
srand( (unsigned)time (NULL) );
int n=31, s1=0, s2=0, s3=0, sum=0;
float sz1=0, sz2=0, sz=0, sz3=0;
int *a = new int[n];
arr_in(a,n);
arr_out(a,n);
sum_(a, s1, s2, s3, sum);
sz_(a, n, sz1, sum);
sz_1(a, n, s1, sz1);
sz_2(a, n, s2, sz2);
sz_3(a, n, s3, sz3);
sravn(a,n,s1,s2,s3);
}
