arrays - 扫描和显示数组元素的函数出错
问题描述
我必须编写一个子程序来扫描并显示这样的数组的数字:[4, 5, 6] 但是即使我没有语法问题,该函数也会出现意外错误。这是我的代码:
#include <stdio.h>
int display();
int display()
{
int i, size;
int array[size];
printf("How many numbers will be in your array?\n");
scanf("%d", &size);
printf("Input the numbers of your array:\n");
for(i=0; i<size; i++)
{
scanf("%d", &array[i]);
}
printf("[");
for(i=0; i<size; i++)
{
printf("%d", array[i]);
for(i=0; i<size-1; i++)
{
printf(",");
}
}
printf("]");
}
int main()
{
display();
return 0;
}
解决方案
这是解决方案:
#include <stdio.h>
int display();
int display()
{
int i, size;
printf("How many numbers will be in your array?\n");
scanf("%d", &size);
int array[size];
printf("Input the numbers of your array:\n");
for(i=0; i<size; i++)
{
scanf("%d", &array[i]);
}
printf("[");
for(i=0; i<size; i++)
{
printf("%d", array[i]);
if(i != size-1){
printf(",");
}
}
printf("]");
}
int main()
{
display();
return 0;
}
问题:
您在扫描变量之前初始化数组,size
因此数组的值将取决于垃圾size
值,因此您需要像这样修改代码。
对于打印,,
最好使用 2 个循环并增加相同的变量,i
因此我使用了一个条件if
以另一种更好的方式来做到这一点。
推荐阅读
- mysql - 在 MySql 表上批量执行 UPDATE 比逐个执行 UPDATE 更快吗?
- php - codeigniter 上传 Excel 并在视图中显示内容
- java - Spring批处理MongoItemReader忽略数据库索引(通过Spring Data创建)
- python - 设置异常时避免递归
- asp.net - 无法在项目绑定功能上使用中继器项目
- oracle - Oracle 触发器:在更新时插入事务实体新行,插入帐户实体
- autocomplete - 使用deoplete在neovim中的Python自动完成
- database-design - 数据库 - 概念模型设计
- linux - gdb linux - 分段错误未找到符号表
- llvm - llvm-pdbutil - PDB 文件取证和诊断