㈠ Linux終端編寫c語言,編譯出錯,請大家幫忙看看,哪裡的問題,怎麼改正。我安裝的是烏班圖的麒麟系統。
出現該錯誤的原因為編譯時只變編譯了源文件的一部分,故在鏈接時無法從編譯好的目標代碼中找到print函數,所以出錯。
根據你的源文件結構,個人推薦先單獨編譯源文件為多個object文件,再統一鏈接。
方法如下
gcc -c main.c # -c參數的作用是讓gcc只編譯,不鏈接
gcc -c test.c
gcc -o main main.o test.o # 將編譯好的目標代碼鏈接
當然,以上是在gcc為編譯器的前提下執行,如使用clang等其他編譯器,方法類似(clang的調用方法與gcc高度兼容)
㈡ C語言錯誤C2143,具體代碼如下,如何修改
matlab中如果編寫代碼錯誤,怎麼修改 1、首先需要打開文件,修改代碼格式命令如下cd(需要設定為工作路徑的地址),敲擊回車就會生效。2、或者在命令行窗口中輸入pathtool,敲擊回車,接著會彈出設置路徑的窗口。3、最後,設置成功,如圖所示,再次在命令行窗口中輸入cd就可以校驗是否修改成功,這樣操作即可。
㈢ c語言代碼修改
將選擇排序的中間的:
if(k!=i)
{
t=stu[i];stu[i]=stu[i+1];stu[i+1]=t;
}
改為:
if(k!=i)
{
t=stu[i];stu[i]=stu[k];stu[k]=t;
}
即可
㈣ C語言代碼修改!!!
//修改如下,修改的地方已經幫你注釋了下
#include<stdio.h>
#include<stdlib.h>//沒有添加malloc()函數相關的頭文件
//#defineLENsizeof(structstudent)//這個應該放在structstudent後面
intn=0;
structstudent
{
intnum;
charname[20];
intscore;
structstudent*next;
};//分號忘記加了
#defineLENsizeof(structstudent)
voidprint(structstudent*head)//應該是結構體指針類型,少了*號
{
structstudent*p;
printf(" Now,These%drecordsare: ",n);//少了一個n,是 Now
p=head;
//if(p!=NULL)//這個是沒必要的
do
{
printf("學號:%d 姓名:%s 成績:%d ",p->num,p->name,p->score);
p=p->next;//p指向下一個結點
}while(p!=NULL);
}
intmain()
{
structstudent*p1,*p2,*head=NULL;
printf("請輸入各位同學的信息(以0為結束標志): ");
p1=p2=(structstudent*)malloc(LEN);
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
while(p1->num!=0)
{
n=n+1;
if(n==1)
head=p1;
else{//沒有加花括弧
p2->next=p1;
p2=p1;
}
p1=(structstudent*)malloc(LEN);
scanf("%d%s%d",&p1->num,p1->name,&p1->score);
}
p2->next=NULL;
print(head);
return0;
}
//示例運行結果
F:c_work>a.exe
請輸入各位同學的信息(以0為結束標志):
10001aaa100
10002bbb99
10003ccc88
000
Now,These3recordsare:
學號:10001
姓名:aaa
成績:100
學號:10002
姓名:bbb
成績:99
學號:10003
姓名:ccc
成績:88
㈤ ubuntu下如何編譯C語言
1、首先打開ubnutu開發環境,直接輸入組合鍵ctrl+alt+t調出命令行界面。
㈥ C語言這段代碼該怎麼改。。。編譯運行無法顯示排序後的結果
voidinputstudent(structstudent**pst1,int&len_1)//參數修改
{
inti;
printf("請輸入學生的個數: ");
printf("len=");
scanf("%d",&len_1);//地址傳參才可以改變原值
student*pst=(structstudent*)malloc(len_1*sizeof(structstudent));
*pst1=pst;//地址賦值
for(i=0;i<len_1;i++)
{
printf("請輸入第%d個學生的信息: ",i+1);
printf("age=");
scanf("%d",&pst[i].age);
printf("name=");
scanf("%s",pst[i].name);
printf("score=");
scanf("%f",&pst[i].score);
}
}
調用處改為:
inputstudent(&parr,len);
錯誤在於,普通實參傳遞不能改變傳入變數的值,需要使用二級指針和地址傳參。
㈦ C語言源代碼,怎麼修改
改4個地方
-------------------------------------------
#include<stdio.h>
//加頭文件
main()
{
long int i;
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;
scanf("%1d",&i);
//scanf("%1d",&i);
//=>scanf("%d",&i);
//把1去掉,你應該是想寫字母『L』吧?
bonus1=100000*0.1;
bonus2=bonus1+100000*0.75;
bonus4=bonus2+200000*0.5;
bonus6=bonus4+200000*0.3;
bonus10=bonus6+400000*0.15;
if(i<100000)
bonus=i*0.1;
else if(i<=200000)
bonus=bonus1+(i-100000)*0.075;
else if(i<=400000)
bonus=bonus2+(i-200000)*0.05;
else if(i<=600000)
bonus=bonus4+(i-400000)*0.03;
else if(i<=1000000)
bonse=bonus6+(i-600000)*0.015;
//bonse=bonus6+(i-600000)*0.015;
//=>bonus=bonus6+(i-600000)*0.015;
//bonus拼寫錯誤
else
bonus=bonus10+(i-1000000)*0.01;
printf("bonus=%d\n",bnuse);
//printf("bonus=%d\n",bnuse);
//=>printf("bonus=%d\n",bonus);
//bonus拼寫錯誤
}
㈧ C語言簡單代碼怎麼改啊~
#include<stdio.h>
voidmain()
{
charc;
c=getchar();
printf("%c",c);//輸出C的值
}
你都沒說你要改成什麼樣--#
㈨ 烏班圖vi打C語言不變色
工程文件等創建正常的情況下,看一下你Keil的安裝路徑裡面是否有中文,若有中文就會出現這種問題,建議卸載後更改安裝路徑至純英文後重新安裝。
編輯-》配置-》顏色與字型-》在視窗菜單中點8051:EditorCFiles-》在右邊項目菜單中點Keyword然後自己選顏色吧。
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。