❶ 用c语言编程:从键盘输入N,输出一个由*组成的边长为n的正六边形,我要空心和实心的两个,编2个程序。谢!
#include <stdio.h>
void print(int space, int num, int type)
{
while (space--) putchar(' ');
if (type)
{
while (num--) putchar('*');
putchar('\n');
}
else
{
putchar('*');
num = (num > 2)? num - 2: 0;
while (num--) putchar(' ');
putchar('*');
putchar('\n');
}
}
void solid(int n) //空心
{
int i;
for (i = 0; i < 2 * n - 1; i++)
print(abs(n - i - 1), 3 * n - 2 - 2 * abs(n - i - 1), 1);
}
void hollow(int n) //实心
{
int i;
print(n - 1, n, 1);
for (i = 1; i < 2 * n - 2; i++)
print(abs(n - i - 1), 3 * n - 2 - 2 * abs(n - i - 1), 0);
print(n - 1, n, 1);
}
int main()
{
hollow(4);
return 0;
}
❷ c语言编程 输入两个数字n(n的取值范围为[3,6])和m 在屏幕上输出一个正n边形 其中m为正n边形的边长。
请问这段是什么意思呀? 谢谢
if(p)
{
p--;
num[x - p - 1] = m;
for(i = m + 1; i < n; i++)
{
print(n, i, p, x);
num[x - p -1] = i;
}
}
❸ c语言,输入一个正整数n,输出一个以n为边长的菱形,要初学者能看懂的。谢
#include<stdio.h>
#include<stdlib.h>
intmain()
{
inti,j,n;
scanf("%d",&n);
for(i=0;i<2*n-1;i++)
{
if(i<n)
{
for(j=0;j<=n-i-2;j++)
{
printf("");
}
for(j=0;j<=2*i;j++)
{
printf("*");
}
}
else
{
for(j=0;j<i-n+1;j++)
{
printf("");
}
for(j=0;j<=4*n-2*i-4;j++)
{
printf("*");
}
}
printf(" ");
}
return0;
}
❹ 有n条边让你选3条边凑成一个三角形,问有多少种可能 (C语言)
#include<stdio.h>
intmain()
{
intbian[10000];
printf("Pleaseinputthebianshu. ");
intn,i;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&bian[i]);
}
intj,k,answer=0;
for(i=0;i<n-2;i++)
for(j=i+1;j<n-1;j++)
for(k=j+1;k<n;k++)
if(bian[i]+bian[j]>bian[k])answer++;
printf("Theansweris%d. ",answer);
return0;
}
枚举每一种可能性就好了,不排除输入时有重复的数据.望采纳.
❺ 速求 c语言编程 给定n个点的坐标,这n个点依次围成一闭合多边形,再给一点(x,y),判断它是否在多边形中
程序代码如下(直接套用函数pnpoly):
int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy)
{
int i, j, c = 0;
for (i = 0, j = nvert-1; i < nvert; j = i++) {
if ( ((verty[i]>testy) != (verty[j]>testy)) &&
(testx < (vertx[j]-vertx[i]) * (testy-verty[i]) / (verty[j]-verty[i]) + vertx[i]) )
c = !c;
}
return c;
}
参数说明:
nvert: 多边形的顶点数
vertx, verty: 顶点X坐标和Y坐标分别组成的数组
testx, testy: 需要测试的点的X坐标和Y坐标
(5)算法n边形c语言扩展阅读:
判定一个点是否在多边形内部最简单的方法是使用射线法,因为它能适用于所有类型的多边形,不用考虑特殊的情况而且速度也比较快。
该算法的思想很简单:在多边形外面任意一点画一条虚拟的射线到p(x,y)然后计算该射线与多边形上的边相交的次数。如果该次数是偶数,说明p(x,y)在多边形外,如果是奇数,则在多边形内。
❻ C语言编程:“编写程序,求半径为r的圆的内接正n边形的面积.r和n由用户输入.”怎么做啊求解。。。。
#include<stdio.h>
#include<math.h>
#define PI 3.1415926
void main()
{
double s, r; //s表示面积,r表示半径
int n; //n表示正n边形的边数
printf("请输入圆的半径r:");
scanf("%lf",&r);
printf("请输入正n边形的边数n:");
scanf("%d",&n);
s = n * r * r * sin(2 * PI / n) / 2;
printf("圆的内接正%d边形的面积是%lf\n",n,s);
}
ps:这个是比较简单点的了,执行一次就自动退出程序了。。。没有加循环执行,而且对输入的数据类型,范围没有进行判断,所以要尽量减少输入的错误。。楼主也可以自己加上,不是很难的。。
❼ C语言编程题 用内接正N边形法求PI的值(取6位有效数字)谢谢
悬赏分太少了,呵呵,我的一道VB的程序悬110分都没有人做,你这才10分,还是比VB难的C语言....
❽ c语言问题:如何编写一个程序,输入一个正整数N,在屏幕上用‘*’打印以N为边长的正六边形。
a ?
正六边形 你们老师学过数学么?
你可以告诉他 在数学上实现不了这个算法,因为会出现非整数无法在屏幕上实现。
支持楼上的说法,但有一点需要修正,控制台如果用星号的话应该大于45度 因为字符的纵横比不是正方形的,但是绝对到不了120度
我只能做一个类似六边形。不是很正的
#include "stdafx.h"
#include "math.h"
main()
{
int n,cont,cont2,conts;
scanf("%d",&n);
for(cont = 1;cont < 2*n ; cont++)
{
for(cont2=1;cont2<= abs(n-cont);cont2++)
putchar(' ');
for(cont2=1;cont2< 2*n-abs(n-cont);cont2++)
{
printf("* ");
}
putchar('\n');
}
getchar();getchar()
}
❾ 用C语言编写:输入半径R,求圆的面积和内接正n边形的面积
对于单位圆的内接正n边形,将它们每一个顶点和圆心相连,那么就将该n边形分成了n个面积相同的等腰三角形,每个三角形的顶角就为(360/n)度,那么
每个三角形的面积 = (1/2)R*R*sin(360/n)
所以:
内接正n边形总面积 = (n/2)(R^2)sin(360/n)
❿ 初学C语言,输出N形图形,求解~~~
#include<stdio.h>
void main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i==1||i==n)
for(j=1;j<=n;j++)
{
if(j==1||j==n)
printf("*");
else printf(" ");
}
//printf("\n");去掉
if(i>1&&i<n)
for(j=1;j<=n;j++)
{
if(i==j||j==1||j==n)
printf("*");
else printf(" ");
}
printf("\n");
}
}