C语言 求中间值
以下给出求n个数的中间数的C语言代码:
#includestdio.h
void main()
{
int n,i,j,t;
int a[1000];
scanf(“%d”,n); //输入n。
for(i=0;in;i++)
scanf(“%d”,a[i]); //输入n个数。
for(i=0;in-1;i++)
for(j=i+1;jn;j++)
if (a[i]a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
} //冒泡排序数列。
if (n%2!=0) printf(“%d\n”,a[n/2]);
else printf(“%0.1f\n”,((double)(a[n/2]+a[n/2-1])/2)); //求中间数。
}
C语言怎么做矩阵做中值运算
#include stdio.h
#define M 4 //行
#define N 5 //列
main()
{
int i,j,k=0,a[M][N],b[N],max=0,sum; //sum=求和值 max=最大值 b[]=缓冲值 k=行中所有数的和最大的那一行值
/************输入*************/
for(i = 0;i M;i++)
{
for(j = 0;j N;j++)
{
printf(“a[%d][%d]=”,i,j);
scanf(“%d”,a[i][j]);
}
}
/************第一行的和*************/
for(i = 0;i N;i++)
max=max+a[0][i];
/************查找和最大的行*************/
for(i = 1;i M;i++)
{
sum=0;
for(j = 0;j N;j++)
sum=sum+a[i][j];
if(maxsum)
{
max=sum;
k=i;
}
}
/************与第一行交换*************/
if(k!=0)
{
for(i = 0;i N;i++)
{
b[i]=a[0][i];
a[0][i]=a[k][i];
a[k][i]=b[i];
}
}
/************输出*************/
printf(“\n”);
for(i = 0;i M;i++)
{
for(j = 0;j N;j++)
printf(“%d “,a[i][j]);
printf(“\n”);
}
}
用C语言取5个数值的的中间值
看怎么理解这个题目,取位置处于中间的一个数。伪码是:
if
有N(奇数)个数字
printf
(N+1)/2
位置上的数字
else
printf
无中间数
如果是取大小位于中间的一个数。伪码是:
5个数字中,相同大小的就存进一个新的
数组元素
获取数组元素的个数
if
元素的个数为偶数
printf
没有中间数
else
{对新数组排序;
printf
取大小位于中间的值}
C语言输入三个数求中间的哪个数怎样写代码?
1.可以先排序后抽出中间那个
2.if
if(a=ba=c||a=ba=c)则a
if(b=ab=c||b=ab=c)则c
if(c=ac=b||c=ac=b)则b
只输入三个数的话很简单,只需要对三个数排序一下,起泡就可以。
如果输入的数很多的话,比如求100W个数据第1W大的是哪个
可以用二叉堆,取100W中的物理位置前1W的数建立二叉堆,以后的99W数据都和堆中第1W个比较,如果大,就做一次替换(这个时候要注意保持堆的特性)。最后堆中最后一个数字就是结果。
C语言算法 求a、b、c三个数的中间数值
C语言程序:
#include stdio.h
#include math.h
/* 返回a、b、c三个数之中的中间值 */
int middle(int a, int b, int c)
{
if(a b)
if(a c)
if(b c)
return b;
else
return c;
else
return a;
else
if(b c)
if(a c)
return a;
else
return c;
else
return b;
}
void main()
{
int a, b, c;
int m;
printf(“请输入三个数,以空格分隔:”);
scanf(“%d%d%d”, a, b, c);
m = middle(a, b, c);
printf(“%d、%d、%d之中的中间值:%d\n”, a, b, c, m);
}
运行测试:
请输入三个数,以空格分隔:1 3 2
1、3、2之中的中间值:2
用C语言取中间值
把各个数放在数组中,然后进行排序(升序、降序均可),根据下标就可取得中间值。
int a[] = {2,5,7,8,12,16,78,88};
int n = sizeof(a)/sizeof(a[0]);
int mid = a[n/2]; // 这就是中间值