Вывести на печать все пары индексов массива - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д