C语言大小写字母转换


#include<stdio.h>

int main()
{   char c;
    printf("输入一个半角字符:");
    scanf("%c",&c);
    printf("输出:");
    printf((c>='A'&&c<='Z')?"%c",c+32:((c>='a'&&c<='z')?"%c",c-32:c));
    return 0;
}

以上是我写的,但是就很奇怪,运行不起来甚至“输出”两个字都没有。
题目要求就是大小写字母转换,不是26字母的原样输出,要求用三目运算符控制输出

估计优先级有些乱了,分开写

c=(c>='A'&&c<='Z')?(c+32):((c>='a'&&c<='z')?("%c",c-32):c);
printf("%c",c);