| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2002 人关注过本帖
标题:问几道题 麻烦大家我
只看楼主 加入收藏
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 

/*两个乒乓球队比赛,每队分别出三个人,甲队队员为A,B,C,乙队队员为X,Y,Z。抽签决定比赛名单。有人打听到,A说它不和X打,C说它不和X,Z打,编写程序打出三队比赛选手的名单。*/
#include<stdio.h>
#include<conio.h>
void main(void)
{
char firstTeam[3];
char secondTeam[3];
int i,j,k;
/*初始化两个字符数组*/
firstTeam[0]='A'; firstTeam[1]='B'; firstTeam[2]='C';
secondTeam[0]='X'; secondTeam[1]='Y'; secondTeam[2]='Z';
/*清屏*/
clrscr();

for(i=0;i<3;i++)/*这个循环使得,'A' 和 乙组的所有成员都比较过*/
{
if(secondTeam[i]=='X')/*保证'A'不和'X'打*/
continue;
else
{
if(secondTeam[i]=='Y')/*保证'C'有对手,如果'A'和'Y'打,'C'就没有对手*/
continue;
else
{
printf("%c---%c\n",firstTeam[0],secondTeam[i]);/*输出'A' 及对手*/
for(j=0;j<3;j++)/*保证'B' 和 乙组的所有成员都比较过*/
{
if(j!=i && j!=1)/*保证'B'不和'A'的对手打 / 并且'B' 不和'Y'打 */
{
printf("%c---%c\n",firstTeam[1],secondTeam[j]);/*输出'B'及对手*/
for(k=0;k<3;k++)/*保证'C'和 乙组的所有成员都比较过*/
{
if(k!=i && k!=j)/*保证'C'不和'A'的对手打 保证'C'不和'B'的对手打*/
{
printf("%c---%c\n",firstTeam[2],secondTeam[k]);/*输出'C'及对手*/
}
}
}
}
}
}
}
/*暂停*/
getch();
}


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2006-12-18 01:56
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
/*有8个人围成一圈,顺序排号,从第一个人报到三,凡报到三的人退出圈子,问最后留下的人是原来第几号的人*/


/*
说明一下方法:
声明一个数组,数组的大小就是PersonNum,
然后,把数组的所有分量全部初始化为1 ,
将某个分量置为 0 时,表明退出圈子*/
#include<stdio.h>
#include<conio.h>
#define PersonNum 8/*宏定义人的个数*/
int notZeroNum(int array[]);/*返回数组中不为0 的分量的个数*/
void main(void)
{
int array[PersonNum];/*声明数组*/
int i;
int time;
for(i=0;i<PersonNum;i++)/*初始化数组*/
array[i]=1;
clrscr();/*清屏*/
i=0;/*第一个人是array[0]*/
do
{
time=0;
while(1)
{
if(array[i]!=0)/*当此人存在时,数数加一*/
time++;
if(time==3) /*当数到三时,退出圈子*/
array[i]=0;
i=(i+1)%(PersonNum);
if(time==3)/*退出循环*/
break;
}
}while(notZeroNum(array)>=2);/*保证至少有二个人在*/
for(i=0;i<PersonNum;i++)
{
if(array[i]!=0)/*求出存在的人*/
printf("%d\n",i+1);/*因为i是从0开始数,所以i+1*/
}
getch();/*暂停*/
}
int notZeroNum(int array[])
{
int num=0;/*初始化为0*/
int i;
for(i=0;i<PersonNum;i++)
if(array[i]!=0)/*存在*/
num++;
return num;
}

[此贴子已经被作者于2006-12-18 22:02:04编辑过]


wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2006-12-18 02:38
山高路远
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-12-18
收藏
得分:0 
这几道题都是课本上的,好好看课本,应该能作出来!
2006-12-18 13:10
senyee
Rank: 1
等 级:新手上路
帖 子:422
专家分:0
注 册:2006-11-28
收藏
得分:0 



菜鸟~~请多指教~~
2006-12-18 15:13
beansboy
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-12-11
收藏
得分:0 

初学的不知道对不对,请大家多多指教!!!!!!!!
第一题:
#include<stdio.h>
int divisor(int m,int n);
void main()
{
int m,n,i,x;
printf("请输入两个数:");
scanf("%d %d",&m,&n);
i=divisor(m,n);
x=m*n/i;
printf("最大公约数是:%d;最小公倍数是:%d",i,x);

}
int divisor(int m,int n)
{
int t;
t=m%n;
if(m%n==0)
return(n);
else
divisor(n,t);
}
第二题我想几乎C的书上应该都有!
第三题:
#include<stdio.h>
#define N 10
void main()
{
int i;
float m=100.00,sum=100.00;
for(i=1;i<=N;i++){
m=m/2;
sum+=2*m;
}
printf("经过%d次后,小球做过的路程是%f米,再次上反弹的高度是%f",N,sum,m);
}
第四题:
#include<stdio.h>
void main()
{
char A,B,C; /*甲队的三个人;A='X'表示A和X比赛 */
printf("\n比赛名单为:");
for(A='X';A<='Z';A++)
for(B='X';B<='Z';B++)
if(B!=A) /*B的对手和A的对手不重复*/
for(C='X';C<='Z';C++)
if(C!=A&&C!=B) /*C的对手和A、B的对手不重复*/
if(A!='X'&&C!='X'&&C!='Z')
{
printf("\nA--%c",A);
printf("\nB--%c",B);
printf("\nC--%c\n",C);
}
}
第五题:我用链表来完成的!!
#include <stdio.h>
#include <stdlib.h>

typedef struct _link
{
struct _link * next;
int pos;
}link;

int main(int argc, char *argv[])
{
link *front, *p, *last;
p=front=(link *)malloc(sizeof(link));/*先分配一个*/
p->pos=1;
int n=8, i=0, num=3;
for(i=2;i<=n;i++)/*再分配其它的,总共n个*/
{
p->next=(link *)malloc(sizeof(link));
p=p->next;
p->pos=i;
}
p->next=front;/*使之围成一个圈*/
i=0;/*从头开始数*/
last=p=front;/*从头开始数*/
while(p->next!=p)/*当p->next==p时就只剩一个了*/
{
i++;/*数数*/
if(i==3)/*数到3了,此人该下去*/
{
last->next=p->next;
free(p);
p=last;
i=0;
}
last=p;//last的作用是保存前一个link,如果是双向链表,就不需要它了
p=p->next;//到下一个人
}
printf("%d",p->pos);//最后剩下的一个人的位置
system("PAUSE");
return 0;
}
------------------------------------------------------------------------------

2006-12-18 15:34
ccy12
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-11-9
收藏
得分:0 

请教卧龙孔明,
scanf("%c",&str[i]);《==作用是什么
while(str[i]!='\n')
{
i++;
scanf("%c",&str[i]);
}
str[i]='\0';

看不懂!

2006-12-18 21:17
neverTheSame
Rank: 3Rank: 3
来 自:江西农业大学
等 级:新手上路
威 望:9
帖 子:1511
专家分:0
注 册:2006-11-24
收藏
得分:0 
25楼的第四题的代码:经典!

wap酷禾网(http://wap.),提供免费的、优质的、快捷的wap资源下载服务。
2006-12-18 21:19
快速回复:问几道题 麻烦大家我
数据加载中...
 
   



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

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