C 不确定我的编译错误:控件到达非void函数的末尾
当我尝试向我的教授提交代码时,我得到一个编译错误,消息如下: ipc_ms1.c:在函数“getDbl”中: ipc_ms1.c:146:1:警告:控件到达非无效函数的末尾[-Wreturn类型] ipc_ms1.c:在函数“getInt”中: ipc_ms1.c:122:1:警告:控件到达非无效函数的末尾[-Wreturn type] 我不知道该怎么办C 不确定我的编译错误:控件到达非void函数的末尾,c,C,当我尝试向我的教授提交代码时,我得到一个编译错误,消息如下: ipc_ms1.c:在函数“getDbl”中: ipc_ms1.c:146:1:警告:控件到达非无效函数的末尾[-Wreturn类型] ipc_ms1.c:在函数“getInt”中: ipc_ms1.c:122:1:警告:控件到达非无效函数的末尾[-Wreturn type] 我不知道该怎么办 #include <stdio.h> void welcome(void); int getInt(void); double
#include <stdio.h>
void welcome(void);
int getInt(void);
double getDbl(void);
void prnTitle(void);
void prnFooter(double gTotal);
void pause(void);
double getDblLimited(double lowerLimit, double upperLimit);
void welcome(void)
{
printf("---=== Grocery Inventory System ===---\n");
}
void prnTitle(void)
{
printf("Row |SKU| Name \t | Price |Taxed| Qty | Min | Total |Atn \n");
printf("----+---+--------------------+--------+-----+-----+-----+------------+|---\n");
}
void prnFooter(double gTotal)
{
printf("--------------------------------------------------------+----------- ------\n");
//float gTotal = 1234.57;
while (gTotal > 0)
{
printf("%12.21f", gTotal);
}
}
void clrKyb(void)
{
char b;
while (b != '\n')
{
scanf("%c", &b);
}
}
void pause(void)
{
printf("Press <Enter> to continue...");
clrKyb();
}
int getInt(void)
{
printf("Enter an interger:");
int d;
char c;
scanf("%d%c", &d, &c);
while (c != '\n')
{
printf("Invalid integer, please try again ");
scanf("%d%c", &d, &c);
}
}
int getIntLimited(int lowerLimit, int upperLimit)
{
int a;
printf("Enter an integer between %d and %d:", lowerLimit, upperLimit);
scanf("%d", &a);
while (a <= lowerLimit || a >= upperLimit)
{
printf("Invalid value, %d < value < %d:", lowerLimit, upperLimit);
scanf("%d", &a);
}
return a;
}
double getDbl(void)
{
double d;
char c;
printf("Enter a floating point number:");
scanf("%lf,%c", &d, &c);
while (c != '\n')
{
printf("Invalid number, please try again ");
scanf("%lf%c", &d, &c);
}
}
double getDblLimited(double lowerLimit, double upperLimit)
{
double a;
printf("Enter a floating point number between %f and %f:", lowerLimit, upperLimit);
scanf("%lf", &a);
while (a <= lowerLimit || a >= upperLimit)
{
printf("Invalid value, %f < value < %f:", lowerLimit, upperLimit);
scanf("%lf", &a);
}
return a;
return 0;
}
#包括
欢迎无效(无效);
int getInt(void);
双getDbl(void);
无效文件(无效);
无效价格(双倍总价格);
无效暂停(void);
双getDblLimited(双下限,双上限);
欢迎无效(无效)
{
printf(“--==杂货库存系统===-\n”);
}
作废文件(作废)
{
printf(“行| SKU |名称\t |价格|征税|数量|最小|总计| Atn\n”);
printf(“---+---+----+----+----+----+----+----+----+----+----\n”);
}
无效prnFooter(双倍总)
{
printf(“---------------------------------------------------------------+-------------\n”);
//浮球总重量=1234.57;
而(G总计>0)
{
printf(“%12.21f”,g总计);
}
}
无效clrKyb(无效)
{
字符b;
而(b!='\n')
{
scanf(“%c”和“b”);
}
}
作废暂停(作废)
{
printf(“按继续…”);
clrKyb();
}
int getInt(无效)
{
printf(“输入整数:”);
int d;
字符c;
scanf(“%d%c”、&d和&c);
而(c!='\n')
{
printf(“无效整数,请重试”);
scanf(“%d%c”、&d和&c);
}
}
int getIntLimited(int下限,int上限)
{
INTA;
printf(“输入一个介于%d和%d之间的整数:”,下限,上限);
scanf(“%d”和“&a”);
while(a=上限)
{
printf(“无效值,%d<值<%d:”,下限,上限);
scanf(“%d”和“&a”);
}
返回a;
}
双getDbl(void)
{
双d;
字符c;
printf(“输入浮点数:”);
扫描频率(“%lf,%c”、&d和&c);
而(c!='\n')
{
printf(“无效号码,请重试”);
scanf(“%lf%c”、&d和&c);
}
}
双getDblLimited(双下限,双上限)
{
双a;
printf(“输入介于%f和%f之间的浮点数:”,下限,上限);
scanf(“%lf”、&a);
while(a=上限)
{
printf(“无效值,%f<值<%f:”,下限,上限);
scanf(“%lf”、&a);
}
返回a;
返回0;
}
您忘记了返回getDbl
中的任何内容,这些只是警告;表示函数getDbl
在实现结束时没有返回任何内容。但这表明你并不真正知道自己在做什么。听从乔纳森的建议和建议
我将解释警告:
由于它声明了double()
,这意味着您需要在末尾添加return
语句:
getDbl
getInt
(并查看如何)where'smain
function??这是一个由6部分组成的项目,在提交的这部分内容中,我们被告知不要包含主要功能,请(doc-)评论并正确格式化您的源代码。不要编写也不要呈现未注释的代码。想一想为什么它不抱怨intgetint(void)
(或者它真的抱怨了吗?double-getDblLimited()
?)。(应该避免重复的scanf()。您将获得积分,并鼓励其他人帮助您。我将如何返回它您的代码已经演示了如何从函数返回值。我不知道代码的要求(特别是为什么要扫描两个值),所以我无法告诉您要编写什么。这是您的代码;getInt()也有类似的问题。这到底有什么用?你需要读一本关于C的书,或者问问你的导师。不存在堆栈溢出来教授编程基础知识。
double getDbl(void) {
double d;
char c;
printf("Enter a floating point number:");
scanf("%lf,%c", &d, &c);
while (c != '\n') {
printf("Invalid number, please try again ");
scanf("%lf%c", &d, &c);
}
return d;
}
int getInt(void) {
printf("Enter an interger:");
int d;
char c;
scanf("%d%c", &d, &c);
while (c != '\n') {
printf("Invalid integer, please try again ");
scanf("%d%c", &d, &c);
}
return d;
}