各种小程序:(运动员名次与谁是凶手等)

/*5位运动员参加10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第一,我第三
B选手说:我第二,E第四
C选手说:我第一,D第二
D选手说:C最后,我第三
E选手说:我第四,A第一
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int a=0;
	int b=0;
	int c=0;
	int d=0;
	int e=0;
	int num=0;
	for(a=1;a<=5;a++)
	{
		for(b=1;b<=5;b++)
		{
			for(c=1;c<=5;c++)
			{
				for(d=1;d<=5;d++)
				{
					for(e=1;e<=5;e++)
					{
						num=0;
						if(((b==1)+(a==3)==1)&&
						   ((b==2)+(e==4)==1)&&
						   ((c==1)+(d==2)==1)&&
						   ((c==5)+(d==3)==1)&&
						   ((e==4)+(a==1)==1))
						{//将a、b、c、d、e的名次放进一个数中
							num|=(1<<(a-1));
							num|=(1<<(b-1));
							num|=(1<<(c-1));
							num|=(1<<(d-1));
							num|=(1<<(e-1));
							while(num)//判断名次是否连续,连续则输出
							{
								if(num%2==0)
								{
									break;
								}
								num=num>>1;
							}
							if(num==0)
							{
								printf("a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
							}
						}
					}
				}
			}
		}
	}
	system("pause");
	return 0;
}


/*日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为四个嫌疑犯
  的一个,以下为四个嫌疑犯的供词:
  A说:不是我
  B说:是C
  C说:是D
  D说:C在胡说
  已知3个人说了真话,1个人说了假话,现在请根据这些信息,写一个程序
  确定谁是凶手*/
#include <stdio.h>
#include <stdlib.h>
int main()
{
	int killer=0;
	for(killer='A';killer<='D';killer++)
	{
		if((killer!='A')+(killer=='C')+(killer=='D')+(killer!='D')==3)
		{
			printf("凶手killer=%c\n",killer);
			break;
		}
	}
	system("pause");
	return 0;
}

简单小程序

数组初始化、清空、逆置

#include <stdio.h>
#include <stdlib.h>
void init(int arr[],int sz)
{
	int i=0;
	for(i=0;i<sz;i++)
	{
		arr[i]=i;
	}
	for(i=0;i<sz;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
}
void empty(int arr[],int sz)
{
        int i=0;
	for(i=0;i<sz;i++)
	{
		arr[i]=0;
	}
	for(i=0;i<sz;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
}
void reverse(int arr[],int sz)
{
	int i=0;
	int len=sz-1;
	for(i=0;i<sz/2;i++)
	{
		int tmp=arr[i];
		arr[i]=arr[len];
		arr[len]=tmp;
		len--;
	}
	for(i=0;i<sz;i++)
	{
		printf("%d ",arr[i]);
	}
	printf("\n");
}
int main()
{
	int arr[10];
	int sz=sizeof(arr)/sizeof(arr[0]);
	init(arr,sz);
	reverse(arr,sz);
	empty(arr,sz);
	system("pause");
	return 0;
}


乘法表

#include <stdio.h>
#include <stdlib.h>
void Print_Table(int row)
{
	int i=0;
	for(i=1;i<=row;i++)
	{
		int j=0;
		for(j=1;j<=i;j++)
		{
			printf("%2d*%2d=%2d ",j,i,i*j);
		}
		printf("\n");
	}
}
int main()
{
	int row=0;
	printf("请输入指定的行数:row=");
	scanf("%d",&row);
	Print_Table(row);
	system("pause");
	return 0;
}


两个数交换

#include <stdio.h>
#include <stdlib.h>
void Swap(int *pa,int *pb)
{
	*pa=*pa+*pb;
	*pb=*pa-*pb;
	*pa=*pa-*pb;
}
int main()
{
	int a=23;
	int b=35;
	printf("a=%d b=%d\n",a,b);
	Swap(&a,&b);
	printf("a=%d b=%d\n",a,b);
	system("pause");
	return 0;
}

判断闰年

#include <stdio.h>
#include <stdlib.h>
int Judge_Learyear(int year)
{
	if(((year%4==0)&&(year%100!=0))||(year%400==0))
	{
		return 1;
	}
	return -1;
}
int main()
{
	int year=0;
	int ret=0;
	printf("请输入年份:year=");
	scanf("%d",&year);
	ret=Judge_Learyear(year);
	if(ret!=1)
	{
		printf("%d不是闰年\n",year);
	}
	else
	{
		printf("%d是闰年\n",year);
	}
	system("pause");
	return 0;
}

判断素数

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int Is_Prime(int num)
{
	int i=0;
	for(i=2;i<=sqrt((double)num);i++)
	{
		if(num%i==0)
		{
			return -1;
		}
	}
    return 1;
}
int main()
{
	int num=0;
	int ret=0;
	printf("请输入一个数:num=");
	scanf("%d",&num);
	ret=Is_Prime(num);
	if(ret!=1)
	{
		printf("%d不是素数\n",num);
	}
	else
	{
		printf("%d是素数\n",num);
	}
	system("pause");
	return 0;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值