关于do{}while;循环以及c中变量定义的疑点

关于do{}while;循环以及c中变量定义的疑问。
问题1.
do
{int  a=1;
}while(a<1);这里为啥不能在里面定义a?提示错误是while()中的c没有定义。求指教。
问题2.
int main()
{int a,int b;
int c=a+b;
scanf("%d%d",&a,&b);
printf("%d",c);这个例子中,int c=a+b;为什么一定要放在输入函数下面?求指教

------解决思路----------------------
问题一:
a的作用域仅限于{ }
问题二:
int c=a+b;     //使用了未初始化的变量,编译器会提示error