М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
igoreha3
igoreha3
01.06.2020 23:59 •  Информатика

Есть код на языке си для поиска минимального элемента в массиве в структуре. Надо вывести также год, соответствующий данному элементу массива, то есть под тем же индексом. Вопрос: Как это сделать? int min = p.ugol[0];
for (int k = 0; k < f; k++) {
if (p.ugol[k] < min) {
min = p.ugol[k];
}
}
printf("Наименьшее количество угля: %d ", min);

f - количество строк (элементов массива)

👇
Ответ:

Использывать год в качествет индекса являеться не опитмальной экономией памяти.

Лучшим будет использывать двумернный массив, [1][n], первая ячейка массива будет хранить год, вторая все элементы для этого года

4,7(97 оценок)
Ответ:
xrxrxrxrxr
xrxrxrxrxr
01.06.2020

Можно не создавать переменную min, а вместо нее использовать minIndex, в которую будет сохраняться индекс минимального элемента.

int minIndex = 0;

for (int k = 0; k < f; k++) {

if (p.ugol[k] < p.ugol[minIndex]) {

minIndex = k;

}

}

printf("Наименьшее количество угля: %d ", p.ugol[minIndex]);

printf("Год: %d ", p.g[minIndex]);

4,7(90 оценок)
Открыть все ответы
Ответ:
mazyrovavlada
mazyrovavlada
01.06.2020
Uses crt;
type mas=array[1..1000] of integer;
var a:mas;   
n,i:integer;
procedure gnomesort(var arr:mas; size : Integer);
var i, j, t  : Integer;
begin
i := 2;
j := 3;
while i <= size do 
begin 
if arr[i-1] <= arr[i] then   
begin   
i := j;   
j := j + 1   
end 
else   
begin   
t := arr[i-1];   
arr[i-1] := arr[i];   
arr[i] := t;   
i := i - 1; 
if i = 1 then   
begin   
i := j;   
j := j + 1   
end 
end 
end;
end; 
begin 
write('Размер массива n='); 
read(n); 
writeln('Исходный массив:'); 
for i:=1 to n do 
read(a[i]); 
writeln; 
gnomesort(a,n); 
writeln('Результат сортировки:'); 
for i:=1 to n do 
write(a[i],' ');
end.
4,6(55 оценок)
Ответ:
Ну если сортировка на паскале, то держи
uses crt;
type mas=array[1..1000] of integer;
var a:mas;
    n,i:integer;
procedure gnomesort(var arr:mas; size : Integer);
var i, j, t  : Integer;
begin
i := 2;
j := 3;
while i <= size do
 begin
  if arr[i-1] <= arr[i] then
   begin
    i := j;
    j := j + 1
   end
  else
   begin
    t := arr[i-1];
    arr[i-1] := arr[i];
    arr[i] := t;
    i := i - 1;
  if i = 1 then
   begin
    i := j;
    j := j + 1
   end
  end
 end;
end; begin
 write('Размер массива n=');
 read(n);
 writeln('Исходный массив:');
 for i:=1 to n do
 read(a[i]);
 writeln;
 gnomesort(a,n);
 writeln('Результат сортировки:');
 for i:=1 to n do
 write(a[i],' ');
end.
4,7(19 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