#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;
}
}
}
}
(首先,我对编程完全陌生。我在大学开始学习C编程语言课程才几天。所以,我还不知道很多东西。)
说到问题:我必须进行编码,要求用户在二维数组中提供输入。然后它打印数组并要求用户在数组中搜索值。 主要目标是为“搜索”部分创建另一个功能。
但是我无法将数组传递给函数。不知道问题是什么。请帮我解决这个问题。
首先,将 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;
}
你的问题的解决方案你需要学习语法,只有你的逻辑是正确的