zhanjunlihai 2023-10-12 14:37 采纳率: 24.7%
浏览 6

c语言爱心程序定义在main函数之外

VC环境下,这个运行就会出错。 但是把定义的变量写在main 函数前面,就不会出错了,这是为什么??不是一般都从主函数开始读程序吗 ?

#include<stdio.h>
#include<Windows.h>

int main()
{
    
system(" color 0c");//设计程序颜色
printf("遇见你是一件很开心的事情,爱你哟!!!\n");//打印文字
float x,y,a;//定义变量x,y,a


for(y=1.5f;y>-1;y-=0.1f)
{
for(x=-1.5f;x<1.5f;x+=.05f){
a=x*x+y*y-1;
putchar(a*a*a-x*x*y*y*y<0.0f?'x':' ');
}

Sleep(150);//停顿函数(1.5秒钟)
putchar('\n'); //换行
}

return 0;
}


```c
错误:--------------------Configuration: lianxi - Win32 Debug--------------------
Compiling...
lianxi.c
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(9) : error C2143: syntax error : missing ';' before 'type'
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(12) : error C2065: 'y' : undeclared identifier
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(12) : warning C4244: '=' : conversion from 'const float ' to 'int ', possible loss of data
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(12) : warning C4244: '-=' : conversion from 'const float ' to 'int ', possible loss of data
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(14) : error C2065: 'x' : undeclared identifier
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(14) : warning C4244: '=' : conversion from 'const float ' to 'int ', possible loss of data
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(14) : warning C4244: '+=' : conversion from 'const float ' to 'int ', possible loss of data
C:\Users\think\Desktop\上机例子\练习1\lianxi.c(15) : error C2065: 'a' : undeclared identifier
Error executing cl.exe.


运行正常:

```c

int main()
{
    float x,y,a;//定义变量x,y,a
system(" color 0c");//设计程序颜色
printf("遇见你是一件很开心的事情,爱你哟!!!\n");//打印文字

其中,把float 写在 system前就好了 ,或者是写在main 函数之前 也行,如下:
可是 一般入口是 mian 啊 写在他前面和里面有啥不同,而且 为啥一定要写在 system 后面才可以呢 ?


```c
    float x,y,a;//定义变量x,y,a
int main()
{

system(" color 0c");//设计程序颜色
printf("遇见你是一件很开心的事情,爱你哟!!!\n");//打印文字



```

  • 写回答

1条回答 默认 最新

  • 地球屋里老师 2023-10-12 14:44
    关注

    第一个代码没问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月12日