//函数返回最大值，pRow和pCol分别返回最大值所在的行列下标

Input n: 3,4↙
Input 3*4 array:
1 2 3 4↙
5 6 7 8↙
9 0 -1 -2↙
max=9,row=2,col=0

#include
void InputArray(int *p, int m, int n)
{
int i,j

``````printf("Input %d*%d array:\n",m,n);
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&*(p+i)+j);
}
}
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
printf("%d ",*(p+i)+j);
if((j+1)%n==0)
printf("\n");
}
}
``````

}

int FindMax(int *p, int m, int n, int *pRow, int *pCol)

{

``````int i,j,max=p[0];

*pRow=0,*pCol=0;

for(i=0;i<m;i++)

{

for(j=0;j<n;j++)

{

if(*(p+i)+j>max)
{
max=*(p+i)+j;
*pRow=i;
*pCol=j;
}
}
}
return max;
``````

}

int main()
{

``````int p[10][10],pRow, pCol;

int m,n;
int max;
printf("Input m,n:\n");
scanf("%d,%d",&m,&n);
InputArray(*p,m,n);
max=FindMax(*p,m,n,&pRow,&pCol);
printf("max=%d,row=%d,col=%d\n",max,pRow,pCol);
``````

}

1个回答

1首先m和n需要输入<=10检测
2所有的寻址有问题，

``````for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&*(p+i)+j);   应该是 scanf("%d",p+i*n+j);
}
}
``````

``` #include"stdio.h" void length(char a[]) { printf("字符串的长度为%d\n",sizeof(a)-1); } void main() { char a[] = { 'a','b','c','d','e' ,'g','\0'}; char b[] = { 'b','c','d','h' ,'\0'}; length(a); length(b); while (1) { } } ```

console.log输出的数组与真实不一致

