主题:入门必做的题
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个回复)
361 楼
xx05800 [专家分:0] 发布于 2006-11-25 14:19:00
强啊!!
362 楼
wangyue66 [专家分:0] 发布于 2006-11-25 21:22:00
我大一的,只有拿回去,一道一道慢慢研究,我不信解不出来
363 楼
abelwy [专家分:100] 发布于 2006-12-01 19:17:00
哇塞,经典啊!除了经典的题目,还有那么多N人,佩服!
我可是要加把劲了阿,去年学完c,今年有学c++.可好多题都不会做啊!
请大家帮帮我啊,一起努力,Ok?!
364 楼
ningwshyhm [专家分:0] 发布于 2006-12-04 23:55:00
有答案程序吗??
365 楼
beifanglangren [专家分:0] 发布于 2006-12-05 09:18:00
在那里能找到答案呀,
哪位高手能把答案发出来吗?
[fly]答案[/fly]
366 楼
kaifastudent [专家分:0] 发布于 2006-12-05 13:25:00
第一题的答案,是正确的,但有点烦!
#include <iostream.h>
int main ()
{int A,B,C,D,E,F,G,H,M,N,P,Q,Z;
for(A=1;A<10;A++)
for(B=0;B<10;B++)
for(C=0;C<10;C++)
for(D=1;D<10;D++)
for(E=0;E<10;E++)
for(F=0;F<10;F++)
for(G=0;G<10;G++)
{
Z=A*10000+B*1000+C*100+D*10+E+D*100*2+F*10*2+G*2;
H=Z/10000;M=Z%10000/1000;N=Z%1000/100;P=Z%100/10;Q=Z%10;
if(B!=A&&C!=A&&C!=B&&D!=A&&D!=B&&D!=C&&E!=A&&E!=B&&E!=C&&E!=D&&F!=A&&F!=B&&F!=C&&F!=D&&F!=E&&G!=A&&G!=B&&G!=C&&G!=D&&G!=E&&G!=F
&&H!=A&&H!=B&&H!=C&&H!=D&&H!=E&&H!=F&&H!=G&&H!=M&&H!=N&&M!=A&&M!=B&&M!=C&&M!=D&&M!=E&&M!=F
&&M!=G&&M!=N&&N!=A&&N!=B&&N!=C&&N!=D&&N!=E&&N!=F&&N!=G&&P==D&&Q==E)
{ cout<<" "<<A<<B<<C<<D<<E<<endl;
cout<<" "<<D<<F<<G<<endl;
cout<<" + "<<D<<F<<G<<endl;
cout<<"---------------"<<endl;
cout<<" "<<H<<M<<N<<P<<Q<<endl;
}
}
return 0;
}
367 楼
kaifastudent [专家分:0] 发布于 2006-12-05 14:20:00
//第二题
#include <iostream.h>
int main ()
{
int a,b,c,d,e;
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(b*c==0&&(b+c)==1&&c==d&&(d+e)>=1&&((a==1&&b==1)||a==0)&&((e==1&&a==1&&d==1)||e==0))
{
cout<<"0代表不参加,1代表参加"<<endl;
cout<<"ABCDE"<<endl<<a<<b<<c<<d<<e<<endl;
}
}
return 0;
}
368 楼
罗曼蒂克 [专家分:70] 发布于 2006-12-06 14:15:00
谢谢.我一定一一做来
369 楼
chch123 [专家分:10] 发布于 2006-12-06 17:40:00
第4题用循环链表做:
# include <stdio.h>
# include <stdlib.h>
# define NULL 0
struct clist
{
int data;
struct clist *next;
};
typedef struct clist node;
typedef node *clink;
/*结构定义 */
void main()
{
clink head=NULL,ptr=NULL;
clink ptr1=NULL;
int i,Num,j;
j=1;
printf("Input Num:");
scanf("%d",&Num);
head=(clink)malloc(sizeof(node));
if(head==NULL)
{
printf("ERROR:");
exit(1);
}
head->data=1;
head->next=NULL;
ptr1=head;
for(i=2;i<=Num;i++)
{
ptr=(clink)malloc(sizeof(node));
if(ptr==NULL)
{
printf("ERROR:");
exit(1); /*链表赋值*/
}
ptr->data=i;
ptr->next=NULL;
ptr1->next=ptr;
ptr1=ptr;
}
ptr->next=head;
ptr1=head;
for(i=1;i<=Num;i++)
{
while(j<=Num)
{
printf("%d",ptr1->data);
ptr1=ptr1->next;
j++;
} /*输出*/
printf("\n");
j=1;
ptr1=ptr1->next;/*后移*'
}
}
370 楼
fangqi [专家分:0] 发布于 2006-12-06 23:48:00
第一题
#include<stdio.h>
main()
{
long a[10];
int i;
for(a[0]=1;a[0]<10;a[0]++)
for(a[1]=0;a[1]<10;a[1]++)
if(a[1]==a[0]) continue;
else
for(a[2]=0;a[2]<10;a[2]++)
if(a[2]==a[1]||a[2]==a[0]) continue;
else
for(a[3]=1;a[3]<10;a[3]++)
if(a[3]==a[2]||a[3]==a[1]||a[3]==a[0]) continue;
else
for(a[4]=0;a[4]<10;a[4]++)
if(a[4]==a[3]||a[4]==a[2]||a[4]==a[1]||a[4]==a[0]) continue;
else
for(a[5]=0;a[5]<10;a[5]++)
if(a[5]==a[4]||a[5]==a[3]||a[5]==a[2]||a[5]==a[1]||a[5]==a[0]) continue;
else
for(a[6]=0;a[6]<10;a[6]++)
if(a[6]==a[5]||a[6]==a[4]||a[6]==a[3]||a[6]==a[2]||a[6]==a[1]||a[6]==a[0]) continue;
else
for(a[7]=1;a[7]<10;a[7]++)
if(a[7]==a[6]||a[7]==a[5]||a[7]==a[4]||a[7]==a[3]||a[7]==a[2]||a[7]==a[1]||a[7]==a[0]) continue;
else
for(a[8]=0;a[8]<10;a[8]++)
if(a[8]==a[7]||a[8]==a[6]||a[8]==a[5]||a[8]==a[4]||a[8]==a[3]||a[8]==a[2]||a[8]==a[1]||a[8]==a[0]) continue;
else
for(a[9]=0;a[9]<10;a[9]++)
if(a[9]==a[8]||a[9]==a[7]||a[9]==a[6]||a[9]==a[5]||a[9]==a[4]||a[9]==a[3]||a[9]==a[2]||a[9]==a[1]||a[9]==a[0]) continue;
else
if(10000*a[0]+1000*a[1]+100*a[2]+10*a[3]+a[4]+200*a[3]+20*a[5]+2*a[6]==10000*a[7]+1000*a[8]+100*a[9]+10*a[3]+a[4])
for(i=0;i<10;i++)
printf("a[%d]=%2ld",i,a[i]);
}
第二题
#include<stdio.h>
main()
{
int a,b,c,d,e;
for(a=0;a<2;a++)
for(b=0;b<2;b++)
for(c=0;c<2;c++)
for(d=0;d<2;d++)
for(e=0;e<2;e++)
if(b+c==1&&c==d&&d+e>0)
{
if(a>0)
{
if(b>0)
{
if(e>0)
{
if(a==1&&d==1)
printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
}
else
{
printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
}
}
}
else
{
if(e>0)
{
if(a==1&&d==1)
printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
}
else
{
printf("a=%d, b=%d, c=%d, d=%d, e=%d\n",a,b,c,d,e);
}
}
}
}
第三题
#include<stdio.h>
main()
{
int i,j,n;
printf("Please N(3<N<20) N=: ");
scanf("%d",&n);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(i==0||j==0||i==n-1||j==n-1)
printf(" T ");
else
{
if(i==1||j==1||i==n-2||j==n-2)
printf(" J ");
else
printf(" %d ",(i+j<n?(i<j?i:j):n-(i<j?j:i)-1)-1);
}
printf("\n");
}
}
大家评价一下
谢谢
我来回复