なんか皆さんレベル高くてここでお聞きしていいか分からないのですが
下記のコードを実行すると(たとえば S を入力)、
小文字は:sです。英語の大文字を入力してください:
小文字は:*です。英語の大文字を入力してください:
と出てしまいます。下の一行が余計なのですが、なぜこうなるのでしょうか。
よろしくご教示ください。お願いします。

#include <stdio.h>
int main() {
char c;
int diff = 'a'-'A';

for(;;) {
printf("英語の大文字を入力してください:\n");
scanf("%c",&c);

if (c == 'q') {
break;
}
printf("小文字は:%cです。",c+diff);
}
return 0;
}