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

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: что я нетак делаю

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

Romeo » 09 ноя 2017, 01:14

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

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

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

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

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

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

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

P.S. Кстати, в C/С++ индексы в массивах идут от 0 до N-1, а не от 1 до N. В данном случае это не важно, так как размеры массива у тебя с запасом выбраны и все циклы бегут от 1, но лучше сразу понять этот факт и писать код, который будет верным, чем надеяться на чудо или авось.

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

grigore.buga » 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;
}

Вернуться к началу