C语言设计题

1、寻找肇事汽车车牌号:
一辆汽车撞人后逃跑,4个目击者提供如下线索:
甲:牌照3、4位相同 乙:牌号为31XXXX
丙:牌照5、6位相同 丁:3~6位是一个整数的平方
请根据4个目击者的话,找出肇事汽车车牌号。

int text1()
	{
	int i;float n;
  for(i=0001;i<10000;i++)//从1开始试四位数
{
   n=sqrt(i);//求四位数的开平方
   if(n==(int)n)//检测四位数开平方后是否为整数
    if((i%10)==(i/10%10)&&(i/100%10)==(i/1000))//验证甲和丙的要求是否符合
   	printf("31%d",i);//符合所有条件输出此数   	
}
   }

2、狗熊吃包谷
狗熊到玉米地吃包谷,第一天吃了一半又拿走一个回去喂小狗熊,第二天又去吃了剩下的一半,走时仍然带一个回去。以后每天都吃前一天剩下的一半,拿走一个。到第十天时,狗熊到地里一看,只剩下一个包谷了。求地里一共有多少包谷?

 int text2()
   {
	int a[10],i;//定义数组和变量i
	a[0]=1;
	for(i=0;i<=9;i++)
	 a[i+1]=2*(a[i]+1);//10天依次按要求增加
	 printf("%d",a[9]);//输出最后一天的量即总量
}

3、奇怪的A+B
小明做过很多版本的A+B,可是这次的A+B有点棘手,这次的问题是告诉你一个表达式满足“A+B=”,让你求出它的值,棘手的地方在于A和B(A和B的值小于10000)都是用英文表示的,就是用英文单词表示A和B每位上的数,最后求出它们的和。例如,输入(单词由空格隔开)seven four + nine =,输出83。

int text3()
   {
	char a[M][P]={"zero","one","two","three","four","five","six","seven","eight","nine"};
	char str[M];
	int i;
	int flag=0,flag1=0;
	int k,k1;
	int y=0,y1=0;
	int sum;
	printf("请输入需要相加的英文字母:\n");
	while(flag==0)
	{
		scanf("%s",str);
		if((strcmp(str,"+")==0))
		   flag=1;
		for(i=0;i<M;i++)
		{
			if(strcmp(str,a[i])==0)
			{
			  k=i;
			  y=y*10+k;
		    }
		}
    }
	while(flag1==0)
	{
		scanf("%s",str);
		if((strcmp(str,"=")==0))
		   flag1=1;
		for(i=0;i<M;i++)
		{
			if(strcmp(str,a[i])==0)
			{
			  k1=i;
			  y1=y1*10+k1;
		    }
		}	
	}
	sum=y+y1;
	printf("最后的和为:\n");
	printf("%d",sum);

}

4、通讯录
通讯录中的一条记录包含下述基本信息:朋友的姓名(不超过10个字符)、出生日期(yyyy/mm/dd)、性别(M表示男,F表示女)、固定电话号码(不超过15位的连续数字)、移动电话号码(不超过15位的连续数字)。要求编写程序,输入N(N小于等于10)条记录,并且根据要求显示任意某条记录。

struct frinds{  //设置结构体包含用字符类型定义的姓名,出生日期,性别,固定电话,移动电话。
	char name[10];
	char date[10];
	char sex;
	char guding[15];
	char yidong[15];
};
int text4()
   {
	int N;
	printf("要求输入的记录个数:");
	scanf("%d",&N);//接收总记录个数
	int i,k,j,m;
	struct frinds a[N];//设置结构体数组,数组一共N个,代表N个电话记录
	printf("输入信息:");
	for(i=0;i<N;i++)//循环输入这N个电话记录的各个消息
	{
	  	 scanf("%s",a[i].name);
	  	 getchar();
	  	 scanf("%s",a[i].date);
	  	 getchar();
	  	 scanf("%c",&a[i].sex);
	  	 getchar();
	  	scanf("%s",a[i].yidong);
	  	getchar();
	  	scanf("%s",a[i].guding);
    }
    printf("输入要查找的记录号:");
    scanf("%d",&m);//接收要查找的电话记录的序号
    printf("%s\n",a[m-1].name);//输出关于此电话记录的各个信息
	printf("%s\n",a[m-1].date);
    printf("%c\n",a[m-1].sex);
	printf("%s\n",a[m-1].guding);
	printf("%s\n",a[m-1].yidong);
}

  • 10
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值