C语言编写一个电话簿管理系统!自己写了点,全是错,求大神帮忙改改,最好加上注释!谢谢!

#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<string.h>voidMenuShow();... #include <stdio.h>#include <stdlib.h>#include <conio.h>#include <string.h>void MenuShow();void Input(struct list s[]); //录入电话信息void ListShow(struct list s[]); //显示电话信息struct List s[50]{ long num; char name[16];};int m;void main(){ int n=1; struct List s[50]; do { system("cls"); MenuShow(); scanf("%d",&n); switch(n) { case 1 :Input(s);break; case 2 :ListShow(s);break; default :break; } getch(); }while(n); printf("\n\n\t\t 谢谢您的使用 \n\t\t");}void MenuShow (){ sysytem("cls"); //清屏函数 printf("\n"); printf("\t $ **********通讯录管理系统**********$\n"); printf("\t $ 1.号码录入 $\n"); printf("\t $ 2.信息显示 $\n"); printf("\t $ 0.退出系统 $\n"); printf("\t $ **********************************$\n"); printf("\t\t 请选择您的操作(0-8):");}void Input(struct list con[]){ int i; char ch[2]; do { printf("\n\t 请输入号码信息: \n\t\t 电话号码: "); scanf("%s",&con[m].num); //输入联系人电话号码 for(i=0;i<m;i++) if(con[i].num==con[m].num) { printf("\n\t 该电话号码已经存在,请按任意键继续!"); getch(); return; } printf("\t\t 姓名: "); scanf("%s",con[m].name); //输入联系人姓名 printf("\t\t 是否继续?(y/n): "); scanf("% s",ch); }while (strcmp(ch,"Y")==0||strcmp(ch,"y")==0);}void ListShow(struct list con[]){ int i; printf("\t姓名\t学号"); if(m==0)printf("\n\n\t\t没有记录"); for(i=0;i<m;i++) //按信息指定格式输出 printf("\t%-8num%-8s%\n", con[i].num,con[i].name);}全都是错 ,求大神帮忙修改一下,谢谢! 展开
 我来答
xc...l@163.com
2017-12-09 · 超过33用户采纳过TA的回答
知道答主
回答量:59
采纳率:62%
帮助的人:12.5万
展开全部
#include
#include
#include

typedef struct point_s {
int x;
int y;
} point_t;

/* 返回a、b点距离的平方 */
int sdistance(point_t *pa, point_t *pb)
{
return (pa->x - pb->x)*(pa->x - pb->x) + (pa->y - pb->y)*(pa->y - pb->y);
}

/* 利用勾股定理检查以b点为顶点的角abc是否为直角,直角返回true,否则返回false */
int check_angle(point_t *pa, point_t *pb, point_t *pc)
{
int sba, sbc, sac;
sba = sdistance(pb, pa);
sbc = sdistance(pb, pc);
sac = sdistance(pa, pc);
return (sba + sbc) == sac;
}

int the_same(point_t *pa, point_t *pb)
{
return (pa->x == pb->x) && (pa->y == pb->y);
}

int main()
{
/* 四个点能组成正方形的条件为:
* 1. 四个点不相互重合
* 2. 四个点组成的四边形有一个角为直角
* 3. 其中有一个角为直角
*/
int t,i;
int s01, s12, s23, s30;
point_t points[4] = {0};

scanf("%d", &t);
while(t --)
{
for (i=0;i<4;i++)
{
scanf("%d %d", &points[i].x, &points[i].y);
}

if (the_same(&points[0], &points[1]) ||
the_same(&points[0], &points[2]) ||
the_same(&points[0], &points[3]) ||
the_same(&points[1], &points[2]) ||
the_same(&points[1], &points[3]) ||
the_same(&points[2], &points[3]))
{
printf("No\n");
continue;
}

/* p0,p1,p2 构成一个以p1为顶点的直角? */
if (check_angle(&points[0], &points[1], &points[2]))
{
/* 四个点顺序为:0-1-2-3 */
s01 = sdistance(&points[0], &points[1]);
s12 = sdistance(&points[1], &points[2]);
s23 = sdistance(&points[2], &points[3]);
s30 = sdistance(&points[3], &points[0]);
if (s01 == s12 && s23 == s30 && s01 == s23)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
/* p0,p1,p3 构成一个以p1为顶点的直角? */
else if(check_angle(&points[0], &points[1], &points[3]))
{
/* 四个点顺序为:0-1-3-2 */
s01 = sdistance(&points[0], &points[1]);
s12 = sdistance(&points[1], &points[3]);
s23 = sdistance(&points[3], &points[2]);
s30 = sdistance(&points[2], &points[0]);
if (s01 == s12 && s23 == s30 && s01 == s23)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
/* p0,p2,p1 构成一个以p2为顶点的直角? */
else if(check_angle(&points[0], &points[2], &points[1]))
{
/* 四个点顺序为:0-2-1-3 */
s01 = sdistance(&points[0], &points[2]);
s12 = sdistance(&points[2], &points[1]);
s23 = sdistance(&points[1], &points[3]);
s30 = sdistance(&points[3], &points[0]);
if (s01 == s12 && s23 == s30 && s01 == s23)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
/* p0,p2,p3 构成一个以p2为顶点的直角? */
else if(check_angle(&points[0], &points[2], &points[3]))
{
/* 四个点顺序为:0-2-3-1 */
s01 = sdistance(&points[0], &points[2]);
s12 = sdistance(&points[2], &points[3]);
s23 = sdistance(&points[3], &points[1]);
s30 = sdistance(&points[1], &points[0]);
if (s01 == s12 && s23 == s30 && s01 == s23)
{
printf("Yes\n");
}
else
{
printf("No\n");
}
}
else
{
printf("No\n");
}
}

return 0;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式