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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Melany
21 / 4 / 0
Регистрация: 05.07.2015
Сообщений: 125
#1

Одномерные Массивы, Заполнение массива с параллельной идентификацией - C++

08.07.2015, 11:31. Просмотров 275. Ответов 7
Метки нет (Все метки)

Здравствуйте, у меня такая задача,
Студент сдал 7 экзаменов по программированию,Написать программу которая определяет какой предмет студент сдал хуже всех. Оценки в массив преподаватель вносит самостоятельно по сто бальной системе оценивая,
Пример исполнения задачи:
Введите оценки по каждого предмету:
С: 87
С++: 52
С#: 44
HTML: 94
Java Script: 67
XML: 56
WPF: 59
--------------------------------------------------------------------------
Введенные оценки: 87 52 44 94 67 56 59
Минимальный бал студент получил по предмету C# -- 44

У меня с данной задачей возникла проблема как организовать цикл так, чтоб не вводить вручную все предметы, а чтоб оно автоматически делалось, какой тип данных для этого нужно использовать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
using namespace std;
void main()
{setlocale(LC_ALL,"Rus");
const int size=10;
int Mark[size]={0};
int cursize=7;
int i=0;
int min;
cout<<"Введите оценки по каждому предмету:\n";
cout<<"С:\t";
cin>>Mark[i];
cout<<"С++:\t";
cin>>Mark[i+1];
cout<<"С#:\t";
cin>>Mark[i+2];
cout<<"HTML:\t";
cin>>Mark[i+3];
cout<<"Java Script: \t";
cin>>Mark[i+4];
cout<<"XML: \t";
cin>>Mark[i+5];
cout<<"WPF: \t";
cin>>Mark[i+6];
cout<<"_________________________________________________________________\n\n";
cout<<"Введенные оценки: ";
for(; i<cursize; i++)
    cout<<Mark[i]<<"\t";
for(; i<cursize; i++)
    {
    min=Mark[i];
    if(min>Mark[i])
        min=Mark[i];
    }
cout<<"Минимальный бал студент получил по предмету "<<min;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.07.2015, 11:31     Одномерные Массивы, Заполнение массива с параллельной идентификацией
Посмотрите здесь:

Одномерные массивы: Удалить из массива нули и после каждого числа, оканчивающегося на 5, вставить 1 C++
C++ Одномерные массивы: Найти среднее арифметическое всех элементов массива
C++ Найти наименьший элемент массива X среди тех, которые не являются элементами массива Y(X,Y-одномерные массивы)
C++ Массивы(задание) Заполнение массива по правилу.
C++ Одномерные массивы. Образуйте массив из элементов массива А(М), каждый из которых больше любого элемента массива B (N)
C++ Одномерные массивы.Сформировать случайным образом два массива d(10) и a(10)
Одномерные массивы (циклический сдвиг всех элементов массива на одну позицию влево) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
08.07.2015, 12:00     Одномерные Массивы, Заполнение массива с параллельной идентификацией #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Можно числа генерировать случайно на заданном диапазоне. А имена предметов забить в отдельный массив.

К примеру так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string>
#include <ctime> // не забудьте подключить
 
const int nmax(7);
string subj[] = {"C","C++","C#","HTML","JavaScript","XML","WPF"};
int Mark[nmax];// массив оценок
 
//ввод
srand( time( 0 ) );
for ( int i = 0 ; i < nmax ; i++ ) 
  Mark[i] = rand() % 100 + 1 ;
 
// поиск минимума ...
// вывод
for (int i=0; i < nmax ;i++ )
cout<<"Subject: "<<subj[i]<<"\tMark = "<<Mark[i]<<endl;
 
 system("PAUSE");
Melany
21 / 4 / 0
Регистрация: 05.07.2015
Сообщений: 125
08.07.2015, 13:00  [ТС]     Одномерные Массивы, Заполнение массива с параллельной идентификацией #3
Спасибо, а что это за библиотеки string и ctime?

Добавлено через 48 минут
Я сделала немного по своему, но почему-то оно сейчас cout не воспринимает,помогите найти ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include<iostream>
#include <string>
using namespace std;
void main()
{
setlocale(LC_ALL,"Ukr");
const int size=10;
int Mark[size]={0};
string Subj[]={"C","C++","C#","HTML","JavaScript","XML","WPF"};
int cursize=7;
int index=0;
int min=0;
cout<<"Введите оценки :\n";
for(int i=0; i<cursize; i++)
{
cout<<Subj[i]<<"\t";
cin>>Mark[i];
}
cout<<"_________________________________________________________________\n\n";
cout<<"Введите оценки: ";
for(int i=0; i<cursize; i++)
{
cout<<Mark[i]<<"\t";
}
    min=Mark[0];
    for(int j=0; j<cursize; j++)
    {
        if(min>Mark[j])
            {
            min=Mark[j];}
            index=j;
            }
     }
cout<<"\nМинимальный бал студент получил по предмету "<<Subj[i]<<"\t--"<<min;
system("PAUSE>>void");
}
Doddger
10 / 13 / 3
Регистрация: 24.09.2014
Сообщений: 80
08.07.2015, 13:09     Одномерные Массивы, Заполнение массива с параллельной идентификацией #4
У вас i инициализируется в теле for : for(int i=0; i<cursize; i++), поэтому находится вне области видимости для cout.
Попробуйте так:
C++
1
2
int i;
for(i=0; i<cursize; i++)
Leshak
259 / 235 / 40
Регистрация: 10.12.2011
Сообщений: 513
08.07.2015, 13:36     Одномерные Массивы, Заполнение массива с параллельной идентификацией #5
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Оу, звиняюсь. Код оставлю. Вдруг чего

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
setlocale(LC_ALL,"RUSSIAN");
const int size=7;
string Subj[]={"C","C++","C#","HTML","JavaScript","XML","WPF"};
int Mark[size];
 
