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

Найти сумму самого дорогого заказа

15.11.2013, 01:54. Просмотров 492. Ответов 2
Метки нет (Все метки)

Дано условие.
Дан массив из 20 элементов: каждый нечетный содержит цену товаров, а каждый четный - количество заказов на этот товар:
а) найти сумму самого дорогого заказа (цена * количество)
б) найти среднюю цену среди товаров, у которых больше 2 заказов
в) отсортировать массив по возрастанию цен, сохраняя структуру "цена - количество"
г) Вывести количество заказчиков для каждого товара в заданном ценовом диапазоне, отсортированное по возрастанию


Пока сделал задание а), компилирует, но неправильно считает.
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
37
38
39
40
41
42
43
44
45
46
47
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define N 20
 
int main()
{int a[N], i, price, order, max, s, n ;
 
  puts(" vvedite massiv 0<x<=20");
  scanf ("%d", &n);
  if(n<=20)
{
  s=0;
  puts(" vvedite elementi massiva");
  for(i=0;i<n;i++)
   { scanf("%d", &a[i] );//zadaem massiv
     if(i%2==0) //razdelenie elementov na chetnie(zakazi) i nechetnie(cena)
     order=a[i];
     else
     price=a[i];
     s+=order*price; //summa
   }
//obrabotka massiva
  puts("massiv:");
  for(i=0;i<n;i++)
  {  printf("\n zakazi %d",order);
     printf (" cena %d ", price); //vivod massiva
     printf("\n");
  }
 
  max=a[0];
  for(i=0;i<n;i++)
  { if(s>max)
    max = s;   //summa samogo dorogogo zakaza
  }
   printf("\n summa samogo dorogogo zakaza= %d",max);
 
 
 
 
 
}
else
printf("\n chislo ne podhodit ");
 
return 0;
}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2013, 01:54
Ответы с готовыми решениями:

Указать марку самого дорогого и самого дешёвого автомобиля
Здравия желаю, товарищи программисты! Я хотел бы попросить у вас помощи в задаче с массивами и был...

Типизированные файлы.Найти цену самого дорогого конструктора , оформленную по образцу ... руб ... коп
Найти цену самого дорогого конструктора , оформленную по образцу ... руб ... коп мучаюсь уже...

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

Определить порядковый номер самого дорогого вида конфет
Написать программу. В массиве хранится информация о стоимости 1 килограмма n видов конфет....

Определить порядковый номер самого дорогого вида конфет
Здравствуйте, помогите пожалуйста решить задачку в си шарпе. В массиве хранится информация о...

2
Dizark
25 / 25 / 16
Регистрация: 12.04.2013
Сообщений: 73
15.11.2013, 03:40 2
Ну так а ты каждый раз при вводе массива заново переопределяешь переменные order, price, s, которые массивами не являются.
а потом еще в цикле выводишь их.
Вот у тебя и выводятся последние введенные элементы массива.

Для решения задания а) - вот примерно такой нужен код:
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
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#define N 20
 
int main()
{
    int a[N], i, max = 0, nmax, n;
    puts("Enter number of records 0<x<=10: ");
    scanf ("%d", &n);
 
    if (n > N/2)
    {
        fprintf (stderr, "Number of records so big.\n");
        exit (1);
    }
 
    for(i=0;i<n;i++)
    {
        printf ("Enter trade good price: ");
        scanf("%d", &a[2*i]);           // Элемент массива первый, т.е. нечетный. Но индекс имеет 0 - четный :)
        printf ("Enter trade good demand: ");
        scanf("%d", &a[2*i+1]);
    }
 
    // Получили массив из чередующихся элементов - цена, спрос
    // Теперь обработаем-с
 
    for (i = 0; i < n; i++)
    {
        printf ("\nTrade good No %d\n", i+1);
        printf ("Price: %d\tDemand: %d\n", a[2*i], a[2*i+1]);
        
        // Поиск самого дорогого товара (цена * кол-во)
        if ((a[2*i] * a[2*i+1]) > max)
        {
            max = a[2*i] * a[2*i+1];
            nmax = i;
        }
 
    }
 
    printf ("\nMax profit from trade good No %d: %d\n", nmax + 1, max);
 
    return 0;
}
1
samsandr
0 / 0 / 1
Регистрация: 23.10.2012
Сообщений: 29
20.11.2013, 22:09  [ТС] 3
Dizark, Подскажите, не могу разобраться с заданием в) и в принципе с аналогичным ему заданием г) .
Вот написал код, задание в) отметил в коде.
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#include <stdio.h>
#include <stdlib.h>
#define N 20
 
int main()
{
    int a[N], i, max = 0, nmax, n,  k=1, b;
    float sred, sum=0;
    puts("vvedite kolichestvo elementov massiva 0<n<=20: ");
    scanf ("%d", &n);
 
    if (n > N)
    {
        printf ("Slischom bolshoe kolichestvo elementov\n");
        exit (1); //так как значение велико мы выходим из программы, можно использовать return -1
    }
    for(i=0;i<n;i++)
    {
        printf ("Vvedite cenu zakaza: ");
        scanf("%d", &a[2*i]);           // Элемент массива первый(0), т.е. нечетный.
        printf ("Kolichestvo zakazov: ");
        scanf("%d", &a[2*i+1]);
    }
    // Получили массив из чередующихся элементов - цена, количество заказов
    // Теперь обработка и вывод массива
 
    for (i = 0; i < n; i++)
    {
        printf("|-----------------------------|");
        printf ("\n| Nomer zakaza %d              |\n", i+1);
        printf ("| Cena: %d\t: Kolichestvo%d|\n", a[2*i], a[2*i+1]);
 
        // Поиск самого дорогого товара (цена * кол-во)
        if ((a[2*i] * a[2*i+1]) > max)
        {
            max = a[2*i] * a[2*i+1];
            nmax = i;
        }
    }
        printf("|-----------------------------|");
    printf ("\n Summa samogo dorogogo zakaza %d: %d\n", nmax + 1, max); //Вывод на єкран самое дорогое значение и его номер
 
    for (i = 0; i < n; i++)
    {
        if (a[2*i+1] > 2)
        {
            sum+=a[2*i] ;//сумма для нахождения среднего
            k++ ;
        }
 
 
    }
    sred=sum/k;  //нахожу среднее значение.
    printf("\n Srednya cena sredi tovarov u kotorih bolsche 2 zakazov %4.4f", sred);
 
 
//   ЗАДАНИЕ В
    for(k=1; k!=0; k++)
    for (i=0; i<n-2; i=i+2)
    {
        if (a[2*i]>a[2*i+2])
        {
            b=a[2*i];
            a[2*i]=a[2*i+2];
            a[2*i+2]=b;
        }
 
    }
    printf("\nOtsortirovanniy massiv:\n");
    for (i=0; i<n-2; i=i+2)
    {
        printf("|-----------------------------|");
        printf ("\n| Nomer zakaza %d              |\n", i+1);
        printf ("| Cena: %d\t: Kolichestvo%d|\n", a[2*i], a[2*i+1]);
    }
        printf("|-----------------------------|");
 
 
 
    return 0;
}
0
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.11.2013, 22:09

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

Записи: определить стоимость самого дорогого конструктора; напечатать название наиболее дорогих игрушек
Ребят помогите.Надо решить задачу: Учитывая сведения об игрушках: указываются названия игрушки, ее...

Вывести стоимость самого дорогого автомобиля, проданного компанией "Рено"
напишите программу которая выведить стоимость самого дорогого ввто , проданного компанией Рено ,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.