Отсортировать студентов по оценке по первому предмету. Вывести на экран фамилии и даты рождения студентов, не получивших за все время обучения ни одной оценки 5. N = 5. Программу нужно написать в visual studio по подобию кода ниже (который в visual не работает):
#include
#include
#include
#include
#include
#include
using namespace std;
/* Описание прототипов функций */
void printru(char* s);
int sozd_f(char* filename);
int dob_dan(char* filename);
void vivod_dan(char* filename);
void sort_dan(char* filename);
/* Описание структуры, которая представляет монастырь */
struct mon {
char name[15]; /* название */
char sc; /* школа */
int cnt; /* количество монахов */
float sq; /* площадь */
};
main() {
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int v;
char filename[] = "monastir.bin";
while (true){
cout<<"Выберите действие: \n";
cout<<"1: создать файл \n";
cout<<"2: добавить данные \n";
cout<<"3: вывести данные на экран \n";
cout<<"4: отсортировать по названиям монастырей \n";
cout<<"5: выйти \n";
cin>>v;
switch (v){
case 1: sozd_f(filename); break;
case 2: dob_dan(filename);break;
case 3: vivod_dan(filename); break;
case 4: sort_dan(filename);
vivod_dan(filename); break;
case 5: return 0;
default: cout<<"нeт такого пункта меню\n";
};
}
return 0;
}
//функция создания файла
int sozd_f(char* filename){
FILE *m_file;
m_file = fopen(filename, "w+");
if ( m_file==0 ) {
cout<<"Создать файл не удалось!\n";
return (1);
}
fclose(m_file);
}
//функция добавления данных
int dob_dan(char* filename) {
FILE *m_file;
char y_n;
struct mon x;
int tt;
m_file = fopen(filename, "ab");
if ( m_file==0 ) {
cout<<"Открыть файл не удалось!\n";
return(1);
}
do {
tt=0;
// Ввод данных
cout<<"Введите: название, школу, количество , площадь монастыря\n";
cin>> x.name;
cin>> x.sc;
cin>> x.cnt;
cin>> x.sq;
fwrite((char *) &x, sizeof(mon),1,m_file);
cout<<"Продолжить(y/n)?\n";
cin>>y_n;
if (y_n=='y'||y_n=='Y') tt=1;
} while(tt==1);
fclose(m_file);
}
//функция вывода данных на экран
void vivod_dan(char* filename){
FILE *m_file;
m_file = fopen(filename, "r");
cout<<"\n";
cout<<"| монастыри |\n";
cout<<"||\n";
cout<<"| название | школа | Количество | Площадь |\n";
cout<<"| | | монахов | земель |\n";
cout<<"|||||\n";
fseek(m_file, 0, SEEK_END);
int n = ftell(m_file) / sizeof(mon);
mon *mm = new mon[n];
fseek(m_file, 0, SEEK_SET);
// Функция fread позволяет считать весь файл за одно обращение
fread(mm, sizeof(mon), n, m_file);
fclose(m_file);
for(int i=0;i 0) m=j;
if (m>i) {
strcpy(x.name,mm[i].name);
x=mm[i];
mm[i]=mm[m];
mm[m]=x;
}
}
fopen(filename, "w");
fwrite(mm, sizeof(mon), n, m_file);
fclose(m_file);
}
Задача на c++, с структур
A)
b = int(input("Введите значение B: "))
for i in range(10, b + 1):
print(i ** 2);
Б)
a = int(input("Введите значение A: "))
for i in range(a, 51):
print(i ** 3);
Объяснение:
А)
b = int(input("Введите значение B: ")) // Вводим значение b с клавиатуры
for i in range(10, b + 1): // Идём от 10 до b (b + 1, т. к. последний элемент не затрагивается)
print(i ** 2); // Выводим квадрат числа
Б)
a = int(input("Введите значение A: ")) // Вводим значение а с клавиатуры
for i in range(a, 51): // Идём от a до 50 (51, т. к. последний элемент не затрагивается)
print(i ** 3); // Выводим куб числа
84
Пошаговое объяснение:
крайние тролли обнимутся всего один раз, развернутся и уйдут на свой конец улицы, больше никого не встретив.
вторые с краю тролли обнимутся первый раз, развернутся, встретят крайнего тролля, обнимутся с ним, развернутся, опять встретятся-обнимутся, и, развернувшись уйдут на конец улицы больше никого не встретив (крайний тролль то уже ушел...) итого 3 обнимания.
Продолжая эту цепочку получаем
1 3 5 7 9 11 12 11 9 7 5 3 1
отличается только первый тролль из семерки, поскольку он в результате уйдет не на свой конец улицы, а на противоположный...