哪位大佬能写写这几道程序,第四题和第六题,c语言的,万分感谢

哪位大佬能写写这几道程序,第四题和第六题,c语言的,万分感谢

#include <stdio.h>

int numbers[] = { 0, 2, 5, 8, 12, 15, 23, 35, 60, 65 };
int count = 10;

int binary_search(int data, int begin, int end)
{
    if (end <= begin)
        return -1;
    
    int middle = (end + begin) / 2;
    if (numbers[middle] == data) 
    {
        return middle;
    }
    else if (numbers[middle] > data)
    {
        return binary_search(data, begin, middle);
    }
    else
    {
        return binary_search(data, middle + 1, end);
    }
}

int main(void)
{
    int data;
    int index;
    
    printf("Please enter an integer to search: ");
    scanf("%d", &data);
    
    index = binary_search(data, 0, count);
    
    if (index > -1)
    {
        printf("Found it at index: %d\n", index);
    }
    else
    {
        printf("Sorry, did not find it.\n");
    }
    
    return 0;
}

// Output
Please enter an integer to search: 0                                                                                                                                               
Found it at index: 0                                                                                                                                                               
                        
Please enter an integer to search: 12                                                                                                                                              
Found it at index: 4 

Please enter an integer to search: 60                                                                                                                                              
Found it at index: 8  

Please enter an integer to search: 100                                                                                                                                             
Sorry, did not find it.

 

代码分别如下,如有帮助,请采纳一下,谢谢。

//第四题代码
#include <stdio.h>
#include <string>


int main()
{
	int nmb = 0;
	printf("请输入学生人数:");
	scanf("%d",&nmb);

	float* bufYw = new float[nmb];
	float* bufSx = new float[nmb];
	float* bufYy = new float[nmb];
	float* bufAvg = new float[nmb];  //每个学生的平均成绩
	float* bufSum = new float[nmb];  //每个学生的总成绩

	printf("请输入语文、数学、英语成绩:\n");
	for (int i = 0; i < nmb; i++)
	{
		printf("请输入学生%d的成绩:",i+1);
		scanf("%f,%f,%f",&bufYw[i],&bufSx[i],&bufYy[i]);
	}

	//计算各科成绩:
	float sumYw = 0.0;float sumSx = 0.0;float sumYy = 0.0;
	for (int i = 0; i < nmb;i++)
	{
		//统计全班总成绩
		sumYw += bufYw[i];
		sumSx += bufSx[i];
		sumYy += bufYy[i];

		//统计个人总成绩
		bufSum[i] = bufYw[i] + bufSx[i] + bufYy[i];
		bufAvg[i] = bufSum[i] / 3.0;
	}

	printf("全班语文总成绩:%.2f,平均成绩:%.2f\n",sumYw,sumYw/nmb);
	printf("全班数学总成绩:%.2f,平均成绩:%.2f\n",sumSx,sumSx/nmb);
	printf("全班英语总成绩:%.2f,平均成绩:%.2f\n",sumYy,sumYy/nmb);

	for (int i = 0; i < nmb; i++)
	{
		printf("学生%d的语文成绩:%.2f,数学成绩:%.2f,英语成绩:%.2f,总成绩:%.2f,平均成绩:%.2f \n",i+1,bufYw[i],bufSx[i],bufYy[i],bufSum[i],bufAvg[i]);
	}


	
	
	getchar();
	getchar();
	return 0;

}

第六题代码如下:

#include <stdio.h>
#include <string>

//v是需要查找的数,buf是有序数组,start是0,end是数组大小
int findnmb(int v,int* buf,int start,int end)
{
	if (end - start < 0)
		return -1;
	if (end - start == 1)
	{
		if(buf[start] != v)
			return -1;
		else
			return start;
	}else if (end - start == 2)
	{
		if (buf[start] == v )
		{
			return start;
		}else if (buf[start + 1] == v)
		{
			return start+1;
		}else
			return -1;
	}
	
	int mid = start + (end-start) /2 ;
	if (buf[mid] == v)
	{
		return mid;
	}else if (buf[mid] > v)
	{
		return findnmb(v,buf,start,mid);
	}else
		return findnmb(v,buf,mid,end);
		
}



int main()
{
	//2分法查找
	int da[] = {0, 2, 5, 8, 12, 15, 23, 35, 60, 65,78};
	printf("数组:");
	for (int i = 0; i < 11; i++)
	{
		if(i < 10)
			printf("%d,",da[i]);
		else
			printf("%d",da[i]);
	}
	printf("\n");
	while(1)
	{
		printf("请输入需要查找的数:");
		int nnf = 0;
		scanf("%d",&nnf);
		int ind = findnmb(nnf,da,0,11);
		printf("find index:%d\n",ind);
	}
	
	getchar();
	getchar();
	return 0;

}

你这图绝了