【问题标题】:prime number and sum of cubes in c [closed]c中的素数和立方和[关闭]
【发布时间】:2018-07-01 02:42:55
【问题描述】:

我试图弄清楚如何获得素数 n,并计算该 n (1^3 + 2^3 + ... + n^3) 的立方和。到目前为止,我可以弄清楚如何获得素数。我只是不知道如何获得相同的 n 来计算它的素数。这是我目前所拥有的:

#include <stdio.h>

int main() {
    int n, i, c = 0
    printf("Enter any number n: ");
    scanf("%d", &n);

    for(i=2; i<=n/2; i++){
        if(n%i == 0){
        c=1;
        break;
        }
    }
    if (c==0)
        printf(%d is a prime number.",n);
    else
        printf("%d is not a prime number.",n);
    printf("Enter that same number n: ");
    scanf("%d", &num);
    int num, cube, sum = 0, j=1;
    while (j <= num) {
        cube = j*j*j;
        sum = sum + cube;
        j++;
    }
    printf("sum of cubes of %d is %d\n", num, sum);

    return 0:
}

我在第二个 scanf 上收到错误,因为它说 num 未声明。我应该怎么做才能解决这种情况。

【问题讨论】:

  • %num--> 认真的吗?
  • 通过声明num
  • 您的第一个错误在第 4 行。
  • 它说“num”未声明,因为您在尝试使用它之后声明了它(int num 出现在scanf 之后)。这应该是显而易见的。
  • 很多编译错误。您是否重新输入了问题中的程序而不是复制/粘贴它?

标签: c scanf primes


【解决方案1】:

在声明 int num 后使用 scanf。您还在第二个数字中使用了 % 。使用

int num, cube, sum = 0, j=1;
scanf("%d", &num);

而不是

scanf("%d", %num);
int num, cube, sum = 0, j=1;

【讨论】:

    【解决方案2】:

    考虑一下这个起始部分

    long double sumcubs(int n)
    {
        int i;
        long double ret = 0;
    
        for (i = 1; i <= n; ++i)
            ret += (i * i * i);
    
        return ret;
    }
    

    一旦您封装了这个 sum of cubes 函数,组织和编写其余代码应该会变得更容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-21
      • 2018-01-11
      • 2012-01-21
      • 1970-01-01
      • 2014-11-28
      • 1970-01-01
      • 2023-03-07
      • 2017-12-06
      相关资源
      最近更新 更多