找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1907|回复: 9

这题目最少可用多少for语句?

[复制链接]
发表于 2009-11-6 01:26:05 | 显示全部楼层 |阅读模式 IP:江苏扬州
昨天在机房上机,老师出了个题目,我做了很长时间 他说我做的太复杂了
他说还有可能是错的,题目是这样的:

X1 X2 X3

X4 X5 X6

X7 X8 X9

随便输入5个数放在两个对角线里面 第一个对角线 :X1--X5--X9 第2个对角线 :X7--X5--X3
求两个对角线所有数之和. 而且这现状大小是自己定义的的 你可以把对角线搞成4个数,5个数,6个数.....
意思就是说这个数组有是活的 可以是数组A[3][3],A[4][4],A[5][5].........求输入这两个对角线所有数之和,程序规定要是活,不是规定的```以上是个简单规模例子...这个程序别人说很简单,只要用几个循环就可以了 但是我做了很久 还是很难...
在此希望各位师兄师姐多多帮助....谢谢啦
发表于 2009-11-6 01:26:06 | 显示全部楼层 IP:江苏扬州
希望大哥大姐多多帮助```
回复

使用道具 举报

发表于 2009-11-6 01:26:07 | 显示全部楼层 IP:江苏扬州
不明白楼主的意思,任意输数计算和,怎么又和矩阵关系上?
对角线以外的元素呢?
回复

使用道具 举报

发表于 2009-11-6 01:26:08 | 显示全部楼层 IP:江苏扬州
就是,为什么一定要用巨阵来实现咧~~~
回复

使用道具 举报

发表于 2009-11-6 01:26:09 | 显示全部楼层 IP:江苏扬州
define X ?; //数组宽或长...一样,?处自己写个值
int i,j;
int a[X][X];
int sum1=0,sum2=0;
//.... 矩阵附值,免写...

for(i=0,j=X;j;i++,j--) // j 可改为i<X
{
sum1+=a[i][i]; //你所说的第一对角线 的和
sum2+=a[i][j-1]; //第二对角线 的和
}

思路我觉得没问题,看看有没小毛病了....
回复

使用道具 举报

发表于 2009-11-6 01:26:14 | 显示全部楼层 IP:江苏扬州
实在不太明白会什么要用距阵~~
按你的要求写了一个: 

#include<iostream>
using namespace std;
void main()
{
int n;
int sum1=0,sum2=0;
cout<<"输入矩阵的行数!"<<endl;
cin>>n;
int **p=new int *[n]; //定义动态二维数组
int i,j;
for(i=0;i<n;i++)
{
p[i]=new int [n];
}

cout<<"请输入数组的值:"<<endl;
for(i=0;i<n;i++) //输入数组的值
{
for(j=0;j<n;j++)
{
cin>>p[i][j];
}
}
cout<<endl;
for(i=0;i<n;i++) //输出距阵
{
for(int j=0;j<n;j++)
{
cout<<p[i][j]<<'\t';
}
cout<<endl;
}
cout<<endl;

for(i=0;i<n;i++) //计算对角线元素和
{
sum1=sum1+p[i][i];
}

for(i=0,j=n-1;i<n;i++,j--)
{
sum2=sum2+p[j][i];
}
cout<<"第一条对角线的和为:\t"<<sum1<<endl;
cout<<"第二条对角线的和为:\t"<<sum2<<endl;
}
回复

使用道具 举报

发表于 2009-11-6 01:26:15 | 显示全部楼层 IP:江苏扬州
楼上的没有释放动态内存哦!

就是问问,这样使用动态内存了,怎么释放?
回复

使用道具 举报

发表于 2009-11-6 01:26:16 | 显示全部楼层 IP:江苏扬州
for (int i = 0;i < n;++i)
delete [] a[i];
delete [] a;


有没有比这更直接,简单的方法?
回复

使用道具 举报

发表于 2009-11-6 01:26:17 | 显示全部楼层 IP:江苏扬州
小弟愚笨~~想问下为什么要释放动态内存啊??

释放了有什么好处??
回复

使用道具 举报

发表于 2009-11-6 01:26:19 | 显示全部楼层 IP:江苏扬州
以下是引用kisscjy在2007-5-22 15:48:02的发言:
小弟愚笨~~想问下为什么要释放动态内存啊??

释放了有什么好处??
每个程序在执行时都占用了可用内存空间,用于存放动态分配的对象,这个内存空间叫自由存储区,也都习惯叫它“堆内存”,c++中用new和delete来分配存储空间。

如果不显示的释放不用的内存,就会内存泄露,在一些大点的程序中会引起一些不易发现的致命错误。
关于内存泄露的话题就太多了,你找找看就知道了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-10-1 17:28 , Processed in 0.190862 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表