成都网站建设设计

将想法与焦点和您一起共享

c语言打印数组元素的函数 c++打印数组元素

C语言打印数组的内容

有没有打印值,如果有打印出数组的值,问题出在getchar();这个函数;

成都创新互联专业成都网站设计、网站制作、外贸营销网站建设,集网站策划、网站设计、网站制作于一体,网站seo、网站优化、网站营销、软文发稿等专业人才根据搜索规律编程设计,让网站在运行后,在搜索中有好的表现,专业设计制作为您带来效益的网站!让网站建设为您创造效益。

getchar有一个int型的返回值.当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止(回车字符也放在缓冲区中).当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符.getchar函数的返回值是用户输入的第一个字符的ASCII码,如出错返回-1,且将用户输入的字符回显到屏幕.如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取.也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键.

如何用C语言打印出二维数组?

假设需要打印的数组为int类型,数组名为Array,Dim1为数组的行,Dim2为数组的列。

int i,j;//临时变量

for(i = 0; i  Dim1; i++)//外层循环遍历行

for(j = 0; j  Dim2; j++)//内层循环遍历列

{

printf("%d ",Array[i][j]);//访问数组元素并打印

}

打印数组时(无论几维)都要注意数组下标从0开始,除非刻意放弃下标为0的元素,多存一个元素,此时for循环范围则可从1开始到数组长度。

C语言如何用一个自定义函数打印一个二维数组

二维数组无法作为参数直接传递给函数,但是可以利用二维数组内部数据的连续性,将二维数组的地址按照一维数组的方式传递给函数,并传入对应的行列数,从而实现函数内打印二维数组的效果。

以整型为例,具体方式如下:

void print_array(int *a, int m, int n)//a为一个m行,n列的二维数组的首地址。

{

int i, j;

for(i = 0; i  m; i ++)

{

for(j = 0; j  n; j ++)

{

printf("%d,", a[i*n+j]);//a[i*n+j]也就是原始二维数组第i行第j列的元素。

}

printf("\n");//每行结束输出换行。

}

}

c语言中能不能用printf函数直接输出数组?如printf("%d",a[3][3]);

限制在C语言中,利用printf直接输出数组是不可以的。

但是你的做法是可以的。只是问题出在你数组使用越界了。

解释一下:

printf不能直接用来输出数组。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

for(i=0;i3;i++)

printf("%d",a);

}

是错误的

所以要是输出数组的话,必须要借助其他的语句输出,要一个一个地输出,例如for语句的循环输出。

例如:

#includestdio.h

int main(){

int a[3]={1,2,3};

int i;

for(i=0;i3;i++)

printf("%d",a[i]);

}

但是你这样的做法是可以:

因为你写的a[3][3]实际上已经指定了这个数字在这个二维数组中的横坐标和纵坐标,相当于一个int型的数据。但是不过你数组越界了。

额外引申一下:直接用scanf输入一个数组的量可以么?

#includestdio.h

int main(){

char a[3];

scanf("%c",a);

int i;

for(i=0;i3;i++)

printf("%c",a[i]);

}

这样输入3个字符,只能把输入的第一个字符放进a数组里面。因为a就是这个数组的地址,同时也表示这个数组的第一个。a可以给数组的第一个放进一个字符,但是后面的就无能为力的。

代码均在Devc++测试。


分享题目:c语言打印数组元素的函数 c++打印数组元素
文章来源:http://chengdu.cdxwcx.cn/article/dohojid.html