c++,定义数组,并通过键盘输入数组的值,怎么做

c++,定义数组,并通过键盘输入数组的值,怎么做,第1张

在程序中经常要根据用户输入新建数组。但是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输入数组等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9352193.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存