今天对已学习过的指针进行练习,难点要尽快克服,熟练掌握。
作业1
#include<stdio.h>
int fun(int a);
int main()
{
int a;
scanf("%d",&a);
printf("%d",fun(a));
}
int fun(int a)
{
int i;
int m=0;
int d=1;
int b=a,c;
int sum=0;
while(b!=0)
{
m++;
c=b%10;
for(i=1;i<m;i++)
{
d*=8;
}
sum+=c*d;
d=1;
b=b/10;
}
return sum;
}
作业2
#include<stdio.h>
void scan(int *p);
void prin(int *p);
void change(int *p);
int main()
{
int a[10]={0};
scan(a);
change(a);
prin(a);
}
void scan(int *p)
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",(p+i));
}
}
void prin(int *p)
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",*(p+i));
}
}
void change(int *p)
{
int i;
int max=*p;
int temp;
for(i=1;i<10;i++)
{
if(*(p+i)>max)
{
max=*(p+i);
}
}
for(i=0;i<10;i++)
{
if(max==*(p+i))
{
temp=*(p+i);
*(p+i)=*(p+9);
*(p+9)=temp;
}
}
int min=*p;
for(i=1;i<10;i++)
{
if(*(p+i)<min)
{
min=*(p+i);
}
}
for(i=0;i<10;i++)
{
if(min==*(p+i))
{
temp=*(p+i);
*(p+i)=*p;
*p=temp;
}
}
}
作业3
#include<stdio.h>
int digit(int n,int k);
int main()
{
int n,k;
scanf("%d%d",&n,&k);
printf("%d",digit(n,k));
}
int digit(int n,int k)
{
int m;
while(k>0)
{
m=n%10;
n=n/10;
k--;
}
return m;
}
作业4
#include<stdio.h>
int wei(int a);
int change(int a,int b);
int main()
{
int a,b;
scanf("%d",&a);
b=wei(a);
printf("该数字是:%d位数\n",b);
printf("调换后的数字是:%d\n",change(a,b));
}
int wei(int a)
{
int m=0;
while(a!=0)
{
m++;
a=a/10;
}
return m;
}
int change(int a,int b)
{
int sum=0;
int n=1;
int i;
while(b!=0)
{
for(i=1;i<b;i++)
{
n*=10;
}
sum+=a%10*n;
a=a/10;
b--;
n=1;
}
return sum;
}