Ошибки "... was not declared in this scope" - C (СИ)
Формулировка задачи:
Здравствуйте. Помогите пожалуйста разобраться с ошибками.
1. In function 'int main(int, char**)':
2. 'nn' was not declared in this scope
3. 'nk' was not declared in this scope
4. 'S' was not declared in this scope
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
int main (int argc, char *argv[])
{
double k, s;
do
{
printf ("\nEnter k ");
scanf ("%f",&k);
if (k<=0)
{
printf ("\nWrong input,please try again");
}
}
while (k<=0);
for(k = nn; k <= nk; k++)
s += (k*k - pow(-1.0, k-1)*2*k -1)/(k*k +8);
printf ("\nS= ");
printf("%f", S);
system("pause");
return 0;
}Решение задачи: «Ошибки "... was not declared in this scope"»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <cmath>
int main (int argc, char *argv[])
{
int s, nn, nk, k;
do
{
printf ("\nEnter nn ");
scanf ("%f",&nn);
if (nn<=0)
printf ("\nWrong input,please try again ");
}
while (nn<=0);
do
{
printf ("\nEnter nk ");
scanf ("%f",&nk);
if (nk<=0)
printf ("\nWrong input,please try again ");
}
while (nk<=nn);
{
s=0;
for(k = nn; k <= nk; k++)
s += (k*k - pow(-1.0, k-1)*2*k -1)/(k*k +8);
}
printf ("\ns= ");
printf("%f", s);
system("pause");
return 0;
}
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы для работы с вводом/выводом и математическими функциями
- Объявляем переменные
s,nn,nk,kдля хранения целочисленных значений - Запускаем цикл
do-while, который будет выполняться до тех пор, пока пользователь не введет корректное значение дляnn(больше 0) - Внутри цикла
do-whileвыводим приглашение для ввода значенияnn - С помощью функции
scanfсчитываем введенное значение и сохраняем его в переменнуюnn - Проверяем, что введенное значение больше или равно 0. Если это не так, выводим сообщение об ошибке и просим пользователя повторить ввод
- Запускаем второй цикл
do-while, который будет выполняться до тех пор, пока пользователь не введет корректное значение дляnk(больше или равноnn) - Внутри цикла
do-whileвыводим приглашение для ввода значенияnk - С помощью функции
scanfсчитываем введенное значение и сохраняем его в переменнуюnk - Проверяем, что введенное значение больше или равно 0. Если это не так, выводим сообщение об ошибке и просим пользователя повторить ввод
- Переходим к следующему блоку кода, где объявляем переменную
sи инициализируем ее значением 0 - Запускаем цикл
for, который будет выполняться отnnдоnk(включительно) - Внутри цикла
forвычисляем значениеsс помощью формулы(k*k - pow(-1.0, k-1)*2*k -1)/(k*k +8)и добавляем его к текущему значению переменнойs - После завершения цикла
forвыводим значение переменнойs - Запускаем функцию
system(pause`), чтобы программа ожидала нажатия клавиши пользователя перед завершением - Возвращаем 0, чтобы указать, что программа успешно завершилась
- Код не содержит ошибок компиляции, поэтому программа будет успешно выполнена без каких-либо сообщений об ошибках.