質問: 実行例を次のようにしたいのですが、エラーが出てしまいます。 ``` $ ./a.out 元金(円): 1000000 年利率(%): 0.001 預入期間(年): 10 1年目: 1000010 円 2年目: 1000020 円 3年目: 1000030 円 4年目: 1000040 円 5年目: 1000050 円 6年目: 1000060 円 7年目: 1000070 円 8年目: 1000080 円 9年目: 1000090 円 10年目: 1000100 円 ``` 自分は次のようにプログラムしエラーが出てしまいました。 ``` int main(void) { int i,m,n,y; printf("元金: "); scanf("%d",&m); printf("年利率(%): "); scanf("%d",&n); printf("預入期間(年): "); scanf("%d",&y); for(i=m;i<=y;i=i+n/100){ printf("i年目:%d円\n",i); } return 0; } ``` ``` ex0304.c: In function ‘main’: ex0304.c:8:24: warning: unknown conversion type character ‘)’ in format [-Wformat=] printf("年利率(%): "); ^ ```
回答: `printf` 中や `scanf` 中のフォーマット文字列内において `%` は単独で使いません。必ず後ろに既知の一文字以上を伴う義務があります。一般文字列中の `\` と同じっすね。 百分率文字 `%` を画面に表示したいのなら `printf("%d%%", 100);` となります。