首页 > 代码库 > 实验十一 C的指针

实验十一 C的指针

11.1

#include<stdio.h>

int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},i,*p,sum=0;

for(p=&a[0],i=0;i<10;i++,p++)
{
if(*p%2==0)
sum+=*p;
}

printf("%d\n",sum);

return 0;
}


11.2


#include<stdio.h>

int main()
{
int i=0,j=0,str=0;
char a[100],*p;
gets(a);

for(p=&a[0];*p!=‘\0‘;p++)
{
if((*p)>=65&&(*p)<=90)
i++;
else if((*p)>=97&&(*p)<=122)
j++;

str++;
}

printf("大写:%d\n小写:%d\n总数:%d\n其他:%d\n",i,j,str,str-i-j);

return 0;
}

11.3


#include<stdio.h>

int main()
{
char a[]="abcdefghijkl",*p;

for(p=&a[0];*p!=‘\0‘;p=p+2)
{
printf("%c",*p);
}

printf("\n");

return 0;
}

 

11.4

#include<stdio.h>

int main()
{
int a[15],*p,i;

for(p=&a[14],i=0;i<15;i++,p--)
scanf("%d",p);

for(p=&a[0],i=0;i<15;i++,p++)
printf("%d ",*p);

printf("\n");

return 0;
}

 

 

11.5


#include<stdio.h>

int main()
{
int a[10],*p,i;
double ave=0;

for(p=&a[9],i=0;i<10;i++,p--)
{
scanf("%d",p);
ave+=*p;
}
ave=ave/10.0;

for(p=&a[0],i=0;i<10;i++,p++)
{
if(ave<(*p))
printf("%d ",*p);
}

printf("\n");

return 0;
}

 

11.6


#include<stdio.h>

int main()
{
int a[4][5],*p,minij,maxij,sum=20,max,min;

for(p=&a[0][0];sum>0;sum--,p++)
scanf("%d",p);

p=&a[0][0];
max=min=a[0][0];

for(sum=1;sum<=20;sum++,p++)
{
if(max<*p)
{
max=*p;
maxij=sum;
}

if(min>*p)
{
min=*p;
minij=sum;
}
}

printf("max=%d,行下标为%d,列下标为%d\n",max,(maxij-1)/5,maxij-((maxij-1)/5)*5);
printf("min=%d,行下标为%d,列下标为%d\n",min,(minij-1)/5,minij-((minij-1)/5)*5);
}


11.7


#include<stdio.h>

int main()
{
double a[10],*p,ave=0;
int i,m,n;

for(p=&a[0],i=0;i<10;p++,i++)
scanf("%lf",p);

scanf("%d%d",&m,&n);

if(m+n>11)
{
for(p=&a[m-1],i=m;i<=10;i++,p++)
ave+=(*p);

ave=ave/(11.0-m);
}
else
{
for(p=&a[m-1],i=0;i<n;i++,p++)
ave+=*p;

ave=1.0*ave/n;
}

printf("%f\n",ave);

return 0;
}

实验十一 C的指针