gpt4 book ai didi

c - 使用 for 循环在 2D Float 数组上输入值

转载 作者:行者123 更新时间:2023-12-02 02:43:44 24 4
gpt4 key购买 nike

我正在尝试制作一个具有 2 列和一些行的二维数组。第一列是使用scanf输入的半径,第二列依赖于第一列是面积。

我已经尝试将它们排除在循环之外(手动输入)然后立即输出它们,但不知何故只有最后一个和第一个输入是正确的

#define circlecol 1
#define circlerow 1

int main() {
float circles[circlerow][circlecol];
for(int x = 0; x <= circlerow; x++) {
scanf("%f", &circles[x][0]);
circles[x][1] = 3.14*circles[x][0]*circles[x][0];
}`

输入 8 和 3 我预计这是输出

你的圈子: 8.000000 200.960000 3.000000 28.260000

但是我得到了这个

你的圈子: 8.000000 0.000000 0.000000 28.260000

格式是

你的圈子:[0][0] [0][1] [1][0] [1][1]

最佳答案

改变这个:

for(int x = 0; x <= circlerow; x++)

为此:

for(int x = 0; x < circlerow; x++)

因为数组索引从 0 开始到数组大小 - 1 结束。

同样,你会做 for(int j = 0; j < circlecol; j++) .

一般来说,如果一个数组声明为:

array[rows][cols]

那么它的尺寸是rows x cols . array[0][0]是第一行第一列的元素,array[rows - 1][cols - 1]是最后一列和最后一行的元素。


最小的完整示例:

#include <stdio.h>

#define circlecol 1
#define circlerow 1

int main(void) {
float circles[circlerow][circlecol];
for(int x = 0; x < circlerow; x++) {
scanf("%f", &circles[x][0]);
circles[x][1] = 3.14*circles[x][0]*circles[x][0];
}

for(int i = 0; i < circlerow; i++)
for(int j = 0; j < circlecol; j++)
printf("%f", circles[i][j]);
return 0;
}

关于c - 使用 for 循环在 2D Float 数组上输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57381237/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com