C语言:让用 户输入 一个坐标值 (一共是8行8列),输出如下: 请高手修改代码,谢谢了

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言:让用 户输入 一个坐标值 (一共是8行8列),输出如下: 请高手修改代码,谢谢了相关的知识,希望对你有一定的参考价值。

Row (0..7):
4
Column (0..7):
2
......+.
.....+..
+...+...
.+.+....
..B.....
.+.+....
+...+...
.....+..

#define LSIZE4 2
int main (void)

int option,c,r;
int flag=0;
char a='+';
char b='.';
int i,j;
char input[LSIZE4];
char row[LSIZE4];
char column[LSIZE4];

printf ("please input 1 for rood or 2 for bishop: ");
fgets(input, LSIZE4, stdin);
option = atoi(input);
getchar();

printf ("please input column number: \n");
fgets(column, LSIZE4, stdin);
getchar();
c = atoi(column);

printf ("please input row number: \n");
fgets(row, LSIZE4, stdin);
getchar();
r = atoi(row);

printf ("%d %d %d \n", c, r,option);

if (option=1)
for(i=0;i<8;i++)

flag=0;
for(j=0;j<8;j++)

if(i-r==j-c)
flag=1;
if(flag)
printf("+");
else
printf("-");

printf("\n");

#include <stdio.h>
#define LSIZE4 2
int main (void)

int option,c,r;
int flag=0;
char a='+';
char b='.';
int i=-5,j;
char input[LSIZE4];
char row[LSIZE4];
char column[LSIZE4];

printf ("please input 1 for rood or 2 for bishop: ");
fgets(input,LSIZE4,stdin);
option = atoi(input);
getchar();

printf ("please input column number: \n");
fgets(column, LSIZE4, stdin);
getchar();
r = atoi(column);

printf ("please input row number: \n");
fgets(row, LSIZE4, stdin);
getchar();
c = atoi(row);

printf ("%d %d %d \n", c, r,option);
if (option==1)//比较是用2个等号的,你之前的程序只用了一个,常见错误,需要多多注意啊!

for(i=0;i<8;i++)

for(j=0;j<8;j++)

if(i-r==j-c||r-i==j-c)

if(i==r&&j==c)printf("B");
else printf("+");

else printf("-");

printf("\n");




运行结果:

please input 1 for rood or 2 for bishop: 1
please input column number:
4
please input row number:
2
2 4 1
------+-
-----+--
+---+---
-+-+----
--B-----
-+-+----
+---+---
-----+--
请按任意键继续. . .
参考技术A #include <stdio.h>
#define LSIZE4 2
int main (void)

int option,c,r;
int flag=0;
char a='+';
char b='.';
int i,j;
char input[LSIZE4];
char row[LSIZE4];
char column[LSIZE4];

printf ("please input 1 for rood or 2 for bishop: ");
fgets(input, LSIZE4, stdin);
option = atoi(input);
getchar();

printf ("please input column number: \n");
fgets(column, LSIZE4, stdin);
getchar();
c = atoi(column);

printf ("please input row number: \n");
fgets(row, LSIZE4, stdin);
getchar();
r = atoi(row);

printf ("%d %d %d \n", c, r,option);

if (option=1)
for(i=0;i<8;i++)

flag=0;
for(j=0;j<8;j++)

if(i-r==j-c)
flag=1;
if(flag)
printf("+");
else
printf("-");

printf("\n");



//程序我已经改过来了。不知你还有哪里需要改的。

多边形面积(计算几何)

题目描述

给出一个简单多边形(没有缺口),它的边要么是垂直的,要么是水平的。要求计算多边形的面积。
多边形被放置在一个X-Y的卡笛尔平面上,它所有的边都平行于两条坐标轴之一。然后按逆时针方向给出各顶点的坐标值。所有的坐标值都是整数(因此多边形的面积也为整数)

输入

第 一行给出多边形的顶点数n(n≤100)。接下来的n行每行给出多边形一个顶点的坐标值X和Y(都为整数并且用空格隔开)。顶点按逆时针方向逐个给出。并 且多边形的每一个顶点的坐标值-200≤x,y≤200。多边形最后是靠从最后一个顶点到第一个顶点画一条边来封闭的。

输出

仅有一行,包含一个整数,表示多边形的面积。

样例输入

10
0 0
4 0
4 1
3 1
3 3
2 3
2 2
1 2
1 3
0 3

样例输出

9

一道最最最基础的计算几何题目,直接上叉积就可以了,不用处理叉积的正负!!!网上还有人有什么皮克定理(某高科技),此定理推广好像很强大。
代码如下:
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 struct node
 4 {
 5     int x,y;
 6 }a[150];
 7 node operator - (node p1,node p2)
 8 {
 9     node v;
10     v.x=p2.x-p1.x;
11     v.y=p2.y-p1.y;
12     return v;
13 };
14 int operator * (node v1,node v2)
15 {
16     return v1.x*v2.y-v1.y*v2.x;
17 }
18 int n;
19 int main()
20 {
21     //freopen("de.txt","r",stdin);
22     scanf("%d",&n);
23     int ans=0;
24     for (int i=1;i<=n;++i)
25     scanf("%d%d",&a[i].x,&a[i].y);
26     a[n+1]=a[1];
27     for (int i=3;i<=n;++i)
28     ans+=(a[i-1]-a[1])*(a[i]-a[1]);
29     printf("%d\n",ans/2);
30     return 0;
31 }

 


以上是关于C语言:让用 户输入 一个坐标值 (一共是8行8列),输出如下: 请高手修改代码,谢谢了的主要内容,如果未能解决你的问题,请参考以下文章

C语言求出平面坐标系中任意两点间的距离.点的信息(x坐标值,y坐标值,全为整数)通

DOTA格式的8个坐标值转换为角度倾斜矩形框 (cx,cy,w,h,ang)

C语言画图模式下如何将当前坐标赋给一个变量?方面下面引用该坐标值。

用C语言打印乘法口诀表,行可自己输入

易语言, 取两点水平坐标值的问题!

c语言代码编程题汇总:找出字符串中与输入的字母元素相同的个数以及其所对应数组的下标值