📄
字号:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include<iomanip.h>
typedef struct
{
float key;
char zhifu;
int mazhu;
}RECNODE;
const k=8;
void bublesort(RECNODE *r, int n)
{
int i, j;
RECNODE temp1;
char temp2;
for(i = 0; i < n; i++)
for(j = n - 2; j >= i; j--)
if(r[j + 1].key >r[j].key)
{
temp1 = r[j + 1];
temp2 = r[j + 1].zhifu;
r[j + 1] = r[j];
r[j + 1].zhifu = r[j].zhifu;
r[j] = temp1;
r[j].zhifu = temp2;
}
}
qiuk(RECNODE *r, int n)
{
int i, j;
float N1, N2;
float N[k];
N1=0;
N2=0;
for(i=1;i<n;i++)
{
for(j=0;j<i;j++)
N1=N1+r[j].key;
for(j=i;j<n;j++)
N2=N2+r[j].key;
N[i]=N1-N2;
if(N[i]<0)
N[i]=-N[i];
N1=0;
N2=0;
}
i=1;
for(j=2;j<n;j++)
{
if(N[i]>N[j])
i=j;
}
if(n == 1)
return i=0;
else
return i;
}
void main()
{
char a[]={"ABCDEFGH"};
RECNODE b[k];
RECNODE c[k];
RECNODE d[k];
int i;
int L;
int t;
int n;
for(t=0;t<k;t++)
{
cout<<"请输入"<<a[t]<<"的概率:";
cin>>b[t].key;
b[t].zhifu=a[t];
cout<<endl;
}
bublesort(b,k);
for(t=0;t<k;t++)
{
c[t].key=b[t].key;
c[t].zhifu=b[t].zhifu;
}
for(t=0;t<k;t++)
cout<<setw(5)<<b[t].zhifu;
cout<<endl;
i=qiuk(b,k);
while(i != 0)
{
if(i != 0)
{
L=i;
if(L==1)
{
b[0].mazhu=0;
for(t=1;t<L;t++)
b[t].mazhu=1;
for(t=0;t<L;t++)
cout<<setw(5)<<b[t].mazhu;
}
else
{
for(t=0;t<L;t++)
{
b[t].mazhu=0;
c[t].key=b[t].key;
}
for(t=0;t<L;t++)
cout<<setw(5)<<b[t].mazhu;
for(t=L;t<k;t++)
b[t].mazhu=1;
for(t=L;t<k;t++)
cout<<setw(5)<<b[t].mazhu;
cout<<endl;
for(n=0;n<k-i;n++)
d[n].key=b[n].key;
}
if(b[k-2].mazhu == 0)
i=0;
}
else
cout<<setw(5)<<" ";
if(b[k-2].mazhu == 0)
i=0;
else
{
i=qiuk(c,i);
i=qiuk(d,n);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -