c语言问题:怎样用scanf获取int类型的数组

c语言问题:怎样用scanf获取int类型的数组怎么输入数组,其中数组a长度为100,但是我只想输入几个元素,怎么弄,求大神

c语言学习之基础知识点介绍(三):scanf函数
  本节继续介绍c语言的基础知识点。

scanf函数:用来接收用户输入的数据。

语法:scanf("格式化控制符",地址列表);

取地址要用到取地址符:&(shift+7)

例如:int num =0; csanf("%d",&num);printf("num = %d \n",num);

注意:格式化控制符前面要求输入什么类型的数据,那么地址列表那里就必须只能放相应类型变量地址。输入值的时候可以指定输入值的分隔符,

也可以 默认用回车。

scanf的特点:

它是一个阻塞式的函数。

例如:printf("请输入吧:\n");

int num ;

scanf("%d"&num);

printf("呵呵,你输入的是 %d",num);

一次输入多个值:int num ; float num1;(可以输入n次,n=格式化控制符的数量)

scanf("%d %f",&num,&num1);

注意:顺序不能乱;如果不想用空格在一行内输入,自己可以指定其他符号,但是输入的时候必须按照这个符号来,否则会异常(后面的变量接不到值);如果想在scanf中加文字,输入的时候也一定要按照scanf中的格式来输入;用scanf的时候,最好不要先接收一个任意数值类型(整型,实型),在接收一个char类型,如果非要接收char类型的,一定要在scanf的格式化控制符前面加一个空格。如果scanf要接收的是数字,不管你输入多少个空格和回车,都不会停止让你输入;如果scanf要接收的是int类型,你输入一个小数,那么只会截取小数的整数部分。如果接收的是数字,输入的是字符,会停止输入,但不会保存你输入的值。

scanf的运行原理:

scanf用于接收用户的输入,但是用户的输入不是直接给了变量,而是存在了缓冲区。步骤如下:

1、接收输入的时候,会先去缓冲区里面找,看缓冲区中是否合适的值,若有,那么就直接停止输入,然后把这里面的值赋给变量。若没有就一直让你输入,一直到有合适的为止。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-04
可以这样用,比如
int a[100] = {0}; //全部元素初始化为0

int n= 10; // 你想输入的元素的个数

int i=0;
for(i=0; i<n; i++) {
scanf("&d", &a[i]);
}追问

可是我的元素的个数未知,是不确定的,这咋整的啊

追答

元素个数未知,你可以这样

第一种方法,设定一个大数组,保证能存储你的所有数据,比如
int a[4096];
第二种方法,使用动态数组,根据需要的大小,进行动态分配内存,比如
int n = 128; // n是你需要的数字个数
int *p = (int*)malloc(sizeof(int) * n);

追问

。。。我只想说第一种方法不行的,第二种方法我还没学到(▼皿▼#)

本回答被提问者采纳
第2个回答  2020-11-06
360问答
c语言问题:怎样用scanf获取int类型的数组

fif5892 LV9
2016-12-02
c语言问题:怎样用scanf获取int类型的数组怎么输入数组,其中数组a长度为100,但是我只想输入几个元素,怎么弄,求大神... c语言问题:怎样用scanf获取int类型的数组怎么输入数组,其中数组a长度为100,但是我只想输入几个元素,怎么弄,求大神 展开
满意答案

RO专卖
LV9
2016-12-04
可以这样用,比如
int a[100] = {0}; //全部元素初始化为0

int n= 10; // 你想输入的元素的个数

int i=0;
for(i=0; i<n; i++) {
scanf("&d", &a[i]);
}
追问 : 可是我的元素的个数未知,是不确定的,这咋整的啊

追答 : 元素个数未知,你可以这样 第一种方法,设定一个大数组,保证能存储你的所有数据,比如 int a[4096]; 第二种方法,使用动态数组,根据需要的大小,进行动态分配内存,比如 int n = 128; // n是你需要的数字个数 int *p = (int*)malloc(sizeof(int) * n);

追问 : 。。。我只想说第一种方法不行的,第二种方法我还没学到(▼皿▼#)
第3个回答  2020-11-05
WangLanguager
关注
C语言scanf:读取从键盘输入的数据(含输入格式汇总表) 转载
2019-04-02 18:23:37
9点赞

WangLanguager

码龄9年

关注
程序是人机交互的媒介,有输出必然也有输入,第三章我们讲解了如何将数据输出到显示器上,本章我们开始讲解如何从键盘输入数据。在C语言中,有多个函数可以从键盘获得用户输入:

scanf():和 printf() 类似,scanf() 可以输入多种类型的数据。
getchar()、getche()、getch():这三个函数都用于输入单个字符。
gets():获取一行数据,并作为字符串处理。

scanf() 是最灵活、最复杂、最常用的输入函数,但它不能完全取代其他函数,大家都要有所了解。

本节我们只讲解 scanf(),其它的输入函数将在下节讲解。

scanf()函数
scanf 是 scan format 的缩写,意思是格式化扫描,也就是从键盘获得用户输入,和 printf 的功能正好相反。

我们先来看一个例子:

#include <stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0;
scanf("%d", &a); //输入整数并赋值给变量a
scanf("%d", &b); //输入整数并赋值给变量b
printf("a+b=%d\n", a+b); //计算a+b的值并输出
scanf("%d %d", &c, &d); //输入两个整数并分别赋值给c、d
printf("c*d=%d\n", c*d); //计算c*d的值并输出

return 0;
}
运行结果:
12↙
60↙
a+b=72
10 23↙
c*d=230

↙表示按下回车键。
从键盘输入12,按下回车键,scanf() 就会读取输入数据并赋值给变量 a;本次输入结束,接着执行下一个 scanf() 函数,再从键盘输入 60,按下回车键,就会将 60 赋值给变量 b,都是同样的道理。
相似回答