目录
计算机数据都是由0和1组成的,看着长长的0101001110101111011,要找出连续n个1的子串有多少个,确实麻烦,请你编程实现吧。
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:
第二题:
关于指针的一些说明(自己感觉的,有错误请海涵,请多多指教)