c语言求距离为什么回车之后没有结果

问题描述

c语言求距离为什么回车之后没有结果

#include "stdio.h"

int main()
{
int x1,y1,x2,y2;
float d;
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
while( scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF)
{
d=(float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2f",d);
}
return 0;
}

解决方案

你的循环写错了把。直接死循环不就行了。判断的什么?

解决方案二:

输入一组数据 比如 1 2 3 4 回车没结果, 再输入一组数据 比如 2 3 4 5 回车就会有结果,继续输入数据 回车 有结果。
所以就是说 第一组数据 没有结果,后面每组数据都会有结果

解决方案三:

如果你想循环 可以这样。

#include "stdio.h"
int main()
{
int x1,y1,x2,y2;
float d;

while(1)
{
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
d=(float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2f",d);
}
return 0;
}

如果你想输入一次可以这样

#include "stdio.h"
int main()
{
int x1,y1,x2,y2;
float d;

scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
d=(float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2f",d);

return 0;
}

程序中最好加个输入提示。增加友好性。

解决方案四:

scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
while( scanf("%d%d%d%d",&x1,&y1,&x2,&y2)!=EOF)
第一句时候,你输入数据了,但是没有这组数据做任何操作,while循环中,会需要你重新再输入一组数据,然后才会去做
d=(float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))这个操作。

去掉while循环前的scanf("%d%d%d%d",&x1,&y1,&x2,&y2);语句吧。

解决方案五:

int ret = scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
while(ret != EOF)
{
d=(float)sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
printf("%.2f",d);
ret = scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
}

解决方案六:

你这个第一个输入是没有结果的,第二个输入才会有结果

时间: 2024-12-09 02:14:57

c语言求距离为什么回车之后没有结果的相关文章

c语言/c++回答 求距离问题

问题描述 c语言/c++回答 求距离问题 有两个人a和b,这两个人都面朝北站立.对于每一个人,都有四步操作,令这个人按给定的方向去移动,用W.E.S.N分别代表向西.向东.向南.向北.每次都移动一步,求两个人移动后的距离.例如,对a进行操作:E E E E,经过移动后a的位置为距离原点位置4步的位置. 输入 输入有多组测试数据. 每组测试数据有两行. 第一行有四个字符代表对第一个人的操作,每两个字符之间用空格隔开. 第二行代表对第二个人的操作. 输出 每组测试数据输出两人的距离,保留两位小数.

算法-求助大神:c语言求最长公共子序列问题

问题描述 求助大神:c语言求最长公共子序列问题 我写的这个能正确求出最长序列元素个数但是输出的最长序列却是乱码,求大神指教.代码如下: #include #include #include #define MAX 101 int Long(char a[],char b[],char result[] ) { int m,n; m=strlen(a); n=strlen(b); int str[MAX][MAX]; int i,j,sum; for(i=0;i<=m;i++) { str[i][

c语言 c++-c语言求大神解答,一个数组的基础问题

问题描述 c语言求大神解答,一个数组的基础问题 数组的地址是什么?是不是就是数组名,也就是第一个元素的地址,也就是这个数组的首地址? 解决方案 数组名可以当成指向数组首元素的地址使用. 例如:int a[10]; 可以通过: cout<<*a<<endl; //来输出数组a中的第一个元素. cout<<*(a + i)<<endl; //来输出数组中的第i个元素. 下面两个输出的地址值也是相同的. printf("--->%pn",

c语言-C语言求一个年份是否是闰年

问题描述 C语言求一个年份是否是闰年 输入一个整形数表示年份,如果是闰年输出"闰年",否则输出"平年",要考虑年份被100整除但是不能被400整除的情形 解决方案 #include<stdio.h> int main() { int year,result; scanf("%d",&year); if( year%4 == 0 && year % 100 != 0 || year % 400 == 0 ) re

c语言-[C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果

问题描述 [C语言]求一个算法,输入N个数,输出所有其中任意M个数相加等于定值S的结果 如题,比如输入1,,2,10,5,7,8,9,11,输出其中任意几个数相加等于12的结果(不重复), 不自身相加. 1+2+9=12 10+2=12 7+5=12 解决方案 这题如果不考虑优化问题--轮询吧--总共有2的n次方种组合-学过排列组合的都知道

c语言-C语言求回文数,满足m,m*m和m*m*m均为回文数

问题描述 C语言求回文数,满足m,m*m和m*m*m均为回文数 C语言求回文数,满足m,m*m和m*m*m均为回文数 编程求出11~999之间的回文数 解决方案 http://zhidao.baidu.com/link?url=J6jUedovjtgkY_S7HCLan1mMkWtPOuAMp_UOyQhknhcPebh_fAYjMrATK4snNimhu9gZev0tFUGuTFGCnAGHwa 参考

c语言几何-如何让用c语言求两个曲面的交线,木有思路

问题描述 如何让用c语言求两个曲面的交线,木有思路 就例如两个圆柱相惯但是角度不同,求交线,相惯面的面积,本人不知道如何下手,希望有大神可以指点迷津,给个思路, 解决方案 你要自己研究算法,然后用C语言.或者其他语言来实现,语言只是工具,但是他没有办法帮你来研究算法. 解决方案二: 这个问题.和C语言没有半毛钱关系 解决方案三: 看不懂啊,学过c语言,但都是十几年前的事了.就是来混点C币,下东西. 解决方案四: 你这个是有gui的东西没有,没有的话,肯定是要先研究清楚,几何上是怎么画的啊

编程-c语言求完全数问题求助~~

问题描述 c语言求完全数问题求助~~ 找完全数成绩: 10 / 折扣: 0.8完全数是其各因子之和正好等于本身的数,如6=1+2+3,28=1+2+4+7+14所以6,8都是完全数,请编程找出2-20000内的所有完全数.输入整数n,输出第n个完全平方数. #include<stdio.h>int main(){ int aij=0s=0nb[4]; scanf(""%d""&n); for(a=2;a<=20000;a++) { for(

c语言程序设计-C语言求从n个数中选出k个的最优算法

问题描述 C语言求从n个数中选出k个的最优算法 在计算组合问题时一般算法总会溢出,有没有啥极快又可以避免溢出的算法? 解决方案 外部排序,你可是试试看