C语言高手帮忙啊!

C\u8bed\u8a00\u9ad8\u624b\u5e2e\u5e2e\u5fd9\u554a\uff01

void \u5b66\u751f\u4fe1\u606f\u5904\u7406(\u5b66\u751f\u4fe1\u606f\u7c7b \u73ed\u7ea7\u4fe1\u606f[], int \u4eba\u6570)
{
float \u5e73\u5747\u5206\u6570(0.0);
for (int a = 0; a < \u4eba\u6570; a++)
\u5e73\u5747\u5206\u6570 += \u73ed\u7ea7\u4fe1\u606f[a].\u6210\u7ee9;
cout << \u5e73\u5747\u5206\u6570 / \u4eba\u6570 << endl;
for (int a = 0; a < \u4eba\u6570;a++)
if (\u73ed\u7ea7\u4fe1\u606f[a].\u6210\u7ee9 < 60)
cout << \u73ed\u7ea7\u4fe1\u606f[a].\u59d3\u540d << endl;
};
-----------
cout << "\u8bf7\u8f93\u5165\u7edf\u8ba1\u4eba\u6570:";
int \u6210\u7ee9, \u5b66\u53f7, \u4eba\u6570, \u8ba1\u6570(0); string \u59d3\u540d;
cin >> \u4eba\u6570;
\u5b66\u751f\u4fe1\u606f\u7c7b \u73ed\u7ea7\u4fe1\u606f[100];
cout << "\u8bf7\u8f93\u5165\u5b66\u751f\u4fe1\u606f:" << endl;

do
{
cin >> \u5b66\u53f7 >> \u59d3\u540d >> \u6210\u7ee9;
\u73ed\u7ea7\u4fe1\u606f[\u8ba1\u6570] = { \u5b66\u53f7, \u59d3\u540d, \u6210\u7ee9 };
\u8ba1\u6570++;
} while (\u4eba\u6570 > \u8ba1\u6570);

\u5b66\u751f\u4fe1\u606f\u5904\u7406(\u73ed\u7ea7\u4fe1\u606f, \u4eba\u6570);

#include
void main(){
void eliminate(int n, int k);
int total, num;
printf("\u8bf7\u8f93\u5165\u603b\u4eba\u6570\uff1a\n");
scanf("%d",&total);
printf("\u8bf7\u8f93\u5165\u6dd8\u6c70\u53f7k\uff1a\n");
scanf("%d",&num);
eliminate(total,num);
}
void eliminate(int n, int k){
int *arr, size=n, count=-1;
arr=new int[n];
for(int i=0; i<n; i++){
arr[i]=i+1;//\u8fd9\u91cc\u53ef\u4ee5\u7528\u8f93\u5165\u8bed\u53e5scanf("%d",&a[i]);\u6765\u624b\u52a8\u8f93\u5165\u6bcf\u4e2a\u53c2\u4e0e\u8005\u7684\u7f16\u53f7
}
while(size>1){
for(int i=0;i<k;i++){
count++;
if(count==size)
count=0;
}
size--;
printf("\u7b2c %d \u4e2a\u6dd8\u6c70\u8005\u662f %d \u53f7\n",n-size,arr[count]);
if(count!=size)
for(int i=count;i<=size;i++)
arr[i]=arr[i+1];
else
count=0;
}
printf("\u5e78\u5b58\u8005\u662f %d \u53f7\n",arr[0]);
}

/*平移*/
#include <stdio.h>
#include <math.h>

struct point
{
float x;
float y;
};

get_point(struct point *p)
{
float a,b;
scanf("%f,%f",&a,&b);
p->x=a;
p->y=b;
return 0;
}

put_point(struct point a)
{
printf("%f,%f\n",a.x,a.y);
return 0;
}

struct point add(struct point a,struct point b)
{
struct point c;
c.x=a.x+b.x;
c.y=a.y+b.y;
return c;
}

struct point sub(struct point a,struct point b)
{
struct point c;
c.x=a.x-b.x;
c.y=a.y-b.y;
return c;
}

