精华内容
下载资源
问答
  • 如何用printf输出一个数组
    千次阅读
    2020-12-24 05:58:13

    展开全部

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

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

    解释一下:

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

    例如:#include

    int main(){

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

    int i;

    for(i=0;i<3;i++)

    printf("%d",a);

    }

    是错误的

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

    例如:#include

    int main(){

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

    int i;

    for(i=0;i<3;i++)

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

    }

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

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

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

    #include

    int main(){

    char a[3];

    scanf("%c",&a);

    int i;

    for(i=0;i<3;i++)

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

    }

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

    代码均在Devc++测试。

    更多相关内容
  • C语言如何用printf打印数组问题

    万次阅读 2021-05-21 08:41:25
    #include//增加头文件printf()用到intmain(){inta[5]...//a[5]表示数组a的第六元素,越界了//整型数组,不能下子简单输出出来,必须循环inti;for(i=0;i<5;i++)printf("%d",a[i]);printf("\n");getch();retu...

    #include  //增加头文件printf()用到

    int main()

    {

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

    //printf("%d",a[5]);  //a[5]表示数组a的第六个元素,越界了

    //整型数组,不能一下子简单输出出来,必须用循环

    int i;

    for( i=0;i<5;i++ )

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

    printf("\n");

    getch();

    return 0;

    }

    639478679cb99b7624efa862d514e1d9.png

    扩展资料

    包含需要输出的数据,可以是常量(字符常量、数字常量、字符串常量),变量,以及运算式。此处的数据应当与前面的format中的格式控制符一一对应(如果不对应会产生错误)。 例如:

    int a=1;float b=1.0;

    char str[12]="Hello World";printf("This is an example of printf:\n");

    printf("a is %d,b is %f,and a+b=%f",a,b,a+b);printf("I want to say,%s",str);

    参考资料:百度百科 - printf

    展开全文
  • Printf函数实现数据按照特定格式从串口等设备输出,但是有些时候想要其输出到自定义的buf[]数组中,方便的实现不同种类的数据类型转换为字符串类型的数据。 代码在Vscode可运行 #include <iostream> #...

    Printf函数实现数据按照特定格式从串口等设备输出,但是有些时候想要其输出到自定义的buf[]数组中,方便的实现不同种类的数据类型转换为字符串类型的数据。

          代码在Vscode可运行

    #include <iostream>
    #include "stdarg.h"
    #include "stdlib.h"
    #include "stdio.h"
    struct stringPrint
    {
    	uint16_t buf_len;
    	char strbuf[128];
    };
    struct stringPrint consoleBuf;
    void write_char(char data)
    {
    	consoleBuf.strbuf[consoleBuf.buf_len++] = data;
    }
    void write_string(const char* string)
    {
    	while(*string)
    	{
    		write_char(*string++);
    	}
    }
    char *int_to_str(long number, char base)
    {
    	unsigned long pos_number = 0;
    	char		  neg_sign   = 0;
    	const char	  digits[17] = "0123456789ABCDEF";
    	static char   buffer[17] = "                ";
    	char*		  buffer_ptr = &buffer[16];
    
    	if((number < 0) && (base == 10))
    	{
    		neg_sign = 1;
    		pos_number = -1 * number;
    	}
    	else
    	{
    		pos_number = (unsigned long)number;
    	}
    	do
    	{
    		*buffer_ptr-- = digits[pos_number % base];
    		pos_number /= base;
    	}
    	while(pos_number != 0);
    	if(neg_sign)
    	{
    		*buffer_ptr-- = '-';
    	}
    	*buffer_ptr++;
    
    	return buffer_ptr;
    }
    
    void consolePrint(char* str, ...)
    {
    	char*		  string_ptr;
    	char		  first_param  = 0;
    	char		  second_param = 0;
    	unsigned long x_mask	   = 0;
    	unsigned long d_mask	   = 0;
    	char		  ch_number	   = 0;
    	unsigned long multiplier   = 1;
    	char*		  str_arg;
    	long		  long_arg;
    	double		  double_arg;
    	va_list		  argp;
        consoleBuf.buf_len = 0;
    	va_start(argp, str);
    	for(string_ptr = str; *string_ptr != '\0'; string_ptr++)
    	{
    		if(*string_ptr!='%')
    		{
    			write_char(*string_ptr);
    			continue;
    		}
    		string_ptr++;
    		first_param = 0;
    		while((*string_ptr >= 0x30) & (*string_ptr <= 0x39))
    		{
    			first_param *= 10;
    			first_param += (*string_ptr - 0x30);
    			string_ptr++;
    		}
    		if(*string_ptr == '.')
    		{
    			string_ptr++;
    			second_param = 0;
    			while((*string_ptr >= 0x30) & (*string_ptr <= 0x39))
    			{
    				second_param *= 10;
    				second_param += (*string_ptr - 0x30);
    				string_ptr++;
    			}
    		}
    		switch(*string_ptr)
    		{
    		case 'c':
    			long_arg = va_arg(argp, long);
    			write_char((char)long_arg);
    			break;
    		case 's':
    			str_arg = va_arg(argp, char*);
    			write_string(str_arg);
    			break;
    		case 'd':
    			long_arg = va_arg(argp, long);
    			write_string(int_to_str(long_arg, 10));
    			break;
    		case 'x':
    			long_arg = va_arg(argp, long);
    			x_mask = 268435456;
    			ch_number = 8;
    			while(x_mask > long_arg)
    			{
    				x_mask /= 16;
    				ch_number--;
    			}
    			while(ch_number < first_param)
    			{
    				write_char('0');
    				ch_number++;
    			}
    			if(long_arg != 0)
    			{
    				write_string(int_to_str(long_arg, 16));
    			}
    			break;
    		case 'f':
    			double_arg = va_arg(argp, double);
    			multiplier = 1;
    			if(second_param == 0)
    			{
    				second_param = 3;
    			}
    			ch_number = second_param;
    			while(ch_number > 0)
    			{
    				multiplier *= 10;
    				ch_number--;
    			}
    			double_arg *= multiplier;
    			if(double_arg < 0)
    			{
    				double_arg *= -1;
    				write_char('-');
    			}
    			long_arg = (long)double_arg;
    			write_string(int_to_str((long_arg / multiplier), 10));
    			write_char('.');
    			d_mask = 1000000000;
    			ch_number = 10;
    			while(d_mask > (long)(long_arg % multiplier))
    			{
    				d_mask /= 10;
    				ch_number--;
    			}
    			while(ch_number < second_param)
    			{
    				write_char('0');
    				ch_number++;
    			}
    			if((long_arg % multiplier) != 0)
    			{
    				write_string(int_to_str((long_arg % multiplier), 10));
    			}
    			break;
    		}
    	}
    	va_end(argp);
    }
    
    int main()
    {
    
        std::cout<<"consolePrint test"<<std::endl;
        consolePrint("test=%x %d %f %s\r\n",15,123,456.78,"helloWord");
        std::cout<<"buf_len = "<< consoleBuf.buf_len<< " "<<consoleBuf.strbuf<<std::endl;
        system("pause");
        return 0;
    }
    

    输出结果展示:

    要是懒得去建工程呢,我把完整的工程文件也上传了:自行下载吧

    展开全文
  • 输出打印数组---printf函数

    万次阅读 2018-08-18 15:30:50
    语句可将字符指针所指的字符串一次性的输出,除了字符类型,其他类型的数组不能用数组名来整体性的输出它的全部元素,只能逐个元素输出for循环 下面我们来一个验证: #include&lt;stdio.h&gt; #...

    输出打印数组---printf函数

    printf(“%s\n”,str);语句可将字符指针所指的字符串一次性的输出,除了字符类型,其他类型的数组不能用数组名来整体性的输出它的全部元素,只能逐个元素输出,用for循环

    下面我们来一个验证:

    #include<stdio.h>
    #include<windows.h>
    
    void  f(char **p)
    {
    	*p += 2;
    }
    
    int main()
    {
    	char *a[] = { "123", "456", "7891" };
    	int b[] = { 1, 2, 3, 4, 5, 6 };
    	char **p;
    	p = a;
    	f(p);
    	//printf("%s", *p);
    	printf("%s", b);//若将非字符型数组用%s这种形式输出,则我们编译没问题
    	system("pause");
    	return 0;
    }

    以上代码编译成功

    运行后为:

    以下为测试代码,关于字符串和数组的输出:

    #include<stdio.h>
    #include<windows.h>
    
    void  f(char **p)
    {
    	*p += 2;
    }
    
    int main()
    {
    	char *a[] = { "123", "456", "7891" };
    	int b[6] = { 1, 2, 3, 4, 5, 6 };
    	char *c ="abcdef";
    	char d[4] = { '1', '2', '6', '5' };
    	char **p;
    	p = a;
    	f(p);
    	printf("*p: %s\n", *p);
    
    	printf("b数组:");
    	for (int i = 0; i < 6; i++)
    	{
    		printf(" %d ", b[i]);
    	}
    	printf("\n");
    	printf("指针变量c: %s \n", c);
    	printf(": %s\n", d);
    	system("pause");
    	return 0;
    }

     

    展开全文
  • C++ c语言输出二维数组

    千次阅读 2020-05-25 13:11:25
    **# include <stdio.h> main() { int a[3][4] = {1, 2, 3, 4,5, 6, 7, 8, 9, 10, 11, 12}; for (int i=0; i<3; i++) ...printf("%d", a[i][j]); } printf("\n"); } }** 2020.5.25
  • 如何输出一个二维数组

    千次阅读 2022-02-18 19:42:36
    以arr[3][4]为例子,想要将他的元素一一输出,可以行的输出,先输出第0行然后在输出行,依次类推 输出第0行的代码块如下: 1 2 3 4 5 6 7 8 9 10 #...
  • 今天在工作的时候,看到一位同事写的一个打印数组输出,矩阵格式的。写得一堆堆的。功能是实现了,但是代码个人感觉不太简洁。。。 因此,自己也想了一下。做出了下面的方法,供大家参考。 先看下怎么回事: 打印...
  • printf输出数组的内容

    千次阅读 2016-10-17 16:27:01
    printf "the items are:\n".("%10s\n" x @items),@items; [root@mysql1 perl]#  [root@mysql1 perl]#  [root@mysql1 perl]# ./28.pl 3 the items are:  wilma  dino  pebbles the items are...
  • CPRINTF - 转换一个 ND 数组- 真实和/或复杂的全数字数据- 真实和/或复杂的稀疏数字数据- 逻辑数据- 字符字符串- 结构- 其他对象或上述任意组合的 ND 元胞阵列到二维字符数组- 创建表格- 输入可能是格式化为表格的...
  • C语言----输出一个数组的最大值

    千次阅读 2020-10-20 23:44:10
    //输出一个数组的最大值 //运用到了递归、循环 #include<stdio.h> int main() { int arr[10]= {1,2,3,5,7,9,11,13,15,14}; int i=0; int max=0; for(i=0;i<10;i++) { if(arr[i]<=arr[i+1]...
  • 使用指针输入输出一数组

    千次阅读 2020-05-04 20:30:02
    《程序设计基础实训指导教程-c语言》 ...【实训内容2】有一个10个元素的一维数组使用输入/输出所有元素值 #include <stdio.h> int main() { int a[10],*p; for(p=a;p<a+10;p++) { scanf("%d",p...
  • #include int main() { int i; int temp[5]; for(i=1;i;i++) { temp[i]=i; } ... printf("---------");... printf("%d",temp[i]);...为什么能正常的给第5元素赋值,并能输出第5元素
  • C++如何输出完整数组形式

    万次阅读 2019-10-24 17:18:57
    c++中cout无法输出数组的形式,它的输出每行都会换行;需要把cout输出转换为print()才会输出完整的数组形式。 用printf输出时可以输出完整形式
  • 输入一个数组,将其逆序输出

    千次阅读 2021-11-21 21:37:14
    输入一个数组,然后将其逆序输出
  • //造一个f()函数将数组内容输出 void f(int * pArr,int len) {//知道数组的首地址以及数组的长度即数组元素的个数,即可知道一个数组全貌 for (int i = 0; i < len; i++) { // printf("%d ",*(pArr+i));//*...
  • 由于您不使用真正的格式,并且只打印单个字符,您可以使用简单的putchar()函数:for (y = 0; y < MAX_Y ; y++){putchar ('\t');for (x = 0; x < MAX_X; x++){putchar(base[y][x]);}putchar('\n');}在我的机器上,...
  • 如图所示,本来是一个长度为4的字符数组%c手动一个一个输出是正常显示,但是%s直接输出这个字符数组就出现输出位数并不是4,这是什么原因呢?是这个字符数组的后面没有带上0吗?遇到这种情况有什么简便的方法...
  • 例子1: #include<stdio.h> int main() { int a[5],b[5]={1,2,3,4,5};... printf("%d\x20",a[i]); } return 0; } 输出结果: 例子2: #include<stdio.h> int main() { int i,j,n;
  • printf()输出字符串而非字符数组时,使用.c_str()。c_str()函数是包含在&lt;string&gt;中的,使用的时候最好也将其头文件带上。 1、使用printf()输出字符串数组,显然没有问题,只需要使用字符串首地址即可...
  • 思路:使用首尾对应交换的方式,将数组元素逆序输出。 代码 #include <stdio.h> #include <stdlib.h> int main() { int a[9];int i; int *p,*k; printf(" 输入9整数: "); for(i=0;i<9;i++)...
  • C语言:输出数组

    千次阅读 2021-12-05 22:42:14
    1.使用 for 循环输出数组: #include <stdio.h> int main() { int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; int loop; for(loop = 0; loop < 10; loop++) printf("%d ", array[loop]); ...
  • 《程序设计基础实训指导...【实训内容1】在1个数组中输入10个数,逆序存放在另一个数组中。 #include <stdio.h> #define MAX 10 int main(void) { int a[MAX],b[MAX],i,j,temp; printf("输入数组元素:\n");...
  • 数组输入输出的方法

    千次阅读 2021-10-10 18:34:42
    1.数组输出 下标法(最常用的) #include<stdio.h> int main() { int a[10]; int i; for (i = 0; i<10; i++) scanf("%d", &a[i]); for (i = 0; i<10; i++) printf("%d\n", a[i]); ...
  • #include <stdio.h> void main() { int i, n, m; printf("请输入数组中... printf("数组中第%d元素的值为:", i + 1); scanf("%d", &a[i]); } for (i = 0; i < n / 2; i++) { m = a[i]; a.
  • C语言printf输出十六进制16进制

    万次阅读 多人点赞 2021-10-13 16:51:44
    #include <stdio.h> int main() { short a = 0b1010110;... printf("a=%ho, b=%o, c=%lo\n", a, b, c); //以八进制形似输出 printf("a=%hd, b=%d, c=%ld\n", a, b, c); //以十进制形式输出 .
  • C语言编程>第三周 ⑦ 将一个数组逆序输出

    万次阅读 多人点赞 2020-12-08 13:15:51
    例题:将一个数组逆序输出。 代码如下: /*程序分析:一个与最后一个交换。*/ #include<stdio.h> #define N 5 void main() { int a[N]={3,5,9,1,6},i,temp; printf("原始数据为:\n"); for(i=0;i<N;i...
  • 展开全部在baiC语言中数组的名字即du数组的起始地址,也是数组一个zhi元素dao的地址。...使用printf()输出字符数组a的内容:printf("%s\n", a);就等同于printf("%s\n", &a[0]);输出的时候:int i ...
  • C++经典算法题-将一个数组逆序输出

    千次阅读 2020-01-08 17:17:31
    题目:将一个数组逆序输出。 2. 分析 程序分析:一个与最后一个交换。 3. 代码示例 #define N 5 main() { int a[N]={9,6,5,4,1},i,temp; printf("\n original array:\n"); for(i=0;i<N;i++) printf("%4....
  • 1.写一个函数去输出一个一维数组的所有的数组元素。 # include <stdio.h> //f函数可以输出任何一个一维数组的内容 void f(int * pArr, int len) { //*pArr //表示a[0] //*(pArr+1) //表示a[1] int i; ...
  • //利用指针输出一数组任意列的值 #include&lt;stdio.h&gt; int main() { int array[4]={1,2,3,4}; int (p)[4]; p=&amp;array; int i; scanf("%d",&amp;i); printf("%d",(*§+...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 406,938
精华内容 162,775
关键字:

如何用printf输出一个数组

友情链接: NativeUI.zip