编写函数zhuanz(int (*p)[4]) 用行指针作参数实现矩阵转置

/*在主函数中定义整型数组a[4][4],从键盘输入值赋给数组元素后,调用zhuanz函数将a数组转置,并输出转置后的数组。*/

#include
#include
main()
{/************found************/

}
zhuanz(int (*p)[4])
{/************found************/

}/*萌新崩溃,还有就是*(p)[4]和*p[4]什么区别,,*/

c++

1个回答

#include<stdio.h> 
#include<stdlib.h>

void zhuanz(int(*p)[4])
{
    for (int i = 0; i < 4; i++)
        for (int j = 0; j <= i; j++)
        {
            int t = p[i][j];
            p[i][j] = p[j][i];
            p[j][i] = t;
        }
}
int main()
{
    int a[4][4];
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
            scanf("%d", &a[i][j]);
    zhuanz(a);
    for (int i = 0; i < 4; i++)
    {
        for (int j = 0; j < 4; j++)
            printf("%d ", a[i][j]);
        printf("\n");
    }
    return 0;
}

*(p)[4]和*p[4]什么区别
一个是指针的数组,也就是4个指针,一个是数组的指针,也就是只有一个指针。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
矩阵转置用指针作为函数参数,为什么输出结果这么奇怪?

#include <stdio.h> #include <stdlib.h> #define N 3 #define M 3 /*238-4.编写一个函数(参数用指针)将一个3×3矩阵转置。*/ void matrixtranspose(int (*p)[M],int(*p1)[M]) { int i,j; for(i=0;i<N;i++) { for(j=0;j<M;j++) { *(*(p1+j)+i)=*(*(p+i)+j); } } } void display(int (*p)[M]) { int i,j; for(i=0;i<N;i++) { for(j=0;j<M;j++) { printf("%2d",*(*(p+i)+j)); } printf("\n"); } } int main() { int i,j,(*p)[M],a[N][M]={0},(*p1)[M]; for(i=0;i<N;i++) { for(j=0;j<M;j++) { scanf("%d ",&a[i][j]); } } p=a; display(p); p1=a; matrixtranspose(p,p1); display(p1); return 0; } ![图片说明](https://img-ask.csdn.net/upload/201912/01/1575191572_284980.png) ``` ```

一个矩阵转置的问题,错在哪里?

#define M 4 #include <stdio.h> int main() { int a[M][M]={{1,2,3,4},{5,6,7,8},{9,10,11,12},{13,14,15,16}}; int i,j; for(i=0;i<M;i++) { for(j=0;j<M;j++) printf("%d\t", a[i][j]); printf("\n"); } for(i=0;i<M;i++) { for(j=0;j<M;j++) { int t=a[i][j]; a[i][j]=a[j][i]; a[j][i]=t; } } for(i=0;i<M;i++) { for(j=0;j<M;j++) printf("%d\t", a[i][j]); printf("\n"); } return 0; }

指针变量作为函数参数

