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.pswp.cn/news/273949.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/273949.shtml
英文地址,請注明出處:http://en.pswp.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

其中包含了眾多的函數調用。