當前位置:首頁 » 編程語言 » c語言shape
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言shape

發布時間: 2022-02-02 08:44:37

『壹』 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為循環條件

以上循環語句,當循環條件表達式為真則繼續循環,為假則跳出循環。