C/C++

Мусор вместо вывода

Всё бы ничего, но во втором случае выводится мусор вместо информации
написано на С++ что не так?

#include
#include
using namespace std;
struct Rad
{
float time;
string sity;

int doz;
int tp;
};
int main()
{
int i;
Rad doz[2]; /* Îáúåêò ñòðóêòóðû*/

for (int i=0;i<2;i++)
{
cout<<"VVedite vremya\n";
cin>>doz[i].time;
cout<<" Vvedite gorod";
cin>>doz[i].sity;
cout<<"Vvedite pokazaniya dozimetra\n";
cin>>doz[i].doz;
cout<<"vvedite pokazaniya datchika temperatur\n";
cin>>doz[i].tp;
cout<<"vyvod na ekran"<<;
for(int i=0; i<2;i++)
{
cout<<" time of d"<<i+1<<' '<< d[i].time<<endl;
cout<<"sity of d"<<i+1<<' '<<d[i].sity <<endl;
cout<<"rad of d"<<i+1<<' '<<d[i].doz <<endl;
cout<<"tp of d"<<i+1<<' '<<d[i].tp <<endl;
}
system("pause");
return 0;
}
Abdigani Saudabaev
Abdigani Saudabaev
17
у тебя два цикла по i вложены друг в друга
работает первая итерация внешнего цикла (i = 0), читается первый элемент doz, второй остаётся неинициализированным
запускается внутренний цикл, выводит оба элемента doz, как первый введённый, так и второй, в котором мусор
после внутреннего цикла программа завершается (return 0), не дав внешнему циклу перейти на следующую итерацию (i = 1)

вероятно, ты хотел закрыть тело внешнего цикла не там, где оно закрывается сейчас (в конце main), а перед выводом
ты в коде отступы используешь?
Artem Gusev
Artem Gusev
36 952
Лучший ответ
#include <iostream>
using namespace std;
struct Rad{
 float time;
 string sity;
 int doz;
 int tp;
};
int main(){
 setlocale(LC_ALL, "Russian");
 Rad doz[2];
 for(int i = 0; i < 2; ++i){
  cout << "Введите время: ";
  cin >> doz[i].time;
  cout << "Введите город: ";
  cin >> doz[i].sity;
  cout << "Введите показания дозиметра: ";
  cin >> doz[i].doz;
  cout << "Введите показания датчика температур: ";
  cin >> doz[i].tp;
 }
 cout << "Вывод на экран" << endl;
 for(int i = 0; i < 2; ++i){
  cout << "time \tof doz" << i + 1 << ' ' << doz[i].time << endl;
  cout << "sity \tof doz" << i + 1 << ' ' << doz[i].sity << endl;
  cout << "rad \tof doz" << i + 1 << ' ' << doz[i].doz << endl;
  cout << "tp \tof doz" << i + 1 << ' ' << doz[i].tp << endl;
 }
 cin.ignore();
 cin.get();
 return 0;
}
Инабат Мустафа
Инабат Мустафа
81 492
Участковый заходил с перфокартой?
Юрий Лисин
Юрий Лисин
74 422