LX604 对角线置1 指针C++

文章讲述了如何在C++中实现一个名为setone的函数,该函数接收一维数组指针作为参数,将给定二维数组的对角线元素设置为1,同时保留其他元素不变。给出了相应的输入输出样例以及代码实现。
摘要由CSDN通过智能技术生成

题目描述

将二维数组的对对角线元素设置为1,但函数的参数是以一维数组的形式给出。

函数定义接口:

 

void setone(int n,int* p);

请实现该函数,使得下述程序可以正确运行。

裁判测试程序样例:

#include<iostream>

using namespace std;

#define N 10 void setone(int n,int* p);

int main() {

int a;

int m[N][N];

cin>>a;

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

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

cin>>m[i][j];

}

}

setone(a,&m[0][0]);

for(int i=0;i<a;++i)

{

for(int j=0;j<a;j++)

{

cout<<m[i][j]<<' ';

}

cout<<endl;

}

return 0;

} //将答案写在这里

输入格式

第一行给出一个整数n,3<n<10
接下来给出n行,每行n个数据,空格分隔

输出格式

将对角线上的元素置位1,其他数位保持不变,输出结果为n行n列,数据直接用一个空格分隔。

样例 #1

样例输入 #1

5
0 1 2 3 4
5 6 7 8 9
10 11 12 13 14
15 16 17 18 19
20 21 22 23 24

样例输出 #1

1 1 2 3 4 
5 1 7 8 9 
10 11 1 13 14 
15 16 17 1 19 
20 21 22 23 1 

提示

物理上每行元素的个数和逻辑上每行有效元素的个数是不相同的

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

void setone(int n, int* p) {
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
          if (i == j) {
                *(p + i * N + j) = 1;
            }
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值