一个c语言程序而已

最近闲来无事,很想找点事做,看到CSDN上的编程题,就随机挑选了一道,想试试手打发打发时间罢了,程序写完之后有,也调试过了,逻辑和结果都是正确的,但提交到网站后,竟然无法通过,真的有点纳闷,因此就想直接把这个贴在博客里面,也不枉我花了时间在这个程序上,聊以慰藉而已!

题目:给定整数区间[A,B]问其中有多少个完全平方数。 输入格式: 多组数据,包含两个正整数A,B 1<=A<=B<=2000000000。 输出格式: 每组数据输出一行包含一个整数,表示闭区间[A,B]中包含的完全平方数的个数。 

挑战规则:  

输入样例:

1  1 

1  2 

3  10 

3   3 

输出样例:  

2

0

<pre name="code" class="html">
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<stdlib.h>
#define MAX_NUM 126
void get_datum(int data[],int group_num);
void handler_fun(int in_data[],int out_data[],int group_num); 
void print_fun(int out_data[],int group_num);
int main(void)
{
	int Group_Num;
	int i_Data[MAX_NUM],o_Data[MAX_NUM/2];
	printf("需要输入数据的组数:");
	scanf("%d",&Group_Num);
	if(Group_Num > (MAX_NUM/2))
	{
		printf("数据太多!\n");
		return -1;
	} 
	printf("\n");
	printf("请输入数据:\n");
	get_datum(i_Data,Group_Num);
	handler_fun(i_Data,o_Data,Group_Num);
	print_fun(o_Data,Group_Num);
	return 0;
         
} 
//进行分解处理
//1、把输入的数据存储起来 
void get_datum(int data[],int group_num)//存放数据于data[],输入的组数 
{
    int i,j;
	for(i = 0;i < group_num*2;i++)
    {
        for(j = 0;j <2;j++)
        {
	    	scanf("%d",&data[i+j]);
	    	if(data[i+j] < 1 || data[i+j] > 90000)
	    	{
		    	printf("数据太大!\n");
		    	exit(-1);
		    }        	
        }
    	i++;
    }		
}
//2、对一个区间的问题进行处理,并存储起来
void handler_fun(int in_data[],int out_data[],int group_num)//要处理的数据in_data[],结果out_data[] ,组数group_num 
{
	int i,temp,temp_n,temp_i,count = 0;
	double d;
	for(i = 0;i < group_num*2;i++)
    {
         if(in_data[i] > in_data[i+1])
        {
 
            temp = in_data[i+1];
            in_data[i+1] = in_data[i];
            in_data[i] = temp;    
        }
        temp_n = in_data[i];
        for(temp_i = 0;temp_i <= in_data[i+1] - in_data[i];temp_i++)//1~4  1,2,3,4
        {
            d = sqrt(temp_n);
            if(d*d - temp_n == 0)
            count++;
            temp_n++;    
        }
        out_data[i/2] = count; 
        count = 0;
		i++;     
    }
} 
//3、把存储的数据打印出来 
void print_fun(int out_data[],int group_num)
{
	int i;
	printf("每组完全平方数的个数分别为:\n");
	for(i = 0;i < group_num;i++)
	printf("%d\n",out_data[i]);
	printf("\n");	
}


 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值