c语言,用printf输出一维数组的语句是printf ("%s", a),具体输出一维数组的操作步骤如下:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名注册、虚拟空间、营销软件、网站建设、开福网站维护、网站推广。
1、首先我们打开Visual Studio 2010软件,新建一个项目。
2、然后我们按照图示代码输入包含程序需要用到的头文件。
3、然后我们按照图示代码输入主函数main。
4、然后我们按照图示代码定义一个一维数组。
5、然后我们按照图示代码定义一个数组指针。
6、然后我们按照图示代码输入数组指针指向一维数组。
7、然后我们按照图示代码输入for循环。
8、最后打印出结果即可。
限制在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++测试。
你输入的\0被认为是2个字符。
'\\'和'0',不是'\0'
至于输入abcdefghij时出问题,那是数组边界问题。
用字符数组保存字符串时,要预留一个数组成员,用来保存结尾符号'\0'。
所以char[10]只能保存长度为9的字符串。
printf输出字符串的时候,只有遇到'\0'才会停止输出。
'\0'的值就是0.它会一直输出直到在后面连续的内存里遇到'\0'
1、首先先简单定义一个整形的数组int[] nums = { 1, 2, 3, 4, 5, 6 }。
2、之后先用常规的for循环来输出数组中的元素,for (int i = 0; i nums.Length; i++) 其中 i nums.Length指的是i小于数组的长度。
3、接着在for循环里调用输出命令 Console.WriteLine(nums[i]);,来输出每个元素。
4、同时可也用C#的foreach来输出,该方法较简单,要foreach (int i,其中如果是字符数组,需要用string来先定义个变量。
5、之后要写in nums 来确定遍历的是哪个数组。
6、最后用命令Console.WriteLine(i);来输出每个元素,注意变量是i。i就是遍历nums数组的一个中间变量。
7、最后执行下,发现两种方法都很成功的输出了数组的每个元素的值。
#include
"stdio.h"
void
input(int
a[10])
//给一维数组输入数据
{
int
i;
for(i=0;i10;i++)
scanf("%d",a[i]);
}
void
output(int
a[10])
//输出一维数组输入数据
{
int
i;
for(i=0;i10;i++)
printf("%d
",a[i]);
}
int
main()
{
int
b[10];
input(b);
//调用input函数给数组b赋值
output(b);//调用output函数输出数组b中的值
}
这肯定不同啊,你定义的z等变量都是int类型的,而第一个程序中使用了gets函数,该函数用于获取一个字符串,以回车作为结束标识
第二个程序中使用了getchar函数,而该函数的作用是获取一个字符,得到的是字符类型
第三个是使用scanf,格式为%d,这个才是正宗的获取整型数据的方法
要得到正确结果,首先需要知道每个函数的功能和使用范围。