主题:入门必做的题
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个回复)
241 楼
无极限 [专家分:120] 发布于 2006-06-25 12:44:00
感觉好难啊,是不是要C/C++整本念透了,上面的才可能都会做,最好每题都介绍一下原理,可以吗,让我们这些新手更快进步,可以吗?
我想再问一下,你是用什么来测算运行时间的
242 楼
258082190 [专家分:0] 发布于 2006-06-25 15:24:00
谢谢你了,我正愁没题目做呢~
243 楼
tangjieling [专家分:60] 发布于 2006-06-25 23:20:00
这是入门的题吗?我们学了这么久。老师也不过叫我们用冒泡法排序啊,老大把答案给我吧!
我的邮箱 tangjieling@126.com
244 楼
吴钩霜雪明 [专家分:0] 发布于 2006-06-30 15:42:00
做一做,看看是否入门了!!
245 楼
从不会到会需要过程 [专家分:0] 发布于 2006-07-03 16:50:00
2个月的时间够吗?做这些题,而且有的不是很明确目的啊?
246 楼
lifnmm [专家分:90] 发布于 2006-07-04 16:49:00
247 楼
lifnmm [专家分:90] 发布于 2006-07-04 16:58:00
#include <malloc.h>
main()
{
int x,y,a,b;
int* array1;
int* array2;
int i,j,sum1,sum2;
int flag;
printf("put in thr init value x and y\n");
scanf("%d,%d",&x,&y);
sum1=0,sum2=0;
a=x,b=y;/*keep the value of x and y*/
while(x>1)
{
x=x/2;
sum1++;
}
while(y>1)
{
y=y/2;
sum2++;
}
array1=(int*) malloc((sum1+2)*sizeof(int));/*initi array1 and array2*/
array2=(int*) malloc((sum2+2)*sizeof(int));
x=a,y=b;
for(i=sum1+1;i>0;i--)
{
array1[i]=a%2;
a=a/2;
}
array1[0]=0;
for(i=sum2+1;i>0;i--)
{
array2[i]=b%2;
b=b/2;
}
array2[0]=0;
for(i=0;i<sum1+2;i++)
printf("%d",array1[i]);
printf("\n");
248 楼
lifnmm [专家分:90] 发布于 2006-07-04 16:58:00
for(j=0;j<sum2+2;j++)
printf("%d",array2[j]);
printf("\n");
flag=0;
if(x>=y)
{
for(i=sum2+1;i>=0;i--)
{
array1[i+sum1-sum2]=array1[i+sum1-sum2]+array2[i]+flag;
if(array1[i+sum1-sum2]>=2)
{
flag=1;
array1[i+sum1-sum2]=0;
}
else flag=0;
}
for(j=sum1-sum2-1;j>=0;j--)
{
array1[j]=array1[j]+flag;
if(array1[i]>=2)
{
flag=1;
array1[i]=0;
}
else flag=0;
}
for(i=0;i<sum1+2;i++)
printf("%d",array1[i]);
printf("\n");
}
if(x<y)
{
for(i=sum1+1;i>=0;i--)
{
array2[i+sum2-sum1]=array2[i+sum2-sum1]+array1[i]+flag;
if(array2[i+sum2-sum1]>=2)
{
flag=1;
array2[i+sum2-sum1]=0;
}
else flag=0;
}
for(j=sum2-sum1-1;j>=0;j--)
{
array2[j]=array2[j]+flag;
if(array2[i]>=2)
{
flag=1;
array2[i]=0;
}
else flag=0;
}
for(i=0;i<sum2+2;i++)
printf("%d",array2[i]);
printf("\n");
}
}
249 楼
lifnmm [专家分:90] 发布于 2006-07-04 17:01:00
翻转硬币:
turnover(int a[],int n)
{
int i,j;
int count;
for(count=0;count<n;count++)
{
for(i=0;i<n;i++)
{
if((i+count)!=n-1) a[i]=1-a[i];
printf("%d ",a[i]);
}
printf("\n");
}
}
main()
{
int i;
int n;
int* array;
printf("put in the needing turnover coin NUM:\n");
scanf("%d",&n);
if(n%2==0) array=(int*) malloc(n*sizeof(int));
else
{
printf("n is not a double,ERROR!\n");
exit(0);
}
for(i=0;i<n;i++)
{
array[i]=1;
printf("%d ",array[i]);
}
printf("\n");
turnover(array,n);
}
250 楼
lifnmm [专家分:90] 发布于 2006-07-04 17:06:00
数学上去了
这些题也就没什么了
我来回复