几个小程序

 

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;
}//这个程序有问题,结果根题目要求不符,那位高手有新的方法,请赐教。

posted on 2010-07-29 13:54  生活费  阅读(413)  评论(0编辑  收藏  举报

导航