C语言关于用循环语句,求解答

在每月的第一天都在存入N元,按单利计息,月利息为m%,计算一年后的本利之和是多少。

思路就是,一年后的本金加上这一年12个月每个月的利息。
一年后的本金是 12*N,第 i 个月的利息是第 i 个月的本金 i * N,再乘以月利率 (m/100);


#include <stdio.h>

int main()
{
    float N;  // 存款金额
    float m;  // 月利率
    float sum;  // 本利之和

    printf("请输入每月存款金额 N 和月利率 m%( m = 0.5 代表月利率为 0.5%):");
    scanf("%f %f", &N, &m);

    float lixi = 0; // 利息
    for(int month = 1; month <= 12; month ++){
        float mN = month * N; // 每个月第一天存 N,那么第 month 个月存了 month *N元
        lixi += mN * (m/100); // 加上第 month 个月的利息
    }
    
    sum = 12 * N + lixi;  // 本利之和

    printf("一年后的本利之和为 %.2f 元\n", sum);

    return 0;
}
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7516581
  • 你也可以参考下这篇文章:C语言基础:转义字符 \ 与 控制格式输出 %参考使用表格
  • 除此之外, 这篇博客: C语言中%d以及其他格式字符的常用小知识中的 其他 : 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • %i              有符号10进制整数
    
    %o              以八进制数形式输出整数
    
    %x 				无符号的16进制数字,并以小写abcdef表示
    
    %X 				无符号的16进制数字,并以大写ABCDEF表示
    
    %c				用来输出一个字符
    
    %s				用来输出一个字符串
    
    %E/e			以指数形式输出实数
    
    %g				根据大小自动选f格式或e格式,且不输出无意义的零
    
    

    延伸:
    scanf(控制字符,地址列表)
    格式字符的含义同printf函数,地址列表是由若干个地址组成的表列,可以是变量的地址,或字符串的首地址。
    如:scanf("%d%c%s",&a,&b,str);
    还有一个使用vs编程的过程中常见的问题:
    使用VS会出现’scanf’: This function or variable may be unsafe. Consider using scanf_s ins这种错误。
    这是因为新版vc库添加的警告,因为微软认为scanf的使用存在安全隐患,因为C/C++中的字符串处理都是以\0为截止符的,如果搜索不到\0,容易出现字符串越界所有vc扩展的所谓安全标准库,都添加了一个参数用以指定字符串参数的长度,用以避免这种安全隐患。
    想要在代码中使用’scanf’,
    修改方法有三种:

    1.项目属性—配置属性—C/C+±–预处理器—预处理 器定义中加入 _CRT_SECURE_NO_DEPRECATE
    2.在代码的第一行加:
    #pragmawarning(dasable:4996)
    3.在文件顶部加入一行:
    #define _CRT_SECURE_NO_WARNINGS