что я нетак делаю

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
grigore.buga
Сообщения: 1
Зарегистрирован: 08 ноя 2017, 18:43

08 ноя 2017, 18:46

сумма положительных элементов в четныйx строках, и произведение элементов меньше 5 в нечетных столбцах

Код: Выделить всё

#include<stdio.h>
#include<math.h>
int main()
{
	int n,m,i,j;
	float prod,s,a[50][50];
	printf("intrudu n si m:\n");
	scanf("%i%i",&n,&m);
	printf("introdu elementele tabloului:\n");
	for(i=1;i<=n;i++)
	for(j=1;j<=m;j++)
	{
		printf("a[%i][%i]=",i,j);
		scanf("%f",&a[i][j]);
	}
	
	printf("\n");
	printf("afisarea tabloului:\n");
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=m;j++)
		{
			printf("%.2f ",a[i][j]);
		}
		printf("\n");
	}
	printf("\n");
	printf("Rezultate\n");
	prod=1;
			for(j=1;j<=m;j++)
		{
			if(a[m][j]<5)
			prod=prod*a[m][j];
		}
		printf("produsul elementelor mai mici ca 5 din coloanele impare %f\n",i,prod);
		prod=1;
	
	s=0;
	for(i=1;i<=n;i++)
	{
		
		if(a[i][n]>0)
		s=s+a[i][n];
	}
	for(i=2;i<n;i++)
	{
		if(a[i][1]/2==0)
		s=s+a[i][1];
		if(a[i][n]>0)
		s=s+a[i][m];
	}
	printf("Suma elementelor pozitive de pe liniile pare %f",s);
	return 0;
}
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Romeo
Сообщения: 3091
Зарегистрирован: 02 мар 2004, 17:25
Откуда: Крым, Севастополь
Контактная информация:

09 ноя 2017, 01:14

Посмотрел по верхам. Например, вот два выражения:

Код: Выделить всё

prod=prod*a[m][j];

Код: Выделить всё

s=s+a[i][m];
В одном m стоит в качестве первого индекса, во втором - в качестве второго. Даже если не вникать в остальной код, это уже грубая логическая ошибка, которая не даст программе работать корректно.

Возможно есть ещё проблемы, но это нужно детальней смотреть.

Предлагаю тебе внимательно проанализировать код ещё раз.

P.S. Кстати, в C/С++ индексы в массивах идут от 0 до N-1, а не от 1 до N. В данном случае это не важно, так как размеры массива у тебя с запасом выбраны и все циклы бегут от 1, но лучше сразу понять этот факт и писать код, который будет верным, чем надеяться на чудо или авось.
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
Ответить