c语言函数scanf数组 c语言中用scanf给数组赋值

C语言用scanf给数组赋值问题scanf()中如果在%d后面加了一个空格,会使scanf()函数在读数时跳过输入中c语言函数scanf数组的空白字符(包括空格、回车等),直到遇到第一个非空白字符出现为止 。当c语言函数scanf数组你输入完5个数之后,由于你的%d后面带空格 , 所以scanf仍然在期待出现一个非空白符才结束 。你甚至可以在输入完5个数之后 , 再输入一个字母,也是可以的(只要不是空白字符就行) 。这是C语言的特性,你有空可以多读读C标准库的书 。
C语言怎样用scanf定义数组长度,再定义数组各元素?可以使用内存分配函数来实现 。
#include stdio.h
#include stdlib.h
int main()
{
int n, *a, i;
printf("输入数组长度:");
scanf("%d", n);
a = malloc(sizeof(int) * n); /*分配内存*/
printf("输入%d个数:\n", n);
for(i = 0; in; i++)
scanf("%d", a + i);
printf("输入的数是:\n");
for(i = 0; in; i++)
printf("%d ", a[i]);
return 0;
}
如何在C语言中用scanf输入数组#include
main()
struct
int num;
char name[20];
char sex;
int age;
stu[5];
int i;
for(i=0;i5;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;i5;i++)
printf("*%s*",stu[i].name);
扩展资料:
函数 scanf() 是从标准输入流stdin [1](标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中 。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置 。每一个指针要求非空,并且与字符串中的格式符一一顺次对应 。
参考资料来源:百度百科-scanf
C语言中如何用scanf 函数输入二维数组1.
#includestdio.h
#includestring.h
void main()
{
char a[10][20];
int i;
for(i=0;i10;i++)
scanf("%s",a[i]);
}
2.
#includestdio.h
#includestring.h
void main()
{
char a[10][20];
int i,j;
for(i=0;i10;i++)
for(j=0;j20;j++)
scanf("%c",a[i][j]);
}
c语言中的scanf 函数的用法scanf 函数最主要的用法是:
scanf("输入控制符", 输入参数);
功能:将从键盘输入的字符转化为“输入控制符”所规定格式的数据,然后存入以输入参数的值为地址的变量中 。
用scanf()函数以%s格式读入的数据不能含有空白符时,所有空白符都被当做数据结束的标志 。所以题中函数输出的值只有空格前面的部分 。
如果想要输出包括空格在内的所有数据 , 可以使用gets()函数读入数据 。gets()函数的功能是读取字符串,并存放在指定的字符数组中,遇到换行符或文件结束标志时结束读入 。换行符不作为读取串的内容,读取的换行符被转换为字符串结束标志'\0' 。
扩展资料:
使用scanf()函数需要注意的问题:
1.对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址 , 因此使用scanf()函数时 , 不需要在它们前面加上""操作符 。
2.可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数 。
3.scanf函数中没有类似printf的精度控制 。
如:scanf("%5.2f",a); 是非法的 。不能企图用此语句输入小数为2位的实数 。
4.scanf中要求给出变量地址,如给出变量名则会出错

推荐阅读