Дан код, массивы, в нем нужно чтобы при вводе 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();
}
п. с. редактор тут хреновый библиотеку вырезает. ну ты сам знаешь какую поставить надо.
и вообще у тебя тут ошибка на ошибке. программу полностью переписывать надо.
#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();
}
п. с. редактор тут хреновый библиотеку вырезает. ну ты сам знаешь какую поставить надо.
Полагаю так.
Прежде всего, отладчик пишет правильно. Действительно, используется неинициализированная локальна переменная "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;
Это для такого задания, которое я описал в ответе, на самом деле, задание может быть другим, какое он точно - не понятно.
Правильность написанного не подтверждаю.
Прежде всего, отладчик пишет правильно. Действительно, используется неинициализированная локальна переменная "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
return 0; забыли
Похожие вопросы
- Вопрос про С++ !Подскажите пожалуйста (не код).
- Помогите, пожалуйста, исправить ошибку в коде С++!!
- помогите найти ошибку в коде на Си
- Помогите найти ошибку в коде с++. Скорее всего ошибка в сравнении строк.
- Помогите исправить ошибку в коде программы на паскале.
- Помогите найти ошибку в коде
- Помогите найти ошибку в коде. делфи
- Помогите найти ошибки в коде (паскаль)
- Где ошибка в коде С++ ?
- [Язык С++] Ошибка в коде не пойму что такое...
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;
}