这是我的代码。它是用乌克兰语写的,但基本上,任务是:
通过结构确定最年轻和最年长的员工
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
struct worker
{
char surname[22], posada[15], osvita[25];
int birthday, salary;
};
int kol; cout << "Введите кол-во робітників: "; cin >> kol;
cout << "Введите поочередно строки с ведомостью:\nПрiзвище Посада Освіта Рік народження Зарплатня" << endl;
worker* z = new worker[kol];
for (int i = 0; i < kol; i++) {
scanf("%s %s %s %i %i", z[i].surname, z[i].posada, z[i].osvita, &z[i].birthday, &z[i].salary);
}
setlocale(LC_ALL, "Russian");
cout << "Прiзвище Посада Освіта Рік народження Зарплатня" << endl;
for (int i = 0; i < kol; i++) {
cout << z[i].surname << "\t" << z[i].posada << "\t" << z[i].osvita << "\t" << z[i].birthday << "\t" << z[i].salary << endl;
}
cout << "Найстарший і наймолодний робітники:\nПрiзвище Посада Освіта Рік народження Зарплатня" << endl;
int min, max;
int max_index = 0, min_index = 0;
min = z[0].birthday;
max = z[0].birthday;
for (int i = 0; i < kol; i++) {
if (max < z[i].birthday) {max_index = i;}
if (min > z[i].birthday) {min_index = i;}
printf("% s % s % s % i % i\n", z[i].surname, z[i].posada, z[i].osvita, z[i].birthday, z[i].salary);
}
setlocale(LC_ALL, "Russian");
cout << "Наймолодний робітник: " << z[min_index].surname<< endl;
cout << "Найстарший робітник: " << z[max_index].surname << endl;
setlocale(LC_ALL, ".OCP");
delete[]z;
return 0;
下面是输出:
1条答案
按热度按时间carvr3hs1#
scanf()
返回它成功扫描并写入调用者提供的变量的值的数量。在这段代码中,你要求它扫描5个值,但是你没有在使用这些变量之前验证这5个值是否真的成功输出。这就是编译器警告你的。例如: