#include "stdio.h"

在大竹等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),網(wǎng)絡(luò)營銷推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,大竹網(wǎng)站建設(shè)費(fèi)用合理。
#define N 30
void votes(int a[])
{
int i;
int n1=0,n2=0,n3=0;
for(i=0;iN;i++)
{
switch(a[i])
{
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
}
}
printf("Votes of candidate 1 is %d.\n",n1);
printf("Votes of candidate 2 is %d.\n",n2);
printf("Votes of candidate 3 is %d.\n",n3);
}
int winner(int a[])
{
int i;
int n1=0,n2=0,n3=0;
for(i=0;iN;i++)
{
switch(a[i])
{
case 1:
n1++;
break;
case 2:
n2++;
break;
case 3:
n3++;
}
}
if(n1n2 n1n3)
return 1;
if(n2n1 n2n3)
return 2;
if(n3n1 n3n2)
return 3;
}
void main()
{
int array[N];
int i;
printf("Please input 30 votes:");
for(i=0;iN;i++)
scanf("%d",a[i]);
votes(array);
printf("The winner is candidate %d.\n", winner(array));
}
#includestdio.h
#includemalloc.h
#includestring.h
typedef?char*?string;???//字符串
//學(xué)生結(jié)構(gòu)體
typedef?struct?Student{
char????name[16];???//姓名
int?????id;?????????//學(xué)號(hào)
float???grade;??????//成績
struct?Student?*next;//下一個(gè)學(xué)生節(jié)點(diǎn)
}Student,*student;
//班級(jí)結(jié)構(gòu)體
typedef?struct?Class{
student?list;???//學(xué)生列表
int?????num;????//學(xué)生人數(shù)
}Class,*class;
//創(chuàng)建一個(gè)新班級(jí)
class?newClass();
//銷毀一個(gè)班級(jí)
void?destroyClass(class?c);
//創(chuàng)建一個(gè)新學(xué)生
student?newStudent(string?name,int?id,float?grade);
//向班級(jí)中加入一個(gè)學(xué)生
void?append(class?c,student?stu);
//統(tǒng)計(jì)不及格人數(shù),并打印名單
void?showNotPass(class?c);
//統(tǒng)計(jì)全班平均分及以上的學(xué)生人數(shù)并打印名單
void?showGreaterThanAvg(class?c);
//統(tǒng)計(jì)各分?jǐn)?shù)段的學(xué)生人數(shù)及所占百分比
void?showGradeRange(class?c);
//輸出最高分及學(xué)號(hào)
void?showFirst(class?c);
//輸出班里的所有成員
void?output(class?c);
int?main(){
char????name[16];
int?????id;
float???grade;
class???myClass?=?newClass();???//創(chuàng)建一個(gè)班級(jí)
printf("輸入學(xué)生信息\n");
puts("姓名\t學(xué)號(hào)\t成績");
while(~scanf("%s%d%f",name,id,grade)??grade?=?0){??//grade0結(jié)束
append(myClass,newStudent(name,id,grade));??//向班級(jí)中加入一名新學(xué)生
}
//不及格信息
showNotPass(myClass);
//超過平均分的信息
showGreaterThanAvg(myClass);
//區(qū)間信息
showGradeRange(myClass);
//第一名
showFirst(myClass);
return?0;
}
//創(chuàng)建一個(gè)新班級(jí)
class?newClass(){
class?tmp?=?(class)malloc(sizeof(Class));
tmp-num?=?0;
tmp-list?=?NULL;
return?tmp;
}
//銷毀一個(gè)班級(jí)
void?destroyClass(class?c){
if(c?==?NULL)?return;
student?list?=?c-list;
student?next?=?NULL;
while(list!=NULL){
next?=?list-next;
free(list);?//釋放當(dāng)前節(jié)點(diǎn)
list?=?next;
}
free(c);
c?=?NULL;
}
//創(chuàng)建一個(gè)新學(xué)生
student?newStudent(string?name,int?id,float?grade){
student?tmp?=?(student)malloc(sizeof(Student));
strcpy(tmp-name,name);
tmp-id?=?id;
tmp-grade?=?grade;
tmp-next?=?NULL;
return?tmp;
}
//向班級(jí)中加入一個(gè)學(xué)生
void?append(class?c,student?stu){
if(c?==?NULL?||?stu?==?NULL)?return;
stu-next?=?c-list;
c-list?=?stu;
c-num++;
}
//統(tǒng)計(jì)不及格人數(shù),并打印名單
void?showNotPass(class?c){
if(c?==?NULL)?return;
class?tmpClass?=?newClass();
student?tmp?=?c-list;
for(;tmp?!=?NULL;tmp?=?tmp-next){
if(tmp-grade??60){
student?tmpStu?=?(student)malloc(sizeof(Student));
memcpy(tmpStu,tmp,sizeof(Student));
append(tmpClass,tmpStu);
}
}
printf("不及格人數(shù):%d\n",tmpClass-num);
output(tmpClass);
destroyClass(tmpClass);
}
//統(tǒng)計(jì)全班平均分及以上的學(xué)生人數(shù)并打印名單
void?showGreaterThanAvg(class?c){
if(c?==?NULL?||?c-num?==?0){
puts("班級(jí)沒有人");
return;
}
student?tmp?=?c-list;
float?sum?=?0;
for(;tmp?!=?NULL;tmp?=?tmp-next){
sum+=tmp-grade;
}//統(tǒng)計(jì)總分
float?avg?=?sum?/?c-num;//平均分
class?tmpClass?=?newClass();
for(tmp=c-list;tmp?!=?NULL;?tmp?=?tmp-next){
if(tmp-grade?=?avg){
student?tmpNode?=?(student)malloc(sizeof(Student));?//一個(gè)臨時(shí)學(xué)生節(jié)點(diǎn)
memcpy(tmpNode,tmp,sizeof(Student));
append(tmpClass,tmpNode);
}
}
printf("平均分及以上的學(xué)生人數(shù)為:%d\n",tmpClass-num);
output(tmpClass);
destroyClass(tmpClass);
}
//統(tǒng)計(jì)各分?jǐn)?shù)段的學(xué)生人數(shù)及所占百分比
void?showGradeRange(class?c){
if(c?==?NULL){
puts("班級(jí)沒有人");
return;
}
int?i;
class?container[10];
for(i?=?0;?i??10;?i++){????//初始化分?jǐn)?shù)段班級(jí)容器
container[i]?=?newClass();
}
student?tmp?=?c-list;
for(;?tmp?!=?NULL;?tmp?=?tmp-next){
int?index?=?(int)tmp-grade?%?10;???//區(qū)間
if(index??9)?index?=?9;????//大于90的算成一個(gè)區(qū)間
student?tmpStu?=?(student)malloc(sizeof(Student));
memcpy(tmpStu,tmp,sizeof(Student));
append(container[index],tmpStu);
}
for(i?=?0;?i??10;?i++){
int?num?=?container[i]-num;
printf("%d~%d的人數(shù):%d,占比:%.6g%%\n",i*10,(i+1)*10,num,(float)(num*100)/c-num);
destroyClass(container[i]);
}
puts("");
}
//輸出最高分及學(xué)號(hào)
void?showFirst(class?c){
if(c?==?NULL?||?c-list?==?NULL)?return;
student?max?=?c-list;
student?tmp?=?max-next;
for(;tmp?!=?NULL;tmp?=?tmp-next){
if(tmp-grade??max-grade)?max?=?tmp;
}
printf("最高分:%.2g,學(xué)號(hào):%d\n",max-grade,max-id);
}
void?output(class?c){
if(c?==?NULL)?return;
puts("名單:");
student?tmp?=?c-list;
for(;tmp!=NULL;tmp?=?tmp-next){
printf("%s\n",tmp-name);
}
puts("");
}
代碼有點(diǎn)長....
符號(hào)常量是用一個(gè)標(biāo)識(shí)符來表示一個(gè)常量,一維數(shù)組的定義方法為:類型說明符+數(shù)組名+[常量表達(dá)式];
類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。數(shù)組名是用戶定義的數(shù)組標(biāo)識(shí)符。方括號(hào)中的常量表達(dá)式表示數(shù)組元素的個(gè)數(shù)或者長度,可以是常量或符號(hào)常量,不能為變量。
例如:
1、int x[8]; 表示定義一個(gè)整型數(shù)組x,數(shù)組長度為8.
2、float a[8],b[10];表示定義一個(gè)實(shí)型數(shù)組b,數(shù)組長度為8,一個(gè)實(shí)型數(shù)組c,數(shù)組長度為10
3、 ch[15]; ?表示定義一個(gè)字符數(shù)組ch,數(shù)組長度為15。
擴(kuò)展資料
在程序中可以使用下標(biāo)變量,即說明這些變量的整體為數(shù)組,數(shù)組中的每個(gè)變量的數(shù)據(jù)類型是相同的。當(dāng)數(shù)組中每個(gè)元素都只帶有一個(gè)下標(biāo)時(shí),稱這樣的數(shù)組為一維數(shù)組。
一維數(shù)組是由數(shù)字組成的以單純的排序結(jié)構(gòu)排列的結(jié)構(gòu)單一的數(shù)組。一維數(shù)組是計(jì)算機(jī)程序中最基本的數(shù)組。二維及多維數(shù)組可以看作是一維數(shù)組的多次疊加產(chǎn)生的。
數(shù)組是計(jì)算機(jī)編程中的重要概念,運(yùn)用數(shù)組可以方便地處理大規(guī)模的數(shù)據(jù)。
參考資料:百度百科-一維數(shù)組
數(shù)組包含給定類型的一些對象,并將這些對象依次存儲(chǔ)在連續(xù)的內(nèi)存空間中。每個(gè)獨(dú)立的對象被稱為數(shù)組的元素(element)。元素的類型可以是任何對象類型,但函數(shù)類型或不完整類型不能作為數(shù)組元素。
數(shù)組本身也是一個(gè)對象,其類型由它的元素類型延伸而來。更具體地說,數(shù)組的類型由元素的類型和數(shù)量所決定。
如果一個(gè)數(shù)組的元素是 T 類型,那么該數(shù)組就稱為“T 數(shù)組”。例如,如果元素類型為 int,那么該數(shù)組的類型就是“int 數(shù)組”。然而,int 數(shù)組類型是不完整的類型,除非指定了數(shù)組元素的數(shù)量。如果一個(gè) int 數(shù)組有 16 個(gè)元素,那么它就是一個(gè)完整的對象類型,即“16 個(gè) int 元素?cái)?shù)組”。
數(shù)組的定義決定了數(shù)組名稱、元素類型以及元素個(gè)數(shù)。沒有顯式初始化操作的數(shù)組定義,其語法如下:
類型 名稱[元素?cái)?shù)量];
網(wǎng)頁標(biāo)題:c語言函數(shù)一維數(shù)組,C語言三維數(shù)組
URL標(biāo)題:http://chinadenli.net/article36/hsjepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、定制網(wǎng)站、網(wǎng)站營銷、搜索引擎優(yōu)化、標(biāo)簽優(yōu)化、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)