想知道swap函数中*p1与*p2交换了,但主函数中a与b为什么交换了,只知道*p1和*p2交换后p1和p2指向地址中的对象交换了,但为什么a与b还能交换啊![图片](https://img-ask.csdn.net/upload/201711/18/1510965723_257218.jpg)

C语言:运用指针,输出3*3矩阵的转置阵。大佬们帮忙看看哪里出问题了

``` #include "stdafx.h" #include <stdio.h> int _tmain(int argc, _TCHAR* argv[]) { void fun(int *x); int a[3][3],i; int *p=&a[0][0]; printf("请输入一个整形矩阵:"); for(i=0;i<3;i++) { scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]); } fun(p); printf("输出转置矩阵:\n"); for(i=0;i<3;i++) { printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]); } return 0; } void fun(int *x) { int m,n,s; for(m=0;m<3;m++) { for(n=0;n<3;n++) { s=*(x+3*m+n); *(x+3*m+n)=*(x+3*n+m); *(x+3*n+m)=s; } } } ``` 输入:1 2 3 4 5 6 7 8 9 输出:1 2 3 4 5 6 7 8 9 结果依然是原矩阵,是哪一步出问题了呢?

自定义函数,要用到指针,怎么编写呢?

编写一个求3个学生的各科平均成绩和总成绩的程序,每个学生有4科成绩,学生成绩存放在a数组中,函数原型: void Ave_Sum(float array[][4], int n, int *ave, int *sum),n为学生数。 其中a数组的矩阵表示为 float a[3][4] = { { 65,67,70,60 }, { 80,87,90,81 }, {90, 99,100,98} };

一个c++指针的问题,要求编写一个函数

有这样一个题,要求编写一个函数,以char指针数组和数组中的指针数量作为参数,返回最长字符串的地址。我想请问这个函数的返回值的类型是什么呢?也就是说在声明函数时函数类型应该是 **char *** 还是其他呢?因为我认为 **char *** 指的是返回一个指向单个字符的指针而不是指向字符串的指针,而且这个函数怎么编写呢?以下是我写的源代码,虽然通过了编译,但是在运行时崩溃了 ** **char*** maxn( **char *** arr[],int len) { **char** ***max;** max=arr[0]; for(int i=1;i<len;i++) max=(strlen(max)>strlen(arr[i]))?max:arr[i]; return max; }** 还有,在请求动态分配一个指向字符串的指针数组时,应该是 **(char *) * pt = new (char *) [len]** 还是 (char) * pt = new char [len] 呢,小弟是新手,各位高手勿喷啊

刚学C,写了一个用指针作为参数的函数返回最大值,无法执行

![图片说明](https://img-ask.csdn.net/upload/201711/19/1511100183_536917.png) ![图片说明](https://img-ask.csdn.net/upload/201711/19/1511100192_760210.png) ![图片说明](https://img-ask.csdn.net/upload/201711/19/1511100198_220637.png) 新手入门,多谢大家

指向函数的指针与指向二维数组的指针的运用

#include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> void main() { int *search( int *p); int score[3][4] = {66,55,44,88,66,77,88,99,99,88,88,89}; int (*ptr)[4] = score; for(int i = 0;i < 3;i++) { int *p = search(*(ptr + i)); if(p != NULL) { for(int j = 0;j < 4;j++) { printf("%d ",*( p + j) ); } printf("\n"); } } system("pause"); } int *search(int *p) { int *t = NULL; for( int i = 0;i < 4;i++) { if(*(p + i) < 60) { t = p; } return t; } } 为什么没有输出结果,哪儿错了?

二维数组列数由用户输入,该怎样在定义函数时传入二维数组作为函数参数?

![图片说明](https://img-ask.csdn.net/upload/202004/08/1586314740_244236.png) 编写一个矩阵转置函数,矩阵的行数和列数在程序中由用户输入 ``` #include <iostream> using namespace std; /* run this program using the console pauser or add your own getch, system("pause") or input loop */ void matrixTranspose(int (*a)[cols],int rows,int cols) //矩阵转置函数 /*二维数组作为函数参数必须将列数写入形式参数中, 二维数组的作为函数参数的传入方法: 1.int sum_arr(int a[N][N],int size)size的值是行数,二维数组可以看作是 元素为数组的一维数组 example:C++.P207 2.int sum_arr(int (*a)[cols],int size) 两种方法函数中调用都要用a[i][j] 数组的长度也要作为参数传入,不在函数的内部定义大小*/ { int b[N][N]={0}; int i=0,j=0; for(i=0;i<N;i++) { for(j=0;j<N;j++) { b[j][i]=a[i][j]; } } for(i=0;i<N;i++) { for(j=0;j<N;j++) { a[i][j]=b[i][j]; } } cout<<"转置后的矩阵"<<endl; for(i=0;i<rows;i++) { for(j=0;j<cols;j++) { cout<<a[i][j]<<" "; } cout<<endl; } } int main(int argc, char** argv) { int rows=0,cols=0; int i=0,j=0; cout<<"请输入行数和列数"<<endl; cin>>rows>>cols; int a[rows][cols]={0}; cout<<"请输入矩阵元素"<<endl; for(i=0;i<rows;i++) { for(j=0;j<cols;j++) { cin>>a[i][j]; cout<<a[i][j]<<" "; } cout<<endl; } matrixTranspose(a,rows,cols); return 0; } ```

请各位查看一下c 语言用指针转置为什么失败

我现在在做矩阵转置作业,可是我的转置方法无法成功,请问哪里有问题。 在转置transposeMar题型那里 ``` #include <stdio.h> #include<string.h> #include<stdlib.h> #include<time.h> #define ROWS 5 #define COLS 5 // int random_number = rand() % range + min void fillMatrix(int matrix[ROWS][COLS]) { srand(time(NULL)); for(int i =0;i<ROWS;i++) { for(int j=0;j<COLS;j++) { matrix[i][j]= rand()%100; } } } void printMatrix(int matrix[ROWS][COLS]) { for(int i =0;i<ROWS;i++) { for(int j=0;j<COLS;j++) { printf("%d ",matrix[i][j]); } printf("\n"); } } **void transposeMatrix (int matrix[ROWS][COLS]) { int tmp, i ,j; int *p; p=&matrix[0]; for (i = 0; i < ROWS; i++) { for (j = 0 ; j < COLS; j++) { tmp = *(p + 5* i + j); *(p + 5 * i + j) = *(p + 5 * j + i); *(p + 5* j + i) = tmp; } } }** void multiplyMatrix(int m1[2][COLS],int m2[ROWS][COLS],int result[ROWS][COLS]) { for(int i =0;i<ROWS;i++) { for(int j=0;j<COLS;j++) { int result_d=0; for(int k=0;k<COLS;k++) { result_d=result_d+m1[i][k]*m2[k][j]; } result[i][j]=result_d; } } } int main() { int matrix[ROWS][COLS]; fillMatrix(matrix); printMatrix(matrix); transposeMatrix(matrix); printMatrix(matrix); int matrix2[2][COLS]={0,1,2,3,4,5,6,7,8,9}; int result[ROWS][COLS]; multiplyMatrix(matrix2, matrix, result); printMatrix(result); return 0; } ```

levmar 库 dlevmar_dif函数第一个参数使用成员函数指针报错

使用levmar库通过LM算法求解非线性最小二乘。 c++版本的函数 int dlevmar_dif( void (*func)(double *p, double *hx, int m, int n, void *adata), /* functional relation describing measurements. double *p, /* I/O: initial parameter estimates. On output contains the estimated solution */ double *x, /* I: measurement vector. NULL implies a zero vector */ int m, /* I: parameter vector dimension (i.e. #unknowns) */ int n, /* I: measurement vector dimension */ int itmax, /* I: maximum number of iterations */ double opts[5]) 第一个参数是函数指针,直接用函数赋值可以运行。例如 void a(double*,double*,int,int,void*); dlevmar_dif(a............); 但是使用类成员函数指针就会报错。例如 class A { public: A{}; void a(double*,double*,int,int,void*); }; A test; void (A::*a_ptr)(double*,double*,int,int,void*)=&A::a; dlevmar_dif(test.*a_ptr ……………… ); 就会报错 invalid use of non-static number function. 请问这是因为普通函数指针和类成员函数指针有什么本质的区别吗? 或者推荐我一个好用的LM算法库也可以。 谢谢!

C语言调用函数实现矩阵自乘

各位前辈,小弟新学C语言,怎么也调试不过,不知道哪里出了问题,请问我该怎么调试? 调用void SelfMul(int A1[][3],int A2[][3],int n)实现3阶矩阵的乘法 #include<stdio.h> //void SelfMul(int A1[][maxSize],int A2[][maxSize],int n) void SelfMul(int A1[][3],int A2[][3],int n) { int s=0; for(int i=0;i<n;i++) for(int j=0;j<n;j++) { A2[i][j]=0; for(int k=0;k<n;k++) A2[i][j]=A2[i][j]+A1[i][k]*A1[k][j]; printf("%d ",A2[i][j]); if(++s%3==0)printf("\n"); } } int main() { int A1[][3]={{0,1,0},{0,0,1},{1,1,0}}; int A2[3][3]; // int s=0; SelfMul(A1[][3],A2[][3],3); //编译问题出错提示所在行 /* for(int m=0;m<3;m++) for(int b=0;b<3;b++) { printf("%d ",A2[m][b]); if(++s%3==0)printf("\n"); } */ return 0; } 编译不通过,提示error C2059: syntax error : ']'

c语言简单题,求矩阵的转置矩阵

![图片说明](https://img-ask.csdn.net/upload/201901/04/1546611499_210346.png) 我的答案: ``` #include <stdio.h> #define N 10 void Transpose(int (*a)[N], int n); void Swap(int *x, int *y); void InputMatrix(int (*a)[N], int n); void PrintMatrix(int (*a)[N], int n); void InputMatrix(int (*a)[N], int n) { int i,j; for(i = 0;i < n ;i++) { for(j = 0;j < n; j++) { scanf("%d",&a[i*n + j]); } } } void Transpose(int (*a)[N], int n) { int i,j; for(i = 0;i < n ;i++) { for(j = 0;j < n; j++) { Swap(&a[i*n + j], &a[j*n + i]); } } } void Swap(int *x, int *y) { int temp; temp = *x; *x = *y; *y = temp; } PrintMatrix(int (*a)[N], int n) { int i,j; for(i = 0;i < n ;i++) { for(j = 0;j < n ; j++) { printf("%d\t", *a[i*n + j]); } printf("\n"); } } int main() { int n,s[N][N]; printf("Input n:"); scanf("%d",&n); printf("Input %d*%d matrix:\n",n,n); InputMatrix( s, n); Transpose( s, n); printf("The transposed matrix is:\n"); PrintMatrix( s, n); return 0; } ``` 请问哪里错了?该怎么改?

填空完善程序,用行指针实现求一个二维数组四周元素的平均值。源程序保存为tk12_1.c。

#include "stdio.h" #define M 4 #define N 5 float fun(int (*p)[N],int m) { int i,j,k=0; float sum,ave; sum=0; for(i=0;i<m;i++) for(j=0;j<N;j++) if /************found************/ (i==0||i==_________||j==0||j==____________) { sum+=p[i][j]; k++; } ave=sum/k; return ave; } main() { int a[M][N]={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}}; int i,j; float ave; for(i=0; i<M;i++) { for(j=0;j<N;j++) printf("%4d",a[i][j]); printf("\n"); } /************found************/ ave=___________________; printf("average=%.2f\n",ave); system("pause"); }

C中指向double型的指针作形参,在运算编译的时候报错,不知道原因?

本题的实现要求用函数实现,主函数只负责进行函数调用。函数的参数要求全部用到的情况是:  用数组名作函数参数;  用指向数组元素的指针变量作函数参数;  用指向一维数组的指针变量作函数参数; 题目:输入两个行、列数相同的矩阵(实际上是二维数组)A、B,以矩阵的方式分别输出A、B;求矩阵的和并输出;求出每个矩阵中的最大值及其位置;求出每个矩阵中绝对值最大的元素及其位置。下面的各要求通过编写函数实现: ① 输入矩阵(实际上是二维数组); ② 输出矩阵; ③ 求出两个矩阵的和。设A=(aij)m×n,B=(bij)m×n,则C=A+B=(cij)m×n,cij= aij+ bij; ④ 求矩阵中的最大值及其位置; ⑤ 求矩阵中绝对值最大的元素及其位置。 # 程序一直没有编译成功 附上报错图 ![图片说明](https://img-ask.csdn.net/upload/201901/06/1546704478_924396.png) ``` #include<stdio.h> #define M 4 #define N 4 int input_A(double a[][N]) { int j,k; printf("Please input A:\n"); for(j=0;j<M;j++) for(k=0;k<N;k++) { scanf("%5d",&a[j][k]); } } int input_B(double b[][N]) { int j,k; printf("Please input B:\n"); for(j=0;j<M;j++) for(k=0;k<N;k++) { scanf("%5d",&b[j][k]); } } int output(double a[][N],double b[][N]) { int j,k; printf("output A:\n"); for(j=0;j<N;j++) { for(k=0;k<N;k++) { printf("%5d",a[j][k]); } printf("\n"); } printf("output B:\n"); for(j=0;j<N;j++) { for(k=0;k<N;k++) { printf("%5d",b[j][k]); } printf("\n"); } } double sum(double *p,double *q,double *c[N]) { int j,k; double sum; for(j=0;j<N;j++) for(k=0;k<N;k++) { c[j][k]=*(*(p+j)+k)+*(*(q+j)+k); } for(j=0;j<N;j++) for(k=0;k<N;k++) { sum=sum+*(*(c+j)+k); } printf("总和为%lf",sum); } int max(double *p,double *q) { double *ma,*mb; int j,k,jm,km; ma=p;mb=q; for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(*(*(p+j)+k)>*ma) { jm=j; km=k; *ma=*(*(p+j)+k); } } } printf("A矩阵中最大值为%lf,位置:%d行%d列\n",*ma,j+1,k+1); for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(*(*(q+j)+k)>*mb) { jm=j; km=k; *mb=*(*(q+j)+k); } } } printf("B矩阵中最大值为%lf,位置:%d行%d列\n",*mb,j+1,k+1); } int abs_max(double a[][N],double b[][N]) { double *ma,*mb; int j,k,jm,km; ma=a[0][0];mb=b[0][0]; for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(((a[j][k]>=0)?a[j][k]:-a[j][k])>*ma) { jm=j; km=k; *ma=a[j][k]; } } } printf("A矩阵中绝对最大值为%lf,位置:%d行%d列\n",*ma,j+1,k+1); for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(((b[j][k]>=0)?b[j][k]:-b[j][k])>*mb) { jm=j; km=k; *mb=b[j][k]; } } } printf("B矩阵中绝对最大值为%lf,位置:%d行%d列\n",*mb,j+1,k+1); } main() { double A[M][N],B[M][N],C[M][N]; input_A(A); input_B(B); output(A,B); sum(A,B,C); max(A,B); abs_max(A,B); } ``` 新手一枚 谢谢大佬们指教 下面是根据评论区大神建议修改后的代码: ``` #include<stdio.h> #define M 4 #define N 4 int input_A(double a[][N]) { int j,k; printf("Please input A:\n"); for(j=0;j<M;j++) for(k=0;k<N;k++) { scanf("%lf",&a[j][k]); } } int input_B(double b[][N]) { int j,k; printf("Please input B:\n"); for(j=0;j<M;j++) for(k=0;k<N;k++) { scanf("%lf",&b[j][k]); } } int output(double a[][N],double b[][N]) { int j,k; printf("output A:\n"); for(j=0;j<N;j++) { for(k=0;k<N;k++) { printf(" %5.2lf ",a[j][k]); } printf("\n"); } printf("output B:\n"); for(j=0;j<N;j++) { for(k=0;k<N;k++) { printf(" %5.2lf ",b[j][k]); } printf("\n"); } } double sum(double (*p)[N],double (*q)[N],double (*c)[N]) { int j,k; double sum; for(j=0;j<N;j++) for(k=0;k<N;k++) { c[j][k]=*(*(p+j)+k)+*(*(q+j)+k); } for(j=0;j<N;j++) for(k=0;k<N;k++) { sum=sum+*(*(c+j)+k); } printf("总和为%.2lf\n",sum); } int max(double (*p)[N],double (*q)[N]) { double *ma,*mb; int j,k,jm,km; ma=*p;mb=*q; for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(*(*(p+j)+k)>*ma) { jm=j; km=k; ma=*(p+j)+k; } } } printf("A矩阵中最大值为%lf,位置:%d行%d列\n",*ma,jm+1,km+1); for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(*(*(q+j)+k)>*mb) { jm=j; km=k; mb=*(q+j)+k; } } } printf("B矩阵中最大值为%lf,位置:%d行%d列\n",*mb,jm+1,km+1); } int abs_max(double a[][N],double b[][N]) { double *ma,*mb; int j,k,jm,km; ma=&a[0][0];mb=&b[0][0]; for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(((a[j][k]>=0)?a[j][k]:-a[j][k])>*ma) { jm=j; km=k; ma=&a[j][k]; } } } printf("A矩阵中绝对最大值为%lf,位置:%d行%d列\n",*ma,jm+1,km+1); for(j=0;j<N;j++) { for(k=0;k<N;k++) { if(((b[j][k]>=0)?b[j][k]:-b[j][k])>*mb) { jm=j; km=k; mb=&b[j][k]; } } } printf("B矩阵中绝对最大值为%lf,位置:%d行%d列\n",*mb,jm+1,km+1); } main() { double A[M][N],B[M][N],C[M][N]; input_A(A); input_B(B); output(A,B); sum(A,B,C); max(A,B); abs_max(A,B); } ``` 可以_正常运行_

类中const函数的返回值问题

我写了一个matrix类,其中定义了一个二维指针int **p用来表示这个矩阵,现在我需要些一个下标操作符的重载,但是他会报错。 const int *&matrix::operator[](const int n) const { return p[n]; } 这个函数返回一个一维指针引用。但是我不知道错在哪儿了。 但是如果把返回引用改成返回一维指针本身,也就是如下所示,就没问题了。为什么呢??哪个大神来解释下。 const int *matrix::operator[](const int n) const { return p[n]; }

求大神帮帮忙,小妹感激不尽

按如下函数原型编程从键盘输入一个m行n列的二维数组,然后计算数组中元素的最大值及其所在的行列下标值。其中,m和n的值由用户键盘输入。已知m和n的值都不超过10。 void InputArray(int *p, int m, int n); int FindMax(int *p, int m, int n, int *pRow, int *pCol); 输入提示信息: "Input m, n:" "Input %d*%d array:\n" 输入格式:"%d,%d" 输出提示信息和格式:"max = %d, row = %d, col = %d\n" #include <stdio.h> #define M 10 #define N 10 void InputMatrix(int *p, int m, int n); int FindMax(int *p, int m, int n, int *pRow, int *pCol); int main() {                   int a[M][N], m, n, row, col, max;     printf("Input m, n:");     scanf("%d,%d", &m, &n);     InputMatrix(*a, m, n);     max = FindMax(*a, m, n, &row, &col);     printf("max = %d, row = %d, col = %d\n", max, row, col);     return 0; }               /* 函数功能:输入m*n矩阵的值 */ void InputMatrix(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 * n + j]);         }     } }               /* 函数功能:在m*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 * n + j] > max)             {                               max = p[i * n + j];                 *pRow = i;              /*记录行下标*/                 *pCol = j;              /*记录列下标*/             }         }     }     return max; }               那么这边小妹就看不懂了,在输入m*n矩阵的函数中在函数名中定义了一个指针变量p可以直接存储数组吗?指针不一般存储一个数的地址吗?可以存储一个数组的地址吗? 求大神赐教,小妹感激不尽

二级指针创建二维数组

1) 编写函数CreateMatrix( int **a,int n, int m),生成一个n行、m列的矩阵,矩阵中的元素由随即函数rand()生成(范围1~99)。

【c语言】2维数组求平均值,指针出问题了

double average(double (*p)[],double *q,int n,int m) { int i,j; double NU,AE;//每列总和与每行总和 for(i=0;i<n;i++) { for(NU=0,j=0;j<m;j++) { NU+=(*p+i)[j];//每列的和 } q[i]=NU/m;//每行的平均值 AE+=NU;//每行的和 } return AE/(n*m);//总平均值 } ``` ``` 第一行的平均值没错!第2行开始的平均值有错! 猜测NU+=(*p+i)[j];这出错了!试过NU+=p[i][j];无法编译! 也是个改参数!把(*p)[]改成**p,把NU+=(*p)[j]改成NU+=(*(*p+i)+j); 无法编译! 需求是求2次平均值! 1个是行的平均值, 1个是总平均值!

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

实现简单的文件系统

实验内容: 通过对具体的文件存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。 要求: 1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个简

MIPS单周期CPU-组成原理实验-华中科技大学

使用logisim布线完成的MIPS单周期CPU,可支持28条指令。跑马灯的代码已经装入了寄存器,可以直接开启时钟运行。

2019数学建模A题高压油管的压力控制 省一论文即代码

2019数学建模A题高压油管的压力控制省一完整论文即详细C++和Matlab代码,希望对同学们有所帮助

基于QT和OpenCV的五子棋实现源码

一个简单的五子棋应用,基于QT和OpenCV的实现源码,通过相邻棋子判断是否获胜,不包含人工智能算法,适合新手入门

Git 实用技巧

这几年越来越多的开发团队使用了Git,掌握Git的使用已经越来越重要,已经是一个开发者必备的一项技能;但很多人在刚开始学习Git的时候会遇到很多疑问,比如之前使用过SVN的开发者想不通Git提交代码为什么需要先commit然后再去push,而不是一条命令一次性搞定; 更多的开发者对Git已经入门,不过在遇到一些代码冲突、需要恢复Git代码时候就不知所措,这个时候哪些对 Git掌握得比较好的少数人,就像团队中的神一样,在队友遇到 Git 相关的问题的时候用各种流利的操作来帮助队友于水火。 我去年刚加入新团队,发现一些同事对Git的常规操作没太大问题,但对Git的理解还是比较生疏,比如说分支和分支之间的关联关系、合并代码时候的冲突解决、提交代码前未拉取新代码导致冲突问题的处理等,我在协助处理这些问题的时候也记录各种问题的解决办法,希望整理后通过教程帮助到更多对Git操作进阶的开发者。 本期教程学习方法分为“掌握基础——稳步进阶——熟悉协作”三个层次。从掌握基础的 Git的推送和拉取开始,以案例进行演示,分析每一个步骤的操作方式和原理,从理解Git 工具的操作到学会代码存储结构、演示不同场景下Git遇到问题的不同处理方案。循序渐进让同学们掌握Git工具在团队协作中的整体协作流程。 在教程中会通过大量案例进行分析,案例会模拟在工作中遇到的问题,从最基础的代码提交和拉取、代码冲突解决、代码仓库的数据维护、Git服务端搭建等。为了让同学们容易理解,对Git简单易懂,文章中详细记录了详细的操作步骤,提供大量演示截图和解析。在教程的最后部分,会从提升团队整体效率的角度对Git工具进行讲解,包括规范操作、Gitlab的搭建、钩子事件的应用等。 为了让同学们可以利用碎片化时间来灵活学习,在教程文章中大程度降低了上下文的依赖,让大家可以在工作之余进行学习与实战,并同时掌握里面涉及的Git不常见操作的相关知识,理解Git工具在工作遇到的问题解决思路和方法,相信一定会对大家的前端技能进阶大有帮助。

实用主义学Python(小白也容易上手的Python实用案例)

原价169,限时立减100元! 系统掌握Python核心语法16点,轻松应对工作中80%以上的Python使用场景! 69元=72讲+源码+社群答疑+讲师社群分享会&nbsp; 【哪些人适合学习这门课程?】 1)大学生,平时只学习了Python理论,并未接触Python实战问题; 2)对Python实用技能掌握薄弱的人,自动化、爬虫、数据分析能让你快速提高工作效率; 3)想学习新技术,如:人工智能、机器学习、深度学习等,这门课程是你的必修课程; 4)想修炼更好的编程内功,优秀的工程师肯定不能只会一门语言,Python语言功能强大、使用高效、简单易学。 【超实用技能】 从零开始 自动生成工作周报 职场升级 豆瓣电影数据爬取 实用案例 奥运冠军数据分析 自动化办公:通过Python自动化分析Excel数据并自动操作Word文档,最终获得一份基于Excel表格的数据分析报告。 豆瓣电影爬虫:通过Python自动爬取豆瓣电影信息并将电影图片保存到本地。 奥运会数据分析实战 简介:通过Python分析120年间奥运会的数据,从不同角度入手分析,从而得出一些有趣的结论。 【超人气老师】 二两 中国人工智能协会高级会员 生成对抗神经网络研究者 《深入浅出生成对抗网络:原理剖析与TensorFlow实现》一书作者 阿里云大学云学院导师 前大型游戏公司后端工程师 【超丰富实用案例】 0)图片背景去除案例 1)自动生成工作周报案例 2)豆瓣电影数据爬取案例 3)奥运会数据分析案例 4)自动处理邮件案例 5)github信息爬取/更新提醒案例 6)B站百大UP信息爬取与分析案例 7)构建自己的论文网站案例

