1、递归实现字符串的逆序打印
#include<stdio.h>
#include<string.h>
void reserve(char *p)
{
if(*p=='\0')
return;
reserve(p+1);
printf("%c",*p);
}
void main()
{
char a[10]="abc";
reserve(a);
printf("\n");
}
2、A,B,C,D4个嫌疑人,只有一个人为偷盗者。在审讯中,四个人诚实或说谎都有可能。
A:我没偷;
B:C偷的;
C:D偷的;
D:C在胡说。
有3个人说真话,一个人说假话,编写程序判断谁是偷盗者。
#include<stdio.h>
void main(void)
{
int i,sum=0,flag=0;
char killer;
for(i=1;i<=4;i++)
{
killer=64+i;
sum=(killer!='A')+(killer=='C')+(killer=='D')+(killer!='D');
if(sum==3)
{
flag=1;
printf("%c is the theaf.\n",killer);
break;
}
}
if(flag==0)
printf("cat not find.\n");
}
3、五位运动员参加比赛,进行结果与测:
A说:B第一,我第三
B说:我第二,E第四
C说:我第一,D第三
D说:C最后,我第三
E说:我第四,A第一
比赛结素,每位选手只说对了一半,编程确定比赛名次。
#include<stdio.h>
int main()
{
int a[2]={1,3};//A可能第一可能第三
int b[2]={1,2};//B可能第二可能第一
int c[2]={1,5};//C可能第一可能第五
int d=3; //D第三
int e=4; //E第四
int i,j,k;
int sum=0;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
for(k=0;k<2;k++)
{
sum=a[i]+b[j]+c[k]+d[n]+e;
if(sum==15)
{
printf("A 第%d\n",a[i]);
printf("B 第%d\n",b[j]);
printf("C 第%d\n",c[k]);
printf("D 第%d\n",d);
printf("E 第%d\n",e);
return 0;
}
}
return0;
}//这个程序有问题,结果根题目要求不符,那位高手有新的方法,请赐教。