Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
prog_it
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 3
1

Ошибки в 2x простых программах

17.10.2010, 23:18. Просмотров 527. Ответов 7
Метки нет (Все метки)

Помогите доделать начинающему 2е простые программки. Никак не получается)
Значения переменным задаются жестко

1. Решить уравнение с проверкой деления на 0
Y=(a+b)/(1-b)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include "stdafx.h"
 
void main() {
int a=9;
int b=2;
int c=a+b;
int d=1-b;
if (d!=0)
  int y=c/d;
  else
printf ("y=%i", y);
scanf ("_");
}
Error 1 error C2065: 'y' : undeclared identifier


2. Решить квадратное уравнение ax^2+bx+c=0

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include "stdafx.h"
#include <cstdlib> 
#include <iostream> 
#include <cmath> 
 
void main() {
int a=9;
int b=2;
int c=5;
int d=b^2-4*a*c;
if (d<0)
  int r=(-b+d^1/2)/2;
  int t=(-b-d^1/2)/2;
  else
printf ("r=%i", r);
printf ("t=%i", t);
scanf ("_");
}
Error 1 error C2181: illegal else without matching iа
Error 2 error C2065: 'r' : undeclared identifier


Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2010, 23:18
Ответы с готовыми решениями:

Найти ошибки в программах
Вот 3 легкие задачи, все вроде бы решил, но не пойму почему компилятор выдает такие ответы, во всех...

Массивы, записи, файлы. Ошибки в программах.
1.Массивы. Задать квадратную матрицу порядка N. Вычислить и запомнить в массиве произведение...

Ошибки в программах
Всем доброго времени суток. Написал программу на Fortran. Она выполняется, но при определенных...

Ошибки в линейных программах
Выдают ошибки помогите! 1. #include&lt;iostream&gt; #define e 2.7 using namespace std; void...

Найти ошибки в программах
Помогите найти ошибки в программах №1… Program P73; {eroare} label 1; var i: 1..5; begin i:...

7
syd2010
45 / 37 / 3
Регистрация: 14.12.2009
Сообщений: 273
17.10.2010, 23:23 2
Ты хоть сообщения об ошибках читал бы! Было бы намного легче!

В первом не объявлена переменная "y", а во втором "r".
1
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.10.2010, 23:26 3
Error 1 error C2065: 'y' : undeclared identifier
Объяви y выше if:

int y;
if(d != 0)
y = c/d
1
prog_it
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 3
18.10.2010, 00:44  [ТС] 4
Спасибо.

В 1 программе подправил. Но теперь если задать значение b=1, программа ругается, т.к. делим на 0, у нас делить на ноль нельзя. Как можно остановить выполнение программы с использованием else, если в знаменателе 0. Или все и так правильно)

C
1
2
3
4
5
6
7
8
9
10
11
void main() {
int a=20;
int b=2;
int y;
int c=a+b;
int d=1-b;
if (d!=0)
  y=c/d;
  printf ("y=%i", y);
  scanf_s ("_");
}
Во 2 тоже поправил, но теперь программа ругается на инициализацию R / Run-Time Check Failure #3 - The variable 'r' is being used without being initialized. Хотя R объявлена

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdafx.h"
#include <cmath> 
 
void main() {
int a=1;
int b=9;
int c=3;
int d=b*b-4*a*c;
int r;
int t;
if (d>0)
  r=(-b+d^1/2)/2;
  t=(-b-d^1/2)/2;
printf ("r=%i", r);
printf ("t=%i", t);
scanf_s ("_");
}
0
18.10.2010, 00:44
LineStown
69 / 69 / 7
Регистрация: 04.08.2010
Сообщений: 426
Завершенные тесты: 1
18.10.2010, 10:27 5
Цитата Сообщение от prog_it Посмотреть сообщение
Во 2 тоже поправил, но теперь программа ругается на инициализацию R / Run-Time Check Failure #3 - The variable 'r' is being used without being initialized. Хотя R объявлена
Тут пишет что переменная использована до её инициализации (советую использовать переводчик для чтения таких ошибок)
0
MILAN
889 / 783 / 186
Регистрация: 21.02.2009
Сообщений: 1,722
18.10.2010, 12:54 6
Цитата Сообщение от prog_it Посмотреть сообщение
Как можно остановить выполнение программы с использованием else, если в знаменателе 0
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
   int a=20,b=1,y;
if(b==1)
 {
    printf("error");
 }
else
  {
    y=(a+b)/(1-b);
    printf ("y=%d", y);
    scanf_s ("_");
  }
return 0;
}
2
Andrew_Lvov
Эксперт С++
260 / 190 / 10
Регистрация: 19.08.2010
Сообщений: 760
Записей в блоге: 1
18.10.2010, 12:58 7
Цитата Сообщение от LineStown Посмотреть сообщение
Тут пишет что переменная использована до её инициализации (советую использовать переводчик для чтения таких ошибок)
Потому, что r не проинициализируется, если d<=0.
Кроме того, ты ведь понимаешь, что выражение t=(-b-d^1/2)/2; находиться вне блока if, и будет выполняться всегда ?
1
prog_it
0 / 0 / 0
Регистрация: 17.10.2010
Сообщений: 3
19.10.2010, 02:20  [ТС] 8
Спасибо огромное, разобрался на 100%
Ошибка была смешной, блок IF не брал в { }
0
19.10.2010, 02:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2010, 02:20

Ошибки в разных программах
Помогите пожалуйста! У меня возникла проблема с ноутбуком! Начали выскакивать ошибки в разных...

Не могу найти ошибки в программах
Не могу понять что не так. Задача №1, на использование оператора for: Условие...

Ошибки перерисовки интерфейса в программах
Здравствуйте! У меня Windows 7 Home Basic x64 (лицензионная). В программах 3ds Max (любой версии)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru