【发布时间】:2015-03-12 15:24:45
【问题描述】:
程序需要你输入行数和列数(m和n),在数组中输入元素,然后指定要查找的元素并找到它。
完成后,打印在(从 1 开始)找到的位置、行和列索引,同时指定元素被找到的次数。
我的程序的问题:它在显示正确位置的最终 printf 之前打印了几次错误数字。如果搜索的位置是在开始时,它不会显示任何内容。我用 printf 测试了第二个 for 循环,发现它只显示了输入数组的最后 2 个元素。
另一个问题是,每当我尝试输入大于 [2] [2] 的数组时都会出错,例如 [3][3]。
#include <stdio.h>
#include <stdlib.h>
main()
{
int m=0,n=0,tablou[m][n],i,j,e,nr=0,poz=0;
printf("Introduceti nr. de linii si nr. de coloane");
scanf("%d %d",&m,&n);
printf("Introduceti elementele in tablou\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
scanf("%d",&tablou[i][j]);
}
}
printf("Introduceti elementul pe care vreti sa-l gasiti");
scanf("%d",&e);
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
poz++;
if(tablou[i][j]==e)
{
printf("Elementul a fost gasit la pozitia %d fata de elementul 1, pe linia %d si coloana %d",poz,i+1,j+1);
nr++;
}
}
}
if(nr>0)
{
printf("\nElementul a fost gasit de %d ori",nr);
}
}
我看不出有什么问题,任何帮助将不胜感激,谢谢。
【问题讨论】: