简单的C程序 照着书输入都是错的

来源:百度知道 编辑:UC知道 时间:2024/05/17 09:05:44
/*路程越远,每吨*千米运费越低 计算运费
s取值 折扣
[0,250) 0
[250,500) 2%
[500,1000) 5%
[1000,2000) 8%
[2000,3000) 10%
>=3000 15% price weight s discount(折扣) freight(运费)*/
#include <stdio.h>
void main()
{
int c,s;
float p,w,d,f; /* 把距离定义成了float c=s/250是错误的 因为c要得到的是一个整数 */
scanf("%f,&f,&d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0: d=0;break;
case 1: d=2;break;
case 2:
case 3: d=5;break;
case 4:
case 5:
case 6:
case 7: d=8;break;
case 8:
case 9:
case 10:
case 11:d=10;break;
case 12:d=15;break;
}
f=p*w*s*(1-d/100.0); /*注意d/100.0 勿写成100*/
printf("f=%15.4f\n",f);
}

那里错误了
L_o_o_n_i_e 你说对了

错:scanf("%f,&f,&d",&p,&w,&s);
对:scanf("%f,%f,%d",&p,&w,&s);

输入格式要用逗号做分隔符。例如:
3.0,4.0,1500



#include <stdio.h>
void main()

改成

#include<iostream>
#include<stdio.h>
using namespace std;
int main()

再试试

用标准C++规范

一看void main()就不是标准规范

这个不是c语言吗?干嘛要用c++标准.

dui

1楼说的是错的 这是C 你写C++有啥意义

这个程序只有一个错误 就是void main() 应该写int main() 并且在程序最后加上return 0; 这样写是比较规范的

#include <stdio.h>
#include <conio.h>
void main()
{
int c,s;
float p,w,d,f; /* 把距离定义成了float c=s/250是错误的 因为c要得到的是一个整数 */
scanf("%f,%f,%d",&p,&w,&s);
if(s>=3000) c=12;
else c=s/250;
switch(c)
{
case 0: d=0;break;
case 1: d=2;break;
case 2:
case 3: d=5;break;
case 4:
case 5:
case 6:
case 7: d=8;break;
case 8:
case 9: