Skip to content

Instantly share code, notes, and snippets.

@nikoncode
Last active December 25, 2015 15:19
Show Gist options
  • Select an option

  • Save nikoncode/6997768 to your computer and use it in GitHub Desktop.

Select an option

Save nikoncode/6997768 to your computer and use it in GitHub Desktop.
laba
#include <stdio.h>
#include <limits.h>
int * arr_read(int &n) {
printf("Введите n=");
scanf("%d",&n);
int * arr = new int[n];
for (int i = 0; i < n; ++i) {
printf("a[%d]=", i);
scanf("%d", &arr[i]);
}
return arr;
}
void calc(int arr[], int n, int &i_hate_you_stupid_flag, int &sum) {
int max=-INT_MAX, min=INT_MAX,i,maxp=-1,minp=-1;
for (i = 0; i < n; ++i) {
if (max<arr[i]) {
max = arr[i];
maxp = i;
}
if (min>arr[i]) {
min = arr[i];
minp = i;
}
}
if (maxp==minp) {
i_hate_you_stupid_flag = 1;
} else if (maxp<minp) {
i_hate_you_stupid_flag = 2;
} else if (maxp==n-1) {
i_hate_you_stupid_flag = 3;
} else {
for (i = maxp+1; i < n; ++i)
sum+= arr[i];
i_hate_you_stupid_flag = 0;
}
}
void arr_print(int arr[], int n) {
for (int i = 0; i < n; ++i)
printf("a[%d]=%d\n",i,arr[i]);
}
int main() {
int n,flag,sum=0;
int * a = arr_read(n);
calc(a,n,flag,sum);
switch (flag) {
case 1 :
printf("Массив состоит из одинаковых элементов.\n");
break;
case 2 :
printf("Максимальный левее минимального.\n");
break;
case 3 :
printf("Максимальный элемент последний.\n");
break;
default :
printf("Сумма после максимального = %d.\n", sum);
}
return 0;
}
#include <stdio.h>
int * arr_read(int &n) {
printf("Введите n=");
scanf("%d",&n);
int * arr = new int[n];
for (int i = 0; i < n; ++i) {
printf("a[%d]=", i);
scanf("%d", &arr[i]);
}
return arr;
}
int is_sorted(int arr[], int n) {
int asc=0, desc=0;
for (int i = 1; i < n; ++i) {
if (arr[i-1]<arr[i])
++asc;
else
++desc;
}
if (asc == n-1 | desc == n-1)
return 1;
return 0;
}
void sort(int arr[], int n) {
for (int i = 0; i < n-1; ++i) {
int min = i;
for (int j = i+1; j < n; ++j)
if (arr[j] < arr[min])
min = j;
if (min != i) {
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
}
void arr_print(int arr[], int n) {
for (int i = 0; i < n; ++i)
printf("a[%d]=%d\n",i,arr[i]);
}
int main() {
int n;
int * a = arr_read(n);
if (is_sorted(a, n) == 0) {
sort(a, n);
arr_print(a, n);
} else {
printf("Массив уже сортирован!\n");
}
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment