c語言lesson2,c語言less

本文目錄一覽:

C語言編程題 急急急

#includestdio.h

#includestring.h

char name[4][20];

int score[4][4];

char lesson[4][20];

void average() //計算平均分

{

int i;

int a[4];

for(i=0;i4;i++)

{

a[i]=(score[i][0]+score[i][1]+score[i][2]+score[i][3])/4;

printf(“%s %d\n”,name[i],a[i]); //輸出每個學生的姓名和平均分

}

}

void max() //找最高分

{

int i,j;

int m[4]={0};

char n[4][20];

for(i=0;i4;i++)

{

for(j=0;j4;j++)

{

if(score[i][j]m[i])

{

m[i]=score[i][j];

strcpy(n[i],name[j]);

}

}

printf(“%d %s %s\n”,m[i],n[i],lesson[i]); //輸出每門最高分,學生姓名,課程名

}

}

void main()

{

int i;

for(i=0;i4;i++)

scanf(“%s”,lesson[i]); //輸入四門課名稱

for(i=0;i4;i++)

scanf(“%s %d %d %d %d”,name[i],score[0][i],score[1][i],score[2][i],score[3][i]); //輸入學生的名字和成績

average();

max();

}

已測試通過。你可以試試。希望有所幫助。呵呵

e:\c語言\lesson2.cpp(9) : error C2106: ‘=’ : left operand must be l-value請問下面哪裡錯了

1.不等號改成英文半形字元!,而不是!

2.你程序的意思應該是輸出i,j,k吧,那麼把for循環語句後面的分號去掉。

程序該後如下:

#includestdio.h

void main()

{int i,j,k;

printf(“\n”);

for(i=1;i5;i++)

for(j=1;j5;j++)

for(k=1;k5;k++)

{

if(i!=ji!=kj!=k)

printf(“%d,%d,%d\n”,i,j,k);

}}

c語言什麼是變數變數的定義

c語言中常常用到變數,c語言中什麼是變數呢?那麼下面是我整理的c語言變數的定義,歡迎閱讀。

c語言什麼是變數

變數來源於數學,是計算機語言中能儲存計算結果或能表示值抽象概念。變數可以通過變數名訪問。在指令式語言中,變數通常是可變的;但在純函數式語言(如Haskell)中,變數可能是不可變(immutable)的。在一些語言中,變數可能被明確為是能表示可變狀態、具有存儲空間的抽象(如在Java和Visual Basic中);但另外一些語言可能使用其它概念(如C的對象)來指稱這種抽象,而不嚴格地定義「變數」的準確外延。

變數介紹

由於變數讓你能夠把程序中準備使用的每一段數據都賦給一個簡短、易於記憶的名字,因此它們十分有用。變數可以保存程序運行時用戶輸入的數據(如使用InputBox函數在屏幕上顯示一個對話框,然後把用戶鍵入的文本保存到變數中)、特定運算的結果以及要在窗體上顯示的一段數據等。簡而言之,變數是用於跟蹤幾乎所有類型信息的簡單工具。

變數聲明後沒有賦值的話 編譯器會自動提示並賦予默認值

變數是一種使用方便的佔位符,用於引用計算機內存地址,該地址可以存儲Script運行時可更改的程序信息。例如,可以創建一個名為Click Count的變數來存儲用戶單擊Web頁面上某個對象的次數。使用變數並不需要了解變數在計算機內存中的地址,只要通過變數名引用變數就可以查看或更改變數的值。在VB Script中只有一個基本數據類型,即Variant,因此所有變數的數據類型都是Variant。

聲明變數

聲明變數的一種方式是使用Dim語句、Public語句和Private語句在Script中顯式聲明變數。例如:

Dim Degrees Fahrenheit

聲明多個變數時,使用逗號分隔變數。例如:

Dim Top, Bottom, Left, Right

另一種方式是通過直接在Script中使用變數名這一簡單方式隱式聲明變數。這通常不是一個好習慣,因為這樣有時會由於變數名被拼錯而導致在運行Script時出現意外的結果。因此,最好使用Option Explicit語句顯式聲明所有變數,並將其作為Script的第一條語句。

命名規則

首先,我們必須給變數取一個合適的名字,就好像每個人都有自己的名字一樣,否則就難以區分了。 在VB6中,變數的命名必須遵循以下規則:

(1)變數名必須以字母或下劃線打頭,名字中間只能由字母、數字和下劃線「_」組成;最後一個字元可以是類型說明符;

(2)變數名的長度不得超過255個字元;

(3)變數名在有效的範圍內必須是唯一的。有效的範圍就是引用變數可以被程序識別、使用的作用範圍——例如一個過程、一個窗體等等。有關引用變數作用範圍的內容,將在以後介紹。

(4)變數名不能是VB中的保留字(關鍵字),也不能是末尾帶類型說明符的保留字,但可以把保留字嵌入變數名, 關鍵字是指VB6語言中的屬性、事件、方法、過程、函數等系統內部的標識符。如已經定義的詞(if、endif、while、loop等)、函數名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。 例如: strName1,intMax_Length,intLesson,strNo3等是合法的變數名,而AB,all right,3M,_Number等是非法的變數名。

注意:

(1)變數名在VB中是不區分大小寫的(如ABC、aBc、abc等都是一樣的)。C語言中區分大小寫。不同的語言有不同的規則。

(2)定義和使用變數時,通常要把變數名定義為容易使用閱讀和能夠描述所含數據用處的名稱,而不要使用一些難懂的縮寫如A或B2等。例如:假定正在為水果鋪編一個銷售蘋果的軟體。我們需要兩個變數來存儲蘋果的價格和銷量。此時,可以定義兩個名為Apple_Price和Apple_Sold的變數。每次運行程序時,用戶就這兩個變數提供具體值,這樣看起來就非常直觀。具體方法是:通過用一個或多個單片語成有意義的變數名來使變數意義明確。例如,變數名SalesTaxRate就比Tax或Rate的意義明確得多。

(3)根據需要混合使用大小寫字母和數字。一個合理協議是,變數中每個單詞的第一個字母大寫,例如:DateOfBirth。

(4)另一個合理協議是,每個變數名以兩個或三個字元縮寫開始,這些字元縮寫對應於變數要存儲數據的數據類型。例如,使用strName來說明Name變數保存字元串型數據。這種命名方法叫匈牙利命名法

格式 變數類型 + 變數名字

比如剛才說的strname “str” 是”string”的縮寫 “Name” 則是變數名字

注意 變數類型都是小寫 而且變數名字是開頭大寫

C# 命名方法

1

stringstrName

VB 命名方法

1

DimstrNameasString

雖然無須過多地關注字元縮寫的細節,但以後還是需要看一下這方面的約定。在Visual Basic聯機幫助和許多Visual Basic高級編程的書籍中都可以找到這一約定的細節。

存活期

變數存在的時間稱為存活期。Script級變數的存活期從被聲明的一刻起,直到Script運行結束。對於過程級變數,其存活期僅是該過程運行的時間,該過程結束後,變數隨之消失。在執行過程時,局部變數是理想的臨時存儲空間。可以在不同過程中使用同名的局部變數,這是因為每個局部變數只被聲明它的過程識別。

作用域

變數的作用域由聲明它的位置決定。如果在過程中聲明變數,則只有該過程中的代碼可以訪問或更改變數值,此時變數具有局部作用域並被稱為過程級變數。如果在過程之外聲明變數,則該變數可以被Script中所有過程所識別,稱為Script級變數,具有Script級作用域。

生存期

是指變數的分配與回收的全過程,

類型

屬性變數和用戶自己建立的變數。

當我們在窗體中設計用戶界面時,vb6會自動為產生的對象(包括窗體本身)創建一組變數,即屬性變數,並為每個變數設置其預設值。這類變數可供我們直接使用,比如引用它或給它賦新值。

用戶也可以創建自己的變數,以便存放程序執行過程中的臨時數據或結果數據等等。在程序中,這樣的變數是非常需要的。下面就介紹這類變數的創建和使用方法。

聲明變數

變數在使用前,必須在代碼中進行聲明,即創建該變數。

在使用變數之前,大多數語言通常首先需要聲明變數。就是說,必須事先告訴編譯器在程序中使用了哪些變數,及這些變數的數據類型以及變數的長度。這是因為在編譯程序執行代碼之前編譯器需要知道如何給語句變數開闢存儲區,這樣可以優化程序的執行。

聲明變數有兩種方式分別是隱式聲明、顯式聲明。

隱式聲明:

變數可以不經聲明直接使用,此時VB給該變數賦予預設的類型和值。這種方式比較簡單方便,在程序代碼中可以隨時命名並使用變數,但不易檢查。

顯式聲明:

用聲明語句創建變數。

強制顯式聲明變數:

為了避免寫錯變數名引起的麻煩,用戶可以規定,只要遇到一個未經明確聲明就當成變數的名字,VB都發出錯誤警告。方法是—-強制顯式聲明變數。要強制顯式聲明變數,只須在類模塊、窗體模塊或標準模塊的聲明段中加入這條語句:

Option Explicit

這條語句是用來規定在本模塊中所有變數必須先聲明再使用,即不能通過隱式聲明來創建變數。在添加Option Explicit語句後,VB將自動檢查程序中是否有未定義的變數,發現後將顯示錯誤信息。

如果要自動插入Option Explicit語句,用戶只要在「工具」菜單中選取「選項」命令,然後單擊「選項」對話框中的「編輯器」選項卡,再選中「要求變數聲明」選項

這樣VB就會在任何新模塊中自動插入Option Explicit語句,但只會在新建立的模塊中自動插入。所以對於已經建立的模塊,只能用手工方法向現有模塊添加Option Explicit語句(只有再重新啟動VB,這項功能才有效)。

理變數範圍

變數的範圍確定了能夠知曉該變數存在的那部分代碼。在一個過程內部聲明變數時,只有過程內部的代碼才能訪問或改變那個變數的值;它有一個範圍,對該過程來說是局部的。但是,有時需要使用具有更大範圍的變數,例如這樣一個變數,其值對於同一模塊內的所有過程都有效,甚至對於整個應用程序的所有過程都有效。Visual Basic 允許在聲明變數時指定它的範圍。

存儲類型

我們在程序中會經常定義一些變數來保存和處理數據。從本質上看,變數代表了一段可操作的內存,也可以認為變數是內存的符號化表示。當程序中需要使用內存時,可以定義某種類型的變數。此時編譯器根據變數的數據類型分配一定大小的內存空間。程序就可以通過變數名來訪問對應的內存了。

如果說變數的數據類型決定了對應內存的大小,那麼存儲類型則影響著對應內存的使用方式。所謂使用方式,具體說就是在什麼時間、程序的什麼地方可以使用變數,即變數的生命周期和作用域。

先了解一些基本常識。一、在程序運行時內存中有三個區域可以保存變數:靜態存儲區、棧(stack)和堆(heap)。二、根據變數定義的位置可分為全局變數(定義在函數體外的變數)和局部變數(定義在函數體內的變數,包括形參)。

所有的全局變數和靜態局部變數(定義時使用關鍵字static)都保存在靜態存儲區,其特點是:在編譯時分配內存空間並進行初始化。在程序運行期間,變數一直存在,直到程序結束,變數對應的內存空間才被釋放。

而所有的非靜態局部變數(又稱為自動變數)保存在棧(stack)中,其特點是:在變數所在的函數或模塊被執行時動態創建,函數或模塊執行完時,變數對應的內存空間被釋放。換句話說,函數或模塊每被執行一次,局部變數就會重新被分配空間。如果變數定義時沒有初始化,那麼變數中的值是隨機數。

所有用malloc分配的內存(又稱為動態內存)都在堆(heap)中,其特點是:一般通過指針來訪問動態分配的內存。即可以通過free來手動釋放動態內存,也可以在程序結束時由系統自動釋放。

以上討論的是變數的生命周期,下面來看作用域。作用域指的是變數的可見範圍,即在變數的生命周期內,程序的哪些部分可以使用該變數。

全局變數的作用域從定義點開始一直到源文件的結束。如果要在定義點之前使用全局變數的話就需要使用關鍵字extern對作用域進行擴展。全局變數預設是可以被其他文件引用的。如果希望僅限於本文件使用的話,需要在定義時使用關鍵字static。

對於局部變數來說,無論是靜態局部變數還是自動變數,作用域都僅限於定義該變數的函數或模塊。

動態內存只要沒有被釋放就可以在程序的任何地方使用,前提是要知道動態內存的地址。

註:static加在全局變數前影響的是作用域,加在局部變數前影響的是生命周期。

變數類型

C語言中,變數分為全局變數和局部變數;也可以這樣分:自動變數,靜態變數.前者是按變數作用範圍來分的,而後者是按變數存儲方式來分的.

如果按存儲佔用空間來分,可以是整型變數,字元型變數,浮點型變數等.當然還有數組,結構體變數等.

C語言還有一個重要變數:指針變數.它存放的值是一個內存地址.

操作系統變數

操作系統變數

C語言中變數名是有大小寫之分的,如SUN與sun就是兩個不同的變數名。

另一點,聲明變數時,可以不用聲明就直接賦值來決定變數類型的語言如(javascript,flash cs3.0以前,等),這類語言變數的聲明通常被稱為弱類型,而如(c++等)必須先聲明,後使用,而且聲明時必須確定變數類型,這種就是嚴格的數據類型.

變數有兩種類型:屬性變數和用戶自己建立的變數。

JavaScript

變數

正如代數一樣,JavaScript 變數用於保存值或表達式。

可以給變數起一個簡短名稱,比如 x,或者更有描述性的名稱,比如 length。

JavaScript 變數也可以保存文本值,比如 carname=”Volvo”。

變數名稱的規則

變數對大小寫敏感(y 和 Y 是兩個不同的變數)

變數必須以字母或下劃線開始

注釋:由於 JavaScript 對大小寫敏感,變數名也對大小寫敏感。

實例

在腳本執行的過程中,可以改變變數的值。可以通過其名稱來引用一個變數,以此顯示或改變它的值。

本例為您展示原理。

聲明(創建) JavaScript 變數

在 JavaScript 中創建變數經常被稱為「聲明」變數。

您可以通過 var 語句來聲明 JavaScript 變數:

var x; var carname;

var x; var carname;

在以上聲明之後,變數並沒有值,不過您可以在聲明它們時向變數賦值:

var x = 5; var carname = “Volvo”;

var x = 5; var carname = “Volvo”;

注釋:在為變數賦文本值時,請為該值加引號。

向 JavaScript 變數賦值

通過賦值語句向 JavaScript 變數賦值:

x = 5; carname = “Volvo”;

x = 5; carname = “Volvo”;

變數名在 = 符號的左邊,而需要向變數賦的值在 = 的右側。

在以上語句執行後,變數 x 中保存的值是 5,而 carname 的值是 Volvo。

向未聲明的 JavaScript變數賦值

如果您所賦值的變數還未進行過聲明,該變數會自動聲明。

這些語句:

x = 5; carname = “Volvo”;

x = 5; carname = “Volvo”;

與這些語句的效果相同:

var x = 5; var carname = “Volvo”;

var x = 5; var carname = “Volvo”;

重新聲明 JavaScript變數

如果您再次聲明了 JavaScript 變數,該變數也不會丟失其原始值。

var x = 5; var x;

var x = 5; var x;

在以上語句執行後,變數 x 的值仍然是 5。在重新聲明該變數時,x 的值不會被重置或清除。

JavaScript算術

正如代數一樣,您可以使用 JavaScript 變數來做算術:

y = x – 5; z = y + 5;

y = x – 5; z = y + 5

php中的變數類型

PHP 中的變數:變數用於存儲值,比如數字、文本字元串或數組。

一旦設置了某個變數,我們就可以在腳本中重複地使用它。

PHP 中的所有變數都是以 $ 符號開始的。

在 PHP 中設置變數的正確方法是:

$var_name = value;PHP 的入門者會忘記在變數的前面的 $ 符號。如果那樣做的話,變數將是無效的。

我們創建一個存有字元串的變數,和一個存有數值的變數:

不必向 PHP 聲明該變數的數據類型。

根據變數被設置的方式,PHP 會自動地把變數轉換為正確的數據類型。

在強類型的編程語言中,您必須在使用前聲明變數的類型和名稱。

在 PHP 中,變數會在使用時被自動聲明。

