各位大哥大姐,请帮我回答一道很简单的C语言问题好吗,谢谢

2、程序改错
下面程序的功能是计算球体的表面积和球体的体积,程序中有多处错误,并且指定必须按下面的形式输入、输出数据。请对程序做相应的修改。

#include <stdio.h>
main
{
double r,s,v;
int pi=3.14;
printf(input r:\n);
scanf("%d",r);
S=4*pi*r*r; /*计算球体的表面积*/
V=4.0*pi*r*r*r/3.0; /*计算球体的体积*/
printf("%d",r);
printf("s=%f\n",s,"v=%d\n",v);
}
当程序运行时,要求屏幕的显示和指定的输入形式如下:
input r:
2.0<回车> (此处的2.0是由用户输入的数据)
r=2.000000 (此处要求的是输出形式)
s=50.24000000,v=33.49333333
具体要求:
(1)在VC6.0环境中输入上述源程序。
(2)在编译连接与运行的过程中逐步改正源程序中的错误。
(3)程序最后输出结果的形式要与上述形式相同,并把错误修改情况写在下面。
错误修改:
还有 。。。。。。。。。。。
2、完成以下程序,并进行调试
设银行定期存款的年利率rate为2.25%,并已知存款期为n年,存款本金为capital元,试编程计算n年后的本利之和deposit。
具体要求:
① 要求定期存款的年利率rate、存款期n和存款本金capital均由键盘输入,且在输入前要有提示信息。
② 在输出结果时要有文字说明,输出结果的小数点后取2位小数。
把正确的程序源代码写在下面。
程序代码:

2、使用scanf函数时,输入项为何必须是变量地址而不是变量名?

#include <stdio.h>

int main() {
double r, s, v;
double pi = 3.14;
printf("input r:\n");
scanf("%lf", &r);
s = 4 * pi * r * r; /*计算球体的表面积*/
v = 4.0 * pi * r * r * r / 3.0; /*计算球体的体积*/
printf("r=%.6f\n", r);
printf("s=%.8lf, v=%.8lf\n", s, v);

return 0;
}

#include <stdio.h>

int get_int(char *prompt) {
int n;
printf("input %s: \n", prompt);
scanf("%d", &n);
return n;
}

double get_double(char *prompt) {
double d;
printf("input %s: \n", prompt);
scanf("%lf", &d);
return d;
}

int main() {
int n, cap;
double rate, result;

rate = get_double("the year rate(in the form of percentile)");
n = get_int("the number of years");
cap = get_int("the original amount");

result = cap + cap * rate * n / 100.0;
printf("deposit: %.2lf\n", result);

return 0;
}

scanf需要地址,因为否则的话,传递的参数会被复制一份,那么就无法对原来的变量赋值了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-03-21
#include <stdio.h>
int main() {
double r, s, v;
double pi = 3.14;
printf("input r:\n");
scanf("%lf", &r);
s = 4 * pi * r * r; /*计算球体的表面积*/
v = 4.0 * pi * r * r * r / 3.0; /*计算球体的体积*/
printf("r=%.6f\n", r);
printf("s=%.8lf, v=%.8lf\n", s, v);
return 0;
}
#include <stdio.h>
int get_int(char *prompt) {
int n;
printf("input %s: \n", prompt);
scanf("%d", &n);
return n;
}
double get_double(char *prompt) {
double d;
printf("input %s: \n", prompt);
scanf("%lf", &d);
return d;
}
int main() {
int n, cap;
double rate, result;
rate = get_double("the year rate(in the form of percentile)");
n = get_int("the number of years");
cap = get_int("the original amount");
result = cap + cap * rate * n / 100.0;
printf("deposit: %.2lf\n", result);
return 0;

参考资料:从电子网上摘录的 有人和我的一样 我看到比较晚 所以拉的慢了点

第2个回答  2010-03-21
鄍灬 朋友, 我贴的代码是自己写的,不是什么网上的,你抄我的代码也就算了,何必找那么多理由呢?
相似回答