Другие языки программирования и технологии

Программирование С++ помогите исправить код

#include
using namespace std;
struct not
{
int puan;
int etkisi;
};
void nothesap(int i)
{
cout << i << " notunuzu giriniz....:"; cin >> i;
while ((i <= 0) || (i >= 100))
{
cout << "deger yanliw" << endl;
cout << i << " notunuzu giriniz....:"; cin >> i;
}
}
int main()
{
not vize, odev1, odev2, kisa1, kisa2, final;
nothesap(vize.puan);
cout << "1.odev notunuzu giriniz....:"; cin >> odev1.puan;
while ((odev1.puan <= 0) || (odev1.puan >= 100))
{
cout << "deger yanliw" << endl;
cout << "1.odev notunuzu giriniz....:"; cin >> odev1.puan;
}
return 0;
}
Что именно исправлять? Всё, что делает эта программа - совершенно дебильным образом запрашивает ввод двух целых числа в диапазоне от 1 до 99 включительно. Причём первое введённое число вообще нигде не сохраняется.

void nothesap(int &i) - передавать по ссылке, а не по значению.
Евгений Капустин
Евгений Капустин
77 706
Лучший ответ
Александр Царёв там код по больше на самом деле, надо посчитать введенные данные, но суть не в этом, дело в том что как я могу заставить работать именно с таким написанием и использованием struct знаю что будет работать если буду обьявлять каждую переменную отдельно например как (int vize), но в моем случаи ругается на переменную vize c кодом ошибки С4700
Александр Царёв проблема начинается в функции nothesap(vize.puan); вот там то не знаю как сделать
// Ваш турецкий бесподобен!

#include <iostream>
using namespace std;
class not {
public:
not() : puan_(0), etkisi_(0) {}
bool puan(const int value) {
puan_ = value;
return validate(puan_);
}
int puan()const { return puan_; }
bool etkisi(const int value) {
etkisi_ = value;
return validate(etkisi_);
}
int etkisi()const { return etkisi_; }
private:
int puan_;
int etkisi_;
static bool validate(const int value) { return value < 1 || value > 99? true : false; }
};
int main() {
not a;
int value;
do { cout << "puan: "; cin >> value; } while (a.puan(value));
do { cout << "etkisi: "; cin >> value; } while (a.etkisi(value));
system("cls");
cout << " puan: " << a.puan() << "\n etkisi: " << a.etkisi() << endl;
system("pause");
}
Александр Царёв подьеб на счет турецкого засчитан :)
но увы такой код я не могу использовать в домашнем задании т. к ООП мы еще не совсем начали и в классах я не очень то и разбираюсь на данный момент т. к 1 курс еще, но я возьму на заметку ваш код спасибо огромное
ссылки на перменную i нет

1) с начало измени название структуры с not на not_ // или на другое
2) впиши ссылку & в параметр i& в функции
// void nothesap( int &i ){}

вот исправленный пример

struct not_
{
int puan;
int etkisi;
};
void nothesap( int &i )
{
cout << i << " notunuzu giriniz....:";
cin >> i;
while ((i <= 0) || (i >= 100))
{
cout << "deger yanliw" << endl;
cout << i << " notunuzu giriniz....:";
cin >> i;
}
}

int main()
{
not_ vize, odev1, odev2, kisa1, kisa2, final;
vize = odev1 = odev2 = kisa1 = kisa2 = final = {}; // обнуление желательно

nothesap( vize.puan );
cout << vize.puan <<endl; // проверка

return 0;
}