Member 14669990 Ответов: 2

Ожидаемый unqualified-id перед токеном '' как устранить эту ошибку?


#include <stdio.h>
#include <graphics.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
 
void reset (int h[][2])
{
    int val[9][2] = {
			{ 50, 50 },{ 75, 50 },{ 75, 75 },{ 100, 75 },
			{ 100, 50 },{ 125, 50 },{ 125, 100 },{ 87, 125 },{ 50, 100 }
		    };
    int i;
    for (i=0; i<9; i++)
    {
	h[i][0] = val[i][0]-50;
	h[i][1] = val[i][1]-50;
    }
}
void draw (int h[][2])
{
    int i;
    setlinestyle (DOTTED_LINE, 0, 1);
    line (320, 0, 320, 480);
    line (0, 240, 640, 240);
    setlinestyle (SOLID_LINE, 0, 1);
    for (i=0; i<8; i++)
	line (320+h[i][0], 240-h[i][1], 320+h[i+1][0], 240-h[i+1][1]);
    line (320+h[0][0], 240-h[0][1], 320+h[8][0], 240-h[8][1]);
}
void rotate (int h[][2], float angle)
{
    int i;
    for (i=0; i<9; i++)
    {
	int xnew, ynew;
	xnew = h[i][0] * cos (angle) - h[i][1] * sin (angle);
	ynew = h[i][0] * sin (angle) + h[i][1] * cos (angle);
	h[i][0] = xnew; h[i][1] = ynew;
    }
}
void scale (int h[][2], int sx, int sy)
{
    int i;
    for (i=0; i<9; i++)
    {
	h[i][0] *= sx;
	h[i][1] *= sy;
    }
}
void translate (int h[][2], int dx, int dy)
{
    int i;
    for (i=0; i<9; i++)
    {
	h[i][0] += dx;
	h[i][1] += dy;
    }
}
void reflect (int h[][2], int m, int c)
{
	int i;
	float angle;
	for (i=0; i<9; i++)
		h[i][1] -= c;
	angle = M_PI/2 - atan (m);
	rotate (h, angle);
	for (i=0; i<9; i++)
		h[i][0] = -h[i][0];
	angle = -angle;
	rotate (h, angle);
	for (i=0; i<9; i++)
		h[i][1] += c;
}
 
void ini()
{
	int gd=DETECT,gm;
	 void initgraph ( int *gd, int *gm, char *bgi);
}
void dini()
{
	getch();
	closegraph();
}
void main();
{ 
	int h[9][2],sx,sy,x,y,m,c,choice;
	do
	{
		clrscr();
		printf("1. Scaling about the origin.\n");
		printf("2. Scaling about an arbitrary point.\n");
		printf("3. Reflection about the line y = mx + c.\n");
		printf("4. Exit\n");
		printf("Enter the choice: ");
		scanf("%d",&choice);
		switch(choice)
		{
			case 1: printf ("Enter the x- and y-scaling factors: ");
				scanf ("%d%d", &sx, &sy);
				ini();
				reset (h);
				draw (h);getch();
				scale (h, sx, sy);
				cleardevice();
				draw (h);
				dini();
				break;
 
			case 2: printf ("Enter the x- and y-scaling factors: ");
				scanf ("%d%d", &sx, &sy);
				printf ("Enter the x- and y-coordinates of the point: ");
				scanf ("%d%d", &x, &y);
				ini();
				reset (h);
				translate (h, x, y);// Go to arbitrary point
				draw(h); getch();//Show its arbitrary position
				cleardevice();
				translate(h,-x,-y);//Take it back to origin
				draw(h);
				getch();
				cleardevice();
				scale (h, sx, sy);//Now Scale it
				draw(h);
				getch();
				translate (h, x, y);//Back to Arbitrary point
				cleardevice();
				draw (h);
				putpixel (320+x, 240-y, WHITE);
				dini();
				break;
 
			case 3: printf ("Enter the values of m and c: ");
				scanf ("%d%d", &m, &c);
				ini();
				reset (h);
				draw (h); getch();
				reflect (h, m, c);
				cleardevice();
				draw (h);
				dini();
				break;
 
			case 4: exit(0);
		}
	}while(choice!=4);
}


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

как устранить эту ошибку, пожалуйста, скажите мне?

Shao Voon Wong

Похоже на код Turbo C++. Является ли компилятор Turbo C++? Visual C++ может не компилировать этот код. И вы забываете упомянуть, в какой строке есть ошибка.

Member 14669990

ошибка в строке 86

Member 14669990

erro в строке 86

2 Ответов

Рейтинг:
2

phil.o

В дополнение к тому, что вы сказали в своих комментариях:
clrscr() это функция, которая кажется доступной только в turbo c++; если вы используете msvc в visual studio, вам, возможно, придется использовать:

using <stdlib.h>

// ...

system("CLS"); // will clear the screen and position the cursor
               // to the upper-left corner

Но, вероятно, есть и другие проблемы, которые только и ждут своего появления; обычно это плохая идея-копировать/вставлять какой-то код с одной платформы/компилятора на другую, не пытаясь понять его. Лучше проанализируйте чужой код, поймите, как он работает, и Закодируйте его в новой платформе с учетом этой информации.


Member 14669990

я использую dev c++

Рейтинг:
17

phil.o

void main();

Пожалуйста, уберите эту точку с запятой и посмотрите, что произойдет.


Member 14669990

я удалил semi colimn и его ничего не работает. это также создает новую ошибку

Shao Voon Wong

В чем заключается новая ошибка? И какая линия?

