c语言 坐标系的转化 数组元素顺序的变换

1.编写程序,将直角坐标值转化为极坐标。极坐标的公式是:
                 c= sqrt(x*x+y*y),     q=arctan(y/x)
函数f的定义为:void fun(double x,double y,double *c,double *q),其中x, y为输入的直角坐标,指针c, q用于返回计算得到的极坐标值。
主程序读入x, y,输出c, q,其中c,q保留小数点后面两位。
#include
#include
#include
void fun (double ,double ,double *,double *);
int main ()
{
 double m,n;
 double *x=&m,*y=&n;
 scanf("%lf%lf",x,y);
 fun(*x,*y,x,y);
 printf("%.2f %.2f",*x,*y);
 return 0;
}
void fun (double x,double y,double *c,double *q)
{
 if (x!=0){
 *c=sqrt(x*x+y*y);
 *q=atan(y/x);}
 if(x==0&&y!=0)
 {
  *c=y;
  *q=1.57;
 }
 if(x==0&&y==0){
  *c=0;
  *q=0;}
}


2.键盘上输入一组数的个数n(小于10个)以及这n个数,最大的与第一个元素交换,最小的与最后一个元 素交换,并输出交换后的数组。

#include 
int main()
{
    int*pmax,*pmin;
    int data[10],temp,i,n;
    scanf("%d",&n);;
    for(i=0;i=temp){
				temp=data[i];
			u=i;}
	}
	printf("max=%d\n",temp);
	temp=data[0];int t;
	for(i=0;i


3.设有一数列,包含10 个数,已按升序排好。现要求编一程序,它能够把从指定位置m开始的n个数按逆序重新排列并输出新的完整数列。
进行逆序处理时要求使用指针方法(例如:原数列为2,4,6,8,10,12,14,16,18,20,m=4, n=5,即要求把从第4个数开始的5个数按逆序重新排列,则得到新数列为2,4,6,16,14,12,10,8,18,20。)

#include 
void  method(int m,int n,int *a);
int main()
{
    int a[10];
    int i, m, n;
    for ( i=0; i<10; i++ )
    scanf("%d", &a[i] );    
	scanf( "%d%d", &m, &n );
    method(m,n,a);
    for( i=0;i<10;i++ )
    printf( "%d ", a[i] );
}
void  method(int m,int n,int *a)
{
	int temp;int i,b;
	for( i=m-1, b=m+n-2;i<=b;++i,--b){
		temp=a[i];
		a[i]=a[b];
		a[b]=temp;}
}
	


你可能感兴趣的:(C语言编程,C语言编程,c语言,函数)