C语言数组的输入输出函数

来源:百度知道 编辑:UC知道 时间:2024/06/04 10:09:25
程序:
#include<stdio.h>
void main()
{
int k;
char c[10];
for(k=0;k<10;k++)
scanf("%c",&c[k]);
printf("%s",c);
}
输出结果如图:

不是输出函数遇到\0就会停止输出,即提前结束,而我输入abcd\0efghi,却
输出abcd\0efgh烫。另外,我输入abcdefghij,却输出abcdefghij烫,怎又多了个字(烫),不是刚刚好10个字符,怎输出十一个字符。

1、函数arrDisp中,for循环之中,不能定义变量,变量应该在函数开头声明。
2、变量j未定义
3、在main函数调用arrDisp函数时,一般是以数组名传递参数。
4、在arrDisp函数中,for循环下的printf函数,应该调用数组a[j]的元素做为输出。

代码如下:
#include <stdio.h>
void arrDisp(int a[], int n)
{
int j;
for(j=0;j<n;j++)
{
printf("%d",a[j]);
if(j%8==0)
printf("\n");
}
}
void main()
{
int n,i;
int a[100];

printf("要输入数的个数为:");
scanf("%d",&n);

for(i=0;i<n;i++)
scanf("%d",&a[i]);
arrDisp(a, n);
}
补充在VC中编译时,编译器提示#include "stdafx.h" 时多余的。

如果你在ToburC2.0 编译还会出现变量定义的位置错误;
因为C语言要求变量的定义必须在代码块开头定义,for(int j=0;j<n;j++)中放入int j=0,没有在代码块开头。

你输入的\0被认为是2个字符。
'\\'和'0',不是'\0'

至于输入abcdefghij时出问题,那是数组边界问题。
用字符数组保存字符串时,要预留一个数组成员,用来保存结尾符号'\0'。
所以char[10]