这个程序该如何编写?

img


#include <stdio.h>
#include <stdlib.h>
#define N 40
int ReadScore(long num[],int score[]);
int LinSearch(long num[],long x,int n);
int main()
{
int score[N],n,pos,i;
long num[N],x;
n=ReadScore(num,score);
scanf("\n%d",&x);
pos=LinSearch(num,x,n);
if(pos!=-1)
{
printf("%d",score[pos]);
}
else
{
printf("Not found!");
}
return 0;
}

int ReadScore(long num[],int score[])
{
int i=-1;
do
{
i++;
scanf("%ld:%d ",&num[i],&score[i]);
}while(score[i]>=0);
return i;
}
int LinSearch(long num[],long x,int n)
{
int i;
for(i=0;i<n;i++)
{
if(num[i]==x)
return i;
}
return -1;
}
希望能有人能指出我的程序哪里有误,谢谢!

want some free homework?

先把格式作对吧。这是对别人起码的尊重。

把 ReadScore里面的

while(score[i]>=0);
改成

while(score[i]>=0 && num[i]>=0);

你的主逻辑都是对的。