在键盘里输入10个学生的成绩,用冒泡排序法从大到小进行排序,分别输出原始成绩和排序后的成绩

作者&投稿:强琴 (若有异议请与网页底部的电邮联系)
用汇编语言,在键盘里输入10个学生的成绩,用冒泡排序法从大到小进行排~

CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES CALL INPUTNUM MOV AX,NUM MOV N,AX CALL BUBBLESORT MOV AH,2 MOV DL,10 INT 21H MOV DL,13 INT 21H MOV CX,N LEA SI,ARRAY @M1: MOV AX,[SI] CALL DISPAX INC SI INC SI LOOP @M1 MOV AH,4CH INT 21H N DW ?;============================================ BUBBLESORT PROC NEAR LEA BX,ARRAY LEA SI,NUM MOV AX,SI SUB AX,BX ROR AX,1 MOV WORD PTR[NUM],AX DEC WORD PTR[NUM] MOV WORD PTR[I],0 ; 以下采用冒泡排序 LEA DI,ARRAY LINE1: INC WORD PTR[I] MOV AX,WORD PTR[I] CMP AX,WORD PTR[NUM] JG LINE3 MOV WORD PTR[J],0 LINE2: INC WORD PTR[J] MOV AX,WORD PTR[NUM] INC AX SUB AX,WORD PTR[I] CMP WORD PTR[J],AX JG LINE1 MOV BX,WORD PTR[J] ROL BX,1 MOV AX,WORD PTR[DI][BX-2] CMP AX,WORD PTR[DI][BX] JNC LINE2 MOV CX,WORD PTR[DI][BX] MOV WORD PTR[DI][BX],AX MOV WORD PTR[DI][BX-2],CX JMP LINE2 LINE3: RET I DW ? J DW ? BUBBLESORT ENDP;===============================================; 键盘输入数值数组子程序(数组名为array,元素个数存放在num中) INPUTNUM PROC NEAR ; 输入的数据以一个空格分隔,以回车符结束输入 LEA DI,ARRAY ;将数组第一个元素的有效地址置入DI MOV WORD PTR[NUM],0 STIN: MOV AX,0 PUSH AX AGAIN1: MOV AH,1 INT 21H MOV BYTE PTR[CHAR],AL CMP AL,13 JE LINE0 CMP AL,' ' JE LINE0 SUB AL,30H MOV AH,0 MOV SI,AX POP AX MOV CL,10 MOV CH,0 MUL CX ADD AX,SI PUSH AX JMP AGAIN1 LINE0: POP AX MOV WORD PTR[DI],AX INC WORD PTR[NUM] CMP BYTE PTR[CHAR],13 JE STINEND INC DI INC DI JMP STIN STINEND: RET ARRAY DW 100 DUP(0) NUM DW 0 CHAR DB ? INPUTNUM ENDP ;=============================================== DISPAX PROC NEAR PUSH BX PUSH CX PUSH DX PUSH SI PUSH DS PUSH CS POP DS PUSH AX MOV AH,2 MOV DL,32 INT 21H POP AX MOV BYTE PTR NZ,0 PUSH AX LEA SI,DIVARR MOV CX,5 @1: POP AX MOV DX,0 MOV BX,[SI] DIV BX PUSH DX CMP AL,0 JNE @2 CMP BYTE PTR NZ,1 JE @2 CMP CX,1 JE @2 MOV DL,20H JMP @3 @2: ADD AL,30H MOV DL,AL MOV BYTE PTR NZ,1 @3: MOV AH,2 INT 21H INC SI INC SI LOOP @1 POP DX POP DS POP SI POP DX POP CX POP BX RET DIVARR DW 10000,1000,100,10,1 NZ DB 0 DISPAX ENDP;============================================= CODE ENDS END START

#include
#include
void print(int *a,int n);
void paixu(int *a,int n);
void main()
{
int a[10];
int i;
printf("请输入10个整数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
paixu(a,i);//排序
print(a,i);//输出
}
int swap(int *a,int *b)//交换
{
int t;
t=*a;
*a=*b;
*b=t;
}
//冒泡排序,从大到小
void paixu(int *a,int n)
{
int i,j=0,k;
printf("==========从大到小排序后=========
");
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
if(a[j-1]<a[j])
swap(&a[j],&a[j-1]);
}
}
void print(int *a,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",*(a+i));
printf("
");
}
//程序在VC++6.0里编译运行通过,不懂的可追问哦。

static void Main(string[] args)
{
string s = Console.ReadLine();//多个数字之间用半角逗号隔开
string[] sarr = s.Split(new char[] { ',' });//分割字符串,获得字符串数组
int[] arr = new int[sarr.Length];//定义新的整型数组,放原始排列顺序
int[] newarr = new int[sarr.Length];//定义新的整型数组,用于冒泡排序
for (int sa = 0; sa < sarr.Length; sa++) //给新定义的2个数组赋值
{
arr[sa] = Convert.ToInt32(sarr[sa]);
newarr[sa] = Convert.ToInt32(sarr[sa]);
}
int k = 0;//中间变量,用于冒泡排序
for (int i = 0; i < newarr.Length; i++)//冒泡排序
{
for (int j = i + 1; j < newarr.Length; j++)
{
if (newarr[i] < newarr[j])
{
k = newarr[i];
newarr[i] = newarr[j];
newarr[j] = k;
}
}
}
Console.Write("原始排列:");
foreach (int a in arr)
{
Console.Write(a + ",");
}
Console.WriteLine("");
Console.Write("新的排列:");
foreach (int na in newarr)
{
Console.Write(na + ",");
}
Console.WriteLine("");
Console.ReadKey();
}


用C语言编程:从键盘输入10个学生的成绩和学号,将其排序输出,并输出中...
include<stdio.h> struct student { int id;int score;}stu[10];int main(void){ int i,m;struct student j;for( i=0; i<10; i++){ printf("请输入学生的学号:");scanf("%d",&stu[i].id);printf("请输入学生的成绩:");scanf("%d",&stu[i].score);printf("\\n");} print...

用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩
你好,我们这里需要用到数组镶套使用for函数以及冒泡算法,具体的代码如下。include <iostream> using namespace std;int main(){ int s [10], i, j, t;cout << "输入10个数:";for (i = 0; i < 10; i++){ cout << "请输入第" << i+1 << "名学生的成绩;" << endl;cin >...

c语言从键盘输入10个学生的成绩,建立一个一维数组,求学生的平均成绩_百 ...
scanf("%f",&result[i]);while(result[i]<0){ printf("成绩不能小于0,请重新输入");printf("请输入第%d个学生的成绩:",(i+1));scanf("%f",&result[i]);if(result[i]>0){ sum+=result[i];continue;} } sum+=result[i];} avg = sum \/ 10;printf("这10个学生的平均成绩是...

...姓名、3门课程的成绩,从键盘输入10个学生的数据,要求输出学生3门课...
include "stdio.h"include <stdlib.h> define SIZE 10 struct student{ char id[20];char name[20];int score[3];float average;} stud[SIZE];void input() \/* 输入学生的信息 *\/ { int i;for(i=0;i<SIZE;i++){ printf("第%d个学生的信息:\\n",i+1);scanf("%s%s%d...

从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值?是C语言...
include <stdio.h> void main(){ int i,sum;int a[10];float average;sum =0;printf("please input the score.\\n");for(i=0;i<10;i++){ scanf("%d",&a[i]);sum += a[i];} average = (float)(sum\/10.0);printf("总分=%d,平均分=%f\\n",sum,average);} VC6.0下调试...

编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要...
如图 这样的程序可以吗?追问可以获得源代码!改进!加上不及格和平均分统计!而且还能防止非法输入!源码如下:(C语言版,C++可以兼容)\/\/编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。\/\/要求:①定义并使用自定义函数int fun(float arr[],int n)实现统计80分以上人数的功能...

13. 编写程序,从键盘输入10个学生的成绩,按降序排列输出。
可以用冒泡排序解决,代码如下:include <stdio.h> int main(){ int i, j,temp;int a[10];for(i=0; i<10; i++){ for(j=i; j<10; j++){ if(a[i]

编写一个程序从键盘输入10个学生的成绩到数组score中,
include <stdio.h> main(){ int score[10],i,max,min;printf("input scores:");for(i=0;i<10;i++)scanf("%d",&score[i]);for(max=min=0,i=1;i<10;i++){ if(score[max]<score[i])max=i;if(score[min]>score[i])min=i;} printf("max=%d\\nmin=%d\\n",score[max],...

从键盘输入 10个学生的成绩存储在数组中,求成绩最高者的序号和成绩_百...
int main(){float a[10],max=0;int i; for(i=0;i<10;i++){scanf("%f",&a[i]);if(a[i]>max)max=a[i];}printf("%.2f",max);} jeanhonk | 发布于2008-04-07 举报| 评论 1 0 为您推荐: 键盘图片 从键盘输入10个整数 从键盘输入某一年 从键盘输入百分制成绩 先从键盘上输入...

C语言编程 从键盘输入十个学生的成绩 求平均分数及高于平均分数的成绩...
include <stdio.h>#define stuNum 10 \/\/学生人数int main(){ int score[stuNum],i,sum=0,ave; printf("输入%d个学生成绩:",stuNum); for(i=0;i<stuNum;i++) { scanf("%d",&score[i]); sum=sum+score[i]; } ave=sum\/stuNum; printf("平均分:%d...

图木自治县市13384148319: 在键盘里输入10个学生的成绩,用冒泡排序法从大到小进行排序,分别输出原始成绩和排序后的成绩 -
汗枯奇迪: static void Main(string[] args){string s = Console.ReadLine();//多个数字之间用半角逗号隔开string[] sarr = s.Split(new char[] { ',' });//分割字符串,获得字符串数组int[] arr = new int[sarr.Length];//定义新的整型数组,放原始排列顺序int[]...

图木自治县市13384148319: 1. 学生成绩排名 1) 定义一个数组a[11],用以存放学生的成绩. 2) 从键盘输入10个学生成绩 3) 采用冒泡法, -
汗枯奇迪: #include<iostream> using namespace std;struct Student {char name[16];double data; }; Student stu[11];void print(int n) {int i;for(i=0;i<n;i++)cout<<stu[i].name<<" "<<stu[i].data<<endl;}void sort() {Student t;for(int i=1;i<10;i++)for(int j=...

图木自治县市13384148319: 任意输入10个学生的考试分数,然后用冒泡排序将这10个分数按将序排序,并输出这些分数; -
汗枯奇迪: #include<stdio.h> void main() { int a[10],i,j,k,b; for(i=0;i<10;i++) { printf("The No.%d student's score:",i+1); scanf("%d",&a[i]); }/*输入成绩*/ k=a[0]; for(i=0;i<10;i++) { for(j=i;j<10;j++) if(k<=a[j]) { k=a[j];/*k为最大值*/ b=j; } a[b]=a[i]; a[i]=k; k=a[i+1];...

图木自治县市13384148319: (1) 定义一个数组a[11] 用以存放学生的成绩; (2)从键盘上输入10个学生成绩; (3)采用冒泡法,将学生成绩按照排列规律插入原学生成绩数组; -
汗枯奇迪: #include<stdio.h> void main() { int i,j,a[11]; for(i=0;i<10;i++)scanf("%d",&a[i]); for(i=0;i<10;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) a[i]^=a[j]^=a[i]^=a[j]; for(i=0;i<10;i++)printf("%d\n",a[i]); }

图木自治县市13384148319: 用C语言编程:从键盘输入10个学生的成绩,由高到低排序输出成绩 -
汗枯奇迪: 你好,我们这里需要用到数组镶套使用for函数以及冒泡算法,具体的代码如下. #include <iostream> using namespace std; int main() { int s [10], i, j, t; cout << "输入10个数:"; for (i = 0; i < 10; i++) { cout << "请输入第" << i+1 << "名学生的...

图木自治县市13384148319: .从键盘上输入10个学生的成绩,求平均成绩、最高分和最低分.(使用函数解题)rt -
汗枯奇迪:[答案] 选定目标,点右上角fx那个,按它的提示操作就可以了

图木自治县市13384148319: 从键盘输入10个学生的成绩,用fun函数显示其中的最高分,最低分,和平均成绩. -
汗枯奇迪: 先写一主函数,包含判断函数,if min>a[i] min=a[i],再用fun函数调用

图木自治县市13384148319: C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值 -
汗枯奇迪: #include <stdio.h>#define MAX 10struct student {char no[10];char name[10];float score[3]; }stu[MAX];float ave_course[3] = {0}; float ave_student[MAX] = {0};int max_ave_i = 0; // 存储平均分最高的学生索引 int max_course_i[3] = {0}; //存储...

图木自治县市13384148319: c语言从键盘输入10个学生的成绩,建立一个一维数组,求学生的平均成绩 -
汗枯奇迪: #include<stdio.h> void main(){ float result[10],avg=0,sum=0; int i=0; for(i=0;i<10;i++){ printf("请输入第%d个学生的成绩:",(i+1)); scanf("%f",&result[i]); while(result[i]<0){ printf("成绩不能小于0,请重新输入"); printf("请输...

图木自治县市13384148319: 输入十个学生的成绩,分别用函数实现:求平均成绩;按分数从高到低进行排序并输出 -
汗枯奇迪: #include<stdio.h>void input(float *g,int n){int i;for(i=0; i<n; i++){printf("第 %d 个成绩:",i+1);scanf("%f",&g[i]);} }void output(float *g,int n){int i;for(i=0; i<n; i++)printf("%d %5.1f\n",i+1,g[i]); }void sort(float *g,int n){int i,j,k;float t;...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网