Say*_*jee 1 compiling gcc printing c
这是我用于查找两点之间距离的代码。我的任务是强制使用函数,因此是一个单独的用于查找距离的函数。当我执行代码时,我没有收到任何语法错误,只有一个闪烁的光标。我是 C 的初学者。
我的代码:
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
float distance(float *x1, float *y1, float *x2, float *y2);
int main()
{ printf("Input coordinates as x1,y1,x2,y2:\n");
float x1,y1,x2,y2;
scanf("%f %f %f %f ",&x1,&y1,&x2,&y2);
printf("Coordinates are : (%f,%f) and (%f,%f)\n",x1,y1,x2,y2);
printf("%f",distance (&x1,&y1,&x2,&y2));
return 0;
}
float distance(float *x1, float *y1, float *x2, float *y2)
{
float d= sqrt(pow((*x1-*x2),2)+pow((*y1-*y2),2));
printf("%f", d);
return d;
}
Run Code Online (Sandbox Code Playgroud)
编译时: gcc -o 1 1.c -lm 输出:
Input coordinates as x1,y1,x2,y2:
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
就是这样。光标一直闪烁而不提供任何输出。
此外,我尝试在不同的点放入打印语句。之后的任何打印scanf
都不起作用。
您问的问题不是针对 Ubuntu 而是针对 C 编程的。我建议你在Stackoverflow 上提出这样的问题——这也是为了你自己的利益,因为你会接触到不同的受众。
无论如何,您应该阅读 scanf () 函数,因为它试图匹配您在键盘上输入的内容。这包括格式字符串中的任何空格、换行符等。然后,您还需要使用“回车键”结束对标准输入的输入。
对于您的问题,更改:
scanf("%f %f %f %f ",&x1,&y1,&x2,&y2);
Run Code Online (Sandbox Code Playgroud)
到:
scanf("%f %f %f %f",&x1,&y1,&x2,&y2);
Run Code Online (Sandbox Code Playgroud)
(删除格式字符串末尾的空格。)然后它应该会按预期工作。
就个人而言,我总是使用 scanf 一次读取一个值。如图中示例这里。我承认这只是我避免您所看到的问题的方式。
归档时间: |
|
查看次数: |
1057 次 |
最近记录: |