Member 14669990

ожидаемый неквалифицированный идентификатор перед токеном ''
в строке 86

Shao Voon Wong

Это была старая ошибка! Просто уберите"; " из этой строки.

Member 14669990

в какой линии?

Member 14669990

в какой линии?

Member 14669990

я удалил его но еще не исправил создает еще одну ошибку

Shao Voon Wong

Смотрите мой ответ ниже

Member 14669990

clscr не был объявлен в этой области

Member 14669990

извините 4 ошибки и предупреждение
clrscr не объявлен в этой области

Shao Voon Wong

clrscr() доступен только в компиляторе Borland Turbo C++. Вы используете этот компилятор для компиляции?

Member 14669990

я использую dev c++

Shao Voon Wong

Не повезло!

CPallini

5.

Member 14669990

что это значит?

CPallini

У меня есть много голосов, что он ответит.

phil.o

Спасибо, Карло.

Member 14669990

вы можете исправить эту ошибку кода или нет?

phil.o

Какой именно?

Member 14669990

#включить <stdio.h>
#включить <graphics.h>
#include <stdlib.h>
#включить <math.h>
#включить <conio.h>

void reset (int h[][2])
{
int val[9][2] = {
{ 50, 50 },{ 75, 50 },{ 75, 75 },{ 100, 75 },
{ 100, 50 },{ 125, 50 },{ 125, 100 },{ 87, 125 },{ 50, 100 }
};
int i;
для (i=0; i<9; i++)
{
h[i][0] = val[i][0]-50;
h[i][1] = val[i][1]-50;
}
}
void draw (int h[][2])
{
int i;
setlinestyle (DOTTED_LINE, 0, 1);
линия (320, 0, 320, 480);
линия (0, 240, 640, 240);
setlinestyle (SOLID_LINE, 0, 1);
для (i=0; i<8; i++)
линия (320+h[i][0], 240-h[i][1], 320+h[i+1][0], 240-h[i+1][1]);
линия (320+h[0][0], 240-h[0][1], 320+h[8][0], 240-h[8][1]);
}
void rotate (int h[][2], float angle)
{
int i;
для (i=0; i<9; i++)
{
int xnew, ynew;
xnew = h[i][0] * cos (угол) - h[i][1] * sin (угол);
ynew = h[i][0] * sin (угол) + h[i][1] * cos (угол);
h[i][0] = xnew; h[i][1] = ynew;
}
}
данные аннулированы (тип int х[][2], инт ЗХ, инт-сы)
{
int i;
для (i=0; i<9; i++)
{
h[i][0] *= sx;
h[i][1] *= sy;
}
}
void translate (int h[][2], int dx, int dy)
{
int i;
для (i=0; i<9; i++)
{
h[i][0] += dx;
h[i][1] += dy;
}
}
пустота отражать (тип int х[][2], инт м, инт с)
{
int i;
угол поплавка;
для (i=0; i<9; i++)
h[i][1] -= c;
угол = M_PI/2 - atan (m);
поворот (h, угол);
для (i=0; i<9; i++)
h[i][0] = -h[i][0];
угол = -угол;
поворот (h, угол);
для (i=0; i<9; i++)
h[i][1] += c;
}

пустота Ини()
{
int gd=DETECT,gm;
пустота процедура initgraph ( int, в *ГД, инт *ГМ, типа char *БГИ);
}
пустота Дини()
{
геч();
closegraph();
}
пустота главная();
{
int h[9][2],sx,sy,x,y,m,c,choice;
делать
{
clrscr();
printf("1. Масштабирование о происхождении.\n");
printf ("2. Масштабирование относительно произвольной точки.\n");
printf ("3. Размышление о прямой y = mx + c.\n");
printf("4. Выход\n");
printf("введите выбор: ");
scanf ("%d",&choice);
переключатель(выбор)
{
случай 1: printf ("введите коэффициенты масштабирования x и y: ");
то scanf ("%д%д", &амп;модель: SX, &ампер;сы);
ини();
сброс (ч);
draw (h);getch();
шкала (h, sx, sy);
cleardevice();
рисовать (ч);
Дини();
перерыв;

случай 2: printf ("введите коэффициенты масштабирования x и y: ");
то scanf ("%д%д", &амп;модель: SX, &ампер;сы);
printf ("введите координаты точки x и y: ");
то scanf ("%д%д", &ампер;х &амп;м);
ини();
сброс (ч);
translate (h, x, y);// перейти в произвольную точку
draw(h); getch();//показать его произвольное положение
cleardevice();
translate(h,-x,-y);//верните его в исходное положение
рисовать(ч);
геч();
cleardevice();
масштаб (h, sx, sy);//теперь масштабируйте его
рисовать(ч);
геч();
translate (h, x, y);//назад в произвольную точку
cleardevice();
рисовать (ч);
putpixel (320+x, 240-y, белый);
Дини();
перерыв;

случай 3: printf ("введите значения m и c: ");
то scanf ("%д%д", &амп;м &амп;с);
ини();
сброс (ч);
draw (h); getch();
отражение (h, m, c);
cleardevice();
рисовать (ч);
Дини();
перерыв;

случай 4: выход(0);
}
}while(choice!=4);
}

phil.o

Извини, но ты что, издеваешься? Я попросил описание проблемы, и вы просто повторно сбрасываете свой блок кода.
Пожалуйста, прекратите копировать/вставлять какой-то код на секунду и найдите время, чтобы описать проблему.

Member 14669990

ожидается безусловный-ID в ‘)’ класс токен
в строке 86