gpt4 book ai didi

c - 数组指针和函数

转载 作者:行者123 更新时间:2023-11-30 18:49:34 24 4
gpt4 key购买 nike

我必须编写一个 C 程序来执行以下操作:

  • 编写一个带有三个参数的函数:指向第一个参数的指针数组中某个范围的元素,指向其后元素的指针数组中范围的末尾和 int 值。有功能将数组的每个元素设置为 int 值。

我的代码无法运行。这是我到目前为止所拥有的。如有任何帮助,我们将不胜感激。

#include <stdio.h>
#include <iostream>

int listNumbers[3]{ 1,2,3 };
void Sorter(int *first, int * last, int *value);
int * first = &listNumbers[0];
int * last = &listNumbers[2];
int value;

int main() {

printf("your list numbers are:\n");
int i;
for (int i = 0; i < 3; ++i) {
printf("%d", listNumbers[i]);
}
printf("\n");

printf("enter an integer:\n");
scanf_s("%d", &value);

Sorter( first, last, &value);

printf("your new list numbers are:\n");
int j;
for (int j = 0; j < 3; ++j) {
printf("%d", listNumbers[j]);
}
printf("\n");

system("PAUSE");
return 0;
}
void Sorter(int *first, int * last, int *value) {

int i=0;
printf("value = %d\n", &value);
*first = value;

while (i <= *last) {
*(first + i) = value;
i++;
}
}

最佳答案

首先,计算出两个指针之间的差异。

int count = last - first + 1;

编译器会自动除以整数的大小。我们添加 1 以使范围包含在内。现在只需迭代每个元素:

for (int i = 0; i < count; i++) {
first[i] = value;
}

另外,为什么要将值作为指针传递?这应该只是一个值。

void Sorter(int *first, int *last, int value) {

当你调用它时......

Sorter(first, last, value);

关于c - 数组指针和函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42447774/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com