实验四 指针
实验四 指针
#include<stdio.h>
#include<string.h>
int my_strlen(char str[]);
int my_strcmp(char str1[],char str2[]);
void swap(int *p1,int *p2) ;
void sortnum(int *a,int n);
void sortstr(char s[][30],int n);
void zhuanzhi(int a[][4]) ;
double f(double x);
double dingjifen(double a,double b);
int main()
{
int i,j,n;
int q[10]={5,6,4,2,1,3,9,8,7,22};
// sortnum(q,10);
char s[][30]={
{"beijing"},
{"shenzhen"},
{"nanjing"},
{"dalian"},
{"shanghai"},
{"qingdao"} };
// sortstr(s,6);
int a[4][4]={
{1,2,3,4},
{5,6,7,8},
{9,10,11,12},
{13,14,15,16} } ;
zhuanzhi(a);n=4;
// for(i=0;i<n;i++)
// {for(j=0;j<n;j++)
printf("%lf",dingjifen(1,2));
// printf("\n");}
// printf("%d %d\n",my_strlen(str),strlen(str));
// printf("%d\n",my_strcmp(str,"abcd"));
return 0;
}
void swap(int *p1,int *p2) //交换a,b的值
{
int t;
t=*p1;
*p1=*p2;
*p2=t;
}
int my_strlen(char str[]) //求字符串长度
{
int i=0;
while(str[i]!='\0')
{
i++;
}
return i;
}
int my_strcmp(char str1[],char str2[]) //字符串的比较
{
int n=0;
while(str1[n]==str2[n]&&str1[n]!='\0'&&str2[n]!='\0')n++;
if(str1[n]>str2[n]) return 1;
else if(str1[n]<str2[n]) return -1;
else return 0;
}
void sortnum(int *a,int n) //将n个整数排序输出(冒泡法)
{
int i,j,t;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(*(a+j)>*(a+j+1)){
t=*(a+j);
*(a+j)=*(a+j+1);
*(a+j+1)=t;
}
}
for(i=0;i<n;i++)printf("%d ",*(a+i));
printf("\n");
}
void sortstr(char s[][30],int n) //字符串降序排列
{
char t[30];
int i,j;
for(i=0;i<n-1;i++)
for(j=0;j<n-1-i;j++)
{
if(strcmp(s[j],s[j+1])<0){
strcpy(t,s[j]);
strcpy(s[j],s[j+1]);
strcpy(s[j+1],t);
}
}
for(i=0;i<n;i++)
printf("%s\n",s[i]);
}
void zhuanzhi(int a[][4])
{
int i,j,t;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
if(i>j){
t=a[j][i];
a[j][i]=a[i][j];
a[i][j]=t;
}
}
}
}
double dingjifen(double a,double b) //定积分的计算
{
double totle=0.,i,dx=0.1;
for(i=a;i<=b;i=i+dx)
{
totle=totle+f(i)*dx;
}
return totle;
}
double f(double x)
{
return x*x;
}

浙公网安备 33010602011771号