[c语言]如何实现多组测试

Python021

[c语言]如何实现多组测试,第1张

//第一种

#include <stdio.h>

int search(int list[],int n,int x)

{

    int i

    for(i=0 i<n i++)

        if(list[i]==x)

            return i

    return -1

}

int main(void)

{

    int list[10],n,x,i

    while(1)    //无限循环  ,不建议用这个 

    {

    for(i=0 i<10 i++)

            scanf("%d",&list[i])

    scanf("%d",&x)

    if(search(list,n,x)==-1)

        printf("Not found\n")

    else printf("%d\n",search(list,n,x)+1)

    }

}

第二种

#include <stdio.h>

int search(int list[],int n,int x)

{

    int i

    for(i=0 i<n i++)

        if(list[i]==x)

            return i

    return -1

}

int main(void)

{

    int list[10],n,x,i

    while(scanf("%d", &list[0]) != EOF)    //文件结束  这种可以用Ctrl + Z 结束

    {

        for(i=1 i<10 i++)

            scanf("%d",&list[i])

    scanf("%d",&x)

    if(search(list,n,x)==-1)

        printf("Not found\n")

    else printf("%d\n",search(list,n,x)+1)

    }

}

第三种

#include <stdio.h>

int search(int list[],int n,int x)

{

    int i

    for(i=0 i<n i++)

        if(list[i]==x)

            return i

    return -1

}

int main(void)

{

    int list[10],n,x,i

    int t

    printf("Enter Case num:")    //提前输入测试数据的个数

    scanf("%d", &t)

    while(t--)

    {

    for(i=0 i<10 i++)

            scanf("%d",&list[i])

    scanf("%d",&x)

    if(search(list,n,x)==-1)

        printf("Not found\n")

    else printf("%d\n",search(list,n,x)+1)

    }

}

直接输入n个数

那么 要么n的个数是确定的

直接for循环就可以

如果n的个数是不确定的 就需要指定结束标记

比如 输入0结束就可以

while(scanf("%d",&n) == 1 &&n!=0)

while(scanf("%d",&a)!=EOF) 是对的,但这个是对评判你程序的系统来说的 EOF是end of file 的意思。如果只是你个人想输入多组数据,那你可以设定一个条件 例如输入-1时 数据输入结束while(scanf("%d",&a)){ if(a==-1) break

}