| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2809 人关注过本帖
标题:这题目最少可用多少for语句?
只看楼主 加入收藏
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
结帖率:33.33%
收藏
 问题点数:0 回复次数:41 
这题目最少可用多少for语句?

昨天在机房上机,老师出了个题目,我做了很长时间 他说我做的太复杂了
他说还有可能是错的,题目是这样的:

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].........求输入这两个对角线所有数之和,程序规定要是活,不是规定的```以上是个简单规模例子...这个程序别人说很简单,只要用几个循环就可以了 但是我做了很久 还是很难...
在此希望各位师兄师姐多多帮助....谢谢啦

搜索更多相关主题的帖子: 语句 对角线 定义 之和 
2007-05-22 01:18
孤魂居士
Rank: 2
来 自:老A(中国地大)
等 级:论坛游民
威 望:4
帖 子:1142
专家分:18
注 册:2007-5-21
收藏
得分:0 

希望大哥大姐多多帮助```


准备用3年做个高级软件工程师 10年也做不成。准备用10年做成高级软件工程师 3年就成了QQ 群 45771086
欢迎版主...欢迎JAVA爱好者...
一起从深夜 到凌晨...
2007-05-22 01:21
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
不明白楼主的意思,任意输数计算和,怎么又和矩阵关系上?
对角线以外的元素呢?

Fight  to win  or  die...
2007-05-22 08:49
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
就是,为什么一定要用巨阵来实现咧~~~

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-22 12:55
I喜欢c
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:64
帖 子:1749
专家分:0
注 册:2007-3-2
收藏
得分:0 

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]; //第二对角线 的和
}

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


 我是指针,却丢失了目标地址!          我是循环,却缺少了结束条件!      我是函数,却没有人来调用!   
2007-05-22 13:13
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 

实在不太明白会什么要用距阵~~
按你的要求写了一个: 

#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;

}


每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-22 13:38
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
楼上的没有释放动态内存哦

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

Fight  to win  or  die...
2007-05-22 13:52
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
for (int i = 0;i < n;++i)
delete [] a[i];
delete [] a;


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

Fight  to win  or  die...
2007-05-22 13:54
kisscjy
Rank: 1
等 级:新手上路
帖 子:217
专家分:0
注 册:2007-4-9
收藏
得分:0 
小弟愚笨~~想问下为什么要释放动态内存啊??

释放了有什么好处??

每当我一晚写下70,80个程序时,你还真以为,这都是我一个人干的.....不过说真的,其实都是抄书的~~ ^@^
2007-05-22 15:48
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用kisscjy在2007-5-22 15:48:02的发言:
小弟愚笨~~想问下为什么要释放动态内存啊??

释放了有什么好处??

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

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


Fight  to win  or  die...
2007-05-22 16:58
快速回复:这题目最少可用多少for语句?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.026134 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved