Member 12630165 Ответов: 2

Ошибка, пожалуйста, помогите! ! Там написано: "объявление прекращено неправильно".


Вот весь код, ошибка в строке 4. Я использую turbo c++ с dosbox в windows 10

#include<stdio.h>
#include<conio.h>
void main()
{
	clrscr();
	char op;
	double n1,n2;
	printf("Enter an operator(+,-,*,/):");
	scanf("%c",&op);
	printf("Enter any two numbers:");
	scanf("%lf ,%lf",&n1,&n2);
	switch(operator)
	{
	case'+':
		printf("%lf + %lf = %lf",n1,n2,n1+n2);
		break;

	case'-':
		printf("%lf - %lf = %lf",n1,n2,n1-n2);
		break;

	case'*':
		printf("%lf * %lf = %lf",n1,n2,n1*n2);
		break;

	case'/':
		printf("%lf / %lf = %lf",n1,n2,n1/n2);
		break;

	default:
		printf("Error!operator you entered is not correct");
		break;
	}
	getch();
}


Что я уже пробовал:

Я попытался удалить'; ' после void main (), но вместо того, чтобы исправить его, это вызвало больше ошибок.

теперь я изменил имя переменной с operator на op и удалил'; ' после main. И код запускается.

Но теперь он возвращает мусорные значения вместо правильных решений

2 Ответов

Рейтинг:
14

CPallini

(версия стандарта C) ваша программа работает:

#include <stdio.h>
int main()
{
  char operator;
  double n1,n2;
  printf("Enter an operator(+,-,*,/):");
  scanf("%c",&operator);
  printf("Enter any two numbers:");
  scanf("%lf ,%lf",&n1,&n2);
  switch(operator)
  {
  case'+':
    printf("%lf + %lf = %lf",n1,n2,n1+n2);
    break;

  case'-':
    printf("%lf - %lf = %lf",n1,n2,n1-n2);
    break;

  case'*':
    printf("%lf * %lf = %lf",n1,n2,n1*n2);
    break;

  case'/':
    printf("%lf / %lf = %lf",n1,n2,n1/n2);
    break;

  default:
    printf("Error!operator you entered is not correct");
    break;
  }
  getchar();
}


протестирован с gcc Я предлагаю вам использовать более современный (и совместимый) C компилятор.


Member 12630165

о, Спасибо!!

CPallini

Добро пожаловать.

Рейтинг:
12

Patrice T

Цитата:
Я попытался удалить'; ' после void main (), но вместо того, чтобы исправить его, это вызвало больше ошибок
Да,это первое исправление.
Исправление первой ошибки не означает, что у вас нет других ошибок.

Исправьте это и обновите свой вопрос другими сообщениями об ошибках.

Будьте осторожны: оператор-это зарезервированное ключевое слово C++, и ваш компилятор, вероятно, является компилятором C++.

[Обновление]
Используйте отладчик, чтобы увидеть, что делает ваш код.
Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

[Обновление]
Вы забыли operator
switch(operator)


Member 12630165

ок спасибо

Member 12630165

Я изменил имя переменной с operator на op и удалил '; ' после main и запуска кода.

Patrice T

Если решение было полезным:
Воспользуйся Принять ответ чтобы закрыть вопрос.
это говорит о том, что вопрос решен

Member 12630165

- Подожди! не могли бы вы рассказать мне что-нибудь об этих мусорных ценностях, которые я получаю?