各位老师,C语言中在数组第1个位置新插入1个数字,结果出来正确,但报错?
本帖最后由 jtwc 于 2022-8-14 21:00 编辑各位老师,C语言中在数组第1个位置新插入1个数字,结果出来正确,但报错?该如何改呢?谢谢了
#include <stdio.h>
int main()
{
int n = 5;//表示数值元素的个数
double num[] = { 16, 25, 9, 90, 23 };
double c = 1;//新插入的数字
int i;//循环变量
//插入一个新的数字
for (i = 5+1; i > -1; i--)
{
num = num;
}
num = c;
printf("插入后的结果:\n");
for (i = 0; i < 5+1 ; i++)
{
printf("%.2lf\n", num);
}
return 0;
} 你想想看一开始你的数组是多大 i = 5, 5到0就是6位了 shaon153 发表于 2022-8-14 21:09
i = 5, 5到0就是6位了
老师,改为5,还是报错?#include <stdio.h>
int main()
{
int n = 5;//表示数值元素的个数
double num[] = { 16, 25, 9, 90, 23 };
double c = 1;//新插入的数字
int i;//循环变量
//插入一个新的数字
for (i = 5; i > 0; i--)
{
num = num;
}
num = c;
printf("插入后的结果:\n");
for (i = 0; i < 5; i++)
{
printf("%.2lf\n", num);
}
getchar();
return 0;
} jtwc 发表于 2022-8-14 21:52
老师,改为5,还是报错?#include
万物始于0啊,亲 4才行,索引0…4,否则越界… 无闻无问 发表于 2022-8-14 22:04
4才行,索引0…4,否则越界…
老师,改为4,是不报错,但我要的结果是出来6个数,不是5个数? 你声明数组的大小只有5,不能这样操作的,要动态操作数组,考虑用vector… 无闻无问 发表于 2022-8-14 22:15
你声明数组的大小只有5,不能这样操作的,要动态操作数组,考虑用vector…
额,谢谢老师 本帖最后由 无闻无问 于 2022-8-14 22:24 编辑
这样即可,手机测试的…
#include <stdio.h>
#include<vector>
using namespace std;
int main()
{
//int n = 5;//表示数值元素的个数
vector<double> num = { 16, 25, 9, 90, 23 };
double c = 1;//新插入的数字
num.insert(num.begin(),c);
for(int i=0;i<num.size();i++)
printf("%lf\n",num);
getchar();
return 0;
}