- 主题:有没有什么简洁办法将数组的前m个元素往后移n位?
用cterm发表文章的话,就是换行容易乱
下次我用网页发
【 在 mango7788 的大作中提到: 】
: 1. 你能把你的 code 好好缩进一下吗?
: 2. ptr 是一个指针。你把指针挪了一个位置。
: 一个比方是 对于f(x),你搞了 x'=x-1
--
FROM 111.193.229.*
按照从后往前的顺序循环赋值即可
就是memmove()的源、目的有重叠时的情况,也就是说你在实现有重叠的memmove函数
--
修改:z16166 FROM 221.218.160.*
FROM 221.218.160.*
你去问chatgpt吧。以后这种级别的问题,不要来论坛问活人了。
问过一次chatgpt,你就会爱上它。
【 在 sqsl 的大作中提到: 】
: 前提是不使用临时数组暂存:
: 下面是通过指针整体移位:
:
: ...................
--
FROM 73.193.104.*
你用矩阵乘法不就好了,定义一个平移算符
当然这和采用中间变量,有异曲同工之处,不过可以重复使用
【 在 sqsl 的大作中提到: 】
: 前提是不使用临时数组暂存:
: 下面是通过指针整体移位:
:
: ...................
--
FROM 101.90.54.*
没有判断chatgpt是否胡说八道能力的人,不适合问chatgpt
而且问活人也没啥错误,不爱看不爱回的,可以不看不回。版规里没写着不能问基础问题
【 在 daiyue 的大作中提到: 】
: 你去问chatgpt吧。以后这种级别的问题,不要来论坛问活人了。
: 问过一次chatgpt,你就会爱上它。
:
--
FROM 221.218.160.*
#include <stdio.h>
#include <string.h>
void shiftArray(int arr[], int size, int m, int n) {
// 计算移动的字节数
size_t bytesToMove = (size - m) * sizeof(int);
// 将前m个元素往后移动n位
memmove(&arr[m + n], &arr[m], bytesToMove);
// 将移动后的位置填充为0或其他值
memset(&arr[m], 0, n * sizeof(int));
}
int main() {
int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int size = sizeof(arr) / sizeof(arr[0]);
int m = 5; // 前m个元素
int n = 3; // 往后移n位
shiftArray(arr, size, m, n);
// 打印移动后的数组
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
【 在 daiyue 的大作中提到: 】
: 你去问chatgpt吧。以后这种级别的问题,不要来论坛问活人了。
: 问过一次chatgpt,你就会爱上它。
:
--
FROM 114.242.62.*
我觉得前面回复的同学并没有很认真的回答问题。相比较而已,gpt4在处理这种问题上给人的体验要好很多。我个人也曾经问过基础问题,也遇到过有人回复(RTFM: Read the fucking manual)。
至于能否判定是否胡说八道,呵呵,谁也不是傻子。
【 在 z16166 的大作中提到: 】
: 没有判断chatgpt是否胡说八道能力的人,不适合问chatgpt
: 而且问活人也没啥错误,不爱看不爱回的,可以不看不回。版规里没写着不能问基础问题
:
--
FROM 73.193.104.*
跟是否傻子没关系,你得有专业知识,光靠常识是不能判断专业问题的。新手刚入门是没这个知识的
问题是简单,还是难,是相对于这个问问题的人来说的,不是相对于回答问题的人。
举个例子(以前好像举过):
我问chatgpt如何用C++代码获取win11控制面板中指纹识别、虹膜识别、PIN码等各种的开关状态。
它会给你来一大堆代码,看着好像很有道理。
实际上,微软没有提供相应的API来获取这各种安全验证方式的开关状态,必须得自己去逆它的代码,也就是undocumented。
【 在 daiyue 的大作中提到: 】
: 我觉得前面回复的同学并没有很认真的回答问题。相比较而已,gpt4在处理这种问题上给人的体验要好很多。我个人也曾经问过基础问题,也遇到过有人回复(RTFM: Read the fucking manual)。
: 至于能否判定是否胡说八道,呵呵,谁也不是傻子。
:
--
修改:z16166 FROM 221.218.160.*
FROM 221.218.160.*
“认真”这个也是有各种程度的
最“认真”的,大概是自己把代码写出来、调通,然后逐字逐句地讲给新手听
一般是没必要当"保姆"到这个地步的,既费自己的时间,也不利于新手自己锻炼
【 在 daiyue 的大作中提到: 】
: 我觉得前面回复的同学并没有很认真的回答问题。相比较而已,gpt4在处理这种问题上给人的体验要好很多。我个人也曾经问过基础问题,也遇到过有人回复(RTFM: Read the fucking manual)。
: 至于能否判定是否胡说八道,呵呵,谁也不是傻子。
:
--
FROM 221.218.160.*
自己写一个很简单,leetcode easy级别
--
FROM 223.160.129.*