//《C程序设计》 上机实验指导 P45
//二、1.编写程序:完成函数void my_power(double x,int y,double
*mypow)的定义,该函数的功能是:求x^y存入指针变量mypow所指向的存贮单元中,并编写主程序,验证my_power()的有效性。
#include
#include
void my_power(double x, int y,double *mypow)
{
int i;
double z=1.0;
if(y>0)
{
for(i=1;i<=y;i++)
z*=x;
}
else if(y==0)
z=1.0;
else
{
for(i=1;i<=(-y);i++)
z*=1.0/x;
}
*mypow=z;
return;
}
main()
{
double x,mypow;
int y;
printf("请输入底数x和幂y的值:\n");
scanf("%lf%d",&x,&y);
my_power(x,y,&mypow);
printf("\n\n (%.3f)^(%d)=%.3f
\n\n\n",x,y,mypow);
}
//二、2.编写程序:完成函数int absmin(int *a,int
n)的定义,它能实现求指针a所指向的前n个整数中绝对值最小的数,并将它返回给主调函数;并编写程序,验证absmin()的有效性。
#include
#include
#define N 3
int absmin(int *a,int n)
{
int absm=(int)fabs(a[0]),i,im=0;
for(i=0;i
{
if(absm>fabs(a[i]))
{
absm=(int)fabs(a[i]);
im=i; }
}
return im;
}
main()
{
int a[N],n,i,im;
printf("请输入整数个数n(<=%d):\n",N);
scanf("%d",&n);
printf("请输入%d个整数:\n",N);
for(i=0;i
scanf("%d",a+i);
im=absmin(a,n);
printf("数组a前%d个整数最小值为:%d
\n\n\n",n,a[im]);
}
//二、3.编写程序:从键盘任意输入一个字符串,输出该字符串。然后,将该字符串逆序存放后再输出,要求用字符指针完成。
#include
#include
#define N 50
void invstr(char *s)
{
int i,j,L,m;
char c;
L=strlen(s);
m=(L-1)/2;
for(i=0,j=L-1;i<=m;i++,j--)
{
c=*(s+i);
*(s+i)=*(s+j);
*(s+j)=c;
}
}
main()
{
char s[N];
printf("请任意输入一个字符串(长度
gets(s);
puts(s);
invstr(s);
printf("\n请输出该字符串逆序后的结果:\n");
puts(s);
printf("\n\n\n");
}