``` /*n元买n个兔子问题*/ function exhaustiveSearch(n) { cases=new Array(); rabbit = new Array(); rabbit["male"] = 0;//公兔数量 rabbit["female"] = 0;//母兔数量 rabbit["child"] = 0;//雏兔数量 // 公兔一只5元，则一定少于n/5只 for (rabbit["male"] = 0; rabbit["male"] < n / 5; rabbit["male"]++) { //母兔一只3元，则一定少于n/3只 for (rabbit["female"] = 0; rabbit["female"] < n / 3; rabbit["female"]++) { // 雏兔数量一定是n-母兔-公兔 for (rabbit["child"] = (n - rabbit["male"] - rabbit["female"]); rabbit["child"] < n; rabbit["child"]++) { // console.log("总数相等了"); if (rabbit["child"] % 3 == 0) { // console.log("小兔一元三只"); if (rabbit["male"] * 5 + rabbit["female"] * 3 + rabbit["child"] / 3 == n) { console.log(rabbit);//**输出** cases.push(rabbit); } } } } } // console.log(cases); return cases; } ``` 这是输出 ![图片说明](https://img-ask.csdn.net/upload/201709/10/1505022856_448744.png) 所以，为何上下的输出不一致呢

sizeof算出的数组大小怎么不对呢？

IDEA我输出数组，但是得到的结果都是内存地址，运行代码没有问题，看数组里面也有值

![图片说明](https://img-ask.csdn.net/upload/202003/28/1585368901_309095.jpg)![图片说明](https://img-ask.csdn.net/upload/202003/28/1585368911_338465.jpg)

java 用键盘输入初始化二维数组后，遍历每一行数组时，输出结果有问题

gdb调试二维数组输出不对的问题

![图片说明](https://img-ask.csdn.net/upload/202005/01/1588334681_852841.png) dp是一个二维数组，怎么打印的结果不一样。我的数组没有这么多零，通过指针他怎么出来这么多零。我感觉这两种方式结果应该是一样的呀，（直接p/d dp结果是正确的) 数组存的数为![图片说明](https://img-ask.csdn.net/upload/202005/01/1588334905_788521.png)

C++二维数组求和，输出不对，请大神帮忙看看

#include<iostream> using namespace std; int main() {int sum(int a[5][5],int b[5][5]); int i,j,g[5][5],h[5][5],d[5][5]; for(i=0;i<5;i++) {for(j=0;j<5;j++) { cin>>g[i][j]; } } cout<<endl; for(i=0;i<5;i++) { for(j=0;j<5;j++) { cin>>h[i][j]; } } cout<<"矩阵和"<<endl; d[i][j]=sum(g,h); for(i=0;i<5;i++) {for(j=0;j<5;j++) {cout<<d[i][j]<<" "; } cout<<endl; } return 0; } int sum(int a[5][5],int b[5][5]) { int c[5][5],i,j; for(i=0;i<5;i++) {for(j=0;j<5;j++) { c[i][j]=a[i][j]+b[i][j]; } } }![图片](https://img-ask.csdn.net/upload/201611/19/1479567225_810710.png)

mapreduce中转化数组格式出错误

public int[] StringToInt(String[] arrs){ int[] ints = new int[arrs.length]; for(int i=0;i<arrs.length;i++){ ints[i] = Integer.parseInt(arrs[i]); } return ints; } public void map(Object key, Text value, Context context) throws IOException, InterruptedException { //StringTokenizer itr = new StringTokenizer(value.toString()); String[] s=value.toString().split(""); int[]a=new int[s.length]; try{ a=StringToInt(s); } catch (Exception e) { System.err.println("错误"); }//转化为int类型的数组 为什么转化一下数组的格式汇出错误啊？

C语言最简单你的冒泡排序，数组输入输出就错了。。。。

#include<stdio.h> #include<memory.h> #define arraysize 5 //5个数字 int main() { int i,a,num; num=arraysize; int array[arraysize]; memset(array,'\0',sizeof(int)*arraysize); void BobbleSort(int array[],int n); while(num--) { scanf("%d",&a); array[i]=a; } for(i=0;i<arraysize;i++) //这个！！！for循环输出的数组为什么不是输入的数组值？？？ { printf("%d ",array[i]); } BobbleSort(array,arraysize); return 0; } void BobbleSort(int array[],int n) { int i,j,temp; /* for(i=0;i<arraysize;i++) //求数组长度 { printf("!!!%d\n",*(array++)); if(array[i]!='\0') { n++; } else break; } printf("--%d\n",n); */ for(i=n-1;i>0;i--) //冒泡排序 { for(j=0;j<i;j++) { if(array[j+1]>array[j]) { temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } for(i=0;i<n;i++) { printf("%d ",array[i]); } } ``` ```

def initialize(layer_dims): para={} L=len(layer_dims) for l in range(1,L): para['W'+str(l)]=np.random.randn(layer_dims[l],layer_dims[l-1])*0.01 para['b'+str(l)]=np.zeros((layer_dims[l],1)) return para def forward(X,layer_dims,para): cache={} L=len(layer_dims)-1 A_pre = X for l in range(1,L): Wl=para['W'+str(1)] bl=para['b'+str(l)] Zl = np.dot(Wl,A_pre)+bl assert(Zl.shape == (Wl.shape[0],A_pre.shape[1])) layer_dims = [12288, 20, 7, 5, 1] ``` X的维度是（12288，209） W1的维度应该是（20，12288）但是在用Wl.shape[0]输出时结果却是20 20 为什么shape[0]会有2个输出结果，Wl.shape[1]也有2个输出结果 ：12288 12288 然后在计算上面的代码段时就出现了 ![图片说明](https://img-ask.csdn.net/upload/202001/31/1580464520_6444.png)

C语言，结构体数组的引用问题

struct { char name[20]; int count; }man[]={ {"aaa",0}, {"bbb",0}, {"ccc",0} },human[10]; int main() { int i,j; for (i=0;i<=2;i++) { printf("第%d位投票，请输入候选人的名字:",i+1); scanf("%s",&human[i].name); for(j=0;j<=2;j++) { if("aaa"==human[i].name) { man[0].count+=1; } } } for(i=0;i<=2;i++) { printf("%s票数为:%d\n",man[i].name,man[i].count); } } ``` ``` 为什么man[0].count的值没有自增？

getElementsByTagName得到的数组，长度和内容不符

getElementsByTagName得到的数组，长度和内容不符 ``` <div id="a"> <p id="s1">woaijava</p> </div> <button onclick="judge()">你好</button> <script> function judge(){ var a = document.getElementsByTagName("p"); for(var idex in a){ console.log(a[idex].textContent); } } </script> ``` 按照理想应该输出一个woaijava，但是输出结果却不是一个，控制台输出数组长度是1，但是输出元素却不是却是两个woaijava和三个undefined

C语言调用abc(b,8);后数组元素为何没有改变

#include "stdio.h" void abc(int a[],int n) { int i,t; for(i=0;i<n;i++) { t=a[i]; a[i]=a[n-1-i]; a[n-1-i]=t; } } main() { int b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0; abc(b,8); // for(i=0;i<10;i++) // printf("%d",b[i]); for(i=6;i<10;i++) _ s+=b[i]; printf("%d\n",s);_ } /* 1.程序运行结果： 32 */==提问：调用abc(b,8);后数组元素为何没有改变成b[10]={8,7,6,5,4,3,2,1,9,10};呢？结果应该为22吧？

``` Pipe * findPipe(int keyNode, Pipe p[], int sz) { // int flag[100] = {0}; 每一次到调用新一次findPipe的时候，都会重新flag[100] = {0}，导致无法到达flag[2] == 2 int flag[100]; int count = 0; for (int i = 0; i < sz; i++) { cout << "new flag" << i << " " << flag[i] << endl;//debug use if (flag[i] == 2) { i++; } if ( p[i].node1 == keyNode ) { cout << i << endl; count++; flag[i]++; cout << "flag" << i << " " << flag[i] << endl;//debug use return findPipe(p[i].node2, p, sz); } else if ( p[i].node2 == keyNode ) { cout << i << endl; count++; flag[i]++;//mark cout << "flag" << i << " " << flag[i] << endl;//debug use return findPipe(p[i].node1, p, sz); } } if (count == 0) { return 0; } else { return p; } } ``` 输出结果是 flag0 0 flag1 0 1 flag1 1 flag0 1 0 flag0 2 flag0 1 0 flag0 2 flag0 1 0 flag0 2 flag0 1 ......... 我期望的效果是： 输入Pipe数组p, sz是数组的大小， keyNode是需要查找的值。增加一个flag[100]作为标记。当符合p[i].node1或者p[i].node2是要查找的keyNode值后，在flag[i]增加1作为标记。如果flag[i] = 2则要i++ 问题是：每次return findPipe()后进入新的循环时，new flag 0 1 我认为的是flag[i]应该保留上一轮的值，可能加过是1，可能没加过是0. 但是现在完全不对。 下方是全部代码 ``` #include <iostream> #include <string> #include <cstdlib> using namespace std; struct Pipe { string GDid; int node1; int node2; }; Pipe * findPipe(int, Pipe [], int); void display(Pipe *, int); Pipe * findPipe(int keyNode, Pipe p[], int sz) { int flag[100]; int count = 0; for (int i = 0; i < sz; i++) { cout << "new flag" << i << " " << flag[i] << endl; if (flag[i] == 2) { i++; } if ( p[i].node1 == keyNode ) { cout << i << endl; count++; flag[i]++; cout << "flag" << i << " " << flag[i] << endl; return findPipe(p[i].node2, p, sz); } else if ( p[i].node2 == keyNode ) { cout << i << endl; count++; flag[i]++; cout << "flag" << i << " " << flag[i] << endl; return findPipe(p[i].node1, p, sz); } } if (count == 0) { return 0; } else { return p; } } void display(Pipe *arr, int n) { for (int i = 0; i < n; i++) { cout << arr[i].node1 << " "; cout << arr[i].node2 << " "; } } int main() { Pipe GD10001 = {"GD10001", 29, 50}; Pipe GD20310 = {"GD20310", 29, 98}; Pipe GD70091 = {"GD70091", 98, 50}; Pipe GD30021 = {"GD30021", 50, 33}; Pipe GD45122 = {"GD45122", 98, 64}; Pipe GD27945 = {"GD27945", 33, 27}; Pipe GD94512 = {"GD94512", 27, 15}; Pipe GD87194 = {"GD87194", 33, 24}; Pipe GD70980 = {"GD70980", 15, 24}; Pipe GD65123 = {"GD65123", 64, 17}; Pipe GD28720 = {"GD28720", 17, 24}; Pipe GD23424 = {"GD23424", 24, 28}; Pipe GD86246 = {"GD86246", 17, 39}; Pipe GD67767 = {"GD67767", 39, 76}; Pipe GD88888 = {"GD88888", 76}; Pipe GD32223 = {"GD32223", 28}; Pipe GD123 = {"GD123", 12, 121}; Pipe GD456 = {"GD456", 121, 181}; Pipe GD789 = {"GD789", 181, 196}; Pipe Myarray[19] = {GD10001, GD20310, GD70091, GD30021, GD45122, GD27945, GD94512, GD87194, GD70980, GD65123, GD28720, GD23424, GD86246, GD67767, GD88888, GD32223, GD123, GD456, GD789}; int size = 19; int target = 98; Pipe *result = findPipe(target, Myarray, size); display(result, size); return 0; } ```

“亚马逊丛林里的蝴蝶扇动几下翅膀就可能引起两周后美国德州的一次飓风……” 这句人人皆知的话最初用来描述非线性系统中微小参数的变化所引起的系统极大变化。 而在更长的时间尺度内，我们所生活的这个世界就是这样一个异常复杂的非线性系统…… 水泥、穹顶、透视——关于时间与技艺的蝴蝶效应 公元前3000年，古埃及人将尼罗河中挖出的泥浆与纳特龙盐湖中的矿物盐混合，再掺入煅烧石灰石制成的石灰，由此得来了人...

C++11：一些微小的变化（新的数据类型、template表达式内的空格、nullptr、std::nullptr_t）

HashMap底层实现原理，红黑树，B+树，B树的结构原理 Spring的AOP和IOC是什么？它们常见的使用场景有哪些？Spring事务，事务的属性，传播行为，数据库隔离级别 Spring和SpringMVC，MyBatis以及SpringBoot的注解分别有哪些？SpringMVC的工作原理，SpringBoot框架的优点，MyBatis框架的优点 SpringCould组件有哪些，他们...

【阿里P6面经】二本，curd两年，疯狂复习，拿下阿里offer

《经典算法案例》01-08：如何使用质数设计扫雷（Minesweeper）游戏

《Oracle Java SE编程自学与面试指南》最佳学习路线图（2020最新版）