//第一题:这个绝对简单,便捷。界面良好 ---打印菱形
#include<stdio.h>
int main()
{
int i,j,n;
printf("请输入菱形高:n = ");
while( scanf("%d",&n) && n>0 )
{
printf("\n");
puts("--------------------------------------------------------------------------------");
for( i = 0 ; i< n ; i++ )
{
for(j=0;j < n-i ; j++ )
printf(" ");
for(j=0;j < (i<<1)+1 ; j++ )
printf("*");
printf("\n");
}
for( i = n-2 ; i>=0 ; i-- )
{
for(j=0;j < n-i ; j++ )
printf(" ");
for(j=0;j < (i<<1)+1 ; j++ )
printf("*");
printf("\n");
}
puts("--------------------------------------------------------------------------------");
printf("请输入菱形高:n = ");
}
return 0;
}
/*
请输入菱形高:n = 8
------------------------
*
***
*****
*******
*********
***********
*************
***************
*************
***********
*********
*******
*****
***
*
------------------------
*/
/*第二题:输入n个点的平面坐标,程序将这些点按照距离原点从近到远的顺序进行排序并输出。(n>=6)。*/
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define MAXN 200
typedef struct PO
{
double x;
double y;
double z;
} POINT;
POINT a[MAXN];
POINT * p[MAXN];
int cmp( const void * a, const void * b )
{
if( ((POINT*)a)->z > ((POINT*)b)->z )
return 1;
else
return -1;
}
void Init()
{
int i;
for( i = 0 ; i < MAXN ; i++ )
{
p[i] = &a[i];
}
}
int main()
{
int n,i,j,k;
while(1)
{
Init();
printf("\n有几个点? n=");
scanf("%d",&n);
if(n<=0) continue;
for(i=0;i<n;i++)
{
printf("请输入第 %d 个点的 x 和 y 坐标: ",i+1);
scanf("%lf%lf",&a[i].x,&a[i].y);
a[i].z = sqrt(a[i].x*a[i].x + a[i].y * a[i].y);
}
qsort(a,n,sizeof(POINT),cmp);
printf("到原点距离排序后输出:\n");
for(i=0;i<n;i++)
{
printf("( %lf , %lf ) = %lf\n",p[i]->x,p[i]->y,p[i]->z);
}
}
return 0;
}
/*
有几个点? n=6
请输入第 1 个点的 x 和 y 坐标: 1 9
请输入第 2 个点的 x 和 y 坐标: 8 77
请输入第 3 个点的 x 和 y 坐标: 0 0
请输入第 4 个点的 x 和 y 坐标: 37 3
请输入第 5 个点的 x 和 y 坐标: 89 102
请输入第 6 个点的 x 和 y 坐标: 34 23
到原点距离排序后输出:
( 0.000000 , 0.000000 ) = 0.000000
( 1.000000 , 9.000000 ) = 9.055385
( 37.000000 , 3.000000 ) = 37.121422
( 34.000000 , 23.000000 ) = 41.048752
( 8.000000 , 77.000000 ) = 77.414469
( 89.000000 , 102.000000 ) = 135.369864
*/
///////哥们。赶紧加分呀。。通宵给你做出来了。。。。。
//又不明白的加我 695033480 。 我负责到底!!!
追问哥们,谢了,以后又问题我还问你啊,别不告诉我啊!