Mingw下g++编译执行顺序错误

今天写一个简单的线性表时,用Mingw中的g++编译、调试、运行时发现一个奇怪的现象:程序的执行顺序与实际编写顺序不一致。

编译环境:代码编写  win7下   editplus + Mingw 4.3.3 + g++

代码片段如下:

  1 //function: create a list 
  2 //time:2013-11-8 23:38
  3 //filename:list_01.cpp
  4 //author :alex
  5 #include <stdio.h>
  6 #define MAXSIZE 20 //存储空间初始大小
  7 #define OK 1 //success
  8 #define ERROR 0 // failed
  9 #define TRUE 1
 10 #define FALSE 0
 11 typedef int Status;// 返回函数结果状态
 12 typedef int ElemType;//int 型 ElemType
 13 //定义线性表的结构体
 14 typedef struct 
 15 {
 16  ElemType data[MAXSIZE];//data[20]
 17  int length;//线性表当前长度
 18 }SqList;
 19 //初始化链表0
 20 Status InitList(SqList *L)
 21 {
 22  L->length=0;//指定长度为0
 23  printf("初始化完成...\n");
 24  return OK;
 25 }
 26 //打印出链表的内容
 27 Status PrintList(SqList *L)
 28 {
 29  if(L->length > 0)
 30  {
 31  printf("链表元素如下:\n");
 32  for(int i=0;i < L->length;i++)
 33  printf("%d\t",L->data[i]);
 34  return OK;
 35  }
 36  else
 37  {
 38  printf("L.length=%d",L->length);
 39  return ERROR;
 40  }
 41 }
 42 //取元素 O(1)
 43 Status GetElem(SqList L,int i,ElemType *e)
 44 {
 45  if(L.length==0 || i<1 || i>L.length)
 46  return ERROR;
 47  *e=L.data[i-1];//直接取值data[i-1]
 48  return OK;
 49 }
 50 //插入数据 为i第几个元素位置,从1开始 O(n)
 51 Status ListInsert(SqList *L,int i,ElemType e)
 52 {
 53  int k;
 54  if(L->length==MAXSIZE) //判断满否
 55  return ERROR;
 56  if(i<1 || i> L->length+1) //超出范围
 57  return ERROR;
 58  if(i< L->length)
 59  {
 60  for(k=L->length-1;k>=i-1;k--)
 61  //将要插入位置后的数据元素向后移动一位
 62  L->data[k+1]=L->data[k];
 63  }
 64  L->data[i-1]=e;//插入新元素
 65  L->length++; //线性表长度+1
 66  return OK;
 67 }
 68 //删除数据 删除第i个位置元素,用e返回其值 O(n)
 69 Status ListDelete(SqList *L,int i,ElemType *e)
 70 {
 71  int k;
 72  if(L->length==0)//线性表为空
 73  return ERROR;
 74  if(i<1 || i> L->length)//删除位置超出
 75  return ERROR;
 76  *e=L->data[i-1]; //i位置元素取出
 77  if(i< L->length) //位置适当
 78  { 
 79  for(k=i;k < L->length;k++)
 80  L->data[k-1]==L->data[k];
 81  }
 82  L->length--;
 83  return OK;
 84 }
 85 int main(int argc, char *argv[])
 86 {
 87  int i,j,k;
 88  printf("This is a list_demo:\n");
 89  SqList list;
 90  //初始化链表list长度为5
 91  InitList(&list);
 92  //数组长度与链表长度的关系???
 93  //回显
 94  printf("list.length=%d \n",list.length);
 95  //插入元素
 96 
 97  printf("插入5个元素\n");
 98  /*
 99  for(i=0;i<5;i++)
100  {
101  scanf("%d",&k);
102  ListInsert(&list,i+1,k);
103  }
104  */
105  i=0; 
106  while (i<5)
107  {
108  scanf("%d",&k);
109  ListInsert(&list,i+1,k);
110  i++;
111  }
112  PrintList(&list);
113  return 0;
114 }
View Code

 

