我有一个令人不安的家庭作业任务,并希望指向正确的方向.
任务是开发一个C程序,完成以下任务:
main(),创建一个名为qqqqq的二维数组,可以容纳48个整数(6行,8列)qqqqq使用1到15之间随机生成的整数值进行填充.从哪里开始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 ( )
Run Code Online (Sandbox Code Playgroud)
接下来我该怎么办?
我感谢任何帮助或指导.
谢谢 - 詹姆斯
以下是我将如何解决这个问题:
算法是解决问题所需的一组步骤.手头的任务已经描述了问题,但通常用自己的话重新编写它是一种好习惯.(作为一个实际观点,您可以将您的话语传达给您的客户 - 在这种情况下,您的老师 - 并确认您对问题的理解是正确的.)
假设:不打印任何总和.(例如,列总和的总和.)
谷歌在这里很有帮助.尝试Google搜索:
generate random integers C
Run Code Online (Sandbox Code Playgroud)
你会发现很多帮助,特别是关于这个rand()功能的提示.修改Google搜索:
generate random integers C rand()
Run Code Online (Sandbox Code Playgroud)
此搜索找到了一个很好的资源:http://www.cplusplus.com/reference/clibrary/cstdlib/rand/
同样,Google搜索可以在此处提供帮助:
print information on the screen in C
Run Code Online (Sandbox Code Playgroud)
这得到:http://www.daniweb.com/software-development/c/threads/9688
这个printf功能看起来很方便.了解更多信息:
printf C
Run Code Online (Sandbox Code Playgroud)
这产生了一个熟悉的网站:http://www.cplusplus.com/reference/clibrary/cstdio/printf/
如果你真的想"哇"你的教授:
r,并c可能代表的行和列,但对于时间量才能拼出row和column,它会拯救任何人不必作出任何猜测或阅读代码发现它的真正用途阅读你的代码.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 );
}
Run Code Online (Sandbox Code Playgroud)
请注意,您可以选择.
您可以将sumRows变量传递给display函数,或者您可以编写display函数来调用calculateSumRows自身.我的偏好是始终简化函数原型.也就是说,减少参数的数量.它使未来的变化更容易.
所以写成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 ) );
}
}
Run Code Online (Sandbox Code Playgroud)
这应该让你开始.
请注意,您可以在此处进行一些简化和优化.忘记他们.获取代码,使其真正起作用.代码工作后,保存它.甚至可以制作备份副本.
然后开始改变它.看看你是否可以删除变量.也许你甚至可以删除一些for循环.如果您犯了错误,您可以随时参考备份副本.最终,您的"备份"副本将成为"源代码存储库".