深度学习原理+项目实战+算法详解+主流框架(套餐)

深度学习系列课程从深度学习基础知识点开始讲解一步步进入神经网络的世界再到卷积和递归神经网络,详解各大经典网络架构。实战部分选择当下最火爆深度学习框架PyTorch与Tensorflow/Keras,全程实战演示框架核心使用与建模方法。项目实战部分选择计算机视觉与自然语言处理领域经典项目,从零开始详解算法原理,debug模式逐行代码解读。适合准备就业和转行的同学们加入学习! 建议按照下列课程顺序来进行学习 (1)掌握深度学习必备经典网络架构 (2)深度框架实战方法 (3)计算机视觉与自然语言处理项目实战。(按照课程排列顺序即可)

C/C++跨平台研发从基础到高阶实战系列套餐

一 专题从基础的C语言核心到c++ 和stl完成基础强化; 二 再到数据结构,设计模式完成专业计算机技能强化; 三 通过跨平台网络编程,linux编程,qt界面编程,mfc编程,windows编程,c++与lua联合编程来完成应用强化 四 最后通过基于ffmpeg的音视频播放器,直播推流,屏幕录像,

三个项目玩转深度学习(附1G源码)

从事大数据与人工智能开发与实践约十年,钱老师亲自见证了大数据行业的发展与人工智能的从冷到热。事实证明,计算机技术的发展,算力突破,海量数据,机器人技术等,开启了第四次工业革命的序章。深度学习图像分类一直是人工智能的经典任务,是智慧零售、安防、无人驾驶等机器视觉应用领域的核心技术之一,掌握图像分类技术是机器视觉学习的重中之重。针对现有线上学习的特点与实际需求,我们开发了人工智能案例实战系列课程。打造:以项目案例实践为驱动的课程学习方式,覆盖了智能零售,智慧交通等常见领域,通过基础学习、项目案例实践、社群答疑,三维立体的方式,打造最好的学习效果。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

