A. c語言運行時出現程序運行錯誤如何解決。代碼如下
錯誤地方很多
sort函數返回值就不對,不能返回數組,sort函數裡面直接修干數組,不需要返回
排序冒泡法 交換數值
temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
y+1 超出范圍,上面for(y=0;y<b-x;y++) 改為for(y=0;y<b-x-1;y++)
#include<stdio.h>
#define ARRAYSIZE 10000
int main()
{
int sort(int a[ARRAYSIZE],int b,int c);
int i;
int date[ARRAYSIZE]={10,20,30,40,50};
int n=5;
for(i=0;i<n;i++)
printf("%d ",date[i]);
printf("\n");
int addN;
scanf("%d",&addN);
printf("%d\n",addN);
sort(date,n,addN);
//把這里的sort(date[ARRAYSIZE],n,addN)改一下
n=n+1;
for(i=0;i<n;i++)
printf("%d ",date[i]);
return 0;
}
int sort(int a[ARRAYSIZE],int b,int c)
{
int x,y,temp;
a[b]=c;
b=b+1;
for(x=0;x<=b-1;x++)
{
for(y=0;y<b-x;y++)
if(a[y]>a[y+1])
{
temp=a[y];
a[y]=a[y+1];
a[y+1]=temp;
}
}
return 0;
}
B. c語言 編程 代碼 為什麼會出現這種錯誤 怎麼解決
產生這個問題可能的原因
1, 你用vc建了一個控制台程序,它的入口函數應該是main, 而你使用了WinMain.
2. 你用vc打開了一個.c/.cpp 文件,然後直接編譯這個文件,這個文件中使用了WinMian而不是main作為入口函數。vc這時的默認設置是針對控制台程序的。
解決方法
1.進入project->setting->c/c++, 在category中選擇preprocessor,在processor definitions中刪除_WINDOWS, 添加_CONSOLE
2.進入project->setting->Link, 在Project options中將/subsystem:windows.改為/subsystem:console
3.保存設置,Rebuild All.
(2)、LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/WinMain.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
你試試吧,可能是這個原因,這個問題出現的原因挺多的
C. C語言錯誤C2143,具體代碼如下,如何修改
matlab中如果編寫代碼錯誤,怎麼修改 1、首先需要打開文件,修改代碼格式命令如下cd(需要設定為工作路徑的地址),敲擊回車就會生效。2、或者在命令行窗口中輸入pathtool,敲擊回車,接著會彈出設置路徑的窗口。3、最後,設置成功,如圖所示,再次在命令行窗口中輸入cd就可以校驗是否修改成功,這樣操作即可。
D. c語言錯誤怎麼辦
如果發生錯誤的文件是由其他的C代碼文件添加進入當前工程而引起的,則Alt+F7進入當前工程的 Settings,選擇C/C++選項卡,從Category組合框中選中Precompiled Headers,選擇Not Using Precompiled headers。確定即可。
E. c語言編程中字元串復制函數編程程序出現錯誤,這是怎麼回事
這里原因是gets函數不安全,visual studio的後續產品已經不再支持此類函數,可以換成fgets(str1, sizeof(str1), stdin);
第一個參數是,字元存儲地址,第二個是最大內存大小,第三個是從哪裡讀取,stdin是從鍵盤,也可以是文件指針表示從文件中讀取。
其實strcpy出現提示也是不安全的,可以考慮使用strncpy函數。
以下是(5)c程序發生錯誤怎麼辦擴展閱讀
C語言gets函數,fgets函數的使用
gets從標准輸入設備讀字元串函數。可以無限讀取,不會判斷上限,以回車結束讀取。函數的具體功能如下所示:從stdin流中讀取字元串,直至接受到換行符或EOF時停止,並將讀取的結果存放在buffer指針所指向的字元數組中。換行符不作為讀取串的內容,讀取的換行符被轉換為『\0』空字元,並由此來結束字元串。
使用gets函數的時候應注意以下要素:可以無限讀取,不會判斷上限,所以程序員應該確保buffer的空間足夠大,以便在執行讀操作時不發生溢出。如果溢出,多出來的字元將被寫入到堆棧中,破壞一個或多個不相關變數的值。
這個事實導致gets函數只適用於玩具程序,為了避免這種情況,我們可以用fgets(stdin) 讀取標准輸入來替換gets()。為了向後兼容,gets刪除換行符,gets並不將換行符存入緩沖區。
fgets函數用來從文件中讀入字元串。fgets函數的調用形式如下:fgets(str,n,fp);此處,fp是文件指針;str是存放在字元串的起始地址;n是一個int類型變數。函數的功能是從fp所指文件中讀入n-1個字元放入str為起始地址的空間內;如果在未讀滿n-1個字元之時,已讀到一個換行符或一個EOF(文件結束標志),則結束本次讀操作,讀入的字元串中最後包含讀到的換行符。因此,確切地說,調用fgets函數時,最多隻能讀入n-1個字元。讀入結束後,系統將自動在最後加'\0',並以str作為函數值返回。原型是char *fgets(char *s, int n, FILE *stream);
同時注意scanf函數和gets函數混用時的注意事項:
1、gets在scanf前調用,這種調用一般不會出現什麼問題,可以正常輸入。
2、scanf在gets前調用,這種情況就會出現問題,當輸入完scanf中的變數時,運行到gets函數,則不讓輸入任何字元,出現此問題的原因是gets函數接收了scanf輸入完後的回車符,解決的辦法是在scanf和gets中間,用getchar函數接收掉回車符,這樣就不會出現任何問題了。
F. 新手在學習c語言並編譯程序時編譯錯誤怎麼辦
1、確定出錯的行號
如果是一個比較好的集成編譯環境的話,一般雙擊編譯錯誤,滑鼠都會自動跳轉到該行並高亮顯示。
沒有這個功能也沒關系,編譯錯誤裡面也都會有說明某某.c,某某行出的問題
1>e:\visual studio 2005\projects\airplane\airplane\airplane.cpp(52) : error C2065: 'abc' : undeclared identifier
這個就是說明在airplane.cpp的52行有錯誤
2、多個錯誤的話,一般只處理第一個錯誤
如果一次打出很多錯誤的話,不需要每一個都處理,只處理第一個編譯錯誤,然後再次編譯。大部分的時候,都是由於第一個錯誤產生了後續很多錯誤,第一個錯誤解決之後,其他錯誤也就迎刃而解。
3、對錯誤的更改
一般就是看錯誤的編號和後續的英文說明,如上面的錯誤,錯誤編號是C2065,錯誤的解釋是'abc' : undeclared identifier,未定義的標示符,將abc定義即可。
錯誤的種類很多,一般看英文就可以解決,如果解決不了的話,推薦根據錯誤編號上網搜索一下解決方法就OK拉。
G. C語言代碼運行出錯 怎麼改正
scanf("%s", &a);
而scanf_s()用於讀取字元串時,必須提供一個數字以表明最多讀取多少位字元,以防止溢出。
比如:scanf_s("%s" , buffer,128); /* 這里必須要有128,以表明最多讀取128個字元,如果寫成scanf_s("%s",buffer),程序將無法執行到底,且編譯器會提示「Unhandled exception at 0xfefefefe in array.exe:0xC0000005: Access tion.」 。當然在安全性要求不高的情況下,不 一定非要用scanf_s()函數,可用scanf("%s",&buffer)代替。 */
H. C語言編譯錯誤如何解決
C語言編譯錯誤如何解決,
辦法就是逐條分析編譯錯誤提示輸出的信息,並按照提示修改,
沒有捷徑,只能一條條地把編譯出錯的地方修改掉。
建議從前往後改,因為有可能後面的錯誤都是第一條的錯誤引起的。
所以可以改完幾條就重新編譯下,看修改的地方是否通過編譯了。
如此循環,直到消除所有的錯誤。
請採納,謝謝
I. 運行程序的時候出現C++錯誤怎麼辦
運行程序的時候出現C++錯誤這樣的問題一般是因為DLL文件出錯或者VC運行庫沒有安裝導致的,解決方法
一、下載VC運行庫進行安裝修復,修復後再進行測試。
二、以管理員身份運行命令提示符,打開開始菜單,搜索cmd。在命令提示符上單擊右鍵,選擇「以管理員身份運行」;在命令提示符中輸入以下命令:for %i in (%windir%system32*.dll) do regsvr32.exe /s %i,按下回車執行命令 即可完成修復。
(9)c程序發生錯誤怎麼辦擴展閱讀
C++進一步擴充和完善了C語言,流行的集成開發環境最新版本是Borland C++4.5,Symantec C++6.1,和Microsoft VisualC++2017。C++提出了一些更為深入的概念,它所支持的這些面向對象的概念容易將問題空間直接地映射到程序空間,為程序員提供了一種與傳統結構程序設計不同的思維方式和編程方法。
Windows 2000以後的版本都包括Visual Basic 5.0/6.0的庫。Internet Explorer總是帶有最新的Visual C++6.0的庫。Windows XP帶有Microsoft .NET 1.0(用於VB. NET和C#)的庫。Visual C++、Delphi和C++ Builder允許用戶選擇所編譯得到的程序是否依賴於運行庫。
J. 對於C語言編程出了錯,怎麼能快速找出錯誤呢
代碼是否存在邏輯錯誤:
1、變數使用前未被數值
實例:
int main()
{
int x=5,y,z;
z=x*y;
printf("%d",z);
return 0;
}
在此程序中變數y在使用之前未被賦值,所以結果輸出z的值就會是系統隨機分配一個值給y再加乘以x的值。
2、把賦值賦值符號「=」與等於符號「==」相混淆
實例:
有一下語句:
if(a=5)
{
printf("a等於5");
}
輸出的結果永遠都是「a等於5」,原因是在執行if(a=5)之時,無論a之前是什麼值,此時都會被重新賦值為5,而不是把a的值與5相比較,而正確的表示比較的表示為:
if(a==5)
{
printf("a等於5");
}
(10)c程序發生錯誤怎麼辦擴展閱讀
C語言編程注意事項:
1、書寫標識符時,忽略了大小寫字母的區別。
2、將字元常量與字元串常量混淆。
3、忽略了變數的類型,進行了不合法的運算。
4、忽略了「=」與「==」的區別。
5、忘記加分號。
6、多加分號。
7、輸入變數時忘記加地址運算符「&」。