截图输出    需要先输入之后才执行main函数开始部分,奇怪哉???

然而在gdb调试输出时,却又是正确的,见下:

11

问题是怎样产生的尚不明确,猜测与Mingw下g++编译器有关,尚待调查中。。。。

转载于:https://www.cnblogs.com/vvwang/p/3416164.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HDTV(1920x1080)码率和视频质量关系的研究 2 (实验结果)

上一篇文章中介绍了实验的准备工作&#xff0c; HDTV&#xff08;1920x1080&#xff09;码率和视频质量关系的研究 1 &#xff08;前期准备&#xff09; 本文介绍一下实验的结果。 首先来看一下主观评价的试验结果&#xff1a; 从实验结果来看&#xff0c;可以得出以下结论&…

NGUI如何创建自己的精灵图集

说实话其实很简单,但是在不知道的情况下真的不好弄啊. 1. 选择你要制作精灵图集的图片,可以选择多张 2. 提倡使用快捷键Alt Shift M 会有如下窗口弹出,也可以NGUI --> Open-->Atlas Maker打开 我们看到在Sprites里面就是我们选择的要制作图集的图片 当在Replace后面的输…

VMware虚拟机与宿主无法复制的解决办法

由于工作需要&#xff0c;上网机器使用虚拟机&#xff0c;因此需要经常来回的拷贝文件&#xff0c;而vmware从6.5一直走来到10.0.1&#xff0c;总是有一个问题很让人苦恼---共享粘贴板总是会无故失效。经常实验&#xff0c;发现可以经过以下方法临时解决一下&#xff0c;虽然不…

我感觉我恰似一个呆逼

TicTacToe V2.0。 非要用1-9来输入的结果就是使用二维数组这件事的意义变得非常难找。 留个遗体&#xff0c;我要改回坐标输入了。 1 public class Game {2 String chessBoard;3 String[][] pieces new String[3][3];4 5 /** 初始化棋盘样式和棋子数组。*/6 …

[企业化NET]Window Server 2008 R2[3]-SVN 服务端 和 客户端 基本使用

1. 服务器基本安装即问题解决记录 √ 2. SVN环境搭建和客户端使用 2.1 服务端 和 客户端 安装 √ 2.2 项目建立与基本使用 √ 2.3 基本冲突解决,并版&#xff0c;tags 3. 数据库安装 4. 邮件服务器搭建 5. JIRA环境搭建和使用 6. CC.NET项目持续发布工具…

关于 mysql.test 数据库

国内私募机构九鼎控股打造APP&#xff0c;来就送 20元现金领取地址&#xff1a;http://jdb.jiudingcapital.com/phone.html内部邀请码&#xff1a;C8E245J &#xff08;不写邀请码&#xff0c;没有现金送&#xff09;国内私募机构九鼎控股打造&#xff0c;九鼎投资是在全国股份…

Python中strip()、lstrip()、rstrip()用法详解

Python中strip()、lstrip()、rstrip()用法详解 Python中有三个去除头尾字符、空白符的函数&#xff0c;它们依次为: strip&#xff1a; 用来去除头尾字符、空白符(包括\n、\r、\t、 &#xff0c;即&#xff1a;换行、回车、制表符、空格) lstrip&#xff1a;用来去除开头字符、…

HDU 4121 Xiangqi 模拟题

题目&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid4121 首先对标题赞一个&#xff0c;非要叫 “Xiangqi” 而不是 ”中国象棋“ 或者 ”Chinese chess“ 。。 然后是题意&#xff1a;黑棋只剩下一个”将“了&#xff0c;红棋各种 ”车” “马” “炮“&#xff0c;…

Python3的方法解析顺序(MRO)

Python 2.3 的新式类的 C3 算法。它也是 Python 3 唯一支持的方式(笔者使用python3&#xff0c;所以就先讲这种的) 一个例子&#xff1a; class D(object): pass class E(object): pass class F(object): pass class C(D, F): pass class B(E, D): …

WPF 用 DataTemplate 合并DataGrid列表列头类似报表设计及行头列头样式 - 学习

WPF中 DataGrid 列头合并&#xff0c;类似于报表设计。效果图如下↓ 1.新建一个WPF项目WpfApplication1&#xff0c;新建一个窗体DataGridTest&#xff0c;前台代码如下&#xff1a; <Window x:Class"WpfApplication1.DataGridTest" xmlns"http://sch…

他山之石,可以攻玉——来自亚马逊的电商启示录

题记&#xff1a;“创新是我们的DNA&#xff0c;技术是我们改善客户体验的基础2009 年致股东的信” 1. 从亚马逊的成功讲起 1.1 历经8 年亏损始成正果 它是世界上所有电商的龙头和楷模&#xff0c;是毫无争议的行业标杆和旗帜&#xff0c;它在战略和经营上的一举一动都是关注的…

Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用

1、首先准备我们的资源&#xff0c;把要转换的Jar文件、精简过的JRE文件夹和想生成的EXE文件的图标&#xff08;可以是png&#xff0c;jpg等格式&#xff0c;不想加图标可以不弄&#xff09;放到同一个文件夹内。这一步一定要做&#xff0c;否则可以成功生成&#xff0c;但在没…

linux中的fork方法(python)

前言&#xff1a; Unix/Linux操作系统提供了一个fork()系统调用&#xff0c;它非常特殊。普通的函数调用&#xff0c;调用一次&#xff0c;返回一次&#xff0c;但是fork()调用一次&#xff0c;返回两次&#xff0c;因为操作系统自动把当前进程&#xff08;称为父进程&#xf…

进程间通信(python)

Process之间肯定是需要通信的&#xff0c;操作系统提供了很多机制来实现进程间的通信。Python的multiprocessing模块包装了底层的机制&#xff0c;提供了Queue、Pipes等多种方式来交换数据。 一、我们以Queue为例&#xff0c;在父进程中创建两个子进程&#xff0c;一个往Queue…

Ajax 模糊查询的简单实现

类似于百度的搜索引擎模糊查询功能&#xff0c;不过百度的模糊查询功能更强大&#xff0c;这里简单实现下. 要实现模糊查询&#xff0c;首先要做的就是把SQL写好。话不多少&#xff0c;直接贴代码了! JSP页面&#xff1a; <% page language"java" import"jav…

OpenStack组件

OpenStack的架构及组件&#xff08;Havana&#xff09; 服务项目名描述控制台Horizon用户通过该服务与OpenStack的各服务进行交互&#xff0c;如启动虚机实例、分配IP地址、设置访问控制等&#xff1b;计算Nova按需分派并管理虚机&#xff1b;网络Neutron通常是计算服务通过该服…

[转]Design Pattern Interview Questions - Part 2

Interpeter , Iterator , Mediator , Memento and Observer design patterns.(I) what is Interpreter pattern?(B) Can you explain iterator pattern?(A) Can you explain mediator pattern?(I) Can you explain memento pattern?(B) Can you explain observer pattern?…

python爬虫面试题

1 :列表生成式和生成器的区别 &#xff1f; 列表生成式直接生成一个列表&#xff0c;所有元素对象被立即创建在内存中&#xff0c;当元素过多时&#xff0c;势必会占用过多内存&#xff0c; 不可取&#xff0c;要用到生成器&#xff0c;它即时创建一个生成器对象&#xff0c;…

Android ImageView图片自适应

网络上下载下来的图片自适应&#xff1a;android:adjustViewBounds"true"&#xff08;其详细解释在下面&#xff09;<ImageViewandroid:id"id/dynamic_item_image"android:layout_width"wrap_content"android:layout_height"wrap_conten…

都江堰很美-佩服古人_Crmhf的一天

地震遗迹&#xff1a;一条背街&#xff0c;损坏严重&#xff0c;基本没什么人。真正的水利工程&#xff0c;值得每个人学习&#xff1a;转载于:https://www.cnblogs.com/crmhf/p/3823157.html