这个简单的程序哪有问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 01:27:23
#include <stdio.h>
#define PI 3.14
void fuc(float r)
{
float C,S;
C=2*r*PI;
S=PI*r*r;
}
int main(void)
{
float C,S,r;
scanf("%f",&r);
fuc(r);
printf("%f\n",C);
printf("%f\n",S);
getch();
return 0;
}

提示是CS被赋值但没有使用在fuc中。
正确的应该是把CS定义为全局变量,但我不知道这个是哪里有问题

#include <stdio.h>
#define PI 3.14
void fuc(float r)
{
float C,S;
C=2*r*PI;
S=PI*r*r;
printf("%f\n",C);
printf("%f\n",S);
}
int main(void)
{
float C,S,r;
scanf("%f",&r);
fuc(r);
return 0;
}

其实你把两个printf函数调用到fuc函数中就行了。因为你现在定义的fuc函数你仅仅只是C=2*r*PI; 和S=PI*r*r; 没有实现功能。下次注意就好了
S=PI*r*r;

#define PI 3.14
float C,S;
void fuc(float r)
{
C=2*r*PI;
S=PI*r*r;
}
int main(void)
{
float r;
scanf("%f",&r);
fuc(r);
printf("%f\n",C);
printf("%f\n",S);
getch();
return 0;
}
因为子函数中的C S在子函数中定义的 所以在子函数执行完后这两个变量就不存在了 而主函数中的C S 没有被赋值 也就是主函数中的C S跟子函数中的不是一个东西 改正的方法可以是楼主说的 设置全局变量 把C S 设置为全局变量 上面的就是这种方法 或者也可以由子函数返回C S的值