php 中的變數用一個美元符號後面跟變數名來表示。變數名是區分大小寫的。

變數名與 php 中其它的標籤一樣遵循相同的規則。一個有效的變數名由字母或者下劃線開頭,後面跟上任意數量的字母,數字,或者下劃線。按照正常的正則表達式,它將被表述為:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*’。

注: 在此所說的字母是 a-z,A-Z,以及 ASCII 字元從 127 到 255(0x7f-0xff)。

php 3 中,變數總是傳值賦值。那也就是說,當將一個表達式的值賦予一個變數時,整個原始表達式的值被賦值到目標變數。這意味著,例如,當一個變數的值賦予另外一個變數時,改變其中一個變數的值,將不會影響到另外一個變數。有關這種類型的賦值操作,請參閱表達式一章。

php 4 提供了另外一種方式給變數賦值:引用賦值。這意味著新的變數簡單的引用(換言之,「成為其別名」 或者 「指向」)了原始變數。改動新的變數將影響到原始變數,反之亦然。這同樣意味著其中沒有執行複製操作;因而,這種賦值操作更加快速。不過只有在密集的循環中或者對很大的數組或對象賦值時才有可能注意到速度的提升。

使用引用賦值,簡單地將一個 符號加到將要賦值的變數前(源變數)。例如,下列代碼片斷將輸出「My name is Bob」兩次:

有一點重要事項必須指出,那就是只有有名字的變數才可以引用賦值。

變數的命名規則:

變數名必須以字母或下劃線 “_” 開頭。

變數名只能包含字母數字字元以及下劃線。

C語言 求高人

給你個模板,這是我們老師讓我們寫的

你在自己改改

#includestdio.h

#includestdlib.h

#includestring.h

struct Student

{

char ID[20];

char name[20];

float score1;

float score2;

float score3;

float average;

float sum;

};

struct Student students[1000];

int num=0;

float Avg(struct Student stu)

{

return(stu.score1+stu.score2+stu.score3)/3;

}

float Sum(struct Student stu)

{

return(stu.score1+stu.score2+stu.score3);

}

int SearchByIndex(char id[])

{

int i;

for (i=0;inum;i++)

{

if (strcmp(students[i].ID,id)==0)

{

return i;

}

}

return -1;

}

int SearchByname(char name[])

{

int i;

for (i=0;inum;i++)

{

if (strcmp(students[i].name,name)==0)

{

return i;

}

}

return -1;

}

void DisplaySingle(int index)

{

printf(“%10s%10s%8s%8s%8s%10s%10s\n”,”學號”,”姓名”,”數學”,”語文”,”C語言”,”平均成績”,”總分”);

printf(“————————————————————-\n”);

printf(“%10s%10s%8.2f%8.2f%8.2f%10.2f%10.2f\n”,students[index].ID,students[index].name,students[index].score1,students[index].score2,students[index].score3,students[index].average,students[index].sum);

}

void Insert()

{

while(1)

{

printf(“請輸入學號:”);

scanf(“%s”,students[num].ID);

getchar();

printf(“請輸入姓名:”);

scanf(“%s”,students[num].name);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[num].score1);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[num].score2);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[num].score3);

getchar();

students[num].average=Avg(students[num]);

students[num].sum=Sum(students[num]);

num++;

printf(“是否繼續?(y/n)”);

if (getchar()==’n’)

{

break;

}

}

}

void Correct()

{

float score1,score2,score3;

while(1)

{

char id[20];

int index;

printf(“請輸入要修改的學生的學號:”);

scanf(“%s”,id);

getchar();

index=SearchByIndex(id);

if (index==-1)

{

printf(“學生不存在!\n”);

}

else

{

printf(“你要修改的學生信息為:\n”);

DisplaySingle(index);

printf(“– 請輸入新值–\n”);

printf(“請輸入學號:”);

scanf(“%s”,students[index].ID);

getchar();

printf(“請輸入姓名:”);

scanf(“%s”,students[index].name);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[index].score1);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[index].score2);

getchar();

printf(“請輸入成績:”);

scanf(“%f”,students[index].score3);

getchar();

students[index].average=Avg(students[index]);

students[index].sum=Sum(students[index]);

}

