‘壹’ C shape 是什么
不是C shape
是C#(C Sharp)是微软(Microsoft)为.NET Framework量身订做的程序语言,C#拥有C/C++的强大功能以及Visual Basic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。
http://ke..com/view/107979.htm?fr=ala0_1
‘贰’ 帮忙看一下哪里错了,c语言读shapefile文件,保存为链表的格式
首先,第24行这里有类型错误
if(fp=fopen("F: 421.shp线Line.shp","r")==NULL)
{
return;
}
应该改成
if((fp=fopen("F: 421.shp线Line.shp","r")) ==NULL)
{
return;
}
应该再改成(文件路径应该用\)
if((fp = fopen("F:\0421.shp\线\Line.shp","r")) == NULL )
{
return;
}
接着,第45行这里i未定义
for(i=0;i<NumLine;i++) //
{
if(i!=NumLine-1) //不是最后一个线段
number=part[i+1]-part[i];
else
number=NumPoint-part[i];
应该改成
for(int i=0;i<NumLine;i++) //
{
if(i!=NumLine-1) //不是最后一个线段
number=part[i+1]-part[i];
else
number=NumPoint-part[i];
然后,第54行这里p是指针,应该用箭号
for(int j=0;j<number;j++)
{
fread(p.xx,8,1,fp);
fread(p.yy,8,1,fp);
if(j=0)
{
p1=p;
head=p;
}
应该改成
for(int j=0;j<number;j++)
{
fread(&p->xx,8,1,fp);
fread(&p->yy,8,1,fp);
if(j=0)
{
p1=p;
head=p;
}
然后,第83行这里a2没定义(a2的定义是在for循环里面,此处在循环外)
}
k++;
}
a2->headnext=NULL;
}
应该把a2的定义移到for循环之前
所以总共有5处显而易见的语法错误,修改后的代码是
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
struct Point
{
double xx;
double yy;
struct Point *next;
struct Point *headnext;
};
struct Point *A;
double minx;
double miny;
double maxx;
double maxy;
int NumLine; //总线段数
int NumPoint; //总点数
int *part; //指向存放每线段起始位置 的地址 ,part[1]则表示第二条线段的起始位置所在的位置
void main()
{
FILE *fp;
if((fp = fopen("F:\0421.shp\线\Line.shp","r")) == NULL )
{
return;
}
fseek(fp,96L,0);
fread(&minx,8,1,fp);
fread(&miny,8,1,fp);
fread(&maxx,8,1,fp);
fread(&maxy,8,1,fp);
fread(&NumLine,4,1,fp);
fread(&NumPoint,4,1,fp);
for(int i=0;i<NumLine;i++)
{
fread(part+i,4,1,fp); //part+i指向的是存放每线段起始位置数据的地址
}
int number; //每段线段的点数
int k=0;
struct Point *a2;
for(int i=0;i<NumLine;i++) //
{
if(i!=NumLine-1) //不是最后一个线段
number=part[i+1]-part[i];
else
number=NumPoint-part[i];
struct Point *head;
struct Point *p;
struct Point *p1;
struct Point *p3;
struct Point *a1;
for(int j=0;j<number;j++)
{
fread(&p->xx,8,1,fp);
fread(&p->yy,8,1,fp);
if(j=0)
{
p1=p;
head=p;
}
else
{
p1->next=p;
p1=p;
p1->headnext=NULL;
}
p->next=NULL;
}
if(k=0)
{
A=head;
a2=head;
}
else
{
a1=head;
a2->headnext=a1;
a2=a1;
}
k++;
}
a2->headnext=NULL;
}
小力庭2013-4-24欢迎到我微博上切磋交流weibo.com/litingsoft
‘叁’ Cshape语言中用ref和不用ref的区别(希望从用法讲解,不要用堆栈解释,谢谢)
怎么可以这么不负责任的回答啊,用不用当然有很大的区别了。
ref是按引用传递,不写的话默认按值传递。如果你是初学,能按值传递就按值传递即可。
ref是将变量的引用的地址传递过去的,函数执行完后该内存地址中还保存有数据,而按值传递函数执行完了会自动释放,等待垃圾回收。
我也不是高手,是按我自己的理解描述的,仅供参考。
‘肆’ C语言打印菱形详细讲解
/*下面的程序是菱形打印的【终结者】,
改变下设置,就基本可以满足所有菱形打印的题目。
程序主体 for 语句只有9行,简单而强大
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 这个小函数用来输出 repeatTimes 个字符 c
void printChar(char c,int repeatTimes)
{
int i;
for(i=0;i<repeatTimes;i++)
printf("%c",c);
}
/*
特别的函数,获取当前要打印的下一个菱形图案
height : 菱形的高
shapeVariantStep : 变化的步数
baseShape : 菱形的基本图案
row : 当前打印的菱形图案的行坐标。
col : 当前打印的菱形图案的列坐标。
*/
char _buffer_[2]={0};
char* getShape(int height,int shapeVariantStep,char baseShape[],int row,int col)
{
int first = baseShape[0],last = first +(height-1)/2*shapeVariantStep;
if(shapeVariantStep==0 || strlen(baseShape)!=1)
return baseShape;
else
{
if( first>='0'&&first<='9'&&last<='9' ||
first>='a'&&first<='z'&&last<='z' ||
first>='A'&&first<='Z'&&last<='Z'
)
{
_buffer_[0] = first + ((height-2*abs(row)-1)/2 - abs(col))*shapeVariantStep;
_buffer_[1] = '\0';
return _buffer_;
}
else
{
return baseShape;
}
}
}
int main(int argc, char *argv[])
{
// 菱形的图案
char shape[]="*";
// 菱形图案间的空白图案
char space=' ';
// 每个图案之间的最小间隔(以一个字符为单位,不足用空白图案填充)
int interval=5;
// 菱形的高(要求是奇数)
int height=7;
// 菱形是否空心(只有边上的图案)。是:1,否 0
int isHollow=0;
/* 特别的参数:设定菱形的图案是变化。
只有指定 shape 为 :
"0","1",...,"9",
或者 "a","b",...,"z",
或者 "A","B",...,"Z" 其中之一,
并且要保证从指定图形开始,后面至少还有连续的:
(height-1)/2*shapevariantStep
个可选的图形,菱形的图形才会是可变的。
*/
int shapeVariantStep = 0;
int i,j,k,n;
interval = interval < strlen(shape)?strlen(shape):interval;
for(i=-(height-1)/2;i<=(height-1)/2;i++)
{
// 用来输出每行前的空白
printChar(space,abs(i)*interval);
// 这个 for(j) 语句用来输出每行的菱形图案
for(j=-(height-2*abs(i)-1)/2;j<=(height-2*abs(i)-1)/2;j++)
{
// 如果是非空心,输出所有图案;否则只输出两端的图案。
if(!isHollow || (isHollow && (j==0 || j==height-2*abs(i)-1)))
{
n=printf("%s",getShape(height,shapeVariantStep,shape,i,j));
// 补齐为到宽度为 interval
printChar(space,interval-n);
}
// 对于空心的菱形,在本应该输出图案的地方,输出空白。
else
{
printChar(space,interval);
}
}
// 这个 for(j) 语句用来输出每行后的空白
printChar(space,abs(i)*interval);
printf("\n");
}
return 0;
}
/*
运行结果:
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="**";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
**
** ** **
** ** ** ** **
** ** ** ** ** ** **
** ** ** ** **
** ** **
**
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=0;
shapevariantStep = 0
...............*...................
..........*....*....*..............
.....*....*....*....*....*.........
*....*....*....*....*....*....*....
.....*....*....*....*....*.........
..........*....*....*..............
...............*...................
shape[]="*";
space[]=" ";
interval=0;
height=7;
isHollow=0;
shapevariantStep = 0
*
***
*****
*******
*****
***
*
shape[]="*";
space[]=" ";
interval=5;
height=11;
isHollow=0;
shapevariantStep = 0
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
* * * * * * * * * * *
* * * * * * * * *
* * * * * * *
* * * * *
* * *
*
shape[]="*";
space[]=" ";
interval=5;
height=7;
isHollow=1;
shapevariantStep = 0
*
* *
* *
* *
* *
* *
*
shape[]="A";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
A
A B A
A B C B A
A B C D C B A
A B C D E D C B A
A B C D E F E D C B A
A B C D E F G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G H I H G F E D C B A
A B C D E F G H G F E D C B A
A B C D E F G F E D C B A
A B C D E F E D C B A
A B C D E D C B A
A B C D C B A
A B C B A
A B A
A
shape[]="a";
space[]=" ";
interval=5;
height=17;
isHollow=0;
shapevariantStep = 1
a
a b a
a b c b a
a b c d c b a
a b c d e d c b a
a b c d e f e d c b a
a b c d e f g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g h i h g f e d c b a
a b c d e f g h g f e d c b a
a b c d e f g f e d c b a
a b c d e f e d c b a
a b c d e d c b a
a b c d c b a
a b c b a
a b a
a
shape[]="1";
space[]=" ";
interval=5;
height=9;
isHollow=0;
shapevariantStep = 2
1
1 3 1
1 3 5 3 1
1 3 5 7 5 3 1
1 3 5 7 9 7 5 3 1
1 3 5 7 5 3 1
1 3 5 3 1
1 3 1
1
*/
‘伍’ int a,b,c,shape;什么意思
定义整型变量a,b,c,shape.在C语言中需要定义变量来使用.
‘陆’ C语言 定义两个函数,一个是info,一个是shape.然后拼成图形
不能用printf,那就用getchar。
先用函数把形状shape定好,A、B位置做变量,再用info放入字符。
‘柒’ 用c++编写程序,定义CShape类,其中包括两个纯虚函数,分别用于计算面积和周长,派生出两个派
#include<iostream>
usingnamespacestd;
classCShape
{
public:
CShape(void)
{
}
~CShape(void)
{
}
virtualvoidarea(void)=0;
virtualvoidcir(void)=0;
};
classCRectangle:publicCShape
{
public:
CRectangle(intxx=0,intyy=0)
{
x=xx;
y=yy;
}
voidarea()
{
cout<<x*y<<endl;
}
voidcir()
{
cout<<2*(x+y)<<endl;
}
private:
intx,y;
};
classCCircle:publicCShape
{
public:
CCircle(intrr=0)
{
r=rr;
}
voidarea()
{
cout<<2*3.14*r<<endl;
}
voidcir()
{
cout<<3.14*r*r<<endl;
}
private:
intr;
};
intmain()
{
CShape*a=newCRectangle(1,2);
a->area();
a->cir();
CShape*b=newCCircle(3);
b->area();
b->cir();
system("pause");
return0;
}
‘捌’ c语言中$符号的作用是什么
c语言允许以$符号作为变量名的开头,可以根据命名习惯不一样来加入,反正没有影响的,你只要把$符号当成空气就好了
例如:
float
$x,$y,$z;
$x=cos(particleShape1.particleld+time);
$z=sin(particleShape1.particleld+time);
$y=particleShape1.particleld;
‘玖’ Diamond shape C语言
老师的意思是 让你做或了 你这样只能打出上面的样子的
如果再打一点 你是不是又要重新写死个。。
‘拾’ c语言如何编程求圆体积和表面积
/*定义浮点型变量*/float r,h,v;/*提示用户输入变量*/printf("请输入圆柱体的半径和高:")
/*输入两个变量*/scanf("%f%f",&r,&h)
/*计算体积*/v=3.14*r*r*h;/*输出体积值*/printf"圆柱体的体积为%f",float r,h,s,v
printf("please in put r and h:");scanf("%f%f",&r,&h);v=f1( r, h);s=f2( r, h);printf("%f,%f",s,v)
(10)c语言shape扩展阅读
c语言具体内容:
for循环结构是c语言中最具有特色的循环语句,使用最为灵活方便,它的一般形式为:for(表达式1;表达式2;表达式3)循环体语句 。(其中;不能省略)
表达式1为初值表达式,用于在循环开始前为循环变量赋初值。表达式2是循环控制逻辑表达式,它控制循环执行的条件,决定循环的次数。
表达式3为循环控制变量修改表达式,它使for循环趋向结束。循环体语句是在循环控制条件成立的情况下被反复执行的语句。
但是在整个for循环过程中,表达式1只计算一次,表达式2和表达式3则可能计算多次,也可能一次也不计算。循环体可能多次执行,也可能一次都不执行。
先执行表达式2,然后执行循环结构,最后表达式3,一直这样循环下去。for循环语句是c语言种功能最为强大的语句,甚至在一定程度上可以代替其他的循环语句。
do循环结构,do 1 while⑵;的执行顺序是1->2->1...循环,2为循环条件。while循环结构,while(1) 2; 的执行顺序是1->2->1...循环,1为循环条件
以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。