计算机软件基础实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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; }