使用数组,将数据存储在数组中并输出它们
Using arrays, storing data in arrays and outputting them
我是C++新手,目前正在编写一个程序,模拟在盒子中行进的固定数量的粒子(目前还没有碰撞,这意味着它们理论上应该具有相同的坐标)。但是,我目前在使用数组时遇到问题。在这种情况下,如何初始化、引用、存储数据并输出它们?
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
int main(void) {
float dlvelox;
float dlveloy;
float lvelox[1000];
float lveloy[1000];
float xcord[1000];
float ycord[1000];
float length;
float breadth;
int id;
int stepcount;
int step = 0;
/* Obtaining velocity */
{
printf("Enter the initial h velocity of the ball:n");
scanf("%f", &dlvelox);
printf("Enter the initial v velocity of the ball:n");
scanf("%f", &dlveloy);
std::fill_n(lvelox, dlvelox, -1);
std::fill_n(lveloy, dlveloy, -1);
}
/* Initializing box */
{
printf("Enter the length of box:n");
scanf("%f", &length);
printf("Enter the breadth of box:n");
scanf("%f", &breadth);
}
/* Obtain number of steps */
{
printf("Enter the number of steps wanted:n");
scanf("%d", &stepcount);
}
/* Initial console display */
{
printf("n");
printf("xcord, ycord, stepn");
printf("n");
}
/* Loop method */
while ( step < stepcount )
for(id = 0; id < 1000; id++)
{
lveloy[id] = lveloy[id] - 9.81;
xcord[id] = xcord[id] + lvelox[id];
ycord[id] = ycord[id] + lveloy[id];
printf("%f, %f, %dn", xcord[id], ycord[id], step);
if ( ycord[id] < 0 )
{
lveloy[id] = (lveloy[id] * -1);
xcord[id] = xcord[id] + lvelox[id];
ycord[id] = ycord[id] + lveloy[id];
printf("%f, %f, %dn", xcord[id], ycord[id], step);
}
if ( ycord[id] > breadth )
{
lveloy[id] = (lveloy[id] * -1);
xcord[id] = xcord[id] + lvelox[id];
ycord[id] = ycord[id] + lveloy[id];
printf("%f, %f, %dn", xcord[id], ycord[id], step);
}
if ( xcord[id] < 0 )
{
lvelox[id] = (lvelox[id] * -1);
xcord[id] = xcord[id] + lvelox[id];
ycord[id] = ycord[id] + lveloy[id];
printf("%f, %f, %dn", xcord[id], ycord[id], step);
}
if ( xcord[id] > length )
{
lvelox[id] = (lvelox[id] * -1);
xcord[id] = xcord[id] + lvelox[id];
ycord[id] = ycord[id] + lveloy[id];
printf("%f, %f, %dn", xcord[id], ycord[id], step);
}
step = step + 1;
}
if ( step == stepcount )
{
return 0;
}
}
用这行
std::fill_n(lvelox, dlvelox, -1);
初始化lvelox
dlvelox
数组中的条目数。
但后来你循环
for(id = 0; id < 1000; id++)
使用数组中未初始化的条目。数组中未初始化的条目包含不确定的值,不能使用,因为这会导致未定义的行为。
相关文章:
- 将值从二维数组输出到文本文件
- 为什么我的数组输出一个不在其中的元素
- 长度为 20 的 Cout'ing 数组输出 23 个字符
- 将矢量数组输出到 tex 文件中,错误
- 来自不同位置的数组输出的执行时间
- 数组输出中缺少字符
- 字符数组输出 - C++
- C 合并的数组输出错误
- 制作垫子类型对象的数组.输出窗口显示同一帧
- C++数组输出地址
- 字符数组输出正确,但实际上没有存储正确的值
- 字符串数组输出
- 为什么在将字符数组输出到控制台时会得到垃圾值
- 字符数组输出额外的字符
- 从字符数组输出到控制台
- 为什么计数从字符数组输出错误的字符
- 动态初始化的 2D 数组输出错误
- C++指针和2d数组输出
- c++中奇怪的char数组输出
- 类函数中的c++字符数组输出