#include<iostream>
#include<windows.h>
using namespace std;
struct Sponsor
{
char name[32];
char surname[32];
double sum;
};
Sponsor* AddStruct(Sponsor* Obj, const int amount);
void setData(Sponsor* Obj, const int amount);
void showData(const Sponsor* Obj, const int amount);
int main()
setlocale(LC_ALL, "rus");
Sponsor* OurSponsors = 0;
int sponsorAmount = 0;
int YesOrNot = 0; // продолжить или остановить ввод данных
do
OurSponsors = AddStruct(OurSponsors, sponsorAmount);
setData(OurSponsors, sponsorAmount);
sponsorAmount++;
cout << "Продолжить ввод данных (1 - да, 0 - нет): ";
cin >> YesOrNot;
cin.get();
} while (YesOrNot != 0);
showData(OurSponsors, sponsorAmount);
delete[] OurSponsors;
return 0;
}
Sponsor* AddStruct(Sponsor* Obj, const int amount)
if (amount == 0)
Obj = new Sponsor[amount + 1]; // выделение памяти для первой структуры
else
Sponsor* tempObj = new Sponsor[amount + 1];
for (int i = 0; i < amount; i++)
tempObj[i] = Obj[i]; // копируем во временный объект
delete [] Obj;
Obj = tempObj;
return Obj;
//
void setData(Sponsor* Obj, const int amount)
cout << "Фамилия: ";
cin.getline(Obj[amount].surname, 32);
cout << "Имя: ";
cin.getline(Obj[amount].name, 32);
cout << "Сумма пожертвования: ";
cin >> Obj[amount].sum;
cout << endl;
void showData(const Sponsor* Obj, const int amount)
system("cls");
cout << "№ " << "Фамилия\t" << "Имя\t" << "Сумма\t" << endl;
cout << "" << endl;
cout << i + 1 << " " << Obj[i].surname << '\t' << Obj[i].name << '\t' << Obj[i].sum << endl;
Объяснение:
Так как изначально в задании указано : "на любом известном вам языке программирования" - вот, держи на С.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define N 100
setlocale(LC_ALL, "Rus");
int i, M;
float B[N], MIN;
printf(" Введите количество элементов массива (не больше 100) => ");
scanf("%d", &M);
if (M < 100)
for (i = 0; i < M; i++)
printf("Введите [%d] элемент массива =>", i);
scanf("%f", &B[i]);
printf("%1.0f ", B[i]);
MIN=B[0];
for (int i=1; i<M; i++)
if (B[i]<MIN)
MIN=B[i];
printf ("\n\tМинимальное значение в массиве => %7.2f", MIN);
printf("Ошибка. Заданное число элементов массива слишком большое.");
#include<iostream>
#include<windows.h>
using namespace std;
struct Sponsor
{
char name[32];
char surname[32];
double sum;
};
Sponsor* AddStruct(Sponsor* Obj, const int amount);
void setData(Sponsor* Obj, const int amount);
void showData(const Sponsor* Obj, const int amount);
int main()
{
setlocale(LC_ALL, "rus");
Sponsor* OurSponsors = 0;
int sponsorAmount = 0;
int YesOrNot = 0; // продолжить или остановить ввод данных
do
{
OurSponsors = AddStruct(OurSponsors, sponsorAmount);
setData(OurSponsors, sponsorAmount);
sponsorAmount++;
cout << "Продолжить ввод данных (1 - да, 0 - нет): ";
cin >> YesOrNot;
cin.get();
} while (YesOrNot != 0);
showData(OurSponsors, sponsorAmount);
delete[] OurSponsors;
return 0;
}
Sponsor* AddStruct(Sponsor* Obj, const int amount)
{
if (amount == 0)
{
Obj = new Sponsor[amount + 1]; // выделение памяти для первой структуры
}
else
{
Sponsor* tempObj = new Sponsor[amount + 1];
for (int i = 0; i < amount; i++)
{
tempObj[i] = Obj[i]; // копируем во временный объект
}
delete [] Obj;
Obj = tempObj;
}
return Obj;
}
//
void setData(Sponsor* Obj, const int amount)
{
cout << "Фамилия: ";
cin.getline(Obj[amount].surname, 32);
cout << "Имя: ";
cin.getline(Obj[amount].name, 32);
cout << "Сумма пожертвования: ";
cin >> Obj[amount].sum;
cin.get();
cout << endl;
}
//
void showData(const Sponsor* Obj, const int amount)
{
system("cls");
cout << "№ " << "Фамилия\t" << "Имя\t" << "Сумма\t" << endl;
cout << "" << endl;
for (int i = 0; i < amount; i++)
{
cout << i + 1 << " " << Obj[i].surname << '\t' << Obj[i].name << '\t' << Obj[i].sum << endl;
}
}
Объяснение:
Так как изначально в задании указано : "на любом известном вам языке программирования" - вот, держи на С.
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define N 100
int main()
{
setlocale(LC_ALL, "Rus");
int i, M;
float B[N], MIN;
printf(" Введите количество элементов массива (не больше 100) => ");
scanf("%d", &M);
if (M < 100)
{
for (i = 0; i < M; i++)
{
printf("Введите [%d] элемент массива =>", i);
scanf("%f", &B[i]);
}
for (i = 0; i < M; i++)
printf("%1.0f ", B[i]);
MIN=B[0];
for (int i=1; i<M; i++)
{
if (B[i]<MIN)
MIN=B[i];
}
printf ("\n\tМинимальное значение в массиве => %7.2f", MIN);
}
else
printf("Ошибка. Заданное число элементов массива слишком большое.");
return 0;
}