我的代码的目的是在2D数组乘法表中找到a和b的乘积,并在其下面添加一个“ ^”。不确定该怎么做,这是我到目前为止所做的
#include <stdio.h>
int main(){
int i = 0,j = 0,a,b;
int array[15][15];
printf("Enter a value: ");
scanf("%d",&a);
printf("Enter another value: ");
scanf("%d",&b);
for (i = 0; i < 15; i++){
for (j = 0; j < 15; j++){
array[i][j] = (i + 1) * (j + 1);
printf("[%d]\t", array[i][j]);
}
printf("\n");
}
return 0;
}
答案 0 :(得分:0)
首先,您需要找到array[i][j] == a * b
的位置。您可以在分配给array[i][j]
之后立即执行此操作。
然后您需要保存该职位。
在打印换行符之后,您需要打印另一行如果,找到该值,然后将“标记”放置在正确的位置。
答案 1 :(得分:0)
您需要引入一个“标志”变量来告诉您是否找到了匹配项。此外,您需要一个变量来保存匹配的行索引。
类似的东西:
#include <stdio.h>
#include <stdlib.h>
// Use a define so it's easy to change size of the array
#define DIM 15
int main(){
int i = 0,j = 0,a,b;
int array[DIM][DIM];
int match = 0; // Match flag
int match_pos = 0; // Position of match
printf("Enter a value: ");
if (scanf("%d",&a) != 1) exit(1); // always check the value returned by scanf
printf("Enter another value: ");
if (scanf("%d",&b) != 1) exit(1);
printf("\n");
for (i = 0; i < DIM; i++){
for (j = 0; j < DIM; j++){
array[i][j] = (i + 1) * (j + 1);
printf("[%d]\t", array[i][j]);
// Do we have a match?
if (a*b == array[i][j])
{
// yes, set flag and save position
match = 1;
match_pos = j;
}
}
printf("\n");
// Did we have a match?
if (match)
{
// yes
match = 0; // clear flag
for (j=0; j < match_pos; ++j) printf("\t"); // print match_pos tab
printf(" ^\n"); // print the ^
}
}
return 0;
}