计算机软件基础实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机软件技术基础第四次实验报告

/* shiayan51.c */

#include

#include

#define N 10

typedef struct stud {

char name[20];

int score;

} STUDENT;

STUDENT Rec[N];

/*用直接选择排序算法统计学生成绩排名*/

int main() {

char myname[20];

int myscore;

int num,i,j,max;

STUDENT temp;

printf("\n请输入学生成绩\n");

for(i=0;i

printf("\n姓名:");

scanf("%s",myname);

strcpy(Rec[i].name,myname); //将myname数组中的元素复制到无序区中

printf("成绩:");

scanf("%d",&myscore);

Rec[i].score=myscore;}

num=1;

for(i=0;i

max=i;

for(j=i+1;j

if(Rec[j].score>Rec[max].score) //在当前无序区选择最大分数Rec[max]

max=j;}

if(max!=i) { //当最大值所在位置与其应在位置不符时,交换Rec[max]和Rec[i]

temp=Rec[max];

Rec[max]=Rec[i];

Rec[i]=temp;}

if((i>0)&&(Rec[i].score

printf("\n%4d%s%4d",num,Rec[i].name,Rec[i].score);

}

}/* main */

/* shiyan53.c */

#include

#include

#include

#include

#define ROW 20

#define COL 40

#define False 0

#define True 1

int main(int argc, char* argv[]) { /*ARGc和ARGv中的ARG指的是"参数"(外语:ARGuments, argument counter 和argument vector )

至少有两个参数至主函数:ARGc和ARGv;首先是一个计算提供的参数到程序,第二个是对字符串数组的指针。*/

char R[ROW][COL];

char temp[40];

int i,h,n,change;

printf("\nHow many countrys:?");

scanf("%d",&n);

printf("please input country names:\n");

for(i=0;i

printf("\nThe %dth country's name is:\n",i+1);

scanf("%s",&R[i][0]);}

h=n; //设置初始增量

while(h>0) {

h=h/2; //改变增量,每次的增量变为上一次的1/2

do {

change=False;

for(i=0;i

if(strcmp(&R[i][0],&R[i+h][0])>0) { //比较,若R[i][0]大于R[i+h][0],交换

strcpy(temp,&R[i][0]);

strcpy(&R[i][0],&R[i+h][0]);

strcpy(&R[i+h][0],temp);

change=True;}

}

}while(change==True); /*end of do{...while}*/

} /* end of while */

printf("\nOutput country name after sorting:\n");

for(i=0;i

return 1;

}

相关文档
最新文档