cout<<"Введите оценки :\n";
for(int i=0; i<size; i++)
{
   cout<<Subj[i]<<"\t"; 
   cin>>Mark[i];
}
cout<<"_________________________________________________________________\n\n";
cout<<"Оценки: ";
for(int i=0; i<size; i++)
   cout<<Mark[i]<<"\t";
 
 
int min=Mark[0];
int index = 0;
for(int i=0; i<size; i++)
 if(Mark[i] < min){
  min=Mark[i];
  index = i;
 }
 
 
cout<<"\nМинимальный бал студент получил по предмету "<<Subj[index]<<"\t--"<<min<<endl;
system("PAUSE");
}
Melany
21 / 4 / 0
Регистрация: 05.07.2015
Сообщений: 125
08.07.2015, 13:51  [ТС]     Одномерные Массивы, Заполнение массива с параллельной идентификацией #6
Спасибо
Krock21rus
74 / 74 / 19
Регистрация: 18.11.2013
Сообщений: 371
Завершенные тесты: 2
08.07.2015, 14:13     Одномерные Массивы, Заполнение массива с параллельной идентификацией #7
а я тут прост так прокомментирую эти строчки:
C++
1
srand( time( 0 ) );
указывает "основу" для составления "случайных" чисел, чтобы при новом запуске была новая основа и новые случайные числа
C++
1
Mark[i] = rand() % 100 + 1 ;
rand() возвращает случайное число от 0 до 35000(приблизительно), от этого берётся остаток при делении на 100(от 0 до 99) и прибавляется 1 (от 1 до 100)

уверен Melany не знала этого, а нужно знать то что ты пишешь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.07.2015, 14:24     Одномерные Массивы, Заполнение массива с параллельной идентификацией
Еще ссылки по теме:

Одномерные массивы. Найти, сколько элементов массива A={a[i]} удовлетворяют условию с <= a[i] <= d C++
Записать все положительные и отрицательные элементы двумерного массива в одномерные массивы C++
C++ Одномерные массивы. Изменение исходного массива
Одномерные массивы: задачи сортировок элементов массива C++
C++ Массивы: Заполнение массива данными из цикла

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

Или воспользуйтесь поиском по форуму:
Melany
21 / 4 / 0
Регистрация: 05.07.2015
Сообщений: 125
08.07.2015, 14:24  [ТС]     Одномерные Массивы, Заполнение массива с параллельной идентификацией #8
Krock21rus
Я и правда не знала всего этого, только учусь,,,
Спасибо большое за разьяснение!!!
Yandex
Объявления
08.07.2015, 14:24     Одномерные Массивы, Заполнение массива с параллельной идентификацией
Ответ Создать тему
Опции темы

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