Error C2061: синтаксическая ошибка: идентификатор - C (СИ)
Формулировка задачи:
Ошибка в функции Metod в цикле do/while не знаю как устранить синтаксическую ошибку
Листинг программы
- #include<stdio.h>
- #include<conio.h>
- #include<stdlib.h>
- #include<string.h>
- #include<iostream>
- #include"math.h"
- using namespace std;
- FILE *F;
- int Menu();
- void namef();
- void Newf();
- void open_F();
- void Reschenie();
- void vivodf();
- double f(double x);
- double Metod(double A,double B,double h);
- char name[20];
- int i,a,b,k,r,e=150;
- double *X,u,*y,h,m,*z;
- int main()
- {
- while(true)
- {
- switch(Menu())
- {
- case 1: namef();
- break;
- case 2: Newf();
- break;
- case 3: Reschenie();
- break;
- case 4: return 0;
- default: printf("nevernii vvod");
- }
- printf("press any key to ontinue");
- getch();
- system("cls");
- }
- }
- int Menu()
- {
- int i;
- printf("vibirite:\n");
- printf("1.nazv. file\n2.New file\n3.Reschenie\n");
- printf("4.exit\n");
- printf(">>");
- scanf("%d",&i);
- return i;
- }
- void namef() //1
- {
- printf("vvedite name file:");
- cin>>name;
- }
- void Newf() //2
- {
- if((F=fopen(name,"wb"))==NULL)
- {
- printf("Error\n");
- exit(1);
- }
- printf("ok\n");
- fclose(F);
- }
- void Reschenie() //3
- {
- if((F=fopen(name,"rb+"))==NULL)
- {
- printf("Error\n");
- exit(1);
- }
- z=new double[e];
- X=new double[e];
- y=new double[e];
- cout<<"m=";
- cin>>m;
- cout<<"a=";
- cin>>a;
- cout<<"b=";
- cin>>b;
- h=(b-a)/m;
- X[0]=a;
- cout<<"X\t\tY"<<endl;
- for(i=0;i<=m;i++)
- {
- fwrite (&X[i],sizeof(double),1,F);
- y[i]=f(X[i]);
- cout<<X[i]<<"\t\t"<<y[i]<<endl;
- X[i+1]=X[i]+h;
- fwrite (&y[i],sizeof(double),1,F);
- }
- i=0;
- for(int j=1;X[i]<=b;i++)
- {
- u=y[i];
- if((u>0 && y[i+1]<0) || (u<0 && y[i+1]>0))
- {
- z[j]=Metod(X[i],X[i+1],h);
- j++;
- }
- }
- for(i=1;i<=3;i++)
- cout<<endl<<"X"<<i<<"="<<z[i]<<endl;
- delete[] X;
- delete[] y;
- delete[] z;
- fclose(F);
- }
- double f(double x)
- {
- return pow(x,2)+5*cos(x)-3;
- }
- double Metod(double A,double B,double h)
- {
- double e=0.0001,x[3],y[3],v,X;
- x[0]=A;
- x[1]=B;
- y[0]=f(x[0]);
- do
- x[2]=(x[0]+x[1])/2;
- y[2]=f(x[2]);
- v=y[0]*y[2];
- if(v>0)
- {
- x[0]=x[2];
- y[0]=y[2];
- }
- else
- {
- x[1]=x[2];
- y[1]=y[2];
- }
- while((x[1]-x[0])>e)
- X=(x[0]+x[1])/2;
- return X;
- }
Решение задачи: «Error C2061: синтаксическая ошибка: идентификатор»
textual
Листинг программы
- do
- {
- ////
- } while ...
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д