C 如何检查数组中的特定值
我有一个2D数组,它包含一个X值,只要用户在那里下一个棋子 我想用以下代码计算X值:C 如何检查数组中的特定值,c,arrays,count,C,Arrays,Count,我有一个2D数组,它包含一个X值,只要用户在那里下一个棋子 我想用以下代码计算X值: void tableSum(int N, int table[N][N]) { int row,col; int count = 0; for(row=0; row<N; row++) { for(col=0;col<N;col++) { if(table[row][col] == 'x') { cou
void tableSum(int N, int table[N][N]) {
int row,col;
int count = 0;
for(row=0; row<N; row++) {
for(col=0;col<N;col++) {
if(table[row][col] == 'x') {
count++;
}
}
}
printf("\nNumber of X: %d\n", count);
}
void tableSum(int N,int table[N][N]){
int row,col;
整数计数=0;
对于(行=0;行
使用“x”结束输入
您使用“x”结束输入您的代码存在许多问题。如果我们暂时忘记这些问题并查看当前代码,则可以尝试找出代码的作用
在inputPosition
中,您似乎希望看到类似“A1B4C4x”
的输入,将其更改为“A1B4C4'\0'
,即将x
更改为零终止
那么这里:
i=0;
while(positions[i]!=0){
col=positions[i]-'A';
i++;
row=positions[i]-'1';
i++;
table[row][col]++; // <------ obs
}
这将在输入位置放置一个'x'
,而不是进行计数
此外,我建议您添加一些输入验证。目前,很容易使程序崩溃。例如,我可以将电路板大小设置为4,并输入“xxxxxx”
这将使您的程序在表
边界之外进行访问。您的代码存在许多问题。如果我们暂时忘记这些问题并查看当前代码,那么我们可以尝试找出代码在做什么
在inputPosition
中,您似乎希望看到类似“A1B4C4x”
的输入,将其更改为“A1B4C4'\0'
,即将x
更改为零终止
那么这里:
i=0;
while(positions[i]!=0){
col=positions[i]-'A';
i++;
row=positions[i]-'1';
i++;
table[row][col]++; // <------ obs
}
这将在输入位置放置一个'x'
,而不是进行计数
此外,我建议您添加一些输入验证。目前,很容易使程序崩溃。例如,我可以将电路板大小设置为4,并输入“xxxxxx”
这将使您的程序在表
边界之外进行访问。我想我是在社区的帮助下发现问题的
正如我在帖子中所说,我试图找到“x”值,但似乎我没有将其分配到表中。早些时候,我在表中填充了数字:如果没有棋子,则为0;如果用户放下棋子,则为其他数字
我现在使用以下代码,它工作得非常好:
void tableSum(int N, char table[N][N]) {
int row, col;
int count = 0;
for(row=0; row<N; row++) {
for(col=0;col<N;col++) {
if(table[row][col] != 0) {
count++;
}
}
}
printf("\nNumber of X: %d\n", count);
}
void tableSum(int N,char table[N][N]){
int row,col;
整数计数=0;
对于(row=0;row我想我只是在社区的帮助下发现了问题
正如我在帖子中所说,我试图找到“x”值,但似乎我没有将其分配到表中。早些时候,我在表中填充了数字:如果没有棋子,则为0;如果用户放下棋子,则为其他数字
我现在使用以下代码,它工作得非常好:
void tableSum(int N, char table[N][N]) {
int row, col;
int count = 0;
for(row=0; row<N; row++) {
for(col=0;col<N;col++) {
if(table[row][col] != 0) {
count++;
}
}
}
printf("\nNumber of X: %d\n", count);
}
void tableSum(int N,char table[N][N]){
int row,col;
整数计数=0;
对于(row=0;rowint table[N][N]
应该是char table[N][N]
,就我所见,您从未将值'x'
分配到表中的某个位置。我找不到它!您可以printf(“x |”)
但我看不到赋值。请指向您认为您在表中放置'x'
的那一行,您正在使用x
终止输入。因此,假设输入数组中仍保留该值,您最多将得到1个x
。inputPosition
函数看起来已损坏。您的输入是什么?可能是int table[N][N]
应该是char table[N][N]
据我所知,您从未将值'x'
分配到表中的某个位置。我找不到它!您是printf(“x |”)的
但我看不到作业。请指向您认为您在表中放置了'x'
的那一行,您正在使用x
终止输入。因此,假设输入数组中仍保留该行,您最多将得到1个x
。inputPosition
函数看起来已损坏。您的输入是什么?哦,我实际上想要的数一数一个棋子代表自己的次数。每0是“.|”,其他数字都是“x”。但把它改成“x”是个好主意,我甚至没想过!谢谢!哦。我实际上想数一数一个棋子代表自己的次数。每0是“.|”,其他数字都是“x”。但不改是个好主意o'x',我都没想过!谢谢!
void tableSum(int N, char table[N][N]) {
int row, col;
int count = 0;
for(row=0; row<N; row++) {
for(col=0;col<N;col++) {
if(table[row][col] != 0) {
count++;
}
}
}
printf("\nNumber of X: %d\n", count);
}