c编程
#include<stdio.h>#define N 4
int Dubble(int b[]);
int main()
{
int a;
int i,t;
for(i=0;i<N;i++)
{
scanf("%2d",&a);
}
t=Dubble(a);
printf("%d",t);
return 0;
}
int Dubble(int b[])
{
int i,j,t;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{
if(b>b)
{
t=b;
b=b;
b=t;
}
}
}
if(N%2==0)
return b;
else
return (b+b)/2;
}
为什么这个得不到正确值? 你的代码想实现什么? tommyyu 发表于 2022-11-16 17:05
你的代码想实现什么?
输入一组数,个数为奇数,输出中间的那个,个数为偶数,输出中间两个和的平均值 #include<stdio.h>
#define N 4
float Dubble(int b[]);
int main()
{
int a;
int i;
float t;
for(i=0;i<N;i++)
{
scanf("%2d",&a);
}
t=Dubble(a);
printf("%f",t);
return 0;
}
float Dubble(int b[])
{
int i,j,t;
for(i=0;i<N-1;i++)
{
for(j=0;j<N-i-1;j++)
{
if(b>b)
{
t=b;
b=b;
b=t;
}
}
}
if(N%2==0)
return ((float)(b+b))/2;
else
return (float)b;
} 本帖最后由 jackz007 于 2022-11-16 20:08 编辑
你是不是把奇偶数搞反了?
if(N%2==0)
return b;
else
return (b+b)/2;
这是我修改的代码,谨供楼主参考
#include<stdio.h>
#define N 4
int Dubble(int b[])
{
int c , i , j , t ;
for(c = 1 , i = 0 ; i < N - 1 && c ; i ++)
{
for(c = j = 0 ; j < N - i - 1 && c ; j ++)
{
if(b > b)
{
t = b ;
b = b ;
b = t ;
c ++ ;
}
}
}
if(N % 2) return b ;
else return (b + b) / 2 ;
}
int main()
{
int i , a ;
double t ;
for(i = 0 ; i < N ; i ++) scanf("%2d" , & a) ;
t = Dubble(a) ;
printf("%.0f" , t) ;
return 0 ;
} 铁子,会不会是因为你最后的那个判断的if(N%2==0),其中的N是一个常量,所以判断的结果只会是一个?
页:
[1]