关于数组的问题,小弟先谢过了!

raof 2006-08-07 09:09:52
(1)#include<iostream>
using namespace std;

int main()
{
int i,t,num[3][4];

for(t=0;t<3;++t)
{
for(i=0;i<4;++i)
{
num[t][i]=(t*4)+i+1;
cout<<num[t][i]<<' ';
}
cout<<endl;
}
return 0;
}

//输出结果:1 2 3 4
// 5 6 7 8
// 9 10 11 12
大哥们帮我解释一下这句:num[t][i]=(t*4)+i+1;
搞不太懂,刚学一个月的c++
(2)
#include<iostream>
using namespace std;

int sqrs[10][2]={
{1,1},
{2,4},
{3,9},
{4,16},
{5,25},
{6,36},
{7,49},
{8,64},
{9,81},
{10,100}
};
int main()
{
int i,j;

cout<<"Enter number between 1 and 10:";
cin>>i;
for(j=0;j<10;j++)
if(sqrs[j][0]==i) break;
cout<<"The square of "<< i <<" is ";
cout<<sqrs[j][1]<<endl;
return 0;
}


这个程序,为什么把break去掉,结果都为0???不懂,请指教!~
...全文
149 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
raof 2006-08-07
  • 打赏
  • 举报
回复
非常感谢各位!
Muf 2006-08-07
  • 打赏
  • 举报
回复
num[t][i]=(t*4)+i+1;

-----
这样理解吧:
int value = t*4+i+1;
num[t][i] = value;
higter 2006-08-07
  • 打赏
  • 举报
回复
同意楼上,楼主又是从哪本书上抄来的程序吧
a_b_c_abc2 2006-08-07
  • 打赏
  • 举报
回复
第二个程序,去掉break后,循环结束j=10,而sqrs[10][1]是一个越界访问,恰好那里的值是0。
a_b_c_abc2 2006-08-07
  • 打赏
  • 举报
回复
num[t][i]=(t*4)+i+1;
=====================
这里t 之所以乘4,是因为定义数组时每一行有4个元素(int num[3][4];),t每增加1,元素值就增加4。
raof 2006-08-07
  • 打赏
  • 举报
回复
能解释一下吗,还有第二个程序.
healer_kx 2006-08-07
  • 打赏
  • 举报
回复
num[t][i]=(t*4)+i+1;
二维数组嘛...

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