Day 9

函数下

1.求矩阵每行元素的和

int sum_(int *p,int m,int n,int i){

int sum=0;

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

sum+=*(p+i*n+j);

}

return sum;

}

int main(){

int m,n;

cin>>m>>n;

int *p=new int[m*n];//动态分配

int *a=p;//保存首地址

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

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

cin>>*a;

a++;

}

}

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

cout<<sum_(p,m,n,i)<<endl;

}

delete[]p;//必须释放分配时的首地址

return 0;

}

2.使用strcmp函数

头文件<cstring>

if(strcmp(a.c_str(),b.c_str())>0)swap(a,b);

3.行索引 row 和列索引 col

4.若数组为

//常量二维数组

//变量模拟二维数组(用一维模拟二维)

int sum_(int *p,int m,int n,int i){

int sum=0;

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

sum+=*(p+i*n+j);

}

return sum;

}

5.用指针使char数组达到string的效果

const char* month[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};

6.逆置函数 reverse(v.begin(),v.end());

7.二级指针

int main(){

int a(0);

int *p;

int **pp;

p=&a; pp=&p;

cout<<**pp;

return 0;

}

8.

int main(){

int m,n;

cin>>m>>n;

while(m--){

int *a[n];

for(int i=0;i<n;i++){

a[i]=new int;//分配堆内存,合法化指针

cin>>*a[i];}

int all=calculate(a,n);

double aver=all*1.0/n;

cout<<all<<" ";

cout<<fixed<<setprecision(1)<<aver<<endl;

for(int i=0;i<n;i++){

delete a[i];//释放堆内存

a[i]=nullptr;//避免野指针

}

}

return 0;

}

9.指向函数的指针

int max(int a,int b)

int (*pf)(int ,int);//(*pf)()表示无参数函数

pf=max;

10.//exit(0)是c语言中终止程序运行的核心函数。

11.

c语言中分配动态内存

int *a,n; scanf(“%d”,&n); a=(int * )malloc(sizeof(int) * n);// 建立长度为n的动态整型数组 free(a);//释放动态内存。

全部评论

相关推荐

12-23 18:51
中南大学 Java
唉又萌混过关:是不是那种收钱盖实习章的机构?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务