Массив и проверка элементов по условию - C (СИ)
Формулировка задачи:
Задан размер массива и его элементы. Определить являются ли его элементы членами геометрической прогрессии и вывести значение знаменателя прогрессии.
вот всё пока что сделал....
почему принимает тока 2 элемента, а не 3?
#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<math.h>
int main()
{
int A[3];
int i,n;
printf("\n N=");
scanf("%d",&n);
printf("\n enter array A \n");
for (i=0;i<n;i++)
scanf("%d ",&n);
getch();
return 0;
}Решение задачи: «Массив и проверка элементов по условию»
textual
Листинг программы
#include<conio.h>
#include<stdio.h>
int
main(void)
{
int i, n, u, j = 0, flag = 0;
float a[20];
/* printf("\n N=");
scanf("%d",&n); */
printf("enter array A \n");
for (i = 0; i < 20; i++)
scanf("%d",&a[i]);
float q;
q = a[1] / a[0];
for (i = 0; i < 19; i++)
{
if (a[i+1] != q*a[i]) {
flag = 1;
break;
}
};
if (flag == 0)
printf("geometry progression q = %f\n", q);
else
printf("no progression\n");
return 0;
}
Объяснение кода листинга программы
Выполняемый код на языке C выполняет следующие действия:
- Ввод количества элементов массива. Пользователю предлагается ввести количество элементов массива, которое будет храниться в переменной
n. - Ввод массива. Пользователю предлагается ввести элементы массива. Элементы массива сохраняются в переменной
a. - Вычисление значения q. Значение переменной
qвычисляется как отношение второго элемента массива к первому (a[1] / a[0]). - Проверка на геометрическую прогрессию. Происходит итеративный обход массива с помощью цикла
for. Если текущий элемент массиваa[i+1]не равенq*a[i], то переменнойflagприсваивается значение1, и цикл прерывается с помощью оператораbreak. Значение переменнойflagпроверяется после цикла. Еслиflagравно0, то выводится сообщение о геометрической прогрессии с числом q. Еслиflagравно1, то выводится сообщение о отсутствии прогрессии. - Вывод результата. В конце программы выводится сообщение об успешном выполнении программы.
- Ввод. Программа ожидает ввода от пользователя, чтобы он мог ввести данные для проверки.