鱼C论坛

 找回密码
 立即注册
查看: 2351|回复: 6

[已解决]如果是一个数组的前n项和的话应该怎么编啊

[复制链接]
发表于 2020-10-24 19:03:21 | 显示全部楼层 |阅读模式
5鱼币
C++大一
最佳答案
2020-10-24 19:03:22
本帖最后由 风过无痕1989 于 2020-10-25 12:56 编辑

本程序使用了变长数组,在DEV_C++5.11编译通过,VC++6.0及一些不支持C99的编译器可能不支持


  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int i,n,sum = 0;
  5.     printf("请确定要求多少项之和:");
  6.         scanf("%d",&n);
  7.     int a[n];
  8.     for (i = 0;i < n;i++)
  9.     {
  10.         scanf("%d",&a[n]);
  11.     }
  12.     for (i = 0;i < n;i++)
  13.     {
  14.         sum += a[i];
  15.     }
  16.     printf("前 %d 项和为:%d\n",n,sum);
  17.     return 0;   
  18. }
复制代码


或者手动赋值


  1. #include<stdio.h>
  2. #define N 100;
  3. int main()
  4. {
  5.    
  6.     int a[N] = { 在这里手动赋值,用逗号隔开 };
  7.     int i,n,sum = 0;
  8.     printf("请确定要求多少项之和:n = ");      // 注意:n <= N
  9.     scanf("%d",&n);

  10.     for (i ;i <= n;i++)
  11.         {
  12.     sum += a[i];
  13.     }
  14.     printf("前 %d 项和为:%d\n",n,sum);
  15.     return 0;   
  16. }
复制代码

最佳答案

查看完整内容

本程序使用了变长数组,在DEV_C++5.11编译通过,VC++6.0及一些不支持C99的编译器可能不支持 或者手动赋值
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-24 19:03:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 风过无痕1989 于 2020-10-25 12:56 编辑

本程序使用了变长数组,在DEV_C++5.11编译通过,VC++6.0及一些不支持C99的编译器可能不支持


  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int i,n,sum = 0;
  5.     printf("请确定要求多少项之和:");
  6.         scanf("%d",&n);
  7.     int a[n];
  8.     for (i = 0;i < n;i++)
  9.     {
  10.         scanf("%d",&a[n]);
  11.     }
  12.     for (i = 0;i < n;i++)
  13.     {
  14.         sum += a[i];
  15.     }
  16.     printf("前 %d 项和为:%d\n",n,sum);
  17.     return 0;   
  18. }
复制代码


或者手动赋值


  1. #include<stdio.h>
  2. #define N 100;
  3. int main()
  4. {
  5.    
  6.     int a[N] = { 在这里手动赋值,用逗号隔开 };
  7.     int i,n,sum = 0;
  8.     printf("请确定要求多少项之和:n = ");      // 注意:n <= N
  9.     scanf("%d",&n);

  10.     for (i ;i <= n;i++)
  11.         {
  12.     sum += a[i];
  13.     }
  14.     printf("前 %d 项和为:%d\n",n,sum);
  15.     return 0;   
  16. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-24 19:23:37 | 显示全部楼层
  1. int i,n,sum,a[?];
  2. scanf("%d",n);
  3. for (i;i<=n;i++){
  4. sum += a[i]
  5. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 08:31:04 | 显示全部楼层
  1. // 说明,nums: 数组
  2. //          size: 数组元素的个数
  3. //          n : 前n个
  4. int sumN(int nums[], int size, int n)
  5. {
  6.         if (n > size)
  7.                 return -1; // 出错了
  8.         int sum = 0;
  9.         for (int i =0 ;i < n;i++)
  10.         {
  11.                 sum += nums[i];
  12.         }
  13.         return sum;
  14. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 11:26:00 | 显示全部楼层
风过无痕1989 发表于 2020-10-24 20:35
本程序使用了变长数组,在DEV_C++5.11编译通过,VC++6.0及一些不支持C99的编译器可能不支持

我觉得你的第一个程序有问题……变长数组的声明不应该是在数组长度赋值之后么
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-25 12:55:31 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-10-25 11:26
我觉得你的第一个程序有问题……变长数组的声明不应该是在数组长度赋值之后么

你是对的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-10-28 15:40:41 | 显示全部楼层
问题解决了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-7-1 11:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表