VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 248|回复: 15
打印 上一主题 下一主题

[求助] 输入一组数据放入数组里,然后我再输出这个数组得值,却得不到我输入的那组数据,why?

[复制链接]
57_avatar_middle
跳转到指定楼层
1#
在线会员 发表于 2019-9-23 11:07:03 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
3驿站币
#include <stdio.h>


int main()
{
        int a[10];
        int i, j;
        printf("Input 10 number:\n");
        for (i = 0; i < 10; i++)
        {
                scanf("%d", &a[i]);
        }
        printf("\n");
        for (j = 0; j < 10; j++)
        {
                printf("%5.3d ", a[i]);
        }
        return 0;
}
运行后结果是这样的
Input 10 number:
0
1
2
3
4
5
6
7
8
9

-858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460 -858993460
E:\VS2017\Project6\Debug\Project6.exe (进程 12368)已退出,返回代码为: 0。
按任意键关闭此窗口...
(编译器是VS2017)求问怎么回事?

评分

参与人数 1驿站币 +1 收起 理由
08_avatar_small SummerGull + 1 请保持代码风格 看着很舒服。

查看全部评分





上一篇:新建的win32出现错误
下一篇:Qt不能再当前代码也表示字符问题
58_avatar_middle
2#
online_vip 发表于 2019-9-23 19:45:37 | 只看该作者
  1. #include <stdio.h>


  2. int main()
  3. {
  4.         int a[10];
  5.         int i, j;
  6.      
  7.         for (i = 0; i < 10; i++)
  8.         {
  9.                 scanf("%d",&a[i]);
  10.         }

  11.         for (j = 0; j < 10; j++)
  12.         {
  13.                 printf("%d ", a[j]);    // a[j]
  14.         }
  15.         return 0;
  16. }
复制代码


为什么错误,就不用过多解释了吧,i是在第一个for中赋值的,for结束时,i的值就被清空。

点评

i值不是没有清空 是10 但是超过数组大小了 崩溃了  发表于 2019-9-23 20:25

评分

参与人数 1驿站币 +1 热心值 +1 收起 理由
08_avatar_small SummerGull + 1 + 1 楼主看这里推荐最佳 6#的简洁

查看全部评分

58_avatar_middle
3#
online_vip 发表于 2019-9-23 19:46:53 | 只看该作者
大家没有及时答,主要是希望楼主自己先想想,在解决问题的过程中,也会有收获。
08_avatar_middle
4#
在线会员 发表于 2019-9-23 20:03:56 | 只看该作者
敏敏 发表于 2019-9-23 19:45
为什么错误,就不用过多解释了吧,i是在第一个for中赋值的,for结束时,i的值就被清空。

为啥你的代码 这么的格式化。我都是挤到一块的
58_avatar_middle
5#
online_vip 发表于 2019-9-23 20:14:14 | 只看该作者
SummerGull 发表于 2019-9-23 20:03
为啥你的代码 这么的格式化。我都是挤到一块的

不知道,我是复制他的代码改的。
00_avatar_middle
6#
在线会员 发表于 2019-9-23 20:17:56 | 只看该作者
输出的时候把  i改为 j

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 言简意赅

查看全部评分

08_avatar_middle
7#
在线会员 发表于 2019-9-23 20:19:50 | 只看该作者
本帖最后由 SummerGull 于 2019-9-23 20:23 编辑
敏敏 发表于 2019-9-23 19:45
为什么错误,就不用过多解释了吧,i是在第一个for中赋值的,for结束时,i的值就被清空。


他的想法是
  1. a[i]
复制代码
可能直接复制 或者思路一下子 不清楚了。这里明显的错误 是细节问题。 大致思路没有问题。其实用一个  i  变量就可以了 这里的j变量可以说是多余的。
  1. #include <stdio.h>


  2. int main()
  3. {
  4.         int a[10];
  5.         int i;
  6.         printf("Input 10 number:\n");
  7.         for (i = 0; i < 10; i++)
  8.         {
  9.                 scanf("%d", &a[i]);
  10.         }
  11.         printf("\n");
  12.         for (i = 0; i < 10; i++)
  13.         {
  14.                 printf("%5.3d ", a[i]);
  15.         }
  16.         return 0;
  17. }
复制代码

输入一组数据放入数组里,然后我再输出这个数组得值,却得不到我输入的那组数据,why?

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 很给力!

查看全部评分

08_avatar_middle
8#
在线会员 发表于 2019-9-23 20:30:16 | 只看该作者
i值没有被。i变量是在 Mian函数作用啊 return之前 是 有效的 最后输出是有 数据的是 超出数组了
应该是这 10个数据吧
输入一组数据放入数组里,然后我再输出这个数组得值,却得不到我输入的那组数据,why? @敏敏

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 很给力!

查看全部评分

58_avatar_middle
9#
online_vip 发表于 2019-9-23 20:30:41 | 只看该作者
SummerGull 发表于 2019-9-23 20:19
他的想法是 可能直接复制 或者思路一下子 不清楚了。这里明显的错误 是细节问题。 大致思路没有问题。 ...

谢谢提醒,哦对,他i在上面定义的。

点评

谢谢了  发表于 2019-9-24 08:41
84_avatar_middle
10#
在线会员 发表于 2019-9-23 21:08:39 | 只看该作者
7楼告诉你答案了,你第一个for结束时,i=10,第二个循环j了,那么输出的第一个就是a[10],超出数组了。给你个建议,如果后续需要输出前边的循环,最好循环变量不要换字符

点评

嗯,还是不够细心  发表于 2019-9-24 08:43
84_avatar_middle
11#
在线会员 发表于 2019-9-24 12:17:19 | 只看该作者
如果用同一个的话,只要把里边的需要用到的代码改下就行,还可以少申请一个参数,少占运行,如果以后你写程序特别大,运行个循环给个参数,程序不结束参数不释放,最后会很卡,这只是一种方法,尽量保证数据的重复性和可用性

评分

参与人数 1驿站币 +2 热心值 +2 收起 理由
58_avatar_small 敏敏 + 2 + 2 谢谢,也帮助了我。

查看全部评分

26_avatar_middle
12#
在线会员 发表于 昨天 22:40 | 只看该作者
printf("%5.3d ", a[i]);改为printf("%5.3d ", a[j]);试试
26_avatar_middle
13#
在线会员 发表于 昨天 22:41 | 只看该作者
printf("%5.3d ", a[i]);把a[i]改为a[j],试试。
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-10-10 06:12

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表
时时彩平台排名