Проверять, является ли одномерный массив арифметической прогрессией - C (СИ)
Формулировка задачи:
#include <stdio.h> #include <math.h> #include <conio.h> int main(void) {int i,j,a[20],b,n,t,c,k; clrscr(); printf("vvedite kol-vo elementov\n"); scanf("%d",&n); if(n!=0) {for(i=0; i<n; i++) {printf("vvedite zna4enie %d-go elementa massiva\n",i+1); scanf("%d",&a[i]); } for(i=0; i<(n-1); i++) for(j=i+1; j<n; j++) if(a[i]>a[j]) {b=a[i]; a[i]=a[j]; a[j]=b; } clrscr(); printf("uporuadochenniy massiv\n"); for(i=0; i<n; i++) {printf("a[%d]=%d\n",i+1,a[i]);} t=a[i+1]-a[i]; if (t==0) printf("raznost progresii ne mozget bit ravna 0\n"); else k=0; {for(i=0;i<(n-1);i++) {c=a[i+1]-a[i]; if(c==t) k++;} } if (k=(n-1)) printf("massiv iavlaetsa arifmeticheskoi progresiei\n" "raznost progresii ravna %d \n",&t);} else printf("massiv ne iavlaetsa arifmeticheskoi progresiei\n"); getch(); }
Решение задачи: «Проверять, является ли одномерный массив арифметической прогрессией»
textual
Листинг программы
#include <stdio.h> #include <math.h> #include <conio.h> int main(void) {int i,j,a[20],b,n,t,c,k; clrscr(); printf("vvedite kol-vo elementov\n"); scanf("%d",&n); if(n!=0) {for(i=0; i<n; i++) {printf("vvedite zna4enie %d-go elementa massiva\n",i+1); scanf("%d",&a[i]); } for(i=0; i<(n-1); i++) for(j=i+1; j<n; j++) if(a[i]>a[j]) {b=a[i]; a[i]=a[j]; a[j]=b; } } clrscr(); printf("uporuadochenniy massiv\n"); for(i=0; i<n; i++) {printf("a[%d]=%d\n",i+1,a[i]);} t=a[1]-a[0]; //Здесь было t=a[i+1]-a[i]; if (t==0) printf("raznost progresii ne mozget bit ravna 0\n"); else {k=0; for(i=0;i<(n-1);i++) {c=a[i+1]-a[i]; if(c==t) k++;} } printf("\n%d %d\n",k,t); if (k==(n-1)) //Здесь было if (k=(n-1)) printf("massiv iavlaetsa arifmeticheskoi progresiei\n" "raznost progresii ravna %d \n",t); //Здесь было printf("massiv iavlaetsa arifmeticheskoi progresiei\n",&t); else printf("massiv ne iavlaetsa arifmeticheskoi progresiei\n"); getch(); }
Объяснение кода листинга программы
Код проверяет, является ли одномерный массив арифметической прогрессией. Вот список действий, которые выполняются в коде:
- Ввод количества элементов массива с помощью функции scanf.
- Если количество элементов не равно нулю, то происходит заполнение массива значениями с помощью той же функции scanf.
- Сортировка массива с помощью алгоритма сортировки пузырьком.
- Вывод отсортированного массива на экран с помощью функции printf.
- Вычисление разности между первым и последним элементами массива и сохранение этого значения в переменной t.
- Если разность равна нулю, то выводится сообщение об ошибке.
- Иначе, переменная k инициализируется нулем и начинается цикл, который подсчитывает количество элементов массива, имеющих одинаковое значение разности.
- После завершения цикла выводится количество элементов с одинаковой разностью и сама разность.
- Если количество элементов с одинаковой разностью равно (n-1), то выводится сообщение о том, что массив является арифметической прогрессией.
- В противном случае выводится сообщение о том, что массив не является арифметической прогрессией.
- Завершение работы программы с помощью функции getch.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д