每日一练

目录

1.1

1157:题目描述

         计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。

1.2  答案:

2.1

1158:题目描述   将输入的四个整数按由大到小的顺序输出。

2.2  答案:


1.1

1157:题目描述

计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。

输入

输入第一行为一个字符串,由0和1组成,长度小于1000;输入第二行为一个正整数n。

输出

输出一个整数,表示连续n个的1的子串的个数。

1.2

答案:

#include<stdio.h>
int main()
{
	char a[1001];
	int n,i,x,k,y=0,j;
	scanf("%s%d",&a,&n);
	for(i=0; a[i]!='\0'; i++)
	{
		x=n-1;                        //x代表循环次数 
		for(j=i,k=0; x>0; x--,j++)    // j锁定i值,a[j]和a[j+1]均为1,然后j++右挪动,循环x次 
			if(a[j]=='1' && a[j+1]==49)
				k++;                  //k记录符合 当前=1 && 下一个=1 的次数 
		if(k==n-1)                    //当k值与n-1值相同时,记录一次 
			y++;
	}
	printf("%d\n",y);
	return 0;
}

2.1

1158:题目描述

将输入的四个整数按由大到小的顺序输出。


请你定义一个四个数排序的函数psort,psort的四个参数为要排序的四个整数变量的地址,请你按照从大到小的顺序把四个数分别放到四个指针所指向的变量里,不要在函数内输入输出任何内容。请务必使用函数实现四个数的排序。
void psort( int *pa, int *pb,int *pc,int *pd)
{
    //实现四个数的排序,并分别放到四个指针所指向的变量里。
}


 

注意:本题如果采用C/C++提交时,至少要编写psort()函数和main()函数两个函数,并提交完整的程序代码。

输入
输入4个整数,用空格隔开。
输出
输出排序后的4个整数,由空格隔开。输出占一行。

2.2

答案:

#include<stdio.h>
void psort( int *pa, int *pb,int *pc,int *pd);
int main()
{
	int a[4],i;
	for(i=0; i<4; i++)
		scanf("%d",&a[i]);
	psort(a,a+1,a+2,a+3);//数组名代表数组首地址,也就是数组中0号元素的地址
	for(i=0; i<4; i++)
		printf("%d ",a[i]);
	return 0;
}
void psort(int *pa, int *pb,int *pc,int *pd)
{
	int a,b,x[4],t,i;
	x[0]=*pa,x[1]=*pb,x[2]=*pc,x[3]=*pd;
	for(a=0; a<3; a++)
		for(b=0; b<3-a; b++)
			if(x[b]<x[b+1])
			{
				t=x[b];
				x[b]=x[b+1];
				x[b+1]=t;
			}
	*pa=x[0],*pb=x[1],*pc=x[2],*pd=x[3];
}

ps:

第二题:

关于指针的一些说明(自己感觉的,有错误请海涵,请多多指教)

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值