编程日记 cha2-05 查找
找x
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main()
{
int n,a[201],x;
bool flag = true;
while (cin >> n )
{
flag = true;
for (int i=0;i<n;i++)
cin >> a[i];
cin >> x;
for (int i=0;i<n;i++)
if (a[i] == x)
{
cout<<i<<endl;
flag = false;
}
if (flag)
cout<<-1<<endl;
}
return 0;
}
查找学生信息
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <stdio.h>
#include <iomanip>
using namespace std;
struct Student
{
char num[5];
char name[10];
char gender[5];
int age;
bool operator < (const Student & A) const{
return strcmp(num,A.num)<0;
}
}stu[1001];
int binarySearch(char x[],int n)
{
int low = 0,high = n-1;
char temp[5];
while ( low <= high )
{
int mid = ( low + high )/2;
if (strcmp(stu[mid].num , x)>0 )
{
high = mid -1;
}
if (strcmp( stu[mid].num , x)<0)
{
low = mid + 1;
}
if (strcmp (stu[mid].num , x ) == 0)
return mid;
}
return -1;
}
int main()
{
int n;
int m;
char x[5];
while (cin>>n)
{
for (int i=0;i<n;i++)
{
scanf("%s %s %s %d",&stu[i].num,&stu[i].name,&stu[i].gender,&stu[i].age);
}
sort(stu,stu+n);
cin >> m;
for (int i=0;i<n;i++)
cout <<stu[i].num<<' '<<stu[i].name<<' '<<stu[i].gender<<' '<<stu[i].age<<endl;
for (int i=0 ; i<m ; i++)
{
cin>>x;
int result_i = binarySearch(x,n);
if (result_i == -1)
cout<<"No Answer!"<<endl;
else
cout <<stu[result_i].num<<' '<<stu[result_i].name<<' '<<stu[result_i].gender<<' '<<stu[result_i].age<<endl;
}
}
return 0;
}
打印极值点下标
#include <iostream>
#include <algorithm>
#include <string.h>
#include <string>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main()
{
int k,a[80];
int x[80];
int cur = 0;
while (cin>>k)
{
for (int i=0;i<k;i++)
cin>>a[i];
for (int i=0;i<k;i++)
{
if (i==0 && a[i+1]!=a[i])
{
x[cur] = i;
cur ++;
continue;
}
if (i==k-1 && a[i]!=a[i-1])
{
x[cur] = i;
cur ++;
break;
}
if ((a[i-1] < a[i] && a[i+1] < a[i]) || (a[i-1] > a[i] && a[i+1] > a[i]))
{
x[cur] = i;
cur ++;
}
}
for (int i=0;i<cur-1;i++)
{
cout << x[i]<<' ';
}
cout <<x[cur-1];
}
return 0;
}