我给你做了一个
还真的花了蛮多时间的,这个程序需要你将单词放在1.txt的文件中,我用的是TC,因此要把1.txt文件放在TC文件夹中。程序有一个缺陷就是他一次只能处理120多个单词,希望哪位强人给我完善一下。程序我已经测试过了,可以用,楼主用下,有问题跟我联系qxykzx@
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#define MAX 127
typedef struct words{
char word[MAX];
char trans[MAX];
}words;
int *rand_qx(int num) /*generate a random array*/
{
int i,n[MAX],j,ran[MAX],x;
time_t t;
for(i=0;i<=num;i++)
n[i]=i;
srand(time(0));
for(i=0;i<=num;i++)
{
ran[i]=random(1000);
}
for(i=0;i<=num;i++)
{
for(j=0;j<=num;j++)
if(ran[i]>ran[j])
{
x=ran[i];
ran[i]=ran[j];
ran[j]=x;
x=n[i];
n[i]=n[j];
n[j]=x;
}
}
return n;
}
main()
{
int i=0,m,num;
int *rp=&m;
words w[MAX];
FILE *fp1=NULL,*fp2=NULL;
if((fp1=fopen("1.txt","r"))==NULL)
{printf("can't open 1.txt");
return 0;};
if((fp2=fopen("out.txt","w"))==NULL)
{printf("can't open out.txt");
return 0;};
while(!feof(fp1))
{
fgets(w[i].word,256,fp1) ;
fgets(w[i].trans,256,fp1);
/* fprintf(fp2,"%s\n",w[i].word);
fprintf(fp2,"%s\n",w[i].trans);
*/
i++;
}
num=i-1;
rp=rand_qx(num);
for(i=0;i<=num;i++)
{
fprintf(fp2,"%s\n",w[*rp].word);
fprintf(fp2,"%s\n",w[*rp].trans);
rp++;
}
}