程序代码:
#include<stdio.h> #include<time.h> #include<stdlib.h> typedef struct { int a , b , c ,d ,e; }num; num p[5] = { {2 , 3 , 5 ,7 ,11}, {1 , 2 , 3 ,8 ,9},{3 , 5 , 6 ,7 ,8}, {1 , 7 , 8 ,10 ,11},{3 , 4 , 6 ,8 ,11}}; num fun() { num k; k.a = rand()%11 + 1; k.b = rand()%11 + 1; k.c = rand()%11 + 1; k.d = rand()%11 + 1; k.e = rand()%11 + 1; return k; } int main() { int t=0,c=0; num temp; srand((unsigned)time(NULL)); do { temp = fun(); } while(temp.a!=p[0].a||temp.b!= p[0].b||temp.c!= p[0].c||temp.d!= p[0].d||temp.e!= p[0].e); t++; do { temp= fun(); } while(temp.a!=p[1].a||temp.b!= p[1].b||temp.c!=p[1].c||temp.d!=p[1].d||temp.e!=p[1].e); t++; do { temp = fun(); } while(temp.a!=p[2].a||temp.b!= p[2].b||temp.c!=p[2].c||temp.d!=p[2].d||temp.e!=p[2].e); t++; do { temp = fun(); } while(temp.a!=p[3].a||temp.b!=p[3].b||temp.c!=p[3].c||temp.d!=p[3].d||temp.e!=p[3].e); t++; do { temp = fun(); } while(temp.a!=p[4].a||temp.b!=p[4].b||temp.c!=p[4].c||temp.d!=p[4].d||temp.e!=p[4].e); t++; if(t==5) { do { temp = fun(); if(temp.a!=temp.b&&temp.a!=temp.c&&temp.a!=temp.d&&temp.a!=temp.e) if(temp.b!=temp.c&&temp.b!=temp.d&&temp.b!=temp.e) if(temp.c!=temp.d&&temp.c!=temp.e) if(temp.d!=temp.e) { printf("%d %d %d %d %d\n" , temp.a , temp.b , temp.c, temp.d, temp.e); c++; } }while(c<20); } else printf("没有满足条件的数组\n"); return 0; }上午写的程序有错误,不好意思LZ。刚写好的。满足你的要求。LZ写的那个我觉得是程序循环的问题。没有break,它不会退出的。