- #define _CRT_SECURE_NO_WARNINGS
- #include<stdio.h>
- #include<math.h.>
- #include<assert.h>
- #define n 5
- int main()
- {
- int arr[n]={0};
- int count =0;
- int i=0;
- int max=0;
- int flag=1;
- //从键盘随机输入五个数表示从扑克牌中随机抽中的五张牌
- printf("请输入五个数(0~13):");
- for(i=0;i<n;++i)
- {
- scanf("%d" ,&arr[i]);
- assert( (arr[i]<=13)&&(arr[i]>=0));
- }
- //判断是否有两个相同的数,如果有肯定不是顺子直接退出
- for(i=0;i<n-1;i++)
- {
- for(int j=i+1;j<n;j++)
- {
- if((arr[i]==arr[j])&&(arr[i]!=0)&&arr[j]!=0)
- {
- printf("不是顺子\n");
- return 0;
- }
- }
- }
- //冒泡排序
- for(int i=0;i<n-1;i++)
- {
- for(int j=0;j<n-i-1;j++)
- {
- if(arr[j]>arr[j+1])
- {
- int tmp=0;
- tmp=arr[j];
- arr[j]=arr[j+1];
- arr[j+1]=tmp;
- }
- }
- }
- for(int i=0;i<n;i++)
- {
- printf("%d ",arr[i]);
- }
- //计算大小王的个数
- for(i=0;i<n;i++)
- {
- if(arr[i]==0)
- count++;
- }
- printf("count=%d\n",count);
- //判断是顺子
- if(count==0)
- {
- for(i=0;i<n-1;i++)
- {
- if(abs(arr[i]-arr[i+1])!=1)
- {
- flag=0;
- break;
- }
- }
- if(flag==0)
- {
- printf("false\n");
- }
- else
- {
- printf("ture\n");
- }
- }
- if(count==1)
- {
- for(i=1;i<n-1;i++)
- {
- if(abs(arr[i]-arr[i+1])>1)
- {
- max+=(abs(arr[i]-arr[i+1])-1);//间隔数的个数;
- }
- }
- if(max>1)
- {
- printf("false\n");
- }
- else
- {
- printf("ture\n");
- }
- }
- if(count==2)
- {
- for(i=2;i<n-1;i++)
- {
- if(abs(arr[i]-arr[i+1])>1)
- max+=(abs(arr[i]-arr[i+1])-1);
- }
- if(max>2)
- {
- printf("false\n");
- }
- else
- {
- printf("ture\n");
- }
- }
- return 0;
- }
虽然是能运行出来,但是不完整,以后再改吧!