Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <windows.h>
- #include <locale.h>
- #include <string.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- ///////////////////////
- void RusPrint(void);
- ///////////////////////
- void OutArr(int *a, int nn)
- {
- for (int i= 0; i< nn; i++)
- {
- if (i%10) { printf ("%d\t",a[i]); }
- else { printf ("\n%d\t",a[i]); }
- }
- }
- ///////////////////////
- void InputArr(int *a, int *a0, int nn)
- {
- //Метод заполнения
- for (int i= 0; i< nn; i++) a[i]=rand()%200-100; //случайно
- //вручную
- int q= 0; int value= 200;
- while (q<nn)
- {
- NEXT:
- printf ("\nВведите элемент массива № %d\n", q);
- scanf("%d", &value);
- if (value<-100 || value>100)
- {
- printf("Диапазон значений [-100, 100]\n");
- goto NEXT;
- }
- a0[q]= value; q++;
- }
- }
- ///////////////////////
- void GreaterEl(int *a, int *a0, int nn, int *value, int *value0)
- {
- int q, v, v0;
- if (a[0]<0) v=a[0]*(-1);
- if (a0[0]<0) v0=a0[0]*(-1);
- for (int i=1; i<nn; i++)
- {
- q= a[i]; if (q<0) q*=-1;
- if (q>v) v= q;
- q= a0[i]; if (q<0) q*=-1;
- if (q>v0) v0= q;
- }
- *value= v; *value0= v0;
- return;
- }
- ////////////////////////////
- void SummAfterZero(int *a, int *a0, int nn, int *value, int *value0, int *r, int *r0)
- {
- int i= nn-1; int v=0, v0=0;
- do
- {
- if (a[i]==0) break;
- v= v+a[i];
- i--;
- } while ( i>-1);
- *r= i; *value= v;
- i= nn-1;
- do
- {
- if (a0[i]==0) { break; }
- v0= v0+a0[i];
- i--;
- } while ( i>-1);
- *r0= i; *value0= v0;
- return;
- }
- /////////////////////////////////////
- int main()
- {
- RusPrint(); // Русские буквы
- int value, value0; int n, i, r, r0;
- int *arr; int *arr0; //srand(time(0));
- printf ("Введите количество элементов массива= ");
- scanf ("%d", &n);
- //Выделяем память под массив
- arr = (int*) malloc (n*sizeof(int));
- if (arr==NULL) exit (1);
- arr0 = (int*) malloc (n*sizeof(int));
- if (arr==NULL) exit (1);
- //Заполняем массив
- InputArr(arr, arr0, n);
- //Вывод массива случайного
- printf("\nВывод массива случайного\n");
- OutArr(arr, n);
- //Вывод массива ручного
- printf("\nВывод массива ручного\n");
- OutArr(arr0, n);
- //Самый большой по модулю элемент
- GreaterEl(arr, arr0, n, &value, &value0);
- printf("\nСамый большой по модулю элемент в случайном массиве= %d\n", value);
- printf("\nСамый большой по модулю элемент в ручном массиве= %d\n", value0);
- //Сумма элементов после крайнего нулевого
- SummAfterZero(arr, arr0, n, &value, &value0, &r, &r0);
- if (r==-1) { printf("\nНуля в случайном массиве нет..."); goto NEXTPROC; }
- if (r==n) { printf("\nНоль последний элемент в случайном массиве..."); goto NEXTPROC; }
- printf("\nСумма случайных элементов за последним нулём= %d", value);
- NEXTPROC:
- if (r0==-1) { printf("\nНуля в ручном массиве нет..."); goto ENDPROC; }
- if (r0==n) { printf("\nНоль последний элемент в ручном массиве..."); goto ENDPROC; }
- printf("\nСумма рукописных элементов за последним нулём= %d", value0);
- ENDPROC:
- printf("\n"); system("pause"); free (arr); free (arr0);
- return 0;
- }
- //////////////////////
- void RusPrint(void)
- {
- //Руссификация сообщений
- system("chcp 1251 > nul");
- SetConsoleTitle("ОтветыМейлРу");
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment