题目三 输出整数

描述

牛牛从键盘上输入三个整数,并尝试在屏幕上显示第二个整数。

输入描述:

一行输入 3 个整数,用空格隔开。

输出描述:

请输出第二个整数的值。

作答:

#include <stdio.h>
int main()
{
    int a[] = {0};  //初始化 注释1
    scanf("%d %d %d", &a);//插入三个整数分别插入到到数组a 注释2
    printf("%d\n", a[1]);  //将数组中下标为1的数据用整型打印 注释3

    return 0;
}

问题一 注释二

scanf插入数据时 每一个数据都要表面插入地址 不能直接囊括整个数组

问题一解决后的代码

#include <stdio.h>
int main()
{
    int a[] = {0};  //初始化 注释1
    scanf("%d %d %d", &a[1],&a[2],&a[3]);//插入三个整数分别插入到到数组a中下标0 1 2的位置 注释2
    printf("%d\n", a[1]);  //将数组中下标为1的数据用整型打印 注释3

    return 0;
}

问题二 注释一

由于数组内具体的元素数量没有说明(a[])   因此程序根据数组里的数据自动向内存申请空间大小,而上面代码只申请了一个整型数据元素的空间(空间大小为四个字节)  而注释2代码要插入3个元素 ,故程序会报错

解决办法一

规定具体的数据空间大小(最好),这样插入3个元素 就有足够的空间 正确答案中就规定了数组里三个元素  3个元素为整型数据  因此向内存申请了12个字节的空间

解决方法二

在创立数组时输入三个元素 此时程序自动申请了三个元素(整型数据元素)的空间(12个字节) 后续插入也不会报错,但此为下策,因为自动申请的空间 可能会导致出现内存溢出的问题 导致程序报错

正确答案

#include <stdio.h>
int main()
{
    int add[3] = {0,0,0};
    scanf("%d %d %d", &add[0],&add[1],&add[2]);
    printf("%d\n", add[1]);

    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值