当前位置:编程学习 > VC++ >>

C语言编程 vc++软件

题目:

#include<stdio.h>
int search(int *,int,int);
int main(void)
{
 int list[10];
 int i,n, x,t;
 printf("n = ");
 scanf("%d", &n);
 for(i=0;i<n;i++)
  scanf("%d",&list[i]);
 printf("x = ");
 scanf("%d",&x);
    t = search(list,n,x);
 if(t+1)
    printf("%d", t);
 else
  printf("Not Found!");
 printf("\n");
  
 return 0;
}
int search(int *p,int n,int x)
{
 int i;
 for(i=0;i<n;i++)
 if(p[i]==x)
  return i;
 else
     return -1;
}

 

答案:#include "stdio.h"
search(int list[10],int n,int x)
{ int i=0;
 for(i=0;i<n;i++)
   { if(list[i]==x)
       {  return i;
           break;
           }
   }
   return -1;
}
main()
{ int list[10],a,n,x,i,t;
 printf("n=?\n");
 scanf("%d",&n);
    for(i=0;i<n;i++)
      scanf("%d",&list[i]);
      printf("x= \n");
      scanf("%d",&x);
      t=search(list,n,x);
      printf("%d ",t+1);
}

int search(int *p,int n,int x)
{
 int i;
 for(i=0;i<n;i++) {
  if(p[i]==x)
   return i;
 } 
 return -1;
}

查找函数改成这样就可以满足要求了

之前你的 只是判断第一个数据是不是相等   是的话返回0    否则返回-1

应该循环结束才能返回-1

上一个:用VC++编写下题
下一个:vs2010与vc++哪个好?

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,