请达人们指点一下!解决思路

请达人们指点一下!!!!!!
viod   main()
{
      char   buff[30];
      unsigned   char   SimCapacity   =   0;
     
      sprintf(buff,   "消息状态\nSIM卡:%d%\n ",   SimCapacity);
     

}

我在编译的时候   编译器报出这样的两个警告,
一个是:   unknown   conversion   type   character   0xa   in   format
另一个是:spurious   trailing   ‘% '   in   format

我不太清楚如何才能消除这两个警告,请问谁能指点一下?   谢谢

------解决方案--------------------
就是象todototry(来****,学会扯淡了...) 说的那样的。。。
很奇怪你的显示!!!你用的什么编译器??
以下是在VC6.0下试的。
显示:消息状态
SIM卡:0%
#include <stdio.h>
int main()
{
char buff[30];
unsigned char SimCapacity = 0;

sprintf(buff, "消息状态\nSIM卡:%d%%\n ", SimCapacity);
puts(buff);

return 0;
}