#include <stdio.h>
const int N=5;
int binarySearch(int x[], int n, int item);
int main()
{
int a[N]={1,3,9,16,21};
int i,index, key;
printf("数组a中的数据:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
printf("输入待查找的数据项: ");
scanf("%d", &key);
index=binarySearch(a,5,key);
if(index>=0)
printf("%d在数组中,下标为%d\n", key, index);
else
printf("%d不在数组中\n", key);
return 0;
}
int binarySearch(int x[], int n, int item)
{
int low, high, mid;
low = 0;
high = n-1;
while(low <= high)
{
mid = (low+high)/2;
if (item == x[mid])
return mid;
else if(item < x[mid])
high = mid - 1;
else
low = mid + 1;
}
return -1;
}


1-2:
int binarySearch(int *x, int n, int item);
int main()
{
int a[N]={1,3,9,16,21};
int i,index, key;
printf("数组a中的数据:\n");
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
printf("输入待查找的数据项: ");
scanf("%d", &key);
index=binarySearch(a,5,key);
if(index>=0)
printf("%d在数组中,下标为%d\n", key, index);
else
printf("%d不在数组中\n", key);
return 0;
}
int binarySearch(int *x, int n, int item)
{
int low, high, mid;
low = 0;
high = n-1;
while(low <= high)
{
mid = (low+high)/2;
if (item == *(x+mid))
return mid;
else if(item < *(x+mid))
high = mid - 1;
else
low = mid + 1;
}
return -1;
}


2-1:
#include <stdio.h>
const int N=5;
void selectSort(int [], int);
void input(int [], int);
void output(int [], int);
int main()
{
int a[N];
printf("输入%d个整数\n", N);
input(a, N);
printf("排序前的数据:\n");
output(a,N);
selectSort(a,N);
printf("排序后的数据:\n");
output(a, N);
return 0;
}
void input(int a[], int n)
{
int i;
for(i=0; i<n; i++)
scanf("%d", &a[i]);
}
void output(int a[], int n)
{
int i;
for(i=0; i<n; i++)
printf("%d ", a[i]);
printf("\n");
}
void selectSort(int a[], int n)
{
int i, j, k, temp;
for(i=0; i<n-1; i++)
{
k = i;
for(j=i+1; j<n; j++)
if (a[j] < a[k])
k = j;
if(k != i)
{
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}

#include <stdio.h>
#include <string.h>
void selectSort(char str[][20], int n );
int main()
{
char name[][20] = {"John", "Alex", "Joseph", "Candy", "Geoge"};
int i;
printf("输出初始名单:\n");
for(i=0; i<5; i++)
printf("%s\n", name[i]);
selectSort(name, 5);
printf("按字典序输出名单:\n");
for(i=0; i<5; i++)
printf("%s\n", name[i]);
return 0;
}
void selectSort(char str[][20], int n)
{
int i, j, k;
char temp[20];
for(i=0; i<n-1; i++)
{
k = i;
for(j=i+1; j<n; j++)
if(strcmp(str[j],str[k])<0)
k = j;
if(k!=i)
{
strcpy(temp,str[i]);
strcpy(str[i],str[k]);
strcpy(str[k],temp);
}
}
}

3:
#include <stdio.h>
void delPrefixStar(char []);
int main()
{
char string[80];
printf("输入一个字符串:\n");
gets(string);
printf("\n删除前导*之前的字符串:\n");
puts(string);
delPrefixStar(string);
printf("\n删除前导*之后的字符串:\n");
puts(string);
return 0;
}
void delPrefixStar(char s[])
{
char *target, *source;
source = s;
while(*source == ‘*‘)
source++;
target = s;
while( *target++ = *source++);
}

#include <stdio.h>
void delStarButPrefix(char []);
int main()
{
char string[80];
printf("输入一个字符串:\n");
gets(string);
printf("\n删除<中间和末尾的*>之前的字符串:\n");
puts(string);
delStarButPrefix(string);
printf("\n除<中间和末尾的*>之后的字符串:\n");
puts(string);
return 0;
}
void delStarButPrefix(char s[])
{
int i=0;
char *p = s;
while(*p && *p == ‘*‘)
{
p++;
i++;
}
while(*p)
{
if(*p != ‘*‘)
{
s[i] = *p;
i++;
}
p++;
}
s[i] = ‘\0‘;
}

#include <stdio.h>
void delMiddleStar(char []);
int main()
{
char string[80];
printf("输入一个字符串:\n");
gets(string);
printf("\n删除<中间和的*>之前的字符串:\n");
puts(string);
delMiddleStar(string);
printf("\n删除<中间的*>之后的字符串:\n");
puts(string);
return 0;
}
void delMiddleStar(char s[])
{
int i=0;
char *tail, *head, *p;
tail = s;
while(*tail)
tail++;
tail--;
while(*tail == ‘*‘)
tail--;
head = s;
while(*head == ‘*‘)
head++;
p = s;
while(p<=head)
{
s[i] = *p;
p++;
i++;
}
while(p<tail)
{
if(*p != ‘*‘)
{
s[i] = *p;
i++;
}
p++;
}
while(*p)
{
s[i] = *p;
i++;
p++;
}
s[i] = ‘\0‘;
}

原文:https://www.cnblogs.com/sj0904/p/10933545.html