【问题标题】:Using nested for loop to find the second power of numbers using C使用嵌套 for 循环使用 C 查找数字的二次幂
【发布时间】:2020-02-27 00:09:27
【问题描述】:

我需要使用嵌套的 for 循环找到从 -14 到 14 的数字的平方。到目前为止,我对如何编写外部循环感到困惑,我只有这个

    for(i=14;i>0;i--1)
        {
    for (k=i;k>=pow(i,2); k--)
    }

这仅适用于 0-14。请帮忙

【问题讨论】:

  • k >= pow(i, 2) 永远不会为真,因为k 从i 开始,而i 总是小于它的平方(除非i == 1 或i == 0)
  • 为什么你认为你需要嵌套循环?如果您想要数字的平方,只需打印 pow(i, 2) 或 i * i。
  • @Barmar:大概这是作业。但是在一个函数是搜索 i^2 的循环中间调用pow(i,2) 似乎是不恰当的。就个人而言,我会使用j += 2*k-1。
  • 如果你想将此解决方案扩展到负数,只需扩展外循环:for(i=14;i>-15;--i)
  • i--1 应该只是 i--

标签: c for-loop nested-loops


【解决方案1】:

我需要使用嵌套的 for 循环找到从 -14 到 14 的数字的平方。

我假设这是一个关于嵌套循环的练习,而不是一个数学问题,因此低效但预期的解决方案可能如下

#include <stdio.h>

int main(void)
{
    for (int i = -14; i <= 14; i++) {
        //       ^^^    ^^^^^
        int square = 0;
        // Take the absolute value of the outer index
        int factor = i < 0 ? -i : i;
        // Remember that i * i = i + i + ... + i (i times)
        for (int j = 0; j < factor; ++j) {
            //       ^      ^^^^^^
            square += factor;
        }
        printf("The square of %d is %d\n", i, square);
    } 
}

【讨论】:

    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-09
    • 1970-01-01
    相关资源
    最近更新 更多