Указатели, нужно создать динамический масив и подсчитать сумму - C (СИ)
Формулировка задачи:
нужно создать динамический масив и подсчитать сумму елементов больше 0
В чём проблема, прошу обясните!!
или ничего не даёт, скажите как выйти с такого положения???
#include "stdafx.h" #include "stdlib.h" #include "stdio.h" int _tmain(int argc, _TCHAR* argv[]) { int i,k,*a,c=0,sum=1; a=(int*)calloc(100,sizeof(int)); if (!a) { return 0; } printf(" Matrix \n"); for (i=0;i<100;i++) { *(a+i)=rand()%125-25; printf(" %3d\t",*(a+i)); if ((*(a+i))>0) { k=*(a+i); sum*=k; } } printf("\n%d\n",sum); free(a); return 0; }
k=*(a+i); sum*=k;
sum*=*(a+i);
Решение задачи: «Указатели, нужно создать динамический масив и подсчитать сумму»
textual
Листинг программы
#include "stdafx.h" #include "stdlib.h" #include "stdio.h" #include <iostream.h> int _tmain(int argc, _TCHAR* argv[]) { int *p, *e, *a, summ, n; std::cin>>n; a=new int [n]; if (!a) { return 0; } std::cout<<" Matrix "<<endl; for (p=a, e=a+n-1, summ=0; p<=e; ++p) { *p=rand()%125-25; std::cout<<"\t"<<*p; if (*p>0) { summ+=*p; } } std::<<cout<<summ; delete [] a; return 0; }
Объяснение кода листинга программы
Объяснение кода:
- #include
stdafx.h
, #includestdlib.h
, #includestdio.h
, #include- эти строки подключают необходимые библиотеки для работы с памятью, вводом/выводом и генерацией случайных чисел. - *int _tmain(int argc, _TCHAR argv[])** - это функция, которая является точкой входа в программу.
- *int p, e, a, summ, n;** - это объявление переменных. Переменная
p
используется как указатель на текущий элемент массива,e
- на последний элемент массива,a
- на массив,summ
- для хранения суммы элементов массива,n
- для хранения размера массива. - std::cin>>n; - считывание размера массива из ввода пользователя.
- a=new int [n]; - выделение памяти под массив
a
размеромn
. Если память не может быть выделена, программа завершается. - if (!a) - проверка, удалось ли выделить память под массив.
- std::cout<<
Matrix
<<endl; - вывод заголовкаMatrix
. - for (p=a, e=a+n-1, summ=0; p<=e; ++p) - это цикл, который проходит по всем элементам массива.
p
иe
используются как указатели на начало и конец диапазона элементов массива.summ
инициализируется нулем. - *p=rand()%125-25; - генерация случайного числа в диапазоне от -25 до 124 и присваивание его элементу массива.
- *std::cout<<
\t
<<p;** - вывод значения элемента массива с добавлением символа табуляции для форматирования. - *if (p>0)** - проверка, является ли значение элемента массива положительным.
- *summ+=p;** - добавление значения элемента массива к сумме.
- std::<<cout<<summ; - вывод суммы.
- delete [] a; - освобождение памяти, выделенной под массив.
- return 0; - завершение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д