gpt4 book ai didi

c - 这个简单的 C 程序有什么问题?

转载 作者:行者123 更新时间:2023-12-02 08:21:54 27 4
gpt4 key购买 nike

我想知道为什么这个我为练习而创建的程序不能正常运行。该程序要求将 5 个数字放入一个名为“array”的数组中。还有 2 个 VOID 函数,一个用于获取数字,使用 for cicle 和 scanf 指令,另一个必须打印数组中的 5 个数字。问题是打印的数字只是第一个 4. 怎么了?附言对不起我的无知,但我是初学者。这是代码

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

void
array_print(int array[],size_t size){
int i;
for(i=0;i<size;i++){
printf("%i ",array[i]);
}
}

void
get_num(int array[],size_t size){
int i;
for(i=0;i<size;i++){
scanf("%i",&array[i]);
}
}

int
main(){
int array[5];
size_t size;
size=sizeof(int);
printf("Insert 5 numbers: ");
get_num(array,size);
array_print(array,size);

return 0;
}

最佳答案

在您运行程序的环境中,sizeof(int) 等于4

数组的大小可以这样计算

size = sizeof( array ) / sizeof( int );

考虑到运算符 sizeof 返回值的类型是 size_t。所以数组的大小最好用这个类型。

您还可以为数字 5 引入一个 list 常量。比如

#define N 5

并像这样声明数组

int array[N];

或者如果编译器支持可变长度数组,你可以这样写

int main( void )
^^^^^^^^^^^^^^^^
{
const size_t N = 5;
int array[N];

//...

关于c - 这个简单的 C 程序有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36359041/

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