/结构问题''

时间:2014-10-17 09:48:42

标签: c

我需要为以下内容编写一个程序..我已经尝试但我不知道我哪里出错了..

定义结构dollarsQuartersDimes有三个简单的变量int dollars,int quarters和int dimes来声明美元,四分之一和硬币的货币。

添加两个DollarQuartersDimes货币并将结果存储在第三个DollarQuartersDimes货币中。

请记住从角钱和宿舍进行必要的转换。 注意:10美分= 1美元,4个季度= 1美元。

#include <stdio.h>
#include <stdlib.h>

typedef struct{
    int dollars;
    int quarters;
    int dimes;   
    }dollarsQuartersDimes;

void main(){

 dollarsQuartersDimes input1 , input2 , total;

 printf ("Please enter the money in order dollars : quarters : dimes ! ");
 scanf ("%d%d%d" , &input1.dollars, &input1.quarters, &input1.dimes);

 printf ("Please enter again the money in order dollars : quarters : dimes ! ");
 scanf ("%d%d%d" , &input2.dollars, &input2.quarters, &input2.dimes);

 input1.dollars = input1.dollars + (input1.quarters/25) + (input1.dimes/10);
 input2.dollars = input2.dollars + (input2.quarters/25) + (input2.dimes/10);

 total.dollars = input1.dollars + input2.dollars;

 printf ("The total value in dollars is : %d" , total.dollars);
}


}

错误:我收到错误的返回类型不是int的错误。请帮助!

3 个答案:

答案 0 :(得分:4)

您需要将main声明为int main

int main (int argc, char *argv[]) {
    // ...
    return 0;
}

答案 1 :(得分:3)

在你修复了压痕和明显的牙箍不平衡之后,你就会明白这个问题的核心。语句如

input1.dollars = input1.dollars + (input1.quarters/25) + (input1.dimes/10);

将在整数运算中执行,因为操作数都是整数类型。你会得到很多截断的数据。 (24个季度将以你写的方式评估为零美元)。

要补救,请将25替换为25.0。这迫使分裂以浮点进行。

并修复main的原型:应为int main()。如果您使用void main(),则正式的程序行为未定义

答案 2 :(得分:0)

这不是答案(可以随意向下投票)

你应该先加入你的作品:

total.dimes = input1.dimes + input2.dimes;
total.quarters = input1.quarters + input2.quarters;
total.dollars = input1.dollars + input2.dollars;

然后传播总结:

// NOTE: Assumes the user enter the number of quarters, not the value in quarters!
total.dollars += total.quarters / 4;
// NOTE: Assumes the user enter the number of dimes, not the value in dimes!
total.dollars += total.dimes / 10;

通过调整余数完成:

// NOTE: Assumes the user enter the number of quarters, not the value in quarters!
total.quarters = total.quarters % 4;
// NOTE: Assumes the user enter the number of dimes, not the value in dimes!
total.dimes = total.dimes % 10;

%运算符给出除法的其余部分。