Объяснение:
#include "stdafx.h"
#include <conio.h>
#include <iostream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
using namespace std;
struct Train { // указатель на узел, динамическую структуру Train
int number; //ввод поля номер для поезда
char path[10];// ввод поля пункт назначения поезда
int hour;// ввод поля время отправления поезда (часы)
int min; //ввод поля время отправления поезда (минуты стандартных имён
int main() {
const int N = 5;
setlocale(LC_ALL, "Russian");// подключение русского языка
Train trains[5];// указание количества поездов в структуре
for (int i = 0; i < N; i++) { // начало цикла для введения данных о 5 поездах
cout << "Введите пункт назначения поезда " << i + 1 << endl; // Вывод на экран сообщения о необходимости ввести имя
cin >> trains[ i ].path ; //ввод имени пользователем
cout << "Введите номер для поезда " << i + 1 << endl;
cin >> trains[ i ].number;
cout << "Введите время отправления для поезда (часы) " << i + 1 << endl;
cin >> trains[ i ].hour ;
cout << "Введите время отправления для поезда (минуты) " << i + 1 << endl;
cin >> trains[ i ].min ;
}
for(int i = 0; i < N; i++)
{
for(int j = i + 1; j < N; j++)
{
if(strcmp(trains[i].path, trains[j].path)>0)
{
Train tmp = trains[i];
trains[i] = trains[j];
trains[j] = tmp;
}
}
}
for (int i = 0; i < N; ++i)
{
cout << " Пункт назначения: " << trains[ i ].path << " номер: " << trains[ i ].number << " Время отправления: " << trains[ i ].hour << ":" << trains[ i ].min << endl << endl;
}
int time_h;
int time_min;
int k = 0;
cout << "Введите ваше время (часы затем минуты)" << endl;
cin >> time_h >> time_min;
cout << " Ваше время:" << time_h <<":" << time_min << endl << endl;
for(int i = 0; i < N; i++)
{
if((time_h < trains[i].hour) || (time_h == trains[i].hour && time_min < trains[i].min))
{
cout << " следующие поезда отправятся после вашего времени: " << trains[i].number <<" с временем "<< trains[i].hour << ":"<< trains[i].min << endl;
k++;
}
}
if(k == 0)
cout << " Нет подходящих поездов" << endl;
_getch();
return 0;
}
В данном фрагменте программы идёт
1) if (a[i] mod 2 <> 0) - условие: "если элемент массива нечетный, т.е. при делении на 2 есть остаток, то"
2) p:=p*a[i]; - операция умножения элементов массива. Произведение обозначено p.
3) k:=k+1; - это суммирование, сколько раз выполняется команда
Верно: for i:=7 to 25 do begin
if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;
Объяснение: все ошибки выделены жирным шрифтом.
for i:=7 to 25 do;
read (a[i])
if (a[i] mod 2 <> 0) then begin p:=p*a[i]; k:=k+1; end;
Если в программе поставить знак ; сразу после за действия do (сразу после открытие цикла), она не начнёт выполнение условия. Лишним также является read (a[i]), т.к. программе вновь не задаётся цикл, либо её чтение было уже задано до данного цикла с условием.
Если интересна программа полностью, то вот код ниже, а также скриншот с результатами. Заполнение массива задано автоматически числами от 1 до 100. Размерность массива - 25 чисел. При произведении мы всегда задаём значение переменной 1, иначе программа не начнёт операцию, при сложении присваивать значение только 0, но это необязательно.
Program zadacha;
var
a: array [1..25] of integer;
i,p,k: integer;
begin
for i:=1 to 25 do
a[i]:= Random(100); // числа от 1 до 100 будут присутствовать в массиве
writeln('Заполненный массив:'); for i := 1 to 25 do write(a[i],' ');
p:=1; k:=0;
for i:=7 to 25 do begin
if (a[i] mod 2 <> 0) then begin p := p*a[i]; k:=k+1; end; end;;
writeln;
writeln('Произведение нечетных элементов:', p);
writeln('Сколько раз выполнилось условие:', k);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Python. некоторое число n удваивается каждую секунду, выведите весь процесс удвоения в течении t секунд, с учетом первоначального значения.
n = int(input('введите число: '))
t = int(input('введите время: '))
print('прошло 0 сек.',n)
for i in range(1, t+1):
n = n*2
print('прошло',i,'сек.',n)