Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 18.05.2015
Сообщений: 82
1

Получить массив С, содержащий время пребывания каждого покупателя в очереди

16.11.2017, 11:34. Показов 592. Ответов 3
Метки нет (Все метки)

Добрый день. Помогите найти и исправить ошибку:
У прилавка выстроилась очередь из N покупателей. Время обслуживания продавцом каждого покупателя в минутах занесено в вещественный массив T. Получить массив С, содержащий время пребывания каждого покупателя в очереди. Указать номер покупателя, для обслуживания которого продавцу потребовалось самое малое время.



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 <stdio.h>
#include <conio.h>
#include <locale.h>
 
const int n = 5;
int main ()
{
    setlocale (0, "");
 
    float T[n], C[n];
    int mint = 0;
    C[0] = 0.0;
 
    puts ("Введите последовательность:");
    for (int i = 0; i < n; i++)
    { 
                scanf_s ("T[%f]", &T[i]);
 
        if (T[i] < T[mint])
            mint = i + 1;
        if ( i > 0)
            C[i] = C[i - 1] + T[i - 1];
    }
 
    puts ("Время ожидания клиента в очереди:"); 
 
    for (int i = 0; i < n; i++)
        printf ("C[%i]: %1.f\n", i, C[i]);
 
    printf ("Клиент с наименьшим временем ожидания: %i", mint);
 
    _getch();
    
    return 0;
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2017, 11:34
Ответы с готовыми решениями:

Определить время Ci пребывания i-го покупателя в очереди
#include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;time.h&gt; int _tmain(int...

Определить время Сi пребывания i-го покупателя в очереди.
У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-го покупателя равно...

Определить время пребывания покупателя в очереди
Задача на одномерный массив С++ У прилавка магазина выстроилась очередь из n покупателей. Время...

Определить время Ci пребывания i-го покупателя в очереди
У прилавка магазина выстроилась очередь из n покупателей.Время обслуживания первого покупателя...

3
3426 / 1973 / 375
Регистрация: 09.09.2017
Сообщений: 8,065
16.11.2017, 12:10 2
Цитата Сообщение от ronital Посмотреть сообщение
scanf_s ("T[%f]", &T[i]);
Насколько я знаю, так это не работает. Надо так:
C
1
2
printf("%i th time = ", i); //вывод запроса на ввод
scanf("%f", &T[i]); //никаких лишних символов, только формат ввода. И, разумеется, scanf вместо нестандартного scanf_s
Цитата Сообщение от ronital Посмотреть сообщение
if (T[i] < T[mint]) mint = i + 1;
Присваивать стоит все-таки i а не i+1. Увеличивать на 1 лучше при выводе, а пока пусть остается элементом массива.
Цитата Сообщение от ronital Посмотреть сообщение
#include <conio.h>
_getch();
Забудьте про существование этих атавизмов. Если так уж хочется добавить ожидание эникея, ставьте system("pause");
Цитата Сообщение от ronital Посмотреть сообщение
Добрый день. Помогите найти и исправить ошибку:
Главное вы указали: задачу и код. Но вот как проявляется ошибка - нет. Какие должны быть входные и выходные данные?
0
0 / 0 / 2
Регистрация: 18.05.2015
Сообщений: 82
16.11.2017, 20:26  [ТС] 3
Цитата Сообщение от COKPOWEHEU Посмотреть сообщение
Главное вы указали: задачу и код. Но вот как проявляется ошибка - нет. Какие должны быть входные и выходные данные?
Ошибки нету, вроде даже работает, но результат явно не верный.

результат исполнения прикрепил ниже.

Вот я и не могу понять, чего я не так сделал...
Миниатюры
Получить массив С, содержащий время пребывания каждого покупателя в очереди  
0
3426 / 1973 / 375
Регистрация: 09.09.2017
Сообщений: 8,065
16.11.2017, 20:58 4
12345 это одно float число а не 5. Странно что не было запроса на остальные числа. Может, "особенности" scanf_s, не знаю.
В общем, исправил указанные мной ошибки (заодно отформатировал как мне удобнее):
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#define _CRT_SECURE_NO_WARNINGS //костыль чтобы всякие недо-компиляторы не ругались
#include <stdio.h>
 
const int n = 5;
int main(int argc, char**argv){
  float T[n], C[n];
  int mint = 0;
  C[0] = 0.0;
  puts ("Введите последовательность:");
  for (int i = 0; i < n; i++){ 
    scanf ("%f", &T[i]);
    if(T[i] < T[mint])mint = i;
    if( i > 0 )C[i] = C[i - 1] + T[i - 1];
  }
  puts ("Время ожидания клиента в очереди:"); 
  for (int i = 0; i < n; i++)printf ("C[%i]: %1.f\n", i, C[i]);
  printf ("Клиент с наименьшим временем ожидания: %i\n", mint+1);
  return 0;
}
Проверяем:
$ gcc main.c -Wall
$ ./a.out
Введите последовательность:
5 4 3 2 1
Время ожидания клиента в очереди:
C[0]: 0
C[1]: 5
C[2]: 9
C[3]: 12
C[4]: 14
Клиент с наименьшим временем ожидания: 5
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2017, 20:58

Определить время Сi пребывания i-го покупателя в очереди
Здравствуйте,всем доброго вечера! Вот, поискал на форуме популярную задачку про: У прилавка...

Определить время Ci пребывания i-го покупателя в очереди
У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя...

Определить время пребывания i-го покупателя в очереди
2 У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-того покупателя...

Массивы: определить время пребывания i-го покупателя в очереди
У прилавка магазина выстроилась очередь из n покупателей. Время обслуживания i-го покупателя равно...

Определить время пребывания в очереди каждого клиента
Люди помогите с задачкой, я пишу на паскале а язык С++ я попросту не знаю...))) В долгу не...

Определить время пребывания в очереди каждого клиента
Помогите пожалуйста решите в Матлабе (желательно 6,т.к. в универе старая версия установлена).Совсем...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru