考虑:
#include <stdio.h>
#include <conio.h>
int arasrc(double a[][], int r, int c, double s);
int main()
{
double ara[3][3];
int r, c;
// 'ara' input
for(r = 0; r < 3; r++)
{
for(c = 0; c < 3; c++)
{
printf("\n\tEnter value for array (%d, %d): ", r + 1, c + 1);
scanf("%lf", &ara[r][c]);
}
}
// Printing the 'ara'
printf("\n\tArray = ");
for(r = 0; r < 3; r++)
{
for(c = 0; c < 3; c++)
{
printf("[ %6.2lf ]", ara[r][c]);
}
printf("\n\t\t");
}
// Searching in 'ara'
double s;
int found;
printf("\n\tEnter a value to search: ");
scanf("%lf", &s);
found = arasrc(ara, 3, 3, s);
if(found)
{
printf("\n\tFound at position (%d, %d).", (r + 1), (c + 1));
}
else
{
printf("\n\tNot found!");
}
getch();
return 0;
}
// Searching in 'ara'
int arasrc(double a[][], int r, int c, double s)
{
for(r = 0; r < 3; r++)
{
for(c = 0; c < 3; c++)
{
if(s == a[r][c])
{
return 1;
}
else
{
return 0;
}
}
}
}
我必须进行编码,要求用户在二维数组中提供输入。然后它打印数组并要求用户在数组中搜索值。 主要目标是为“搜索”部分创建另一个功能。
但是我无法将数组传递给函数。不知道问题是什么。请帮我解决这个问题。
首先,将 r 和 c 作为参数传递,然后将它们重用为本地循环迭代器是没有任何意义的。它们应该与传递的数组的大小相对应,或者它们不应该被声明为参数而是局部变量。
另请注意,
else { return 0; }
没有意义,否则程序将在循环的第一次迭代时离开该函数。
在现代 C 中,建议将二维数组传递给这样的函数:
int arasrc (int r, int c, double a[r][c], double s)
{
for(i = 0; i < r; i++)
{
for(j = 0; j < c; j++)
{
if(s == a[i][j])
{
return 1;
}
}
}
return 0;
}
用途:
arasrc(3, 3, ara, s);
包括数组大小。使用以下代码。
int arasrc(double a[][3], int r, int c, double s)
{
for(r = 0; r < 3; r ++)
{
for(c = 0; c < 3; c ++)
{
if(s == a[r][c])
{
return 1;
}
else
{
return 0;
}
}
}
}
用途:
#include <stdio.h>
#include <conio.h>
int arasrc(int a[3][3], int s)
{
for(int r = 0; r < 3; r++)
{
for(int c = 0; c < 3; c++)
{
if(s == a[r][c])
{
return 1;
}
}
}
}
int main()
{
int ara[3][3];
int r, c;
// 'ara' input
for(r = 0; r < 3; r++)
{
for(c = 0; c < 3; c++)
{
printf("\n\tEnter value for array (%d, %d): ", r + 1, c + 1);
scanf("%d", &ara[r][c]);
}
}
// Printing the 'ara'
printf("\n\tArray = ");
for(int i = 0; i < 3; i++)
{
for(int j = 0; j < 3; j++)
{
printf("%d", ara[i][j]);
}
printf("\n\t\t");
}
// Searching in ara
int s;
int found = 0;
printf("\n\tEnter a value to search: ");
scanf("%d", &s);
found = arasrc(ara, s);
if(found = 1)
{
printf("\n\tFound ");
}
else
{
printf("\n\tNot found!");
}
return 0;
}
这就是您问题的解决方案。您需要学习语法。只有你的逻辑是正确的。