控制输入的文字,并用随机函數控制其出现的概率(用其它方法也可)。该怎么处理

控制输入的文字,并用随机函數控制其出现的概率(用其它方法也可)。
假设,向电脑里输入的文字列里只能出现A,B,C这三个字母。并且,A出现的概率为0.60,B出现的概率为0.30,C出现的概率为0.10.
    这一段程序要怎么实现。请高手指教。


------解决方案--------------------

char ch = "AAAAAABBBC "[rand() % 10];
------解决方案--------------------
#include <time.h>

int main()
{
char *str= "AAAAAABBBC ";
srand(time(0));
for(int i=0;i <1000;i++)
{
int index=rand()%10;
printf( "%c ",str[index]);
}
return 0;
}

------解决方案--------------------
http://blog.sina.com.cn/s/blog_4a5e3277010009qc.html
------解决方案--------------------
这样,能保证ABC既是伪随机出现,且出现的次数A为6/10,B为3/10,C为1/10.基本要求是总次数不能是4,11这样的不能准确分成1/10,3/10,6/10这样的数

#include <time.h>
#include <assert.h>
int main()
{
int n;
scanf( "%d ",&n);//对n的要求:不能是象4,11这样,不能准确分成1/10,3/10,6/10这样的数.

int a=n*0.6+0.5;
int b=n*0.3+0.5;
int c=n*0.1+0.5;
assert(a+b+c==n);

int *p=(int*)malloc(sizeof(int*)*n);
int i=0;
for(i=0;i <n;i++)
{
p[i]=0;
}

srand(time(0));
for(i=0;i <n;i++)
{
int index=rand()%n;
if(p[index]==0)
{
p[index]=1;
if(index <a)
printf( "%c ", 'A ');
else if(index> =a && index < a+b)
printf( "%c ", 'B ');
else if(index> =a +b && index < a+b+c)
printf( "%c ", 'C ');
else
printf( "这是不可能的,出错了.\n ");
}
else
--i;
}
printf( "\n ");
return 0;
}