float triangle(struct point A, struct point B, struct point C)
{
float a,b,c,p,area;
struct point d,e,f;
d=sub(A,B);
e=sub(A,C);
f=sub(B,C);

c=sqrt(d.x*d.x+d.y*d.y);
b=sqrt(e.x*e.x+e.y*e.y);
a=sqrt(f.x*f.x+f.y*f.y);

p=(a+b+c)/2;
area=sqrt(p*(p-a)*(p-b)*(p-c));
return area;
}

main()
{
struct point a,b,c,n;
printf("Please input a point:");
get_point(&a);
printf("The Point you input is: ");
put_point(a);

printf("Please input 3 points of triangle :");
get_point(&a);
get_point(&b);
get_point(&c);

printf("The area of triangle is:%f\n",triangle(a,b,c));
printf("输入平移向量坐标:");
get_point(&n);
a=add(a,n);
b=add(b,n);
c=add(c,n);
printf("平移后三角形面积为:%f",triangle(a,b,c));
}

/*旋转*/
#include
#include

#define DIM 4
#define N 1
#define NUM 3
#define PI 3.1415926

typedef struct POINT
{
int x,y,z;
}POINT;

void trans(double matrix[DIM][DIM], double x, double y, double z) //矩阵平移
{
for(int i=0;i {
for(int j=0;j {
if(i==j) matrix[i][j]=1;
else matrix[i][j]=0;
}
}
matrix[0][3]=x;
matrix[1][3]=y;
matrix[2][3]=z;
return;
}
void t(double matrix[][DIM],double matrix1[][DIM]) //矩阵的转置
{
for(int i=0;i {
for(int j=0;j {
matrix[i][j]=matrix1[j][i];
}
}
return;
}
void rotate(double matrix[][DIM],int angle) //矩阵绕 z 坐标轴旋转
{
int n=360;
for(int i=0;i {
for(int j=0;j {
if(i==j) matrix[i][j]=1;
else matrix[i][j]=0;
}
}

matrix[0][0]=cos(2*PI/n*angle);
matrix[1][1]=matrix[0][0];
matrix[0][1]=-sin(2*PI/n*angle);
matrix[1][0]=-matrix[0][1];
return;
}
void new_or(double matrix[][DIM],int px1,int py1,int pz1,int px2,int py2,int pz2) //根据旋转向量,建立坐标系
{
for(int i=0;i {
for(int j=0;j {
if(i==j) matrix[i][j]=1;
else matrix[i][j]=0;
}
}
double px,py,pz,mo,mo1;
px=px2-px1;
py=py2-py1;
pz=pz2-pz1;
mo=sqrt(px*px+py*py+pz*pz);
matrix[2][0]=px/mo;
matrix[2][1]=py/mo;
matrix[2][2]=pz/mo;
mo1=sqrt(px*px+py*py);
matrix[0][0]=-py/mo1;
matrix[0][1]=px/mo1;
matrix[0][2]=0;
matrix[1][0]=matrix[2][1]*matrix[0][2]-matrix[2][2]*matrix[0][1];
matrix[1][1]=matrix[2][2]*matrix[0][0]-matrix[0][2]*matrix[2][0];
matrix[1][2]=matrix[2][0]*matrix[0][1]-matrix[0][0]*matrix[2][1];
return;

}

void phalanx_mul(double matrix[][DIM],double matrix1[][DIM],double matrix2[][DIM])//方阵乘法4*4 * 4*4
{
double mul[DIM][DIM];
for(int i=0;i {
for(int j=0;j {
mul[i][j]=0;
for(int k=0;k {
mul[i][j]+=matrix1[i][k]*matrix2[k][j];
}
}
}
for(i=0;i {
for(int j=0;j {
matrix[i][j]=mul[i][j];
}
}
}
void matrix_mul(double matrix[DIM][N],double matrix1[DIM][DIM],double matrix2[DIM][N])//矩阵乘法4*4 * 4*1
{
for(int i=0;i {
for(int j=0;j {
matrix[i][j]=0;
for(int k=0;k {
matrix[i][j]+=matrix1[i][k]*matrix2[k][j];
}
}
}
return;
}
void main()
{
POINT startp,endp,pt[NUM];
int angle;
double trans1[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}},
trans2[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}},
matrix[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}},
rotate1[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}},
matrix1[DIM][N]={0},point[DIM][N]={0},
t1[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}},
result[DIM][DIM]={{1,0,0,0},{0,1,0,0},{0,0,1,0},{0,0,0,1}};
printf("请输入 %d 个点代表三角形的三个顶点:\n",NUM);//构建三角形的三个顶点
for(int i=0;i {
printf("pt[%d].x:\t",i);
scanf("%d",&pt[i].x );
printf("pt[%d].y:\t",i);
scanf("%d",&pt[i].y );
printf("pt[%d].z:\t",i);
scanf("%d",&pt[i].z );
}
printf("输入旋转轴向量的起始坐标和终止坐标:\n"); //构建旋转轴坐标
printf("startp.x:\t");
scanf("%d",&startp.x );
printf("startp.y:\t");
scanf("%d",&startp.y );
printf("startp.z:\t");
scanf("%d",&startp.z );
printf("endp.x:\t\t");
scanf("%d",&endp.x );
printf("endp.y:\t\t");
scanf("%d",&endp.y );
printf("endp.z:\t\t");
scanf("%d",&endp.z );
printf("\n输入旋转的角度:\n"); //旋转角度
scanf("%d",&angle);
if(startp.x !=0 && startp.y !=0 && startp.z !=0) //假如向量起始坐标非零
{
trans(trans1, -startp.x, -startp.y, -startp.z);
trans(trans2, startp.x, startp.y, startp.z);
}
printf("\n平移矩阵的逆\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",trans1[i][j]);
}
printf("\n");
}
printf("\n平移矩阵\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",trans2[i][j]);
}
printf("\n");
}

new_or(matrix,startp.x ,startp.y ,startp.z ,endp.x ,endp.y ,endp.z );
printf("\n构建新坐标系A\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",matrix[i][j]);
}
printf("\n");
}

t(t1,matrix);
printf("\n求新坐标系A的转置(逆)\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",t1[i][j]);
}
printf("\n");
}

rotate(rotate1,angle);
printf("\n旋转矩阵\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",rotate1[i][j]);
}
printf("\n");
}

phalanx_mul(result,trans2,t1);
printf("\n平移的逆 * A的转置\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",result[i][j]);
}
printf("\n");
}

phalanx_mul(result,result,rotate1);
printf("\n平移的逆 * A的转置 * 旋转矩阵R\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",result[i][j]);
}
printf("\n");
}