Python界面版学生管理系统

前不久上传了一个控制台版本的学生管理系统,这个是Python界面版学生管理系统,这个是使用pycharm开发的一个有界面的学生管理系统,基本的增删改查,里面又演示视频和完整代码,有需要的伙伴可以自行下

Vue.js 2.0之全家桶系列视频课程

基于新的Vue.js 2.3版本, 目前新全的Vue.js教学视频,让你少走弯路,直达技术前沿! 1. 包含Vue.js全家桶(vue.js、vue-router、axios、vuex、vue-cli、webpack、ElementUI等) 2. 采用笔记+代码案例的形式讲解,通俗易懂

linux“开发工具三剑客”速成攻略

工欲善其事,必先利其器。Vim+Git+Makefile是Linux环境下嵌入式开发常用的工具。本专题主要面向初次接触Linux的新手,熟练掌握工作中常用的工具,在以后的学习和工作中提高效率。

JAVA初级工程师面试36问(完结)

第三十一问: 说一下线程中sleep()和wait()区别? 1 . sleep()是让正在执行的线程主动让出CPU,当时间到了,在回到自己的线程让程序运行。但是它并没有释放同步资源锁只是让出。 2.wait()是让当前线程暂时退让出同步资源锁,让其他线程来获取到这个同步资源在调用notify()方法,才会让其解除wait状态,再次参与抢资源。 3. sleep()方法可以在任何地方使用,而wait()只能在同步方法或同步块使用。 ...

