还有你这程序...每次只能随机产生1个字母...跟题目有点不对哦.!
for循环里加个printf不就得了?
思想是这样的:
首先从N个数字中产生一个随机数字t,输出对应的字母,将这个字母放到字母数组的末尾,然后从剩下的N-1个数字中再随机产生一个数字,得到相应的字母,这样循环就可以。
可以这样写,如果发现错误(产生了两个相同的字母),请告诉我。
#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>
#define N 10     /*假设从10个字母中产生*/
#define NUM 5    /*假设产生5个不同的字母*/
void Exchange(char *a,char *b) /*交换两个字符*/
{
     int tmp;
     tmp=*a;
     *a=*b;
     *b=tmp;
}
int main()
{
    int i=0,j=0;
    char Letter[N]="\0",Array[NUM]="\0";
    for(i=0;i<N;i++)
        Letter[i]=97+i;   /*初始化字母数组*/
    srand((unsigned)time(NULL));
    for(i=0;i<NUM;i++)
    { 
         j=rand()%(10-i);
         Array[i]=Letter[j];
         Exchange(&Letter[j],&Letter[N-1-i]); /*将用过的字母放到数组末尾*/
    }
    for(i=0;i<NUM;i++)
        printf("%c  ",Array[i]);
    printf("\n");
    system("pause");
    return 0;
}
