Программа одномерного масива -> указатели - C (СИ)
Формулировка задачи:
Добрый день, подскажите пожалуйста, как будет выглядеть данная программа с указателями? Спасибо
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,".1251");
int mass[10];
int i, j, max, n;
max=0;
j=9;
for(i=0;i<10;i++)
{
printf("\n ВВедите масив : [%d] ", i+1);
scanf("%d", &mass[i]);
}
for(i=0;i<5;i++)
{
n=mass[i]+mass[j];
printf("\n Сума (%d) елемента i (%d) = %d ", i+1,j+1,n);
if(n>max)
{
max=n;
}
j--;
}
printf("\n");
j=9;
for(i=0; i<5; i++)
{
n=mass[i]+mass[j];
if(max==n)
{
printf("\n Сумма елемента %d i елемента %d найбольшая = %d",i+1, j+1, n);
}
j--;
}
printf("\n");
return 0;
}Решение задачи: «Программа одномерного масива -> указатели»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL,".1251");
int *mass,*p;
int i, j, max, n;
mass=(int*)malloc(10*sizeof(int));
max=0;
j=9;
i=0;
for(p=mass;p<mass+10;p++)
{
printf("\n ВВедите масив : [%d] ", i+1);
scanf("%d", p);
i++;
}
i=0;
for(p=mass;p<mass+5;p++)
{
n=(*p)+(*(mass+j));
printf("\n Сума (%d) елемента i (%d) = %d ", i+1,j+1,n);
if(n>max)
{
max=n;
}
j--;
i++;
}
printf("\n");
j=9;i=0;
for(p=mass;p<mass+5;p++)
{
n=(*p)+(*(mass+j));
if(max==n)
{
printf("\n Сумма елемента %d i елемента %d найбольшая = %d",i+1, j+1, n);
}
j--;i++;
}
printf("\n");
free(mass);
return 0;
}
Объяснение кода листинга программы
В этом коде создается одномерный массив из 10 элементов, на которые с помощью функции scanf() вводятся числа. Затем, в цикле суммируются элементы массива, начиная с первого и до предпоследнего элемента, и проверяется, является ли полученная сумма максимальной. Если да, то выводится сообщение, содержащее индексы элементов, сумма которых является максимальной. Затем, выводится сообщение, содержащее индексы элементов, сумма которых является максимальной. В конце программы используется функция free() для освобождения памяти, выделенной под массив.