artyomartemyev96
08-11-2014, 22:27
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<locale.h>
void main ()
{
setlocale(LC_ALL,"rus");
int i,n,min_inex,max_index;
float *ptr,sum=0,p=1,max,min;
printf("Пожалуйста,введите размерность массива\n");
scanf("%d",&n);
ptr=(float*)malloc(n*sizeof(float));
if(ptr==NULL)
{
printf("Не хватает свободной памяти");
return;
}
for(i=0;i<n;i++)
{
printf("Введите элемент массива[%d]\n",i+1);
scanf("%f",ptr+i);
}
for(i=0;i<n;i++)
{ if(*(ptr+i)<0) sum+=*(ptr+i);
}
printf("Сумма отрицательных элементов массива = %.2f\n",sum);
max=*(ptr+i);
max_index=i;
for(i=1;i<n;i++)
{
if (*(ptr+i)>max)
max=*(ptr+i);
max_index=i;
}
printf("%d\n",max_index);
}
Не правильно находит индекс максимального элемента, в чём ошибка?
#include<conio.h>
#include<stdlib.h>
#include<locale.h>
void main ()
{
setlocale(LC_ALL,"rus");
int i,n,min_inex,max_index;
float *ptr,sum=0,p=1,max,min;
printf("Пожалуйста,введите размерность массива\n");
scanf("%d",&n);
ptr=(float*)malloc(n*sizeof(float));
if(ptr==NULL)
{
printf("Не хватает свободной памяти");
return;
}
for(i=0;i<n;i++)
{
printf("Введите элемент массива[%d]\n",i+1);
scanf("%f",ptr+i);
}
for(i=0;i<n;i++)
{ if(*(ptr+i)<0) sum+=*(ptr+i);
}
printf("Сумма отрицательных элементов массива = %.2f\n",sum);
max=*(ptr+i);
max_index=i;
for(i=1;i<n;i++)
{
if (*(ptr+i)>max)
max=*(ptr+i);
max_index=i;
}
printf("%d\n",max_index);
}
Не правильно находит индекс максимального элемента, в чём ошибка?