Форум программистов, компьютерный форум CyberForum.ru

Ошибка в программе. Работа с двумерными массивами - C++

Восстановить пароль Регистрация
 
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.12.2013, 17:07     Ошибка в программе. Работа с двумерными массивами #1
Задача:Три группы студентов, в каждой из которых 20 человек, в сессию сдавали по 3 экзамена. Сведения об оценках каждой группы хранятся в двумерных массивах. Определить лучшую по средней оценке группу.

Код
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include<ctime>

int main(){
	system("CHCP 1251");
	float x[20][3], y[20][3], z[20][3], i, j, nmax;
	float c[2], max;
	c[0] = 0; c[1] = 0; c[2] = 0;
	for (i = 0; i<20; i++)
	for (j = 0; j<3; j++) {
		x[i,j] = rand() % 5 + 1;
		c[0] = c[0] + x[i,j];
		y[i,j] = rand() % 5 + 1;
		c[1] = c[1] + y[i,j];
		z[i,j] = rand() % 5 + 1;
		c[2] = c[2] + z[i,j];
	}
	c[0] = c[0] / 60; c[1] = c[1] / 60; c[2] = c[2] / 60;
	max = c[0]; nmax = 0;
	for (i = 0; i<3; i++)
	if (c>max) { max=c; nmax = i; }
	cout<< "" << nmax + 1;
	getch();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2013, 17:07     Ошибка в программе. Работа с двумерными массивами
Посмотрите здесь:

Работа с двумерными массивами C++
C++ Работа с двумерными массивами
C++ Работа с двумерными массивами
Работа с двумерными массивами C++
C++ работа с двумерными массивами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ryabchik
17 / 17 / 1
Регистрация: 09.01.2013
Сообщений: 158
15.12.2013, 17:17     Ошибка в программе. Работа с двумерными массивами #2
Цитата Сообщение от akik Посмотреть сообщение
c[0] = 0; c[1] = 0; c[2] = 0;
Проще так: float c [2] = {0};

Цитата Сообщение от akik Посмотреть сообщение
x[i,j]
Нельзя так обращаться к элементу массива. Правильно - x [i] [j]

Цитата Сообщение от akik Посмотреть сообщение
c[0] = c[0] + x[i,j];
Можно заменить на c [0] += x [i] [j];

Цитата Сообщение от akik Посмотреть сообщение
if (c>max)
if (c [i] > max)
Вы же все-таки к массиву обращаетесь
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.12.2013, 17:40  [ТС]     Ошибка в программе. Работа с двумерными массивами #3
Ryabchik, спасибо)
Исправила, но приложение по прежнему не запускается..

Код
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include<ctime>

int main(){
	system("CHCP 1251");
	float x[20][3], y[20][3], z[20][3], i, j, nmax;
	float c[2], max;
	float c[2] = { 0 };
	for (i = 0; i<20; i++)
	for (j = 0; j < 3; j++) {
		x[i][j] = rand() % 5 + 1;
		c[0] +=x[i][j];
		y[i][j] = rand() % 5 + 1;
		c[1] +=y[i][j];
		z[i][j] = rand() % 5 + 1;
		c[2] +=z[i][j];
	}
	c[0] = c[0] / 60; c[1] = c[1] / 60; c[2] = c[2] / 60;
	max = c[0]; nmax = 0;
	for (i = 0; i<3; i++)
	if (c[i]>max) { max = c[i]; nmax = i; }
	cout << "" << nmax + 1;
	getch();
}
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
15.12.2013, 18:01     Ошибка в программе. Работа с двумерными массивами #4
Для начала у вас i,j задайте в int.
с дважды задается, один раз нужно убрать.

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int main(){
    system("CHCP 1251");
    float x[20][3], y[20][3], z[20][3], nmax;
    float max;
    float c[2] = { 0 };
    int i=0,j=0;
    for (i = 0; i<20; i++)
    for (j = 0; j < 3; j++) {
        x[i][j] = rand() % 5 + 1;
        c[0] +=x[i][j];
        y[i][j] = rand() % 5 + 1;
        c[1] +=y[i][j];
        z[i][j] = rand() % 5 + 1;
        c[2] +=z[i][j];
    }
    c[0] = c[0] / 60; c[1] = c[1] / 60; c[2] = c[2] / 60;
    max = c[0]; nmax = 0;
    for (i = 0; i<3; i++)
    if (c[i]>max) { max = c[i]; nmax = i; }
    cout << "" << nmax + 1;
}
Вот так будет запускатся. "Логику" не проверял.
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.12.2013, 18:11  [ТС]     Ошибка в программе. Работа с двумерными массивами #5
Код
	int i, j;
	float x[20][3], y[20][3], z[20][3], nmax;
	float c[2], max;
	c[2] = { 0 };
Исправила.. Но, жалуется на cout, хотя <iostream> подключено. И на преобразование int в float.
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
15.12.2013, 18:15     Ошибка в программе. Работа с двумерными массивами #6
Я запускал у себя, скомпилировало без проблем.

Вы на Visual Studio "пишите"?
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.12.2013, 18:33  [ТС]     Ошибка в программе. Работа с двумерными массивами #7
Уже запустила)) Спасибо))

Добавлено через 1 минуту
Да, на Visual Studiо. А как вывести эти массивы на экран?
Ev_Hyper
 Аватар для Ev_Hyper
1805 / 1626 / 435
Регистрация: 15.12.2013
Сообщений: 5,774
15.12.2013, 19:15     Ошибка в программе. Работа с двумерными массивами #8
C++
1
2
3
4
5
6
    for (i = 0; i<20; i++){
    for (j = 0; j < 3; j++) {
        cout<<"X["<<i<<"]["<<j<<"]"<<x[i][j]<<" ";
    }
    cout<<endl;
    }
С остальными делайте то же самое.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2013, 19:39     Ошибка в программе. Работа с двумерными массивами
Еще ссылки по теме:

работа с двумерными массивами C++
Работа с двумерными массивами C++
C++ Работа с двумерными массивами

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
akik
0 / 0 / 0
Регистрация: 14.12.2013
Сообщений: 26
15.12.2013, 19:39  [ТС]     Ошибка в программе. Работа с двумерными массивами #9
Ev_Hyper, Благодарю))
Yandex
Объявления
15.12.2013, 19:39     Ошибка в программе. Работа с двумерными массивами
Ответ Создать тему
Опции темы

Текущее время: 04:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru