Вывести на печать все пары индексов массива - C (СИ)
Формулировка задачи:
Здравствуйте, помогите пожалуйста дописать программу для динамических массивов.
Задание:
Даны 2 динамических массива размерность n. Вывести на печать все пары индексов, для которых a[i]*b[i]>10. Подсчитать число пар и сумму этих произведений.#include <stdio.h> int *mem (int n); void vvod (int *mas1, int n); //void vvod (int *mas2, int n); int pr (int *mas1, int *mas2, int n); void show(int *mas1, int n); void main () { int n, rez; int*mas1; int*mas2; printf ("\n Vvod razmera massivov"); scanf ("%d", &n); mas1=mem (n); mas2=mem (n); printf ("\n Vvod elementov massiva 1"); vvod(mas1,n); printf ("\n Vvod elementov massiva 2"); vvod(mas2,n); rez=pr(mas1,mas2, n); } int*mem (int n) { int *m; m=(int*)calloc(n, sizeof (int)); return m; } void vvod (int*mas, int n) { for (int i=0; i<n; i++) scanf ("%d", mas +i); } int pr (int*mas1, int*mas2, int n) { int a=0; int kol=0; int par=0; int sum=0; for (int i=0; i<n; i++) { a=*(mas1+i) * *(mas2+i); if (a>10) { par=i; kol+=1; sum+=a; printf ("%5d", sum); } } } void show (int mas3, int kol) { int i=0; for (int i=0; i<=kol; i++) printf ("%5d", (mas3+1)); }
Решение задачи: «Вывести на печать все пары индексов массива»
textual
Листинг программы
#include <iostream> using namespace std; int main() { int i,N,Summa=0,KolVo=0; cout<<"Type N:\n"; cin>>N; int *MasA=new int[N]; int *MasB=new int[N]; int *Hlp = new int[N]; for(i=1;i<N;i++) { cout<<"Type value of Massiv A:\n"<<i; cin>>MasA[i]; cout<<"Type value of Massiv B:\n"<<i; cin>>MasB[i]; if(MasA[i]*MasB[i]>10) { Summa=Summa+MasA[i]*MasB[i]; KolVo++; Hlp[i]=i; } else Hlp[i]=0; } cout<<"\nSUMMA:"<<Summa; cout<<"\nKolVo:"<<KolVo; for(i=1;i<N;i++) { if(Hlp[i]>0) cout<<"\nINDEXES:"<<Hlp[i]; } delete MasA; delete MasB; delete Hlp; return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявляются три переменные типа int: i, N, Summa.
- Пользователю предлагается ввести значение переменной N.
- Динамически выделяется память под два массива (MasA и MasB) по N элементов.
- Динамически выделяется память под массив Hlp (помощнический) по N элементов.
- В цикле for (от 1 до N-1) пользователь вводит значения для элементов MasA и MasB.
- Если произведение элементов MasA[i] и MasB[i] больше 10, то к Summa прибавляется произведение элементов, к KolVo добавляется единица, а в Hlp записывается i.
- Если произведение элементов MasA[i] и MasB[i] меньше или равно 10, то в Hlp записывается 0.
- После окончания цикла выводятся значения Summa и KolVo.
- В цикле for (от 1 до N-1) выводятся индексы i, для которых Hlp[i] больше нуля.
- Выделяемая память освобождается.
- Программа завершается возвратом 0.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д