急求!VB编程问题:有一个n×m的矩阵,编写程序,找出其中最大的元素所在的行和列,并输出其值及行号和列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了急求!VB编程问题:有一个n×m的矩阵,编写程序,找出其中最大的元素所在的行和列,并输出其值及行号和列相关的知识,希望对你有一定的参考价值。

提示:假设矩阵第一个元素为最大值,采用嵌套For循环遍历数组元素与第一个元素比较,若有比最大值大的元素就替换并标记行号和列号,循环结束即找出最大值。

求技术帝解答!
正确加分!

'新建一个工程,在form中添加一个按钮,按钮中写上以下代码即可

Private Sub Command1_Click()
Dim n As Long, m As Long
Dim i As Long, j As Long
Dim x As Long, y As Long, z As Long
Dim a() As Long
n = Val(InputBox("输入N", "输入N", 1))
m = Val(InputBox("输入M", "输入M", 1))
If n < 1 And m < 1 Then Exit Sub
ReDim a(n - 1, m - 1)
Randomize Timer
For i = 0 To n - 1
For j = 0 To m - 1
a(i, j) = Int(Rnd() * (n * m))
If z < a(i, j) Then
x = i + 1
y = j + 1
z = a(i, j)
End If
Next
Next
Cls
For i = 0 To n - 1
For j = 0 To m - 1
Print Space(5 - Len(CStr(a(i, j)))) & a(i, j);
Next
Print
Next
Print "最大值:" & z
Print "行:" & x
Print "列:" & y
End Sub
参考技术A 是是是

C语言编程题,急求!!!!

【问题描述】

从标准输入连续读入 n 个学生的学号(不超过int类型表示范围)、姓名(由不超过10个英文字母组成)以及数学、英语、语文三门课的成绩,计算各人的平均成绩。输出总成绩最高的学生的信息(如果总成绩最高的学生有多名,按输入顺序输出总成绩最高的第一个同学),要求学号占10个字符,姓名占10个字符,数学、英语、语文、平均成绩各占5个字符)。要求用链表实现。

【输入形式】

从控制台输入一个正整数,表示学生人数;然后分行输入学号、姓名以及数学、英语、语文三门课的成绩,中间用空格分隔。

【输出形式】

控制台输出成绩最高的第一个同学,要求输出:学号、姓名、数学成绩、英语成绩、语文成绩、平均成绩。

【样例输入】

8

39060415 zf 98 88 80

39060427 lzw 87 92 88

39060413 wr 95 88 90

39060412 wp 95 87 91

39060405 syj 78 82 69

39060425 yef 85 78 93

39060419 sw 75 89 88

39060421 rr 89 88 75

【样例输出】

39060413 wr 95 86 90 91

DFA 引擎在线性时状态下执行,因为它们不要求回溯(并因此它们永远不测试相同的字符两次)。DFA 引擎还可以确保匹配最长的可能的字符串。但是,因为 DFA 引擎只包含有限的状态,所以它不能匹配具有反向引用的模式;并且因为它不构造显示扩展,所以它不可以捕获子表达式。
传统的 NFA 引擎运行所谓的“贪婪的”匹配回溯算法,以指定顺序测试正则表达式的所有可能的扩展并接受第一个匹配项。因为传统的 NFA 构造正则表达式的特定扩展以获得成功的匹配,所以它可以捕获子表达式匹配和匹配的反向引用。但是,因为传统的 NFA 回溯,所以它可以访问完全相同的状态多次(如果通过不同的路径到达该状态)。因此,在最坏情况下,它的执行速度可能非常慢。因为传统的 NFA 接受它找到的第一个匹配,所以它还可能会导致其他(可能更长)匹配未被发现。
POSIX NFA 引擎与传统的 NFA 引擎类似,不同的一点在于:在它们可以确保已找到了可能的最长的匹配之前,它们将继续回溯。因此,POSIX NFA 引擎的速度慢于传统的 NFA 引擎;并且在使用 POSIX NFA 时,您恐怕不会愿意在更改回溯搜索的顺序的情况下来支持较短的匹配搜索,而非较长的匹配搜索。
使用DFA引擎的程序主要有:awk,egrep,flex,lex,MySQL,Procmail等;
使用传统型NFA引擎的程序主要有:GNU Emacs,Java,ergp,less,more,.NET语言,PCRE library,Perl,PHP,Python,Ruby,sed,vi;
使用POSIX NFA引擎的程序主要有:mawk,Mortice Kern Systems’ utilities,GNU Emacs(使用时可以明确指定);
也有使用DFA/NFA混合的引擎:GNU awk,GNU grep/egrep,Tcl。
举例简单说明NFA与DFA工作的区别:
比如有字符串this is yansen’s blog,正则表达式为 /ya(msen|nsen|nsem)/ (不要在乎表达式怎么样,这里只是为了说明引擎间的工作区别)。 NFA工作方式如下,先在字符串中查找 y 然后匹配其后是否为 a ,如果是 a 则继续,查找其后是否为 m 如果不是则匹配其后是否为 n (此时淘汰msen选择支)。然后继续看其后是否依次为 s,e,接着测试是否为 n ,是 n 则匹配成功,不是则测试是否为 m 。为什么是 m ?因为 NFA 工作方式是以正则表达式为标准,反复测试字符串,这样同样一个字符串有可能被反复测试了很多次!
而DFA则不是如此,DFA会从 this 中 t 开始依次查找 y,定位到 y ,已知其后为a,则查看表达式是否有 a ,此处正好有a 。然后字符串a 后为n ,DFA依次测试表达式,此时 msen 不符合要求淘汰。nsen 和 nsem 符合要求,然后DFA依次检查字符串,检测到sen 中的 n 时只有nsen 分支符合,则匹配成功!
由此可以看出来,两种引擎的工作方式完全不同,一个(NFA)以表达式为主导,一个(DFA)以文本为主导!一般而论,DFA引擎则搜索更快一些!但是NFA以表达式为主导,反而更容易操纵,因此一般程序员更偏爱NFA引擎! 两种引擎各有所长,而真正的引用则取决与你的需要以及所使用的语言!
参考技术A #include <stdio.h>
#include<string.h>
struct MyStruct

char num[11];
char name[11];
double val[3];
MyStruct *data=NULL;
double Sum() 
return val[0] + val[1] + val[2];

double Average()  return Sum() / 3; 
void Print() 
printf("学号:%s\\t姓名:%s\\t数学:%.lf\\t英语:%.2lf\\t语文:%.2lf\\t平均:%.2lf\\t总分:%.2lf\\n", num, name, val[0], val[1], val[2],Average(),Sum());


;

int main() 
MyStruct* head=NULL,*p,*pmax;
int n;
scanf("%d", &n);
while (n>0)

n--;
if (head == NULL) 
head = new MyStruct();
p = head;
pmax = p;

else

p->data = new MyStruct();
p = p->data;

scanf("%s %s %lf %lf %lf", &p->num, p->name, &p->val[0], &p->val[1], &p->val[2]);
if (p->Sum() > pmax->Sum())  pmax = p; 


printf("\\n学生成绩信息表\\n");
p = head;
while (p!=NULL)

p->Print();
p = p->data;

printf("\\n最好成绩学生信息\\n");
pmax->Print();
scanf("%d", &n);
return 0;

刚给你写了个

本回答被提问者采纳
参考技术B 混沌剑神那就睡觉小鸡小鸡时间就是 参考技术C 打开数据结构那本书,上面有现成的类似的例子,抄一个,改吧改吧就成了。 参考技术D 上CF找大神

以上是关于急求!VB编程问题:有一个n×m的矩阵,编写程序,找出其中最大的元素所在的行和列,并输出其值及行号和列的主要内容,如果未能解决你的问题,请参考以下文章

请问这道c++编程题怎么做?(急求大神帮忙)——抽奖2

C语言编程,编号1,2,3……,n的人循环报数,报数为m的出列,下一位接着又从1开始报数,输出最后一个编号

有一个n*n的矩阵,要求编一程序求出其中每行元素的最大值并将其存放在一个一维数组当中。用c语言编程

编写一个程序,在 8 个可能的方向线性遍历的 n*m 矩阵中找到 K 大小窗口的最大和

有一个N*M的矩阵,要求编程求出其中值最大的那个元素,以及其所在的行号和列号

矩阵各行元素之和