oj系统报错显示编译错误,自己运行没问题

#include <stdio.h>
int main()

{

char a[24];
int i=0;
scanf("%s",&a);

for(i=0;i<=100;i++)
{
if(a[i]>=65&&a[i]<=90)

       a[i]=155-a[i];


 if(a[i]>=97&&a[i]<=122)

       a[i]=219-a[i];

}

printf("%s",a);

return 0;

}

报错信息:Main.cc: In function 'int main()': Main.cc:8: warning: format '%s' expects type 'char*', but argument 2 has type 'char (*)[24]' Main.cc:26: error: expected '}' at end of input

scanf("%s",&a);
改成
scanf("%s",a);