C语言的小疑点

C语言的小问题
下面是我朋友的一段程序,要求我帮忙修改下实现在循环中提示是否继续,是就继续,否就退出。
由//添加夹在一起的就是我添加的代码。
可是编译时出来两个错误
Expression   snytax   in   functon   main
Undefined   symbol   'temp '   in   functon   main

由于我好久没用使用C了,所以也找不出问题在哪儿。只有请大家帮忙找找了
#include   <math.h>
#include   <stdio.h>
main()
{
float   x1,x2,a1,a2,a3,td[2][1],m,h[2][2],h1[2][2],h2[2][2],b,s[2][1],c;

/*   设F(x)=a1*(x1+1)^2+a2*(x2-1)^2+x1+x2+a3;
td[2][1]=梯度,m=模,s[2][1]=步长,h[2][2]=海森矩阵,h1[2][2]=海森矩阵伴随矩阵,
h2[2][2]=海森矩阵逆矩阵,b=海森矩阵行列式值,s[2][1]=搜索方向,c=步长   */
int   k=1;

printf   ( "F(x)=a1*(x1+1)^2+a2*(x2-1)^2+x1+x2+a3\n\n ");
printf   ( "please   enter   coefficient\n ");
printf   ( "enter   a1= ",&a1);
scanf   ( "%f ",&a1);
printf   ( "enter   a2= ",&a2);
scanf   ( "%f ",&a2);
printf   ( "enter   a3= ",&a3);
scanf   ( "%f ",&a3);

printf   ( "please   enter   start   point\n ");  
printf   ( "enter   x1= ",&x1);
scanf   ( "%f ",&x1);
printf   ( "enter   x2= ",&x2);
scanf   ( "%f ",&x2);

td[0][0]=2*a1*x1+2*a1+1;
td[1][0]=2*a2*x2-2*a2+1;
m=sqrt(td[0][0]*td[0][0]+td[1][0]*td[1][0]);
printf   ( "%d,   ,x1=%f,x2=%f,m=%f\n ",k,x1,x2,m);

while   (m> 0.001)

{       k++;

h[0][0]=2*a1;h[0][1]=0;
h[1][0]=0;h[1][1]=2*a2;
h1[0][0]=2*a2;h1[0][1]=0;
h1[1][0]=0;h1[1][1]=2*a1;
b=h[0][0]*h[1][1]-h[0][1]*h[1][0];
h2[0][0]=h1[0][0]/b;h2[0][1]=h1[0][1]/b;
h2[1][0]=h1[1][0]/b;h2[1][1]=h1[1][1]/b;
s[0][0]=-(h2[0][0]*td[0][0]+h2[0][1]*td[1][0]);
s[1][0]=-(h2[1][0]*td[0][0]+h2[1][1]*td[1][0]);
c=-(2*a1*s[0][0]-2*a2*s[1][0]+s[1][0]+s[0][0])/(2*a1*s[0][0]*s[0][0]+2*a2*s[1][0]*s[1][0]);
x1=x1+c*s[0][0];x2=x2+c*s[1][0];
td[0][0]=2*a1*x1+2*a1+1;
td[1][0]=2*a2*x2-2*a2+1;
m=sqrt(td[0][0]*td[0][0]+td[1][0]*td[1][0]);
printf   ( "%d,   ,x1=%f,x2=%f,m=%f,c=%f\n ",k,x1,x2,m,c);
char   temp;//添加
while(temp!= 'Y '||temp!= 'N ');
{
printf   ( "GO   ON?   :   Y/N ");
scanf   ( "%c ",&temp);
}

if(temp== 'Y ')continue;
else   break;//添加
}
}


------解决方案--------------------
C语言编译器吧?
把char temp;这句提前到main函数开始那些变量声明处去.
------解决方案--------------------
#include <math.h>
#include <stdio.h>
main()
{
float x1,x2,a1,a2,a3,td[2][1],m,h[2][2],h1[2][2],h2[2][2],b,s[2][1],c;

/* 设F(x)=a1*(x1+1)^2+a2*(x2-1)^2+x1+x2+a3;
td[2][1]=梯度,m=模,s[2][1]=步长,h[2][2]=海森矩阵,h1[2][2]=海森矩阵伴随矩阵,
h2[2][2]=海森矩阵逆矩阵,b=海森矩阵行列式值,s[2][1]=搜索方向,c=步长 */
int k=1;
char temp= ' ';
printf ( "F(x)=a1*(x1+1)^2+a2*(x2-1)^2+x1+x2+a3\n\n ");
do
{
printf ( "please enter coefficient\n ");
printf ( "enter a1= ",&a1);
scanf ( "%f ",&a1);
printf ( "enter a2= ",&a2);
scanf ( "%f ",&a2);
printf ( "enter a3= ",&a3);
scanf ( "%f ",&a3);

printf ( "please enter start point\n ");