2019212542 发表于 2022-10-13 17:03:55

真新人 不懂就问

#include<stdio.h>
int main()
{
    int i=0;
    int s = {0};
    scanf("%d",&s);
    for(i=0;i<10;i++)
    printf("%d\n",s);
}
为啥我输入1 2 3 4
得到的不是1 2 3 4啊
我该怎么改才能用一个scanf把我的1 2 3 4输入到数组里头
{:10_266:}{:10_266:}{:10_266:}

henkuderen 发表于 2022-10-13 17:29:21

也使用for循环输入就好了

zhangjinxuan 发表于 2022-10-13 18:29:59

&s是s第一个元素的地址,所以&s等价于&s

另外,读入一个数组,一般先得到数组长度,比如用输入的方式

正解:


#include <stdio.h>
int main() {
    int i = 0, n;
    int s = {0};
    scanf("%d", &n);
    for (i = 0; i < n; ++i)
      scanf("%d", &s);
    for (i = 0; i < n; ++i)
      printf("%d\n", s);
}

输入:
4
1 2 3 4
输出
1 2 3 4

jackz007 发表于 2022-10-13 18:58:53

#include <stdio.h>

int main(void)
{
    int i,s = {0}                            ;
    for(i = 0 ; i < 10 ; i ++) scanf("%d" , & s); //scanf() 要进入循环,并且,逐个为数组元素赋值
    for(i = 0 ; i < 10 ; i ++) printf("%d\n" , s) ; // printf() 要进入循环,并且,逐个打印数组元素值
}

homeskating 发表于 2022-10-13 20:15:59

要使用数组索引赋值,因为数组是线性表,你需要对相应索引的地址赋值

ExiaGN001 发表于 2022-10-14 21:56:28

scanf("%d %d %d %d",a,a+1,a+2,a+3);
页: [1]
查看完整版本: 真新人 不懂就问