在程序中经常要根据用户输入新建数组。但是c语言中不允许非常量成为新建数组时表示大小的下标:
for example:
int line;
int col;
scanf("%d,%d",&line,&col);
int p[line][col];//这样是不允许的!!!!!
正确的做法是:
p = (int )malloc(sizeof(int)linecol);
访问或者写入数据时:
(p + linei + j);
p +linei + j;
扩展资料
数组的声明并不是声明一个个单独的变量,比如 number0、number1、、number99,而是声明一个数组变量,比如 numbers,然后使用 numbers[0]、numbers[1]、、numbers[99] 来代表一个个单独的变量。数组中的特定元素可以通过索引访问。
所有的数组都是由连续的内存位置组成。最低的地址对应第一个元素,最高的地址对应最后一个元素。
在 C 中要声明一个数组,需要指定元素的类型和元素的数量,如下所示:
type arrayName [ arraySize ];
这叫做一维数组。arraySize 必须是一个大于零的整数常量,type 可以是任意有效的 C 数据类型。例如,要声明一个类型为 double 的包含 10 个元素的数组 balance,声明语句如下:
double balance[10];
现在 balance 是一个可用的数组,可以容纳 10 个类型为 double 的数字。
输入原理:
程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入。
输出数组方法如下:
比如main()
{
char a;
cin>>&a;
cout<<&a;
}\\输入abcd输出的是abcd
2。main()
{
char a;
cin>>a;cout<<a;
}//输入abcde输出的是a
为什么上面1不会越界,下面2会。 第1个bcde到哪去了?不越界吗?1可以以字符串的形式输出?。为什么给字符型变量赋值不取地址符;我不懂啊。我是刚接触c++的。希望各位高手耐心点,给我推荐本书了解工作原理。
main()
{
char a[5];
cin>>a;
cout<<a[6];
}
scanf输入数组代码:
#include<stdioh>main()
{
struct
{
int num;
char name[20];
char sex;
int age;
}stu[5];
int i;
for(i=0;i<5;i++)
{
printf("请输入学生信息\n");
scanf("%d",&stu[i]num);
scanf("%s",&stu[i]name);
scanf("%c",&stu[i]sex); //在%c之前加一个空格
scanf("%d",&stu[i]age);
}
for(i=0;i<5;i++)
{
printf( "%s",stu[i]name);
}
}
#include
void
main()
{
int
s[10]={1,2,3,4,5,6,7,8,9};
int
n;
printf("请输入需要插入到数组中的位置:");
scanf("%d",&n);
//比如说插入到第三个位置,即s[2]中,则输入3
int
num;
printf("请输入需要插入的数:");
scanf("%d",&num);
for
(int
i=10-1;i>=n;i--)
{
s[i]=s[i-1];
}
s[i]=num;
printf("插入之后的数组:\n");
for
(i=0;i<10;i++)
{
printf("%d
",s[i]);
}
printf("\n");
}
空格、TAB键,回车键,这三者都可以作为数据的分隔符号,如果是char型的,空格就是字符了。
当你开始输入数字的时候,如果scanf()扫描到空格,就默认为A[0][0]的赋值结束,再扫描到的数字赋值给下一个,,,依次类推。
如果是由输入者决定要输入数组的长度的话,可以尝试如下的办法:
//根据输入生成相应长度的数组int i;
cin>>i;
int p = new int[i];
//
//你对这个数组p的输入与处理
//程序结束时别忘了销毁申请的空间
delete []p;
以上就是关于c++,定义数组,并通过键盘输入数组的值,怎么做全部的内容,包括:c++,定义数组,并通过键盘输入数组的值,怎么做、c++如何用cin输入一个数组、怎么用scanf输入数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)