在%前加一个空格写成scanf(" %c",&ch);。
在scanf( ); 这一行前面,加入二行,用于清空输入缓冲区:int c;while((c = getchar()) != '\n' && c != EOF);
第一个scanf有错误,应该是scanf("%s",&n);