c++問題字串自元!很急很急很急!

請問有兩組個成績,

A[]={20,30,40,50,60,40};

{30,40,50,60,70,80};

第一組 tom

第二組 john

輸入 tom 會跑出成績 {20 30 40 50 60 40}

輸入 john 跑出{30 40 50 60 70 80}

已更新項目:

而且

我輸入20 會跑出 tom

我輸入30會跑出 john

以此類推

2 個已更新項目:

還需做2元的

1 個解答

評分
  • 1 0 年前
    最佳解答

    #include<stdio.h>

    #include<stdlib.h>

    #include<string.h>

    #define A_UNIT 2

    struct GRADE{

    char data[2][32767];

    }A[A_UNIT]={"tom","20,30,40,50,60,40","john","30,40,50,60,70,80"};

    int main(int argc, char* argv[]){

    //==START==//

    char *buffer,*flag,*err="Error: No data found!!\n";

    int i,j,rec[A_UNIT][2],errflag;

    buffer=(char*)malloc(sizeof(char)*32767);

    printf("Input your string: "),scanf("%s",buffer);

    //searching string

    for(i=0,errflag=0;i<A_UNIT;i++){

    for(j=0;j<2;j++)

    rec[i][j]=(strstr(A[i].data[j],buffer)!=NULL);

    errflag+=rec[i][0]+rec[i][1];

    }

    free(buffer),printf("\n%s",(errflag?"Print...\n":err));

    //print data

    for(i=0,j=0;i<A_UNIT;i++){

    printf("%s",flag=(rec[i][0]?A[i].data[1]:(rec[i][1]?A[i].data[0]:"")));

    printf("%s",(strcmp(flag,"")?"\n":""));

    }

    //==END==//

    printf("\n"),system("PAUSE");

    return 0;

    }

    參考資料: 分數相同者,一起列印……
還有問題?馬上發問,尋求解答。