c语言 怎样用scanf输入数组变量?

作者&投稿:英唯 (若有异议请与网页底部的电邮联系)
怎么用C语言的scanf实现一次输入若干个数据~

根据需要一般选择如下3种方法:
1,已知数量,且个数较少:
scanf("%d%d%d",&a&b&c);
2,已知数量,但数量较多:
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
3,不知道数量
int i=0;
while(scanf("%d",&a[i]))
{
i++;
}

扩展资料:
scanf输入指南:
(1)在高版本的 Visual Studio 编译器中,scanf 被认为是不安全的,被弃用,应当使用scanf_s代替 scanf。
(2) 对于字符串数组或字符串指针变量,由于数组名可以转换为数组和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。
(3) 可以在格式化字符串中的"%"各格式化规定符之间加入一个整数,表示任何读操作中的最大位数。
(4) scanf函数中没有类似printf的精度控制。
如: scanf("%5.2f",&a); 是非法的。不能企图用此语句输入小数为2位的实数。
(5) scanf中要求给出变量地址,如给出变量名则会出错
如 scanf("%d",a);是非法的,应改为scanf("%d",&a);才是合法的。
(6) 在输入多个数值数据时,若格式控制串中没有非格式字符作输入数据之间的间隔,则可用空格,TAB或回车作间隔。
C编译在碰到空格,TAB,回车或非法数据(如对“%d”输入“12A”时,A即为非法数据)时即认为该数据结束。
(7) 在输入字符数据(%c)时,若格式控制串中无非格式字符,则认为所有输入的字符均为有效字符。

#include
main()
struct
int num;
char name[20];
char sex;
int age;
stu[5];
int i;
for(i=0;i<5;i++)
printf("请输入信息
");
scanf("%d",&stu[i].num);
scanf("%s",&stu[i].name);
scanf("%c",&stu[i].sex); //在%c之前加一个空格
scanf("%d",&stu[i].age);
for(i=0;i<5;i++)
printf( "*%s*",stu[i].name);

扩展资料:
函数 scanf() 是从标准输入流stdin [1] (标准输入设备,一般指向键盘)中读内容的通用子程序,可以说明的格式读入多个字符,并保存在对应地址的变量中。
函数的第一个参数是格式字符串,它指定了输入的格式,并按照格式说明符解析输入对应位置的信息并存储于可变参数列表中对应的指针所指位置。每一个指针要求非空,并且与字符串中的格式符一一顺次对应。
参考资料来源:百度百科-scanf

#include<stdio.h>
void main()
{
    int a[10], i;
    // 输入10个数,放入数组
    for(i=0; i<10; i++)
    {
        scanf("%d", &a[i]);
    }
    // 输出
    for(i=0;i<10;i++)
    {
        printf("%d
", a[i]);
    }
}

用循环语句实现



/*假设变量数组都已正确定义好*/
scanf("%d",&n);/*输入元素个数*/
for(i=0;i<n;i++)
scanf("%d",&a[i]);


嘉祥县13596742438: c语言 怎样用scanf输入数组变量? -
宰父绿信敏: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15#include<stdio.h> voidmain() {inta[10], i;// 输入10个数,放入数组for(i=0; i<10; i++){scanf("%d", &a[i]);}// 输出for(i=0;i<10;i++){printf("%d\n", a[i]);} } 用循环语句实现

嘉祥县13596742438: C语言 scanf输入数组 高手进
宰父绿信敏: 循环输入就可以了例如:int a[10];int i;for(i=0;i&lt;10;i++){ scanf("%d",&amp;a[i]);}

嘉祥县13596742438: C语言数组怎么用scanf赋值?怎么写C -
宰父绿信敏: scanf 是输入的,如果赋值的话,在括号里直接赋值就行

嘉祥县13596742438: 我想用c语言scanf函数一次性赋值一个数组,我该上如何操作 -
宰父绿信敏: 是可以的.抄 例如:bai#include <stdio.h> void main(){ int i,a[10]; for(i=0;i<10;i++) a[i]=i+5;//通过for语句du,对数组的zhi10个数赋值dao for(i=0;i<10;i++) printf("%d ",a[i]); }执行结果:

嘉祥县13596742438: c语言问题:怎样用scanf获取int类型的数组 -
宰父绿信敏: c语言学习之基础知识点介绍(三):scanf函数 本节继续介绍c语言的基础知识点.scanf函数:用来接收用户输入的数据.语法:scanf("格式化控制符",地址列表);取地址要用到取地址符:&(shift+7)例如:int num =0; csanf("%...

嘉祥县13596742438: C语言中用scanf和循环语句是怎么给数组一一赋值的,希望说得详细点 -
宰父绿信敏: 定义一个变量,从下标0开始,一直到N-1个为止.这就是输入和输出的循环

嘉祥县13596742438: C语言疑惑,使用scanf函数输入一维数组,变量前面怎么不使用“&”. -
宰父绿信敏: 数组名表示的就是存放数组的首地址,所以不需要加&

嘉祥县13596742438: C语言如何在调用函数中输入二维字符数组char c[][] 用gets或 scanf -
宰父绿信敏: gets(c[0])输入第一行的字符串 gets(c[1])输入第二行的字符串,以此类推. scanf("%s",c[0])输入一行的字符串,以此类推.

嘉祥县13596742438: 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; i < n; i++) scanf("%d", a + i); printf("您输入的数是:\n"); for(i = 0; i < n; i++) printf("%d ", a[i]); free(a); /*释放内存*/ return 0; }

嘉祥县13596742438: C语言中用scanf和循环语句是怎么给数组赋值的? -
宰父绿信敏: #include int main(void) { int name[10]; int n; for (int i=0;i<10;i++) { scanf("%d",&n);//输入函数,后边的&n是说存入n的所在的地址 name[i] = n;//再把输入数据给数组 } for (i=0;i<10;i++) { printf("%d\n",name[i]); } return 0; }

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网