| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1070 人关注过本帖
标题:新手上路,vc使用的新手-这个程序在vc版运行不了
只看楼主 加入收藏
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
结帖率:99.25%
收藏
已结贴  问题点数:20 回复次数:7 
新手上路,vc使用的新手-这个程序在vc版运行不了
为什么这个排序程序在vc版运行不了,但在其他编程软件可以,我用c-free5就能正常运行,vc与-free5在执行运算时原理有什么不同?
#include<stdio.h>
int main()
{
   int *a,i,j,m,t,p;
    printf("请输入需要排序的个数:");
    scanf("%d",&m);
    printf("请输入%d个整数\n",m);
    for (i=0;i<m;i++)
        scanf("%d",a++);
        a-=m;
        p=a;
    for (i=0;i<m;i++)
       for (a=p,j=0;j<m-1-i;j++)
           if (*a<*(a+1))
           {
               t=*a;
               *a=*(a+1);
               *(a+1)=t;
               a++;
           }
     for(i=0;i<m;i++)
        printf("%d ",*a++);
     return 0;
}
图片附件: 游客没有浏览图片的权限,请 登录注册
搜索更多相关主题的帖子: include 新手上路 编程软件 
2016-10-22 15:16
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
不好意思,这个程序本来测试时就有逻辑漏洞,请大家不要见怪

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 15:23
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
不好意思,我自己把内循环a++的位置写错了……不是if条件成立才执行a++,大家知道就好

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 15:33
书生牛犊
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:星夜征程
等 级:贵宾
威 望:10
帖 子:1101
专家分:5265
注 册:2015-10-27
收藏
得分:20 
题主说能运行,,,我不信,逻辑不通,怎么可能能运行?
程序代码:
int main()
{
   int *a,i,j,m,t,p;
    printf("请输入需要排序的个数:");
    scanf("%d",&m);
    printf("请输入%d个整数\n",m);
    for (i=0;i<m;i++)
        scanf("%d",a++);//请你告诉我此时a指向了什么地址?不知道吧,你都没给a初始化,怎么能就开始使用了呢?

如果C-FREE真的能运行的话,那么这个程序就是使用了野指针,未来程序运行结果是不可控制的。
而VC很可能就是发现了这个未初始化的变量被使用了,及时报错停止运行。阻止这种简单浅显的错误。




φ(゜▽゜*)♪
2016-10-22 17:58
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 4楼 书生牛犊
然后我改用“C与C++程序设计学习与实验系统2015.5”这个编译器,竟然运行成功了
图片附件: 游客没有浏览图片的权限,请 登录注册


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 18:26
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 5楼 九转星河
用c-Free运行时当m>4时便输不出数据……从这种现象看出我知道大概是什么问题了。

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 18:31
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
不管怎么说,这种没表明指向地址的指针是很危险的,我只是想通过这种方法研究下指针地址而已。改了一下,这样就OK了,本人为了测试添加了输出(右边的)空地址。
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2016-10-22 19:23编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 18:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
谢谢,已解决

[此贴子已经被作者于2016-10-22 19:21编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-10-22 19:07
快速回复:新手上路,vc使用的新手-这个程序在vc版运行不了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018481 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved