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,一经查实,立即删除!

相关文章

python系统学习1-程序设计的基本方法

一、程序设计基本方法 计算机与程序设计 编译和解释 程序的基本编写方法 计算机编程 1、计算机与程序设计 &#xff08;1&#xff09;、计算机是根据指令操作数据的设备 功能性&#xff1a;对数据的操作、表现为数据计算、输出输入处理和结果存储。 可编程性&#xff1a;…

python 系统学习实例1.1 - 华氏度与摄氏度的转换

# C ( F - 32 ) / 1.8‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ # F C * 1.8 32‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫…

EMS问题

如果EMS启动后在运行时报出 JMS error: "Not allowed to create destination这个错误&#xff0c;可能就是你启动方式的问题了进入到EMS的安装目录的bin目录下&#xff0c;运行tibemsca.bat那个文件就好使了。转载于:https://www.cnblogs.com/xiaotianyu/p/3421737.html

python 系统学习实例1.2 - 人民币与美元的转换

# RMB USD / 6.78‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬ # USD RMB* 6.78 def tempConvert(): t input("请输入数值:") …

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

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

python爬虫--如何爬取翻页url不变的网站

参考 https://blog.csdn.net/c350577169/article/details/80410133

POJ 1745 Divisibility DP

POJ:http://poj.org/problem?id1745 A完这题去买福鼎肉片&#xff0c;和舍友去买滴~舍友感慨“这一天可以卖好几百份&#xff0c;每份就算赚一块钱。。那么一个月。。一年。。。” 我说“那我们以后去卖这个吧&#xff0c;饿了还能自己煮着吃” 哈哈&#xff0c;一群天真的少…

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

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

C++ - 进阶 1002

This time, you are supposed to find AB where A and B are two polynomials. Input Specification: Each input file contains one test case. Each case occupies 2 lines, and each line contains the information of a polynomial: K N​1​​ a​N​1​​​​ N​2​​…

修改6S Fortran77 代码,建立查找表

逐像元大气校正&#xff0c;常预先计算查找表&#xff08;LUT&#xff0c;LookUp Tabel&#xff09;&#xff0c;6S大气辐射传输模式也可以用来计算LUT。但6S源程序输出信息多&#xff0c;且浮点数输出精度低&#xff0c;不利于提取关键信息生成LUT&#xff0c;本文描述了怎样修…

c++ 实例

#include "stdafx.h" #include <iostream> using namespace std; int main() { int a; a 4; cout<<a<<endl; return 0; }

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

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

c++ pat 乙级 --1001 害死人不偿命的(3n+1)猜想

1001 害死人不偿命的(3n1)猜想 &#xff08;15 分&#xff09; 卡拉兹(Callatz)猜想&#xff1a; 对任何一个正整数 n&#xff0c;如果它是偶数&#xff0c;那么把它砍掉一半&#xff1b;如果它是奇数&#xff0c;那么把 (3n1) 砍掉一半。这样一直反复砍下去&#xff0c;最后…

【开源项目之路】jquery的build问题

在刚开始clone了jquery到本地build的时候&#xff0c;就遇到了问题。 “ENORESTARGET No tag found that was able to satisfy ...” 提示为bower install失败&#xff0c;反复查找原因&#xff0c;最后在这儿看到同样类似的问题&#xff0c;貌似是git协议的连接问题&#xff0…

适配ios7

if ([self respondsToSelector:selector(edgesForExtendedLayout)]){self.edgesForExtendedLayout UIRectEdgeNone;self.extendedLayoutIncludesOpaqueBars NO;self.modalPresentationCapturesStatusBarAppearance NO;} 转载于:https://www.cnblogs.com/jiackyan/p/3441378.…

c++ pat 乙级 -------1002 读入一个正整数 n,计算其各位数字之和,用汉语拼音写出和的每一位数字。

1002 写出这个数 &#xff08;20 分&#xff09; 读入一个正整数 n&#xff0c;计算其各位数字之和&#xff0c;用汉语拼音写出和的每一位数字。 输入格式&#xff1a; 每个测试输入包含 1 个测试用例&#xff0c;即给出自然数 n 的值。这里保证 n 小于 10​100​​。 输出…

USACO SEC.1.3 No.1 Mixing Milk

题意&#xff1a;需要收购总数为N的牛奶&#xff0c;现在有M个牛奶供应商&#xff08;总量足够&#xff09;&#xff0c;给出总数和单价&#xff0c;求最小的花销。 核心&#xff1a;基本的贪心解法&#xff0c;按单价排序逐个选取。 目的在于熟悉基本的贪心法的基本方法和思路…

c++ 获取数组的长度

//获得数组的长度 template<typename T> int count(T& x) { int s1 sizeof(x); int s2 sizeof(x[0]); int result s1 / s2; return result; }

[WPF疑难] 继承自定义窗口

[WPF疑难] 继承自定义窗口 原文 [WPF疑难] 继承自定义窗口 [WPF疑难] 继承自定义窗口 周银辉 项目中有不少的弹出窗口&#xff0c;按照美工的设计其外边框&#xff08;包括最大化&#xff0c;最小化&#xff0c;关闭等按钮&#xff09;自然不同于Window自身的&#xff0c;但每个…

c++ #includecstring

其中包含了众多的函数调用。