java jdk 8 帮助文档 中文 文档 chm 谷歌翻译

JDK1.8 API 中文谷歌翻译版 java帮助文档 JDK API java 帮助文档 谷歌翻译 JDK1.8 API 中文 谷歌翻译版 java帮助文档 Java最新帮助文档 本帮助文档是使用谷

我以为我对Mysql事务很熟,直到我遇到了阿里面试官

太惨了,面试又被吊打

智鼎(附答案).zip

并不是完整题库,但是有智鼎在线2019年9、10、11三个月的试题,有十七套以上题目,普通的网申行测题足以对付,可以在做题时自己总结一些规律,都不是很难

Visual Assist X 破解补丁

vs a's'sixt插件 支持vs2008-vs2019 亲测可以破解,希望可以帮助到大家

150讲轻松搞定Python网络爬虫

【为什么学爬虫?】 &nbsp; &nbsp; &nbsp; &nbsp;1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到! &nbsp; &nbsp; &nbsp; &nbsp;2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站 【课程设计】 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: 网络请求:模拟浏览器的行为从网上抓取数据。 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 &nbsp; 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! 【课程服务】 专属付费社群+每周三讨论会+1v1答疑

JavaWEB商城项目(包括数据库)

功能描述:包括用户的登录注册,以及个人资料的修改.商品的分类展示,详情,加入购物车,生成订单,到银行支付等!另外还有收货地址的和我的收藏等常用操作.环境(JDK 1.7 ,mysql 5.5,Ecli

Python数据挖掘简易入门

&nbsp; &nbsp; &nbsp; &nbsp; 本课程为Python数据挖掘方向的入门课程,课程主要以真实数据为基础,详细介绍数据挖掘入门的流程和使用Python实现pandas与numpy在数据挖掘方向的运用,并深入学习如何运用scikit-learn调用常用的数据挖掘算法解决数据挖掘问题,为进一步深入学习数据挖掘打下扎实的基础。

一学即懂的计算机视觉(第一季)

图像处理和计算机视觉的课程大家已经看过很多,但总有“听不透”,“用不了”的感觉。课程致力于创建人人都能听的懂的计算机视觉,通过生动、细腻的讲解配合实战演练,让学生真正学懂、用会。 【超实用课程内容】 课程内容分为三篇,包括视觉系统构成,图像处理基础,特征提取与描述,运动跟踪,位姿估计,三维重构等内容。课程理论与实战结合,注重教学内容的可视化和工程实践,为人工智能视觉研发及算法工程师等相关高薪职位就业打下坚实基础。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/26281 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,但是大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化 下载方式:电脑登录https://edu.csdn.net/course/detail/26281,点击右下方课程资料、代码、课件等打包下载

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

课程主要面向嵌入式Linux初学者、工程师、学生 主要从一下几方面进行讲解: 1.linux学习路线、基本命令、高级命令 2.shell、vi及vim入门讲解 3.软件安装下载、NFS、Samba、FTP等服务器配置及使用

2019 Python开发者日-培训

本次活动将秉承“只讲技术,拒绝空谈”的理念,邀请十余位身处一线的Python技术专家,重点围绕Web开发、自动化运维、数据分析、人工智能等技术模块,分享真实生产环境中使用Python应对IT挑战的真知灼见。此外,针对不同层次的开发者,大会还安排了深度培训实操环节,为开发者们带来更多深度实战的机会。

快速入门Android开发 视频 教程 android studio

这是一门快速入门Android开发课程,顾名思义是让大家能快速入门Android开发。 学完能让你学会如下知识点: Android的发展历程 搭建Java开发环境 搭建Android开发环境 Android Studio基础使用方法 Android Studio创建项目 项目运行到模拟器 项目运行到真实手机 Android中常用控件 排查开发中的错误 Android中请求网络 常用Android开发命令 快速入门Gradle构建系统 项目实战:看美图 常用Android Studio使用技巧 项目签名打包 如何上架市场

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问