好的,所以我把这件事送到了这里。 我不断收到一些错误。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <cstdio>
//functions called
int get_lmt();
int get_total_trash();
void print_output(int, int);
//why is it void?
int main(void)
{
char hauler[100];
int t_trash=0, lmt=0;
printf("Hello \n What is your name: ");
fflush(stdin);
scanf("%s", &hauler);
t_trash = get_total_trash();
lmt = get_lmt();
printf("Name: %s\n", &hauler);
print_output(lmt, t_trash);
system("pause");
return 0;
}
int get_total_trash()
{
char yn = 'y';
int t_trash = 0, trash=0;
while (yn != 'n')
{
printf("What is your trash: ");
fflush(stdin);
scanf("%i", &trash);
t_trash = trash + t_trash;
printf("Do you have more trash tons? (y or n): ");
fflush(stdin);
scanf("%c", &yn);
}
return t_trash;
}
int get_lmt()
{
int lmt = 0;
printf("What was last months trash: ");
fflush(stdin);
scanf("%i", &lmt);
return lmt;
}
void print_output(int lmt, int t_trash)
{
float rate = 350.00, charge;
int sum=0, total=0;
if (lmt > t_trash)
{
printf("Total trash tons: %i\n", &t_trash);
printf("Last month's trash: %i\n", &lmt);
printf("Rate: $ %.2f\n", &rate);
}
else
{
printf("What is your tonnage rate: ");
fflush(stdin);
scanf("%.2f\n", &charge);
sum = t_trash - lmt;
total = sum * charge;
rate = rate + total;
printf("Total trash tons: %i\n", &t_trash);
printf("Last month's trash: %i\n", &lmt);
printf("Rate: $ %.2f\n", &rate);
}
}
现在它应该做的是,主要应该根据需要调用屏幕上的功能。 现在我用cout cin做了所有这些,它没有问题。但当我运行它(这被修改为printf和scanf)时,它说:
确定更新:有很多工作要做。还有一件事,我应该是好的。结果不会像预期的那样。
而不是输出 上个月垃圾:100(在循环结束时询问) 垃圾吨位:50(累积在循环中) rate:350.00(浮动变量)
(这是上个月垃圾是&gt;本月。)
我得到的数据都很糟糕。它没有数学意义。 除此之外,它工作正常。 最后一个函数的代码对你们来说是不正确的吗?
答案 0 :(得分:0)
此代码存在很多问题。他们很多。
1)print_output defintiion接受char [100](char *),print_output声明接受char
2)当你将hauler传递给print_output时,你传递的是hauler [100](一个char,一个传递数组的末尾来启动)
3)printf(“名称:%s \ n”,&amp; hauler); hauler的类型为char [100](char *),因此&amp; hauler是char **。
可能还有更多。