gpt4 book ai didi

c - 在 C 中使用数组

转载 作者:行者123 更新时间:2023-12-01 19:34:21 25 4
gpt4 key购买 nike

我的家庭作业很麻烦,希望得到正确方向的指导。

任务是开发一个 C 程序来完成以下任务:

  1. main() 中,创建一个名为 qqqqq 的二维数组,可以容纳 48 个整数(6 行,8 列)
  2. 使用随机生成的 1 到 15 之间的整数值填充 qqqqq
  3. 计算每行的总计。
  4. 计算每列的总计。
  5. 以表格格式显示二维数组的内容,行总计位于行右侧,列总计位于列底部。

main之后从哪里开始?

这是我到目前为止所拥有的:

int main (void)
{
int qqqqq [6] [8];
int r;
int c;

srandom ((unsiged) time (NULL));

for (r=0; r <=6; r++)
{
for(c=0; c <=8; c++)
{
qqqqq[r][c] = random ( )

接下来我该做什么?

感谢任何帮助或指导。

谢谢-詹姆斯

最佳答案

算法思维

这是我解决这个问题的方法:

  1. 用我自己的话写出算法。
  2. 了解如何用 C 语言生成随机数。
  3. 了解如何在屏幕上打印信息。

算法

算法是解决问题所需的一组步骤。手头的任务已经描述了问题,但用自己的话重写它通常是一个很好的做法。 (作为一个实际问题,您可以将您的话传达给您的客户(在本例中为您的老师),并确认您对问题的理解是正确的。)

  1. 创建二维数组
  2. 使用随机数填充数组。
  3. 计算每行数字的总和(需要一个行总和计数器)。
  4. 计算每列数字的总和(需要一个列总和计数器)。
  5. 将二维数组打印到屏幕上。
  6. 在每行末尾打印每行的总和。
  7. 在每列末尾打印每列的总和。

假设:两个总和都没有被打印。 (例如,列总和的总和。)

生成随机数

Google 在这方面很有帮助。尝试使用 Google 搜索:

generate random integers C

您会找到很多帮助,特别是有关 rand() 的提示功能。修改Google搜索:

generate random integers C rand()

此搜索找到了一个很棒的资源:http://www.cplusplus.com/reference/clibrary/cstdlib/rand/

打印信息

同样,Google 搜索可以提供帮助:

print information on the screen in C

这会产生:http://www.daniweb.com/software-development/c/threads/9688

printf功能看起来很方便。了解更多相关信息:

printf C

这会产生一个熟悉的站点:http://www.cplusplus.com/reference/clibrary/cstdio/printf/

开发

如果你真的想让你的教授“惊叹”:

  1. 确定程序中最有可能发生变化的部分并使其保持不变。
  2. 将程序分成多个逻辑区域(称为函数)。
  3. 使用有意义的变量名称。是 rc可能代表行和列,但需要花费时间来拼写 rowcolumn ,它将使任何阅读您代码的人不必进行猜测或阅读代码来发现其真正用途。
  4. 告诉你的教授 qqqqq可以使用更好的名字。甚至推荐一个。

例如:

#include <stdio.h>

/* Subject to change; only change it in one spot. */
#define MAX_ROWS 6
#define MAX_COLS 8

#define MIN_RANDOM_NUMBER 1
#define MAX_RANDOM_NUMBER 15

/** Returns a number between MIN_RANDOM_NUMBER and MAX_RANDOM_NUMBER. */
int randomNumber() {
return 0; /* FIX ME to use rand() and the modulus operator. */
}

int main( int argc, char *argv[] ) {
int qqqqq[MAX_ROWS][MAX_COLS];

/* FIX ME: Move these variables into the display function. */
int sumRows = 0;
int sumCols = 0;

/* Use different random numbers each time the program runs. */
seedRandomNumber();

/* Initialize the array with random numbers. */
for( int row = 0; row < MAX_ROWS; row++ ) {
for( int col = 0; col < MAX_COLS; col++ ) {
qqqqq[row][col] = randomNumber();
}
}

/* Display the array to the screen along with the sum totals. */
display( qqqqq );
}

请注意,您可以做出选择。

您可以通过sumRows变量进入 display函数,或者您可以编写display调用函数calculateSumRows本身。我的偏好是始终简化函数原型(prototype)。即减少参数数量。它使 future 的改变变得更容易。

所以写display就像这样:

void display( int randomValues[MAX_ROWS][MAX_COLS] ) {
int sumCols = 0;

for( int row = 0; row < MAX_ROWS; row++ ) {
/* FIX ME: Write the calculateSumCols function. */
sumCols = calculateSumCols( randomValues, row );

for( int col = 0; col < MAX_COLS; col++ ) {
/* FIX ME: Use printf here to display the value at this row/column. */
}
}

/* FIX ME: Use printf here to display sumRows. */
for( int col = 0; col < MAX_COLS; col++ ) {
/* FIX ME: Use printf here to display the value of the rows. */
printf( "%d ", calculateSumRows( randomValues, col ) );
}
}

这应该可以帮助您开始。

请注意,您可以在此处进行许多简化和优化。忘记他们。首先获取代码,使其真正起作用。代码运行后,保存它。甚至制作一个备份副本。

然后开始改变它。看看是否可以删除变量。也许您甚至可以删除一些 for循环。如果您犯了错误,您可以随时引用备份副本。最终您的“备份”副本将成为“源代码存储库”。

关于c - 在 C 中使用数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5546321/

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