//task1
#include <stdio.h>
#define N 5
void output(int x[], int n);
int main()
{
int x[] = {9, 55, 30, 27, 22};
int i;
int k;
int t;
printf("original array:\n");
output(x,N);
k = 0;
for(i=1;i<N;++i)
if(x[i]>x[k])
k = i;
if(k != N-1);
{
t = x[N-1];
x[N-1] = x[k];
x[k] = t;
}
printf("after swapped:\n");
output(x,N);
return 0;
}
void output(int x[], int n)
{
int i;
for(i = 0;i<n;++i)
printf("%d",x[i]);
printf("\n");
}
![]()
//task1.2
#include <stdio.h>
#define N 5
void output(int x[], int n);
int main()
{
int x[] = {9, 55, 30, 27, 22};
int i;
int t;
printf("original array:\n");
output(x,N);
for(i=0;i<N-1;++i)
if(x[i]>x[i+1])
{
t = x[i];
x[i] = x[i+1];
x[i+1] = t;
}
printf("after swapped:\n");
output(x,N);
return 0;
}
void output(int x[], int n)
{
int i;
for(i = 0;i<n;++i)
printf("%d",x[i]);
printf("\n");
}
![]()
//task 2
#include <stdio.h>
#define N 5
int binarysearch(int x[], int n, int item);
int main()
{
int a[N] = {2,7,19,45,66};
int i, index, key;
printf("数组a中的数据:\n");
for (i = 0;i < N; i++)
printf("%d",a[i]);
printf("\n");
printf("输入待查找的数据项:");
scanf("%d",&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(x[mid]==item)
return mid;
else if(x[mid]>item)
high = mid - 1;
else
low = mid + 1;
}
return -1;
}
![]()
![]()
![]()
//task 3
#include<stdio.h>
#define N 5
void selectsort(int a[],int n);
void input(int a[],int n);
void output(int a[],int n);
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;//k用于记录当前最小元素的下标
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;
}
}
}
![]()
//task 4
#include <stdio.h>
#include<string.h>
#define N 5
void selectsort(char str[][20],int n);
int main()
{
char name[][20] = {"Bob","Bill","Joseph","Taylor","George"};
int i;
printf("输入初始名单:\n");
for(i = 0;i<N;i++)
printf("%s\n",name[i]);
selectsort(name,N);
printf("按字典序输出名单:\n");
for(i = 0;i<N;i++)
printf("%s\n",name[i]);
return 0;
}
void selectsort(char str[][20], int n)
{
int i, j;
char temp[20];
for(i = 0;i<n - 1;i++)
{
for(j = i+1;j<n;j++)
{
if(strcmp(str[j],str[i])<0)
{
strcpy(temp,str[j]);
strcpy(str[j],str[i]);
strcpy(str[i],temp);
}
}
}
}
![]()
//task 5
#include<stdio.h>
int main()
{
int n;
int *pn;
n = 42;
pn =&n;
printf("&n = %#x, n = %d\n", &n, n);
printf("&pn = %#x,pn = %#x\n",&pn,pn);
printf("*pn = %d\n",*pn);
return 0;
}
![]()
//task 6
#include <stdio.h>
#define N 5
int main()
{
int a[N] = {1,9,2,0,7};
int i;
int *p;
for(i = 0;i<N;i++)
printf("&a[%d] = %#x, a[&d] = %d\n",i,&a[i],i,a[i]);
printf("\n");
for(i = 0; i<N;i++)
printf("a+%d = %#x, *(a+%d) = %d\n",i,a+i,i,*(a+i));
printf("\n");
p = a;
for(i = 0;i<N;++i)
printf("p+%d = %#x, *(p+%d) = %d\n",i,p+i,i,*(p+i));
return 0;
}
![]()