主题:入门必做的题
GCC
[专家分:14380] 发布于 2006-04-14 11:53:00
1. 给定等式 A B C D E 其中每个字母代表一个数字,且不同数字对应不
D F G 同字母。编程求出这些数字并且打出这个数字的
+ D F G 算术计算竖式。
───────
X Y Z D E
2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些
人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。
3. 打印一个 N*N 的方阵,N为每边 N=15 打印出下面图形
字符的个数(3<N<20), 要求最 TTTTTTTTTTTTTTT
外一层为"T", 第二层为"J", 从第三层 TJJJJJJJJJJJJJT
起每层依次打印数字 1,2,3,... TJ11111111111JT
(右图以N为15为例) TJ12222222221JT
TJ12333333321JT
TJ12344444321JT
TJ12345554321JT
TJ12345654321JT
TJ12345554321JT
TJ12344444321JT
TJ12333333321JT
TJ12222222221JT
TJ11111111111JT
TJJJJJJJJJJJJJT
TTTTTTTTTTTTTTT
4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅
出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。
编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。
1 2 3 4 5
2 3 4 5 1
3 4 5 1 2
4 5 1 2 3
5 1 2 3 4
5. 输入一个十进数,将其转换成 N 进制数(0<N<=16)。
回复列表 (共635个回复)
271 楼
251791451 [专家分:30] 发布于 2006-07-29 16:55:00
支持GCC大哥,希望喜欢GCC兄贴的人可以相互讨论,共同提高!
我们大家一起入门吧。
272 楼
251791451 [专家分:30] 发布于 2006-07-29 18:05:00
第二种矩阵算法:(蛇形)
#include<iostream.h>
#include<iomanip.h>
void main()
{
const int MAXLEN=10;
int nLen;
int nSnake[MAXLEN][MAXLEN];
do
{
cout<<"\ninput an integer less then "<<MAXLEN<<": ";
cin>>nLen;
cout<<endl;
}while(nLen>MAXLEN);
int i=0,j=0,s=1,nNum=1;
//s标记升降方向,斜向上为升(s==1),斜向下为降(s==-1)
while(1)
{
if(s==1)
{
nSnake[i][j]=nNum;
if(i-1<0)
{
if(j+1==nLen)
i++;
else
j++;
s=-1;
}
else
if(j+1==nLen)
{
i++;
s=-1;
}
else
{
i--;
j++;
}
}
else
{
nSnake[i][j]=nNum;
if(j-1<0)
{
if(i+1==nLen)
j++;
else
i++;
s=1;
}
else
if(i+1==nLen)
{
j++;
s=1;
}
else
{
i++;
j--;
}
}
nNum++;
if(nNum>nLen*nLen)
break;
}
for(i=0;i<nLen;i++)
{
for(j=0;j<nLen;j++)
cout<<setw(4)<<setiosflags(ios::left)<<nSnake[i][j];
cout<<endl;
}
cout<<endl;
}
273 楼
ncys1596 [专家分:80] 发布于 2006-07-29 21:49:00
[quote]怎么看都不能理解第一题的意思...啊门,完成第二题,放出代码
没有注释...原谅啊...算出来是容易,实现出来就麻烦了...
#include <iostream.h>
main(){int f,a,b,c,d,e;
f=1;;
while(f==1)
{ for(a=0;a<=1;a++)
{for(b=0;b<=1;b++){for(c=0;c<=1;c++){
for(d=0;d<=1;d++){
for(e=0;e<=1;e++){if(a==0){if(b==0&&c==1){if(e==0){if(a==0&&d==0){f=2;
if(a==0){cout<<"a参加";}
if(b==0){cout<<"b参加";}
if(c==0){cout<<"c参加";}
if(d==0){cout<<"d参加";}
if(e==0){cout<<"e参加";}
cout<<endl;
}}}}
else if(c==0){if(d==0&&b!=0){if(e!=0){f=2;if(a==0){cout<<"a参加";}
if(b==0){cout<<"b参加";}
if(c==0){cout<<"c参加";}
if(d==0){cout<<"d参加";}
if(e==0){cout<<"e参加";}}}}
}}}}} }
getchar();
}
我是用dev-c++编译完成的
输出a,b,c,d和c,d
不知道对不对..大侠们看看[/quote]
按我的理解不管是输出abcd和cd 还是你后面说的是输出abde和cd都好像不太对劲啊,
第一个输出,abcd B应该是不等于C的,而第二个里冇,abde C和D或者都参加,或者都不参加 这句话说得很清楚,要么C,D都输出,要么都不输出,而你这个答案有D没C,肯定不行的啊!
而小弟认为这个答案应该是输出,A,B 要么就是输出C,D. 下面是我的思路不知道对不对,还请大家多多指教.
按题意,A = B; C = D; B != C; E = A && D;
(!= 表示不等于 && 表示逻辑与)
那么照此理解,首先:
1.E是不会输出的,因为要输出E,就要输出A && D,既然要输出A && D,那么B , C也就要输出,而上面也列出,B不等于C,那么表达式E = ((A = B) && (C=B)) 不成立,
2.然后很明显可以看出A=B与C=D之间的关系,有A=B就没有C=D,反之一样.
以上为小弟愚见,还请多多指教!
274 楼
freeeerf [专家分:5440] 发布于 2006-08-01 20:36:00
哈哈,好,我做了。
275 楼
hjx5690637 [专家分:10] 发布于 2006-08-03 16:28:00
做第一个题目最少要用几重循环呢?
[fly]请各位帮我想一下![/fly]
276 楼
肥仔明 [专家分:80] 发布于 2006-08-03 20:50:00
有答案吗
277 楼
seefree [专家分:70] 发布于 2006-08-04 02:59:00
题目看起来都很难,感觉都不会做。 但粗看了一下有些大虾给出的答案,发现也就30行程序就搞定了,这给我还是增加了不少信心! 我希望能把这些不是入门题目(至少对我来说)的入门题目做完,但估计的花上许多时间的。
278 楼
ddlxd [专家分:0] 发布于 2006-08-04 11:30:00
要学习学习
279 楼
fmcathay [专家分:0] 发布于 2006-08-06 20:47:00
C/C++参考手册
http://fmcathay.googlepages.com/programmerreferencemanual
点下里面广告,支持一下 ,继续收集整理。thanks
280 楼
kevin21 [专家分:50] 发布于 2006-08-08 18:08:00
谢谢搂主给初学者贴了这些题~~
我来回复