printf(“是否繼續?(y/n)”);

if (getchar()==’n’)

{

break;

}

}

}

void Delete()

{

int i;

while(1)

{

char id[20];

int index;

printf(“請輸入要刪除的學生的學號:”);

scanf(“%s”,id);

getchar();

index=SearchByIndex(id);

if (index==-1)

{

printf(“學生不存在!\n”);

}

else

{

printf(“你要刪除的學生信息為:\n”);

DisplaySingle(index);

printf(“是否真的要刪除?(y/n)”);

if (getchar()==’y’)

{

for (i=index;inum-1;i++)

{

students[i]=students[i+1];

}

num–;

}

getchar();

}

printf(“是否繼續?(y/n)”);

if (getchar()==’n’)

{

break;

}

}

}

void SelectByName()

{

while(1)

{

char name[20];

int index;

printf(“請輸入要查詢的學生的姓名:”);

scanf(“%s”,name);

getchar();

index=SearchByname(name);

if (index==-1)

{

printf(“學生不存在!\n”);

}

else

{

printf(“你要查詢的學生信息為:\n”);

DisplaySingle(index);

}

printf(“是否繼續?(y/n)”);

if (getchar()==’n’)

{

break;

}

}

}

void SelectByIndex()

{

while(1)

{

char id[20];

int index;

printf(“請輸入要查詢的學生的學號:”);

scanf(“%s”,id);

getchar();

index=SearchByIndex(id);

if(index==-1)

{

printf(“學生不存在!\n”);

}

else

{

printf(“你要查詢的學生信息為:\n”);

DisplaySingle(index);

}

printf(“是否繼續?(y/n)”);

if (getchar()==’n’)

{

break;

}

}

}

void Sort()

{

int i,j;

struct Student tmp;

for (i=0;inum;i++)

{

for (j=1;jnum-i;j++)

{

if (students[j-1].averagestudents[j].average)

{

tmp=students[j-1];

students[j-1]=students[j];

students[j]=tmp;

}

}

}

}

void Display()

{

int i;

printf(“%10s%10s%8s%8s%8s%10s%10s\n”,”學號”,”姓名”,”數學”,”語文”,”C語言”,”平均成績”,”總分”);

printf(“————————————————————-\n”);

for (i=0;inum;i++)

{

printf(“%10s%10s%8.2f%8.2f%8.2f%10.2f%10.2f\n”,students[i].ID,students[i].name, students[i].score1,students[i].score2,students[i].score3,students[i].average,students[i].sum);

}

}

void Read()

{

FILE *fp;

int i;

if ((fp=fopen(“Database.dat”,”rb”))==NULL)

{

printf(“不能打開文件!\n”);

return;

}

if (fread(num,sizeof(int),1,fp)!=1)

{

num=-1;

}

else

{

for(i=0;inum;i++)

{

fread(students[i],sizeof(struct Student),1,fp);

}

}

fclose(fp);

}

void Write()

{

FILE *fp;

int i;

if ((fp=fopen(“Database.dat”,”wb”))==NULL)

{

printf(“不能打開文件!\n”);

return;

}

if (fwrite(num,sizeof(int),1,fp)!=1)

{

printf(“寫入文件錯誤!\n”);

}

for (i=0;inum;i++)

{

if (fwrite(students[i],sizeof(struct Student),1,fp)!=1)

{

printf(“寫入文件錯誤!\n”);

}

}

fclose(fp);

}

void main()

{

int choice;

Read();

while(1)

{

printf(“\n—— 學生成績管理系統——\n”);

printf(“0. 顯示全部記錄\n”);

printf(“1. 增加學生記錄\n”);

printf(“2. 修改學生記錄\n”);

printf(“3. 刪除學生記錄\n”);

printf(“4. 按姓名查詢學生記錄\n”);

printf(“5. 按學號查詢學生記錄\n”);

printf(“6. 按平均成績排序\n”);

printf(“7. 退出\n”);

printf(“請選擇(1-7):”);

scanf(“%d”,choice);

getchar();

switch(choice)

{

case 0:

Display();

break;

case 1:

Insert();

break;

case 2:

Correct();

break;

case 3:

Delete();

break;

case 4:

SelectByName();

break;

case 5:

SelectByIndex();

break;

case 6:

Sort();

Display();

break;

case 7:

exit(0);

break;

}

Write();

}

}

急急急急!c語言編程題、謝謝各位大俠啦、、

#include stdio.h

#include stdlib.h

//#include memory.h

#define NO_LENGTH 10

#define NAME_LENGTH 20

#define NO_OF_STUDENTS 30

struct StuSco

{

char m_stuNo[NO_LENGTH + 1]; //學號

char m_name[NAME_LENGTH + 1]; //姓名

double m_socre1; //成績1

double m_socre2; //成績2

double m_socre3; //成績3

double m_socre4; //成績4

double m_perSocre; //平均成績

};

StuSco * InPutStuInfo()

{

StuSco *pNewStructs = (StuSco *)malloc(sizeof(StuSco) * NO_OF_STUDENTS);

// memset(pNewStructs, 0, sizeof(StuSco) * NO_OF_STUDENTS);

for (int i = 0; i != NO_OF_STUDENTS; ++i)

{

printf(“請依次輸入第 %d 個學生的學號、姓名和四項成績(以空格分隔,回車結束):\n”, i + 1);

StuSco *p = pNewStructs + i;

scanf(“%s “,p-m_stuNo);

scanf(“%s “,p-m_name);

double k;

scanf(“%lf %lf %lf %lf”, p-m_socre1, p-m_socre2, p-m_socre3, p-m_socre4);

p-m_perSocre = (p-m_socre1 + p-m_socre2 + p-m_socre3 + p-m_socre4)/4;

}

return pNewStructs;

}

void OutPutInfo(StuSco * pInfoStructs)

{

for (int i = 0; i != NO_OF_STUDENTS; ++i)

{

StuSco *p = pInfoStructs + i;

printf(“第 %d 個學生的學號:%s 姓名:%s \n四項成績:%.2lf,%.2lf,%.2lf,%.2lf \n平均成績:%.2lf\n”,\

i+1, p-m_stuNo, p-m_name, p-m_socre1, p-m_socre2, p-m_socre3, p-m_socre4, p-m_perSocre);

}

}

void ReleaseStuInfo(StuSco * pInfoStructs)

{

free(pInfoStructs);

}

int main()

{

StuSco * pInfoStructs = InPutStuInfo();

OutPutInfo(pInfoStructs);

ReleaseStuInfo(pInfoStructs);

return 0;

}

參考一下,我運行沒有問題。^_^

原創文章,作者:CUFDD,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/313410.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CUFDD的頭像CUFDD
上一篇 2025-01-07 09:43
下一篇 2025-01-07 09:43

相關推薦

  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29
  • Python語言由荷蘭人為中心的全能編程開發工程師

    Python語言是一種高級語言,很多編程開發工程師都喜歡使用Python語言進行開發。Python語言的創始人是荷蘭人Guido van Rossum,他在1989年聖誕節期間開始…

    編程 2025-04-28
  • Python語言設計基礎第2版PDF

    Python語言設計基礎第2版PDF是一本介紹Python編程語言的經典教材。本篇文章將從多個方面對該教材進行詳細的闡述和介紹。 一、基礎知識 本教材中介紹了Python編程語言的…

    編程 2025-04-28
  • Python語言實現人名最多數統計

    本文將從幾個方面詳細介紹Python語言實現人名最多數統計的方法和應用。 一、Python實現人名最多數統計的基礎 1、首先,我們需要了解Python語言的一些基礎知識,如列表、字…

    編程 2025-04-28
  • Python作為中心語言,在編程中取代C語言的優勢和挑戰

    Python一直以其簡單易懂的語法和高效的編碼環境而著名。然而,它最近的發展趨勢表明Python的使用範圍已經從腳本語言擴展到了從Web應用到機器學習等廣泛的開發領域。與此同時,C…

    編程 2025-04-28
  • Python基礎語言

    Python作為一種高級編程語言擁有簡潔優雅的語法。在本文中,我們將從多個方面探究Python基礎語言的特點以及使用技巧。 一、數據類型 Python基礎數據類型包括整數、浮點數、…

    編程 2025-04-28

發表回復

登錄後才能評論