Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2010, 22:39   #1
Larka12
 
Регистрация: 15.11.2010
Сообщений: 4
По умолчанию Массивы С++

Помогите пожалуйста, срочненько (

H - сумма элементов массива с нечетными номерами
E - максимальный по модулю элемент массива
G - Количество отрицательных элементов массива

(H+E/(H+1))*G

Код:
#include <stdio.h>
#include <math.h>
#include <iostream>
#include <conio.h>
 
 
int main()
{
   int i,n;
   int H,E,G;
   float x;
   
   printf("Vvedite chislo elementov v massive: ");
   scanf("%i",&n);
   int b[n];
   printf("Vvedite %i element(a)(ov) massiva\n",n);
   for (i=0; i<n; i++)
   scanf("%i",&b[i]);
   
   printf("\n\n: ");
   for(i=0; i<n; i++)
   printf("%i ", b[i]);
   
   H=b[0];
   
   for (i=1;i<n;i+=2)        
       {
                H+=b[i];}
   
   printf("\n\nH=%i",H);  
   
   E=b[0];
   for (i=1;i<n;i++) 
       if (b[i]>E) E=b[i];
 
   printf("\nE=%i",E);  
   
   G=0;
   for (i=0;i<n;i++) 
        if (b[i]<0) G++;
        
   printf("\nG=%i",G);
   
   x=(H+E/(H+1))*G;
   printf("\n\nx=(H+E)/(H+1)*G=%f",x);  
   
   getch();
   
   return 0;
}
H вычисляется неверно ((
Larka12 вне форума Ответить с цитированием
Старый 20.12.2010, 01:48   #2
KEA0301
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 28
По умолчанию

Ну если начинать индексацию массива с 0, и брать 1,3,5... элементы, то вместо H=b[0]; нужно H=0; И т.к. мы ищем максимальный по модолю элемент, то вместо if (b[i]>E) нужно if (abs(b[i])>abs(E))
KEA0301 вне форума Ответить с цитированием
Старый 20.12.2010, 19:22   #3
ZhekaSLK
 
Регистрация: 07.12.2010
Сообщений: 7
По умолчанию

Помогите пожалуйста! Задача. Дана матрица размерностью M*N. Способом перестановки строк и столбцов добиться, чтоб максимальный элемент стоял в верхнем левом углу.Язык С.

#include <stdio.h>
#include <conio.h>

void main(void)
{
clrscr();
int a[50][50],m,n,i,j,imax,jmax;
float max;

printf("Write size of matrix:/n");
scanf("%d",&m);
scanf("%d",&n);


for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
clrscr();
printf("Matrix B:/n");
for(i=0; i<m; i++);
{
for(j=0; j<n; j++)printf("%d",a[i][j]);
}
max=a[0][0];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(max>a[i][j])
{
max=a[i][j];
}
printf("%f/n",max);
getch();
}

это нахождение максимума, но выводит ерунду какую-то.Подскажите, где ошибка и как переставлять строки и столбцы. Просьба показать на примере.
ZhekaSLK вне форума Ответить с цитированием
Старый 20.12.2010, 23:14   #4
KEA0301
Пользователь
 
Регистрация: 20.12.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от ZhekaSLK Посмотреть сообщение
Помогите пожалуйста! Задача. Дана матрица размерностью M*N. Способом перестановки строк и столбцов добиться, чтоб максимальный элемент стоял в верхнем левом углу.Язык С.

...
это нахождение максимума, но выводит ерунду какую-то.Подскажите, где ошибка и как переставлять строки и столбцы. Просьба показать на примере.
Во первых не нужно к вещественному типу приводить целочисленный, да и переменная max вообще не нужна, ";" стоит после for и правильно писать "\n" и поиск у тебя кстати минимального числа, а не максимального. А вообще нужно найти строку и столбец в которой стоит max элемент, а затем поменять найденную строку с нулевой строкой, а затем найденный столбец с 0 столбцом код примерно такой:
#include <stdio.h>
#include <conio.h>

void main(void)
{
clrscr();
int a[50][50],m,n,i,j,imax,jmax,tmp;

printf("Write size of matrix:\n");
scanf("%d",&m);
scanf("%d",&n);


for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("A[%d][%d]=",i+1,j+1);
scanf("%d",&a[i][j]);
}
}
clrscr();
printf("Matrix B:\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++) printf("%d ",a[i][j]);
printf("\n");
}
imax=0;
jmax=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[imax][jmax]<a[i][j])
{
imax=i;
jmax=j;
}
printf("\n max= %d\n",a[imax][jmax]);
if(imax!=0)
for(j=0;j<n;j++)
{
tmp=a[imax][j];
a[imax][j]=a[0][j];
a[0][j]=tmp;
}
if(jmax!=0)
for(i=0;i<m;i++)
{
tmp=a[i][jmax];
a[i][jmax]=a[i][0];
a[i][0]=tmp;
}

printf("Matrix B:\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++) printf("%d ",a[i][j]);
printf("\n");
}
getch();
}
KEA0301 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамические массивы и массивы варианты N@stya Помощь студентам 0 11.06.2010 21:09
С++, Массивы, динамические массивы. -Sunshine- Помощь студентам 1 19.04.2010 02:17
массивы natasha971929 Общие вопросы C/C++ 9 14.02.2010 19:28
Даны одномерные массивы А и В. Сформировать массивы, состоящие из элемент LyaLya Помощь студентам 15 20.12.2009 14:12
Массивы на С++ Wia Помощь студентам 9 20.12.2008 02:56