首页 > 解决方案 > C# 函数,它接受值并打印出一个 11x11 的值网格,范围为 -1 到 1

问题描述

目前正在学习 C 并且在我正在研究的教科书问题中我遇到了低迷。问题是定义一个返回值 x^2 - y^2 的函数,并使用函数为 x 和 y 的值从 -1 到 1 打印出 11 x 11 网格。我能够完成第一行,但我在其他行遇到问题。这个问题的正确输出是

   0.00    0.36    0.64    0.84    0.96    1.00    0.96    0.84    0.64    0.36    0.00 
  -0.36    0.00    0.28    0.48    0.60    0.64    0.60    0.48    0.28    0.00   -0.36 
  -0.64   -0.28    0.00    0.20    0.32    0.36    0.32    0.20   -0.00   -0.28   -0.64 
  -0.84   -0.48   -0.20    0.00    0.12    0.16    0.12   -0.00   -0.20   -0.48   -0.84 
  -0.96   -0.60   -0.32   -0.12    0.00    0.04   -0.00   -0.12   -0.32   -0.60   -0.96 
  -1.00   -0.64   -0.36   -0.16   -0.04    0.00   -0.04   -0.16   -0.36   -0.64   -1.00 
  -0.96   -0.60   -0.32   -0.12    0.00    0.04    0.00   -0.12   -0.32   -0.60   -0.96 
  -0.84   -0.48   -0.20    0.00    0.12    0.16    0.12    0.00   -0.20   -0.48   -0.84 
  -0.64   -0.28    0.00    0.20    0.32    0.36    0.32    0.20    0.00   -0.28   -0.64 
  -0.36    0.00    0.28    0.48    0.60    0.64    0.60    0.48    0.28    0.00   -0.36 
   0.00    0.36    0.64    0.84    0.96    1.00    0.96    0.84    0.64    0.36    0.00 

到目前为止,在我的代码中我有

double y=1;
int count =0;
double xSq;
double origX = x;
double origY = y;
double ySq;
xSq = x * x;
ySq = y * y;
double update;

for (int i =0; i < 11; i++){
     
    double sum = xSq - ySq;
    printf("%f\t", sum);
    count++;
    y = y - 0.2;
    ySq = y * y;
}

标签: cloopsfor-loop

解决方案


我认为他们希望你做的事情是不同的。他们希望您首先创建一个返回正方形之间差异的函数。
然后,他们希望您从 2 级循环(在 main 中)中使用该函数,该函数分别改变 x 和 y 的值。
x 和 y 的值分别从 -1 到 +1。
在 2 级循环中,您将使用 x、y 的当前值调用您的函数并获得结果。然后,您将打印 x、y 和结果。
您将弄清楚如何在循环的一级之后添加一行,以便获得行。


推荐阅读