3二维数组练习题

合集下载

最新数据结构习题课3讲解学习

最新数据结构习题课3讲解学习

0 50 1 10 3 -30 1 20 3 -60 35
a[0] 0 0 50 a[1] 1 0 10 a[2] 1 2 20 a[3] 3 0 -30 a[4] 3 2 -60 a[5] 3 3 5
03 10 22 31
num
00 13 23 35
pos
0
TP3[处理三元组表]
3
FOR i ← 0 TO t-1 DO
20
A[4] 3
2
-60
A[5] 3 3
5
B[4] 2
3
-60
B[5] 3 3
5
算法的关键是求出A中元素在B中的位置
Bnubmer = 0
FOR i=0 TO Cols(A) DO
FOR j=0 TO t DO
IF col(A[j])=i Then
(row(B[Bnumber])=i
col(B[Bnumber])=row(A[j])
算法: TRANSPOSE(A. B)
TP1[初始化] /*声明A的转置矩阵B,使得B的行数等于 A的列数,B的列数等于A的行数,B中非 0元素的个数等于A中非0元素的个数*/ n←Rows(B)←Cols(A). Cols (B)←Rows(A). t←Count(B)← Count(A).
TP2
row(B[k]) ←col(A[i]).
val(B[k]) ← val(A[i]).
pos[p]← pos[p]+1 ).
a[0] 0 0 50 a[1] 1 0 10 a[2] 1 2 20 a[3] 3 0 -30 a[4] 3 2 -60 a[5] 3 3 5
0 0 50 0 1 10
2 1 20

C语言程序设计单元测试题三【精品-doc】

C语言程序设计单元测试题三【精品-doc】

C语言程序设计_单元测试题三本单元包含“数组、函数”的内容。

一、选择题1.以下为一维整型数组a的正确说明是_________.A)int a(10); B)int n=10,a[n];C)int n; D)#define SIZE 10;scanf("%d",&n); int a[SIZE];int a[n];2.以下对二维数组a的正确说明是________.A)int a[3][]; B)float a(3,4);C)double a[1][4] D)float a(3)(4);3.若二维数组a有m列,则计算任一元素a[i][j]在数组中位置的公式为______.(假设a[0][0]位于数组的第一个位置上。

)A)i*m+j B)j*m+i C)i*m+j-1 D)i*m+j+14.若二维数组a有m列,则在a[i][j]前的元素个数为________.A)j*m+i B)i*m+j C)i*m+j-1 D)i*m+j+15.25.若有以下程序段:int a[]={4,0,2,3,1},i,j,t;for(i=1;i<5;i++){t=a[i];j=i-1;while(j>=0&&t>a[j]){a[j+1]=a[j];j--;}a[j+1]=t;}... ...则该程序段的功能是_________.A)对数组a进行插入排序(升序) B)对数组a进行插入排序(降序)C)对数组a进行选择排序(升序) D)对数组a进行选择排序(降序)6.有两个字符数组a、b,则以下正确的输入语句是_______.A)gets(a,B); B)scanf("%s%s",a,B);C)scanf("%s%s",&a,&B); D)gets("a"),gets("b");7.下面程序段的运行结果是_________.char a[7]="abcdef";</P< p>char b[4]="ABC";strcpy(a,B);printf("%c",a[5]);A)空格B)\0 C)e D)f8.判断字符串s1是否大于字符串s2,应当使用_______.A)if(s1>s2) B)if(strcmp(s1,s2))C)if(strcmp(s2,s1)>0) D)if(strcmp(s1,s2)>0)9.下面程序的功能是从键盘输入一行字符,统计其中有多少个单词,单词之间用空格分隔,请选择填空。

C语言练习3(数组)=参考答案

C语言练习3(数组)=参考答案

C语言(数组)一、选择题1. 设有程序:main(){ int i,a[11];printf("给数组赋值:\n");for (i=0;i<=10;i++)scanf("%d",( ));... ...printf("输出数组:\n");for(i=0;i<=10;i++)printf("%d,",( ));}则在程序中的两个园括号中分别应填入:CA) &a[i]和&a[i]B) a[i]和&a[i]C) &a[i]和a[i]D) a[i]和a[i]2. 设已定义:int a[15]; 则数组a占用的内存单元数是( C ).A) 15 B) 16 C) 30 D) 323. 阅读程序:main(){ int a[2]={0},i,j,k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) a[j]=a[i]+1;printf("%d\n",a[k]);}以上程序的输出结果是( D ).A) 1 B) 3 C) 2 D) 不确定的值4. 阅读程序:f(int b[],int n){ int i,r=1;for(i=0;i<=n;i++) r=r*b[i];return r;}main(){ int x,a[]={2,3,4,5,6,7,8,9};x=f(a,3);printf("%d\n",x);}以上程序的输出结果是( D ).A) 720 B) 6 C)24 D) 1205. 以下定义语句中,错误的是( B ).A) int a[ ] = {6,7,8};B) int n=5, a[n];C) char a[ ]= "string";D) char a[5 ]={'0','1','2','3','4'};6. 以下描述中正确的是( D ).A) 数组名后面的常量表达式用一对圆括弧括起来B) 数组下标从1开始C) 数组下标的数据类型可以是整型或实型D) 数组名的规定与变量名相同7. 若定义数组并初始化char a[10]={'0','1 ','2','3','4','5','6','7','8','9'};指出以下错误语句( AB ).A) scanf("%c",a[0]);B) scanf("%s",&a);C) printf("%c",a[3]);D) printf("%s",a);8.若定义数组int a[10] ,其最后一个数组元素为( C ).A) a[0]B) a[1]C) a[9]D) a[10]9. 若定义数组并初始化int a[10]={ 1,2,3,4},以下语句哪一个不成立( B )?A) a[8] 的值为0B) a[1] 的值为1C) a[3] 的值为4D) a[9] 的值为010. 指出以下错误语句( A ).A) int n=10,a[n];B) int n,a[10];C) int a[10]={1,2,3};D) int a[10]={1,2,3,4,5,6,7,8,9,10};11. 请读程序:main(){int n[2],i,j,k;for(i=0;i<2;i++) n[i]=0;k=2;for(i=0;i<k;i++)for(j=0;j<k;j++) n[j]=n[i]+1;printf("%d\n",n[k]);}上面程序的输出结果是( A ).A)不确定的值 B)3 C)2 D)112. 若有以下的定义和语句:int str[12]={1,2,3,4,5,6,7,8,9,10,11,12};char c='e',则数值为2的表达式是( C ).A)str['g'-c] B)str[2] C)str['d'-'c'] D)str['d'-c]13. 设有数组定义:int a[5];则下列给数组元素赋值错误的是( B ).A) a[3]=93;B) scanf("%c",a[3]);C) a[3]=getchar();D) a[3]='a'+3;14. 以下数组定义中错误的是( D ).A) #define N 30int a[N+30];B) #define N 30int a[N];C) int a[30];D) int a[N];15. 在定义一个一维数组时,不能用来表示数组长度的是( D ).A)常量 B)符号常量 C)常量表达式 D) 已被赋值的变量16. 若float型变量占用4个字节,有定义float a[20]={1.1,2.1,3.1};则数组a在内存中所占的字节数是( D ).A)12 B)20 C)40 D)8017. 设已定义:int x[2][4]={1,2,3,4,5,6,7,8}; 则元素x[1][1]的正确初值是( A ).A) 6 B) 5 C) 7 D) 118. 设有定义:int a[][3]={{1,2,3},{4,5,6},{7,8,9}}; 则a[1][2]的初值为( C ).A) 2 B) 4 C) 6 D) 819. 设有:int a[4][5]; 则数组a占用的内存字节数是( C ).A) 12 B) 24 C) 40 D) 2020. 以下数组定义中,不正确的是( B ).A) int b[3][4];B) int c[3][ ]={{1,2},{1,2,3},{4,5,6,7}};C) int b[200][100]={0};D) int c[ ][3]={{1,2,3},{4,5,6}};21. 定义数组:int x[2][3]; 则数组x 的维数是( 2 ).A) 1 B) 2 C) 3 D) 622. 若定义数组并初始化int b[2][3]= { 1,2,3,4,5,6},以下语句哪一个成立( C )?A) 表达式b[1][2]的值为1B) 表达式b[1][2]的值为4C) 表达式b[1][2]的值为6D) 表达式b[1][2]的值为223. 若定义数组并初始化int a[2][3]={{1,2,3},{4,5,6}};for(i=0;i<2;i++)for(j=0;j<3;j++)printf("%d",a[i][j]);语句的结果是哪一个( C )?A) 1,2,3,4,5,6B) 1 2 3 4 5 6C) 12345624. 若定义数组并初始化int a[2][3]= {{1,2, 3},{4,5,6}};以下语句哪一个不成立( B )?A) a数组中有6个元素B) a[2][3]是a数组的最后一个元素的引用C) a数组中每个元素都为整数D) a数组是整型数组25. 定义如下变量和数组:int i;int x[3][3]={1,2,3,4,5,6,7,8,9};则下面语句的输出结果是( C ).for(i=0;i<3;i++) printf("%d",x[i][2-i]);A) 1 5 9 B) 1 4 7 C) 3 5 7 D) 3 6 926. 如有以下定义:double s[][5]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14};则数值为2的元素是( C ).A) s[1][3] B) s[0][3] C) s[0][2] D) s[1][2]27. 以下程序的输出结果是( A ).main(){int a[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;for(i=1;i<3;i++)for(j=0;j<=i;j++)s+=a[i][j];printf("%d",s);}A) 18 B) 19 C) 20 D) 2128. 若已有char b[10][50];则该二维字符数组在内存所占字节数为( D ).A) 10 B)50 C)60 D)50029. 设有:char a[10]; 下列语句那个是正确的( D )?A) scanf("%s",a[0]);B) scanf("%s",&a);C) printf("%s",a[0])D) printf("%s",a)30. 阅读程序:main(){ char a[10];int i;for(i=1;i<=5;i++)scanf("%c",&a[i]);printf("%c",a[0]);}设从键盘输入字符串:abcde,则程序的输出结果是( C ).A) a B)空格 C)不确定D)031. 合法的数组定义是( D ).A) int a[ ] = "string";B) int a[5]={0,1,2,3,4,5};C) char a= "string";D) char a[ ]={'0','1','2','3'};32. 设有数组定义:char string[ ]="China";则数组string所占的空间为( B ).A) 5个字节B) 6个字节C) 7个字节D) 10个字节33. 定义字符数组c:char c[ ]={"c language"};数组c在内存中所占字节数是( C ).A) 9 B) 10 C) 11 D) 1234. 指出以下错误语句( C ).A) char a[10]={'0','1','2','3','4','5','6','7','8','9'};B) char a[10]={'0','1 ','2','3'};C) char a[2]= {"1","2"};D) char a[2]= {'a’,'b’};35. 若定义数组并初始化char a[10]={"hello"},该数组的元素个数是( A ).A) 10B) 5C) 6D) 736. 若定义数组并初始化char a[10]={"HELLO"},该数组的元素中 a[2]是( A ).A) 'L'B) 'E'C) 'H'D) 'O'37. 若定义数组并初始化int b[10]={ 1,2,3,4},以下哪几个语句成立( A C D)?A)b[8]的值为0B)b[1]的值为1C)b[3]的值为整数D)b[10]不是b数组中的元素38. 若定义数组int a[10];指出下列错误语句:ABCDA) a数组共有10个元素,其引用方法是:a[1],a[2]...a[10];B) a数组是整型数组,其元素自动初始化为0;C) a数组最后一个元素的引用方法是a[10];D) a数组第一个元素的引用方法是a[1];二、判断题1.数组是数目固定的若干变量的有序集合,数组中各元素的类型可以不同。

二维数组的编程题

二维数组的编程题

二维数组的编程题含解答共5道1. 题目:查找二维数组中的元素问题描述:给定一个按升序排列的二维数组,编写一个函数来判断目标值是否存在于数组中。

数组是一个m x n的矩阵。

示例解答:```pythondef search_matrix(matrix, target):if not matrix or not matrix[0]:return Falserows, cols = len(matrix), len(matrix[0])row, col = 0, cols - 1while row < rows and col >= 0:if matrix[row][col] == target:return Trueelif matrix[row][col] < target:row += 1else:col -= 1return False```2. 题目:计算二维数组的转置问题描述:给定一个二维数组,返回其转置矩阵。

转置矩阵即将矩阵的行和列互换。

示例解答:```pythondef transpose(matrix):return [[matrix[j][i] for j in range(len(matrix))] for i in range(len(matrix[0]))] ```3. 题目:计算二维数组每行的平均值问题描述:给定一个二维数组,返回一个一维数组,其中每个元素是对应行的平均值。

示例解答:```pythondef average_of_rows(matrix):return [sum(row) / len(row) for row in matrix]```4. 题目:在二维数组中搜索单词问题描述:给定一个二维网格和一个单词,找出该单词是否存在于网格中。

单词可以由相邻的单元格的字母按顺序构成,其中“相邻”单元格是那些水平或垂直相邻的单元格。

示例解答:```pythondef exist(board, word):def dfs(i, j, k):if not (0 <= i < len(board) and 0 <= j < len(board[0])) or board[i][j] != word[k]:return Falseif k == len(word) - 1:return Truetmp, board[i][j] = board[i][j], '/'if dfs(i + 1, j, k + 1) or dfs(i - 1, j, k + 1) or dfs(i, j + 1, k + 1) or dfs(i, j - 1, k + 1):return Trueboard[i][j] = tmpreturn Falsefor i in range(len(board)):for j in range(len(board[0])):if dfs(i, j, 0):return Truereturn False```5. 题目:在二维数组中查找路径和问题描述:给定一个二维数组和一个目标值,确定是否存在一条从左上角到右下角的路径,使得路径上的数字之和等于目标值。

3-二维数组(1次课)

3-二维数组(1次课)

C
C 语 言 程 序 设 计
【示范实例5-13】编写程序实现下述功能:从键盘输入一个完 全由小写字母组成的字符串,用上述的简单方法加密,输出 加密后的字符串。 “abcdefghijklmnopqrstuvwxyz”,按位置置换为: “kczuytmxsejdlribnhvawofpgq”。 例如:原文为“example”,则密文是:“ypklbdy”。 解题思路: 先用一个字符型数组list,依次保存abcd„„xyz这26个小写 字母的转换结果字符, 这个数组中的26个字符不能有重复。
字符串常量中可以包含转义序列
H
e
l
l
o
W
o
r
l
d
\0
字符串结束符
C 语 字符串与字符数组 言 程 在C语言中没有专门的字符串变量,通常用一个 序 字符数组来存放一个字符串 设 字符数组和字符串的区别是:字符串的末尾有一 计 个空字符 ‘\0‟
字符串可按如下方式声明并初始化: char c[15]={ „C', „H', „I', „N', „A', '\0'}; char c[15] = “CHINA"; char str[] = “abcde";
n1 = 9,n2=10
语 言 程 序 设 计
字符串与字符数组举例
【示范实例5-11】编写程序实现下述功能:输入一个字符串, 计算并输出该字符串的长度(不用strlen函数)。 解题思路: 用字符数组str[256]保存字符串; 用整型变量strlen记录长度,初值为0。
C
语 言 程 序 设 计
score[1][1] score[2][0]

信息学奥赛 二维数组题

信息学奥赛 二维数组题

信息学奥赛二维数组题一、二维数组的创建与初始化二维数组可以看作是数组的数组,即由多个一维数组组成。

在大多数编程语言中,二维数组的创建与初始化可以通过指定行数和列数,以及元素初始值来实现。

例如,在C++中,可以这样创建一个3行2列的二维数组并初始化:int a[3][2] = {{1, 2}, {3, 4}, {5, 6}};这个二维数组有3行和2列,其元素值如下:1 23 45 6二、二维数组的遍历与元素访问遍历二维数组就是依次访问数组中的每个元素。

对于行优先的遍历方式,可以使用两个嵌套的循环来实现。

例如,在C++中,可以这样遍历上面的二维数组:for (int i = 0; i < 3; i++) {for (int j = 0; j < 2; j++) {cout << a[i][j] << " ";}cout << endl;}输出结果为:1 23 45 6三、二维数组的查找二维数组的查找可以通过遍历数组来实现。

具体来说,可以定义两个循环变量来依次访问数组中的每个元素,然后判断该元素是否为目标值。

如果找到了目标值,则返回该元素的位置;否则返回未找到。

例如,在C++中,可以这样查找上面的二维数组中是否包含某个值:bool find(int a[3][2], int target) {for (int i = 0; i < 3; i++) {for (int j = 0; j < 2; j++) {if (a[i][j] == target) {return true;}}}return false;}四、二维数组的排序二维数组的排序可以使用一维数组排序算法进行排序。

例如,可以使用冒泡排序算法对二维数组按照每一行的元素进行排序。

具体来说,可以定义一个一维数组来存储每一行的元素,然后对一维数组进行冒泡排序。

最后将排序后的一维数组合并回二维数组。

java二维数组练习题

java二维数组练习题

java二维数组练习题1) 数组的元素通过来访问,数组Array的长度为。

2) 数组复制时,”=“将一个数组的传递给另一个数组。

3) 没有显式引用变量的数组称为数组。

4) JVM将数组存储在中。

5) 数组的二分查找法运用的前提条件是数组已经。

6) 矩阵或表格一般用维数组表示。

7) 如果把二维数组看成一维数组,那么数组的元素是数组。

8) Java中数组的下标的数据类型是。

9) 不用下标变量就可以访问数组的方法是。

10) 数组最小的下标是。

11) arraycopy的最后一个参数指明。

12) 向方法传递数组参数时,传递的是数组的。

13) 线性查找法的平均查找长度为。

14) 数组初始化包括。

15) 数组下标访问超出索引范围时抛出异常16) 浮点型数组的默认值是。

17) 对象型数组的默认值是。

18) 对象类型的数组虽然被默认初始化,但是并没有构造函数。

19) 二维数组的行的长度不同。

20) 数组创建后其大小改变。

二选择题1. 下面错误的初始化语句是___A. char str[]=“hello”;B. char str[100]=“hello”;C. char str[]={‘h’,’e’,’l’,’l’,’o’};D. char str[]={‘hello’};2. 定义了一维int型数组a[10]后,下面错误的引用是___A.a[0]=1;B.a[10]=2;C.a[0]=5*2;D.a[1]=a[2]*a[0];3. 下面的二维数组初始化语句中,正确的是____A. float b[2][2]={0.1,0.2,0.3,0.4};B. int a[][]={{1,2},{3,4}};C. int a[2][]= {{1,2},{3,4}};D. float a[2][2]={0};4. 引用数组元素时,数组下标可以是____A.整型常量B.整型变量C.整型表达式D.以上均可5. 定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为____A.4B.25C. 18D. 176. 下列初始化字符数组的语句中,正确的是____A. char str[5]=“hello”;B. char str[]={‘h’,’e’,’l’,’l’,’o’,’\0’};C. char str[5]={“hi”};D. char str[100]=““;7. 数组在Java中储存在中A.栈main{ B.队列 C.堆 D.链表. 下面程序的运行结果是____int x=30;int[] numbers=new int[x];x=60;System.out.println;}A.60B.20C.30D.509. 下面不是创建数组的正确语句A.float f[][]=new float[6][6];C.float f[][]=new float[][6];10. 下面不是数组复制方法的是A.用循环语句逐个复制数组C. 用”=“进行复制A.a 11. 数组a的第三个元素表示为B.a[3]C.aD.a[2]12. 当访问无效的数组下标时,会发生A. 中止程序B.抛出异常C. 系统崩溃D.直接跳过13. 使用arraycopy方法将数组a复制到b正确的是A. arraycopyB. arraycopyC.. arraycopyD. arraycopy14. 关于数组默认值,错误的是A. char--’”u0000’B. Boolean--trueC. float--0.0fD. int-- 015. 关于数组作为方法的参数时,向方法传递的是A. 数组的引用B.数组的栈地址C. 数组自身D.数组的元素16. 关于数组复制,下列说法错误的是A.”=“可以实现数组复制B. 运用循环语句进行数组复制必须两个数组长度相同C. arraycopy方法没有给目标数组分配内存空间D.数组复制是数组引用的传递17. 下列语句会造成数组new int[10]越界是A.a[0]+=9;B.a[9]=10;A. public static void main;B. public static void mainC. public static int mainD. public void main C.—a[9] D.for a[i]++; 18. main 方法是java Application 程序执行的入口点。

二维数组练习题专升本

二维数组练习题专升本

二维数组练习题专升本二维数组是编程中常用的数据结构之一,它在专升本考试中也常常作为考察点。

以下是几个二维数组的练习题,旨在帮助考生巩固二维数组的相关知识。

练习题一:二维数组的初始化和遍历编写一个程序,初始化一个3x3的二维数组,并将其元素初始化为1到9的自然数。

然后遍历该数组,打印出每个元素。

练习题二:二维数组的转置给定一个m x n的二维数组,编写一个程序将其转置,即行列互换。

例如,原数组的第一行变成转置后数组的第一列,原数组的第一列变成转置后数组的第一行。

练习题三:二维数组的查找在一个已经排好序的二维数组中,编写一个程序实现线性查找算法,查找给定的元素是否存在于数组中,并返回其位置。

练习题四:二维数组的排序编写一个程序,对一个二维数组的每一行进行排序,要求使用冒泡排序算法。

例如,对于数组:```1 3 52 4 67 8 9```排序后应为:```1 3 52 4 67 8 9```练习题五:二维数组的矩阵乘法给定两个二维数组A和B,编写一个程序实现矩阵乘法,即计算C=A*B,并输出结果矩阵C。

练习题六:二维数组的螺旋遍历编写一个程序,实现对一个m x n的二维数组进行螺旋遍历,即从左上角开始,先按行遍历,然后按列遍历,接着按行反向遍历,再按列反向遍历,直到所有元素都被访问。

练习题七:二维数组的动态内存分配编写一个程序,动态分配一个二维数组的内存空间,并初始化其元素。

然后释放该二维数组所占用的内存空间。

通过以上练习题的练习,考生可以加深对二维数组的理解,掌握其在不同场景下的应用。

在专升本考试中,二维数组的题目通常不会太难,但需要考生具备扎实的编程基础和良好的逻辑思维能力。

希望这些练习题能够帮助考生在考试中取得好成绩。

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

马鞍数(maan.pas)
求一个n×n(0<n<10)数阵中的马鞍数,输出它的位置。

所谓马鞍数,是指在行上最小而在列上最大的数。

【输入文件】maan.in。

第一行为n,以下n行,每行为以空格分隔的n个整数。

【输出文件】maan.out。

若存在,则输出为一行,两个数用空格分隔,分别为马鞍数所在的行和列的位置;若不存在,输出“not exist”。

【样例输入】:
5
5 6 7 8 9
4 5 6 7 8
3 4 5 2 1
2 3 4 9 0
1 2 5 4 8
【样例输出】:
1 1
最大子方阵(large.pas)
求元素之和最大的子方阵:在M×N(M,N≤20)的正整数数字方阵中,找出一个P×Q的子阵(1≤P≤M,1≤Q≤N)使其元素之和最大。

【输入文件】large.in共M+1行,第一行为M、N、P、Q,用空格分隔,以下M 行,每行N个数据,用空格分隔。

【输出文件】large.out,输出这个最大子方阵。

【样例输入】:
5 4 2 3
3 8
4 22
11 1 7 9
5 21
6 2
10 3 8 9
2 7 12 3
【样例输出】:
5 21 6
10 3 8
奖学金(NOIP2007普及组第一题)
(scholar.pas/c/cpp)
【问题描述】
某小学最近得到了一笔赞助,打算拿出其中一部分为学习成绩优秀的前5名学生发奖学金。

期末,每个学生都有3门课的成绩:语文、数学、英语。

先按总分从高到低排序,如果两个同学总分相同,再按语文成绩从高到低排序,如果两个同学总分和语文成绩都相同,那么规
定学号小的同学排在前面,这样,每个学生的排序是唯一确定的。

任务:先根据输入的3门课的成绩计算总分,然后按上述规则排序,最后按排名顺序输出前五名学生的学号和总分。

注意,在前5名同学中,每个人的奖学金都不相同,因此,你必须严格按上述规则排序。

例如,在某个正确答案中,如果前两行的输出数据(每行输出两个数:学号、总分) 是:
7 279
5 279
这两行数据的含义是:总分最高的两个同学的学号依次是7号、5号。

这两名同学的总分都是 279 (总分等于输入的语文、数学、英语三科成绩之和) ,但学号为7的学生语文成绩更高一些。

如果你的前两名的输出数据是:
5 279
7 279
则按输出错误处理,不能得分。

【输入】
输入文件scholar.in包含n+1行:
第1行为一个正整数n,表示该校参加评选的学生人数。

第2到n+1行,每行有3个用空格隔开的数字,每个数字都在O到100之间,第j行的3个数字依次表示学号为j-1的学生的语文、数学、英语的成绩。

每个学生的学号按照输入顺序编号为l~n (恰好是输入数据的行号减1)。

所给的数据都是正确的,不必检验。

【输出】
输出文件scholar.out共有5行,每行是两个用空格隔开的正整数,依次表示前5名学生的学号和总分。

【输入输出样例1】
scholar.in
6
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
scholar.out
6 265
4 264
3 258
2 244
1 237
【输入输出样例2】
scholar. in
8
80 89 89
88 98 78
90 67 80
87 66 91
78 89 91
88 99 77
67 89 64
78 89 98
scholar. out
8 265
2 264
6 264
1 258
5 258
【限制】
50%的数据满足:各学生的总成绩各不相同 100%的数据满足: 6<=n<=300。

相关文档
最新文档