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

Вопрос по С++ ,подскажите ошибку в коде.

Дан код, массивы, в нем нужно чтобы при вводе 15 чисел, он числа входящие в промежуток от 0 до 10 возводил в квадрат, а так же писал кол -во введенных отрицательных чисел, при отладке возникает Ошибка error C4700: использована неинициализированная локальная переменная "a"

Подскажите, что исправить.. .

#include
using namespace std;
void main(){
int i, a, kol = 0;
int kvadrat;
double sqrt;
int x[15];
for (i = 0; i < 15; i++){
cin >> x[a];
}
for (i = 0; i<15; i++){
if (x[a]<0) kvadrat=a*a;
if (x[a]>0 && x[a]<10){
sqrt = x[a] * x[a];
cout << x[a];
}
}
cout << "kvadrat=" << kvadrat << endl;
system("pause");
}
конечно, ты же переменной "а" нигде не задал значение. ))
и вообще у тебя тут ошибка на ошибке. программу полностью переписывать надо.

#include
using namespace std;

void main()
{
const int N = 15;
int i, kol = 0, a, x[N];

for (i = 0; i < N; i++)
{
cout << "x[" << i << "] = ";
cin >> x[i]; //ввод массива

if (x[i] < 0)
kol++; //подсчет отрицательных чисел

if (x[i] > 0 && x[i] < 10)
{
a = x[i];
x[i] = x[i] * x[i]; //возведение в квадрат чисел от 0 до 10
cout << "x[" << i << "] = " << a << " * " << a << " = " << x[i] << endl;
}

}
cout << "\nAmount of negative numbers: " << kol << endl;

cin.get();
}
п. с. редактор тут хреновый библиотеку вырезает. ну ты сам знаешь какую поставить надо.
Sabur Sagatov
Sabur Sagatov
3 080
Лучший ответ
Полагаю так.
Прежде всего, отладчик пишет правильно. Действительно, используется неинициализированная локальна переменная "a". Ей перед использованием ничего не присваивается.
Циклы с параметром "i", по заголовку цикла, внутри цикла вмести "i"как параметр используется "a". Надо что-то одно - или в заголовке, в "for", писать параметр "a", или в цикле использовать "i".
Вообще, как я понял, программа в целом делает что-то к описанной задаче не относящееся.
Задание неточное.
На случай такого задания.
Вводится пятнадцать чисел в массив, числа от 0 до 10, то есть, с 1 по 9, возводятся в квадрат и эти значения заменяют прежние в массиве, подсчитывается количество отрицательных чисел, выводится список всех чисел, возведённых в квадрат, и количество отрицательных чисел.
Рабочая часть должна быть такой, примерно. Я синтаксис C++ знаю не очень хорошо, поэтому что-то могу написать неточно.
int i, kol_otr=0;
int x[15];
for (i=0; i<15; i++){
cin >> x[i];
}
for (i=0; i<15; i++){
if (x[i]<0) kol_otr++;
if (x[i]>0 && x[i]<10){
x[i]*=x[i];
cout << x[i];
}
}
cout << "kol otr=" << kol_otr << endl;
Это для такого задания, которое я описал в ответе, на самом деле, задание может быть другим, какое он точно - не понятно.
Правильность написанного не подтверждаю.
cin >> x[a]; переменная а не инициализирована тоесть ей не присвоено значение, используй i
Ким Александр
Ким Александр
4 777
Ким Александр #include

using namespace std;
int main(){

int negative=0;
int x[15];
cout<<"enter 15 numbers"<<endl;
for (int i = 0; i < 15; i++){
cin >> x[i];
}

for (int i = 0; i<15; i++){

if (x[i]<0) negative++;

if (x[i]>0 && x[i]<10) x[i]*=x[i];

cout << "x[" << i << "] = "<<x[i]<<endl;
}
cout<<"count of negative numbers is "<<negative<<endl;

return 0;
}
return 0; забыли