【PTA练习遇到的问题】warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result

		最近在做PTA的题,遇到了下面这个问题,是不是遇到了边界问题?
	大神们帮忙解答下咯?
		注:查到一些相关的解答,说加if,或者用void等等,但是这些办法
	都是需要对main函数进行修改的。由于PTA特殊性,这里不允许对main函数进行修改。

问题:a.c: In function ‘main’:
a.c:13:5: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d", &N);
^~~~~~~~~~~~~~~
a.c:15:9: warning: ignoring return value of ‘scanf’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%f", &A[i]);

题目:求自定类型元素序列的中位数
本题要求实现一个函数,求N个集合元素A[]的中位数,即序列中第⌊N/2+1⌋大的元素。其中集合元素的类型为自定义的ElementType。
函数接口定义:ElementType Median( ElementType A[], int N );
其中给定集合元素存放在数组A[]中,正整数N是数组元素个数。该函数须返回N个A[]元素的中位数,其值也必须是ElementType类型。

输入样例:
3
12.3 34 -5
输出样例:
12.30

代码如下:

#include 

#define MAXN 10
typedef float ElementType;

ElementType Median( ElementType A[], int N );
void quick_sort ( ElementType A[], int left, int right );
int Partition(ElementType A[], int left, int right);

int main ()
{
    ElementType A[MAXN];
    int N, i;

    scanf("%d", &N);
    for ( i=0; iMAXN)
    {
        N=MAXN;
    }
	int left=0, right=N-1;
	int m=0;
	quick_sort (A,left,right);//快速排序调用
	m = N/2;
	return A[m];//返回数组的中位数值
}

void quick_sort (ElementType A[], int left, int right)
{
	if (left>=right)//递归跳出条件
		{
			return;
		}
	else
	{
		int pivotpos=Partition(A,left,right);//Partition()为划分操作
		quick_sort (A, left, pivotpos-1);//左侧字表递归
		quick_sort (A, pivotpos+1, right);//右侧字表递归
		return;
	}
}

int Partition(ElementType A[], int left, int right)
{
	int i,j;
	ElementType pivot=A[left];//将当前表中的左边第一个元素设为枢轴值,pivot为哨兵
	i=left;
	j=right;
	while (i=pivot)
			{j--;}
		A[i]=A[j];//将比枢轴值小的元素移动到左边
		while (i

PS:初学者一个,有哪些写得不恰当的,欢迎大家给我意见,谢谢。

你可能感兴趣的:(PTA问题,C)