I have ev3 education kit and when I make a program and put it on the brick and run it at first time it run very well and the robot go in straight line and make 90 degree turn very well but when i run it again it does not move well like he does not go in straight line and make the 90 degree turn 95 degree or 86 degree and I do not know why can anybody help me
So it appears there is nothing wrong with the structure of your robot, you just aren't confirming that the robot is turning its wheels the proper distance. I am not sure how to do that with the drag-and-drop EV3 software, but my recommendation is to have some sort of feedback loop that reads the rotation of the motors from their tachometers. If you can, make sure that the move block is combined with the other wheels move block and not separate so that the firmware can't think that it should start the moves at separate times.
There are firmware replacements out there that do this feedback loop automatically, if that would be a preferred option. This allows them to rotate exactly 90 degrees or move
You mention that you use the gyro, the last time I used that it seemed to be very hard to calibrate. If the reading from it drifts over time even though the robot is sitting perfectly still, that could be part of your problem during rotates as well (and perhaps traveling if you use it to drive straight).
Contrary to the previous answer, I don't believe that the problem is EV3.
I do believe that your problem is a hardware issue. I have personally run a test or two on this, and my conclusion is that the wheels are set off kilter on their axles.
The answer is bushings. Bushings are the little doodads that keep a gear or wheel in place on the axle. Put one on either side of a wheel, and the result is that those 90-degree turns, which produce torque on the wheel, relieved by movement along the cross-axle, will no longer set your wheel out of place. If this doesn't work, I would do as the commentators and other answer-er suggest, and make sure that your unit can hold a charge.
Measure this by telling just one motor with your EV3 unit to turn. Measure the amount of rotation. Now run the program again. You don't need anything attached on the motor, so as not to throw it off, and when the next turn program is run, you will have your answer based on the amount of rotation.
If it is lower, your EV3 doesn't hold charge anymore, and you need a new one. Sorry.
If it is the same, it is a structural problem, and you just need to make sure that nothing is moving noticeably out of place when running it.