phalanx_mul(result,result,matrix);
printf("\n平移的逆 * A的转置 * 旋转矩阵R * A\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",result[i][j]);
}
printf("\n");
}

phalanx_mul(result,result,trans1);
printf("\n平移的逆 * A的转置 * 旋转矩阵R * A * 平移\n");
for(i=0;i {
for(int j=0;j {
printf("%f\t",result[i][j]);
}
printf("\n");
}
for(int k=0;k {
printf("\n旋转后点%d的坐标为:\n",k);
matrix1[0][0]=pt[k].x;
matrix1[1][0]=pt[k].y;
matrix1[2][0]=pt[k].z;
matrix1[3][0]=1;

matrix_mul(point,result,matrix1);

for(i=0;i {
for(int j=0;j {
printf("%f\t",point[i][j]);
}
printf("\n");
}
}
}

这么复杂也不给点分,没有人愿意回答的.

就是,太抠了。

【1】 矩阵的运算简单,按照定义,熟悉语言就可以做,又不需要优化算法。
【2】平移:三角形的三个顶点的横纵坐标分别加上对应的平移值。伸缩:如果以其中一个顶点的位置坐标不变的话,该顶点的两条边伸缩求另外两个顶点。旋转:安旋转角度求坐标,要看旋转的参照点。

C语言仅仅是工具!

【1】学过还好做,【2】不会;

  • C璇█楂樻墜,甯甯繖
    绛旓細鐒跺悗鍦ㄦ墽琛宨=st%i锛屽洜涓哄垵鍊糹=10锛岀粡杩囨墽琛岀涓鍙ュ悗st=75锛屾墍浠=75%10 锛屾墍浠ユ槸5 (8) 锛侊紙闈烇級 &&锛堜笖锛 ||锛堟垨锛(9) 1锛2锛3 鍥犱负if鐨勬潯浠舵槸a>c,閭d箞瑕佸綋a>c鎴愮珛鐨勬椂鍊欙紝鎵嶆墽琛屽悗闈㈢殑璇彞锛屼絾鏄垵鍊肩粰鍑轰簡a=1锛宑=3锛屾墍浠ワ紝涓嶆墽琛屽悗闈㈢殑璇彞锛屾墍浠ヨ繕鏄幇瀹炲師鏉ョ殑鍊 (10)x=0锛...
  • c璇█楂樻墜浠甯繖
    绛旓細鍑芥暟璋冪敤鐨勬椂鍊,瀹炲弬鍜屽舰鍙傜殑绫诲瀷搴旇鍖归厤,浣嗗鏋滀笉鍖归厤浠ヨ祴鍊艰浆鎹㈣鍒欒繘琛岀被鍨嬭浆鎹负鍑嗭紟渚嬪鑻LOAT鍨嬪疄鍙傚糀涓3锛5锛岃屽舰鍙俋涓篒NT鍨嬶紝鍒欏皢瀹炴暟3锛5杞崲鎴愭暣鏁3锛岀劧鍚庨佸埌褰㈠弬B锛庝絾姝ゆ椂搴斿皢琚皟鍑芥暟鐨勫墠闈㈡垨鍦ㄨ皟鐢ㄥ墠瀵硅璋冪敤鍑芥暟搴斾綔鍑芥暟澹版槑锛庡嚱鏁板0鏄庢牸寮忓涓嬶細锛堝嚱鏁板彉閲忓悕锛夛紙瀹炲弬琛級鍑芥暟璋冪敤...
  • c璇█楂樻墜甯甯繖!
    绛旓細"鐜","鏉","璧"}; int i,t,n=N,cnt[4]={0},f=0,z=0,max=0; printf("褰撳墠鍏%d涓姇绁ㄤ汉 ,璇锋姇寮:1 鐜:2 鏉:3 璧:4 (杈撳叆-1缁撴潫鎶曠エ)\n",N); while(n--) { scanf("%d",&t); if(
  • c璇█ 楂樻墜甯繖
    绛旓細鎴戜滑鍙互浣縭eturn杩斿洖浠讳綍鏁帮紝浣嗘槸鍙湁褰撹繑鍥炲间负0鏃讹紝绯荤粺鎵嶈涓鸿繖鏄竴涓甯哥粨鏋溿傚笇鏈涙垜璇存竻妤氫簡锛屽浣犳湁甯姪銆
  • C璇█浣嶆搷浣滈棶棰 楂樻墜甯繖
    绛旓細浣嶆搷浣滀笉鏄C璇█鐨勫己椤癸紝姹囩紪璇█鍦ㄨ繖鏂归潰瑕佸ソ寰堝銆傚鏋滄秹鍙婂ぇ閲忎綅鎿嶄綔锛屽線寰閲囩敤C璇█鍜屾眹缂栬瑷娣峰悎缂栫▼鐨勬柟娉曘1.鍗曠函閲囩敤C璇█杩涜浣嶆埅鍙栨搷浣滄椂锛屾垜浠彲浠ュ皢鎴彇鐨勫悇涓簩杩涘埗浣嶆墍鍦ㄧ殑瀛楄妭璇诲彇鍑烘潵锛岀劧鍚庤鎵鍙栫殑浜岃繘鍒朵綅渚濇宸︾Щ鍒版柊鍗曞厓鐨勯浣嶃傜敱浜庡乏绉诲彲鑳戒細鐢ㄥ埌涓嬩竴瀛楄妭鐨勫墠鍑犱綅锛屾垜浠渶瑕佽繘琛...
  • 鏈C璇█楂樻墜甯繖瑙g瓟涓
    绛旓細鎵浠ョ瓟妗堟槸16 绗簩棰橈細绛旀鏄0 1 1 2 2 2 鐪嬪惊鐜殑鍒濆鍖栨潯浠舵槗鐭ワ紝寰幆娆℃暟涓轰笁娆★紝寰幆涓搴旂殑i鐨勫煎垎鍒负0,1,2 鐪嬩竴涓媠witch涓殑灏卞彲浠ュ緱鍑轰笂闈㈢殑绛旀 绗笁棰橈細绛旀鏄7 3+1*3+1=7 绗洓棰橈細绛旀鏄 8 10 12 姣忔鍑芥暟杩斿洖鏃讹紝z鐨勫肩浉瀵逛笂涓婁竴娆″浜1锛寉娌℃湁鍙橈紝浣犱紶鍏ョ殑x...
  • C璇█楂樻墜鏉甯繖鍟
    绛旓細鍑芥暟鎵ц瀹岋紝杩斿洖鍊间负7锛屽張鍥犱负c鏄潤鎬佸眬閮ㄥ彉閲忥紝鎵ц瀹屼箣鍚庡间笉鍙戠敓鏀瑰彉锛屼笁娆″惊鐜緷娆″姞涓锛屾墍浠789
  • C璇█绋嬪簭璁捐,楂樻墜浠府甯繖
    绛旓細C璇█绋嬪簭璁捐,楂樻墜浠府甯繖 鍋氫竴涓鐢熶俊鎭鐞嗙郴缁熷缓绔嬪鐢熶俊鎭暟鎹,鍖呮嫭瀛﹀彿銆佸鍚嶃佹у埆銆佷笁绉戞垚缁┿佸嚭鐢熸棩鏈熴佸勾榫(蹇呴』璁$畻寰楀埌)銆1.鐢–璇█瀹炵幇绯荤粺;2.鍒╃敤鏁扮粍鎴栫粨鏋勪綋瀹炵幇涓婅堪棰樼洰鐨勬暟鎹粨鏋勮璁;3... 鍋氫竴涓鐢熶俊鎭鐞嗙郴缁熷缓绔嬪鐢熶俊鎭暟鎹,鍖呮嫭瀛﹀彿銆佸鍚嶃佹у埆銆佷笁绉戞垚缁┿佸嚭鐢熸棩鏈熴佸勾榫(蹇呴』璁$畻寰楀埌...
  • C璇█楂樻墜杩涙潵甯甯繖鍟,鍒ゆ柇姝h銆
    绛旓細1瀵 2閿 a鐨勭被鍨嬫槸int *[5] 鑰宲鐨勭被鍨嬫槸int 3搴旇鏄敊 鎸囬拡鏄窡CPU瀵诲潃鑳藉姏鐩稿叧鐨勶紝鑰屾暣鍨嬪彉閲忓ぇ灏忔槸鍥犵紪璇戝櫒鑰屽紓鐨勩傚緢鏈夊彲鑳藉彂鐢熸暣鍨嬫瘮鎸囬拡灏忕殑鎯呭喌銆4瀵 5閿 涓嶄細鎶ラ敊锛屽洜涓簒 = 5 鏄悎娉曡鍙ワ紝涔熸湁寰堝鎯呭喌涓嬶紝 纭疄闇瑕佽繖涔堣繘琛屽垽鏂 6瀵 7閿 A浣跨敤鍙屽紩鍙峰寘瑁圭殑锛屾槸瀛楃涓 ...
  • C璇█楂樻墜 璇峰憡璇夋垜鍑犻亾绠鍗曠殑棰! 鎴戞兂鎼炴槑鐧 璋㈣阿
    绛旓細pt[2]鈫 h ,i, j 鑰宲t瀵瑰簲鐨勫叾瀹炲氨鏄痯t[0]鎵浠 pt+1 =pt[1]2.瀹氫箟sum鐨勬椂鍊 鐢变簬娌℃湁瀵箂um杩涜鍒濆鍖,鎵浠ョ紪璇戝櫒浼氬sum杩涜闅忔満璧嬪,鎵浠um灏嗕細琚垎閰嶅埌涓涓殢鏈烘暟,鑰屽湪姹傚拰鐨勬椂鍊欑疮鍔犱箣鍚庣殑鍜屽綋鐒朵笉纭畾 3.C 绗竴娆¤皟鐢╢un鍑芥暟鐨勬椂鍊,fun(a+fun(d)) 搴旇鏄湪杩涘叆鍙傛暟(a+fun(...
  • 扩展阅读:c++编程适合几岁学 ... java编程入门 ... 10个常用的编程语言 ... 初学编程必背50个 ... 编程语言排名2024 ... cnc编程自学网站有哪些 ... 编程自学免费网站 ... 十大编程语言排名 ... c++教程 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网