@Anthony_1998

Как правильно работать с массивами в С?

Помогите, пожалуйста, с заданием: Если элементы, расположенные за минимальным, упорядочены в порядке убывания, то найти сумму элементов, расположенных до минимального, и разделить его на максимальный.
Вот мой код:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
int main()
{
int a[100];
int i, j, n, min, max, ind, sum;
double ch;
char flag = 0;
sum = 0;
printf("Vvedite razmer vectora n=");
scanf("%d",&n);
for (i=0; i<n; i++) 
{
	printf("a[%d]=",i);
	scanf("%d", &a[i]);
}
min = a[0];
ind = 0;
for (i = 0; i < n; i++)
if (min > a[i])
	{
		min = a[i];
		ind=i;	
	}
printf("\n Min element = %d", min);
printf("\n Index min elementa = %d \n", ind);
max = a[0];
for (i = 0; i < n; i++)
	if (max < a[i]) max = a[i];
printf("\n Max element = %d \n", max);
for(i=ind+2; i<n; i++)
	{
		if(a[i-1] < a[i])
			{
				flag = 1; 
				break;
			}
		if(!flag) sum = sum + a[i]; 				
	}
ch = min / max;
printf("\n Summa elementov do min = %d \n", sum);
printf("\n Chastnoe min / max = %d \n", ch);
for (i=0; i<n; i++)
	printf("%2d", a[i]);
}

Только у меня сумму элементов до минимального считает неправильно. И деление минимального элемента на максимальный считает неправильно, туда всегда записывается 0.
  • Вопрос задан
  • 36 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Zolg
найти сумму элементов, расположенных до минимального
и где это у вас ?
И деление минимального элемента на максимальный считает неправильно, туда всегда записывается 0
а чему по вашему должен быть равен результат цельночисленного деления a на b, при b большем a ?
Ответ написан
Комментировать
@Anthony_1998 Автор вопроса
Всё, отбой, я уже всё сделал.
Вот код, если кому нужно:
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <iostream>
int main()
{
int a[100];
int i, j, n, min, max, ind, sum;
float ch;
char flag;
printf("Vvedite razmer vectora n=");
scanf("%d",&n);
for (i=0; i<n; i++) 
{
	printf("a[%d]=",i);
	scanf("%d", &a[i]);
}
min = a[0];
max = min; 
ind = 0;
for (i = 0; i < n; i++)
	if (min > a[i])
		{
			min = a[i];
			ind=i;	
		}
	if (max < a[i]) max = a[i];
printf("\n Min element = %d", min);
printf("\n Index min elementa = %d \n", ind);
max = a[0];
for (i = 0; i < n; i++)
	if (max < a[i]) max = a[i];
	printf("\n Max element = %d \n", max);
flag = 0;
for(i=ind+2; i<n; i++)
	{
		if(a[i-1] < a[i])
			{
				flag = 1; 
				break;
			}				
	}
	sum = 0 ;
		if(flag==0) 
			for(i=0; i<ind; i++)
				sum = sum + a[i];
	ch = (float)min / max;
printf("\n Summa elementov do min = %d \n", sum);
printf("\n Chastnoe min / max = %f \n", ch);
for (i=0; i<n; i++)
	printf("%2d", a[i]);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы