c语言乒乓球比赛
1. c语言编程 (二)设计内容 1、两个乒乓球队进行比赛,各出3人。甲队为
c语言经典100题:【程序1】题目:有1,2,3,4个数字,能组成多少个互不相同且无重复数字的三位数都是多少1.程序分析:可填在百位,十位,个位的数字都是1,2,3,4.组成所有的排列后再去掉不满足条件的排列.2.程序源代码:main(){inti,j,k;printf("\n");for(i1;i2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf("Itisthe%dthday.",sum);}【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出.1.程序分析:我们想法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小.2.程序源代码:main(){intx,y,z,t;scanf("%d%d%d",&x,&y,&z);if(x>y){tx;xy;yt;}/*交换x,y的值*/if(x>z){tz;zx;xt;}/*交换x,z的值*/if(y>z){ty;yz;zt;}/*交换z,y的值*/printf("smalltobig:%d%d%d\n",x,y,z);}【程序6】题目:用*号输出字母c的图案.1.程序分析:可先用'*'号在纸上写出字母c,再分行输出.2.程序源代码:#include"stdio.h"main(){printf("helloc-world!\n");printf("****\n");printf("*\n");printf("*\n");printf("****\n");}【程序7】题目:输出特殊图案,请在c环境中运行,看一看,verybeautiful!1.程序分析:字符共有256个.不同字符,图形不一样.2.程序源代码:#include"stdio.h"main(){chara176,b219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",b,a,a,a,b);}【程序8】题目:输出9*9口诀.1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列.2.程序源代码:#include"stdio.h"main(){inti,j,result;printf("\n");for(i1;ib)a:b这是条件运算符的基本例子.2.程序源代码:main(){intscore;chargrade;printf("pleaseinputascore\n");scanf("%d",&score);gradescore>90'a':(score>60'b':'c');printf("%dbelongsto%c",score,grade);}【程序15】题目:利用条件运算符的嵌套来完成此题:学习成绩>90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1.程序分析:(a>b)?a:b这是条件运算符的基本例子。2.程序源代码:main(){intscore;chargrade;printf("pleaseinputascore\n");scanf("%d",&score);gradescore>90?'A':(score>60?'B':'C');printf("%dbelongsto%c",score,grade);}【程序16】题目:输入两个正整数m和n,求其最大公约数和最小公倍数.1.程序分析:利用辗除法.2.程序源代码:main(){inta,b,num1,num2,temp;printf("pleaseinputtwonumbers:\n");scanf("%d,%d",&num1,&num2);if(num1{tempnum1;num1num2;num2temp;}anum1;bnum2;while(b!0)/*利用辗除法,直到b为0为止*/{tempa%b;ab;btemp;}printf("gongyueshu:%d\n",a);printf("gongbeishu:%d\n",num1*num2/a);}【程序17】题目:输入一行字符,分别统计出其中英文字母,空格,数字和其它字符的个数.1.程序分析:利用while语句,条件为输入的字符不为'\n'.2.程序源代码:#include"stdio.h"main(){charc;intletters0,space0,digit0,others0;printf("pleaseinputsomecharacters\n");while((cgetchar())!'\n'){if(c>'a'&&c'a'&&c'0'&&c0){x1(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/x2x1;day--;}printf("thetotalis%d\n",x1);}【程序22】题目:两个乒乓球队进行比赛,各出三人.甲队为a,b,c三人,乙队为x,y,z三人.已抽签决定比赛名单.有人向队员打听比赛的名单.a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单.1.程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数.2.程序源代码:main(){chari,j,k;/*i是a的对手,j是b的对手,k是c的对手*/for(i'x';ia[j])minj;tema[i];a[i]a[min];a[min]tem;}/*outputdata*/printf("Aftersorted\n");for(i0;iprintf("%5d",a[i]);}【程序38】题目:求一个3*3矩阵对角线元素之和1.程序分析:利用双重for循环控制输入二维数组,再将a[i][i]累加后输出.2.程序源代码:main(){floata[3][3],sum0;inti,j;printf("pleaseinputrectangleelement:\n");for(i0;i50)againtrue;elseagainfalse;}}【程序46】题目:宏#define命令练习(1)程序源代码:#include"stdio.h"#defineTRUE1#defineFALSE0#defineSQ(x)(x)*(x)voidmain(){intnum;intagain1;printf("\40:.\n");while(again){printf("\40:Pleaseinputnumber>");scanf("%d",&num);printf("\40:Thesquareforthisnumberis%d\n",SQ(num));if(num>50)againTRUE;elseagainFALSE;}}【程序47】题目:宏#define命令练习(2)程序源代码:#include"stdio.h"#defineexchange(a,b){\/*宏定义中允许包含两道衣裳命令的情形,此时必须在最右边加上"\"*/intt;\ta;\ab;\bt;\}voidmain(void){intx10;inty20;printf("x%d;y%d\n",x,y);exchange(x,y);printf("x%d;y%d\n",x,y);}【程序48】题目:宏#define命令练习(3)程序源代码:#definelag>#definesmay)x:y#defineminimum(x,y)(x>y)y:xvoidmain(){inta10,b20;#ifdefmaxprintf("\40:thelargeroneis%d\n",maximum(a,b));#elseprintf("\40:theloweroneis%d\n",minimum(a,b)
2. 用C语言写乒乓球程序
/*
A program for converting Pingpang scores.
Author: QQ
Version: 0.0
Date: 28/03/2008
Compiler: GCC
*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define LINE 20
int check_valid(char *score) {//检查输入的合法性
int i;
for (i = 0; i<strlen(score); i++) {
if (*(score+i)=='W' ||*(score+i)=='w' ||*(score+i)=='l' ||*(score+i)=='L') continue;
else {
free(score);
printf("Invalid input!\n");
return -1;
};//if
};//for
return 0;
}
void convert(char *score, int scheme) {
int i,win,lose;
win = 0;
lose = 0;
for (i = 0; i<strlen(score); i++) {
if (*(score+i)=='W' ||*(score+i)=='w') win++;
else lose++;
if (win+lose==scheme) {//判断总分是否是指定的分制
printf("%d:%d\n",win,lose);
win = 0;//输出比分后清零
lose = 0;
}
};//for
if (win+lose!=0) printf("%d:%d\n",win,lose);//如果最后没有打完输出当前结果
}
int main(int argc, char **argv) {
char s[LINE];
char *score,*tmp;
score = strp("");
do{
scanf("%s",s);
tmp = strchr(s,'E');
if (tmp!=NULL) {
//printf("not null%c $$$",*tmp);
*tmp='\0';
};
strcat(score,s);
}
while(tmp==NULL) ;//从屏幕读取赛况,直到读到大写E
//printf("%s\n",score);
if (check_valid(score)==-1) return -1;//检查输入合法性
convert(score,11);
printf("\n");
convert(score,21);
free(score);//释放内存
return 1;
}
3. C语言题目:两个乒乓球队进行比赛
#include<stdio.h>
voidmain()
{
inti,j,k;
for(i='X';i<='Z';i++)
{
for(j='X';j<='Z';j++)
for(k='X';k<='Z';k++)
{
if(i!=j&&i!=k&&j!=k&&i!='X'&&k!='X'&&k!='Z')
{
printf("Avs%c,Bvs%c,Cvs%c ",i,j,k);
}
}
}
getch();
}
4. C++问题 两个乒乓球队进行比赛,各出3人。哪位帮忙看看,错在哪
你的枚举不完全,判断也有问题。
正确代码:
#include<iostream>
usingnamespacestd;
intmain()
{
charteamA[]={'A','B','C'};//把字母映射成012
charteamB[]={'X','Y','Z'};//把字母映射成012
for(inti=0;i<3;i++)//枚举A的对手
for(intj=0;j<3;j++)//枚举B的对手
for(intk=0;k<3;k++)//枚举C的对手
{
if(i!=0&&k!=0&&k!=2//A不与X/C不与X,Z
&&i!=j&&j!=k&&k!=i)//保证ABC的对手是不同的
{
//输出方案
cout<<teamA[0]<<'-'<<teamB[i]<<endl;
cout<<teamA[1]<<'-'<<teamB[j]<<endl;
cout<<teamA[2]<<'-'<<teamB[k]<<endl;
}
}
return0;
}
5. 求教C语言:两个乒乓球队进行比赛
#include<stdio.h>
intmain()
{
chari,j,k;//i是A的对手,j是B的对手,k是C的对手
for(i='x';i<='z';i++)
{
for(j='x';j<='z';j++)
{
if(i!=j)
{
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='x'&&k!='z')
{
printf("A——%c B——%c C——%c ",i,j,k);
}
}
}
}
}
}
return0;
}
A——z
B——x
C——y
Pressanykeytocontinue
6. 用c++编一个3对乒乓球比赛名单的程序
C、C++代码:
C++代码:
#include<iostream>
using namespace std;
int main()
{
char i,j,k;
for(i='X';i<='Z';i++)//穷举法
for(j='X';j<='Z';j++)
for(k='X';k<='Z';k++)
if(i!=j&&i!=k&&j!=k)//三人对手各不相同,这句排除相同的情况
if(i!='X'&&k!='X'&&k!='Z')//A说他不和X比赛,C说他不和X、Z比赛
{
cout<<"A--"<<i<<endl;
cout<<"B--"<<j<<endl;
cout<<"C--"<<k<<endl;
}
return 0;
}
C代码:
#include<stdio.h>
int main()
{
char i,j,k;
for(i='X';i<='Z';i++)//穷举法
for(j='X';j<='Z';j++)
for(k='X';k<='Z';k++)
if(i!=j&&i!=k&&j!=k)//三人对手各不相同,这句排除相同的情况
if(i!='X'&&k!='X'&&k!='Z')//A说他不和X比赛,C说他不和X、Z比赛
{
printf("A--%c\n",i);
printf("B--%c\n",j);
printf("C--%c\n",k);
}
return 0;
}
7. c语言编程问题
这题纯粹是逻辑推理,可以用三重循环来完成。然后在内循环逐一判断。但是我们可以先简化一下,滤清思路:
1)因为c不和x,z比较=>只能和y比较(c对阵y,确定)
2)a不和x比,那么a只可能和y和z。因为c已经和y,所以a也只能和z。
3)b从x开始循环判断,跳过y,z两种可能。只有x。
代码如下:
#include<stdio.h>
#include<stdlib.h>
void
main()
{
printf("乒乓球比赛顺序【可能情况】:\n");
for(char
b='x';b<'z';b+=2)
{
printf("c对阵y ");
printf("a对阵z ");
printf("b对阵%c ",b);
printf("\n\n");
}
system("pause");
}
8. C语言乒乓球比赛抽签
C语言的
#include "stdio.h"
int main()
{char i,j,k; /* i是a的对手;j是b的对手;k是c的对手*/
for (i='X';i<='Z';i++)
for (j='X';j<='Z';j++)
if (i!=j)
for (k='X';k<='Z';k++)
if (i!=k && j!=k)
if (i!='X' && k!='X' && k!='Z')
printf("A--%c B---%c C--%c\n",i,j,k);
getchar();
return 0;
}
c++的
#include <iostream>
using namespace std;
int main()
{char i,j,k; /* i是a的对手;j是b的对手;k是c的对手*/
for (i='X';i<='Z';i++)
for (j='X';j<='Z';j++)
if (i!=j) for (k='X';k<='Z';k++)
if (i!=k && j!=k)
if (i!='X' && k!='X' && k!='Z')
cout<<"A--"<<i<<" B--"<<j<<" C--"<<k<<endl;
getchar();
getchar();
return 0;
}
9. c语言题目:乒乓球比赛
太强大了,
#include "stdio.h"
void main()
{
char i,j,k;/*i是a的对手,j是b的对手,k是c的对手*/
for(i='x';i<='z';i++)//i有三种对阵情况x-a,y-a,z-a,用循环遍历
for(j='x';j<='z';j++)//j有三种对阵情况x-b,y-b,z-b,用循环遍历
{
if(i!=j)//表示i 、j 不能为x,y,z三人中的同一个人
for(k='x';k<='z';k++)//k有三种对阵情况x-c,y-c,z-c,用循环遍历
{
if(i!=k&&j!=k)//表示k、i、j不能为x,y,z三人中的同一个人
{
if(i!='x'&&k!='x'&&k!='z')//此乃题目条件:A说他不和X比(a!=x),而i 又非跟a比,所以i!='x';C说他不和X、Z比。即:i!='x'且k!='x'且k!='z'(同理)
printf("order is a--%c\tb--%c\tc--%c\n",i,j,k);//经过以上排列,选择,最终确定对手组合
}
}
}
}
10. C语言简单问题:乒乓球比赛
#include "stdio.h"
void main()
{
char i,j,k;
for(i='x';i<='z';i++)
for(j='x';j<='z';j++)
if(i!=j)
{
for(k='x';k<='z';k++)
{
if(i!=k&&j!=k)
{
if(i!='x'&&k!='x'&&k!='z')
printf("a--%c,b--%c,c--%c",i,j,k);
}
}
}
}