求c语言高手看看我哪里出错了?

#include<stdio.h>
main()
{
void liquid(int *);
int *gallons,*quarts,*pints,*cups,total;
printf("请输入杯数:");
scanf("%d",&total);
liquid(&total);
printf("%d *gallons,%d *quarts,%d *pints,%d *cups",*gallons,*quarts,*pints,*cups);
return 0;

}
void liquid(int *total)
{
int *gallons,*quarts,*pints,*cups,*total;
if(*total>16)
{*gallons=*total/16;}
else
{*gallons=0;}
if((*total-*gallons*16)>4)
{*quarts=(*total-*gallons*16)/4;}
else
{*quarts=0;}
if((*total-*quarts*4)>2)
{*pints=(*total-*quarts*4)/2;}
else
{*pints=0;}
*cups=(*total-*pints*2);
return;
}

第1个回答  2012-04-20
看你的程序,你最后要输出*gallons,*quarts,*pints,*cups这些值,但是你的子函数和主函数的变量是不同的,也就是说在你的子函数中处理过,但是主函数中的没有变的,所以在执行程序的时候直接弹出强制关闭的窗口吧。你要把它们都当作参数传入函数,要么就用全局变量
第2个回答  2012-04-20
1. 函数定义放在main前面,不然找不到。
2.liquid函数有个int *total参数,然后内部又定义了一个int *total重定义了
3.main前面加个void

改后试试行不行追问

有才啊 ,一个警告没了,可他还是运行的时候停止工作啊,

追答

int 就用int类型,别用指针,参数用int &a引用

本回答被网友采纳
第3个回答  2012-04-20
17: error: 'total' redeclared as different kind of symbol
//第十七行的 'total' 有不同定义
15: note: previous definition of 'total' was here
//前面的 'total' 定义在第十五行

只有这一个报错......

Devc c语言求大神看看哪里出错了
int main(){int x;scanf("%d",x);if(x%3==0&&x%7==0) \/\/这里不能有分号 { printf("yes\\n");} else { printf("no\\n");} return 0;}

C语言,帮忙看一下哪里错了?
错误有以下几处:1、第二行,改为:int GC(int a,int b,int c)。2、第四行和第五行,去掉。3 、第六行,改为:if(a==b&&b&&c)printf("为等边三角形\n");4、第七行改为:return 1;其他不用改,应该就好了。如果还不行请留言。

c语言:如图,请问一下哪里出错了?
首先解答一下这个C语言代码出错的原因:第一个gets未定义:出现这个错误一般是没有包含相应的头文件,或者库里没有这个函数。这里应该是没有这个函数。gets(char *dest)是一个老的库函数,采用这个函数存在越界的安全隐患。它只有一个参数,如果输入的字符个数超过dest内存空间,程序可能失败,也可能被黑客...

一段C语言代码不知道错哪儿了,请高手指教
编译错误,一般是语法有问题,程序在编译是就产生错误不能编译成目标文件,比如包名或内部类名写错误等等。运行错误,就是程序通过编译,却在运行时出错,一般是逻辑上的问题,比如数组越界,空指针等等。比较常见的运行时错误是在做除法运算时所产生的“除数为零”错误。如下列 VB 代码:Dim a As Doubl...

我是c语言小白,问问大神帮我看看编写的简单程序这哪里出错了?
#include<stdio.h> 输入代码时忽视输入法隐藏的错误 表面上看都是一样的代码,但是第二行就有错误,是全角和半角的不同,再看:正确编译运行 所以你的代码没有任何问题,但是要注意代码输入的方法。以前回答了很多,有时间可以看看我最近回答c语言问题:网页链接 网页链接 网页链接 网页链接等等。

这个C语言代码执行不起来,求大神看下哪里出错了需要改下
把float b = 123.96;改成float b = 123.96f;。把printf ("a=%d,%5d,%o,%x\\n",a,a,a,a,);改成printf ("a=%d,%5d,%o,%x\\n",a,a,a,a);。把printf ("b=%f,%lf,%5.4lf,%7.2e\\n",b,b,b,b,);改成printf"b=%f,%lf,%5.4lf,%7.2e\\n",b,b,b,b);。

将一列数倒序排列,用C语言,请帮我看看哪里出错了?
你第一个循环,即给一个数组赋值输入的时候,下标是从0开始,到n-1结束。第二个循环,即输出的时候是从n到0,所以出错了。把第二个for里面改为i=n-1;i>=0;i--

关于C语言的,大师们帮帮忙。看看那里出错了,调试的时候出现错误。_百 ...
1、scanf("a=b=",&a,&b);这样也行? 改成scanf("%d,%d"&a,&b)吧!2、if(a=b)?? 改成if(a==b)吧?3、把if前面的那个大括号写到if的下一行来吧

求会C语言的大神看看哪出错了题目:,输入一数,为正求平方根,为负求绝对...
if(x>0){a=sqrt(x);printf("%f",a);}else if(x<0){a=abs(x);printf("%f,a");}else printf("Bey,Bey");如果if else 语句下面没有带括号包含语句体的话,那么默认执行完if 判断后只执行紧挨着的第一个语句,然后顺序执行下一条语句。也就是说,如果你的if条件不成立,那么printf语句...

C语言报错,请问哪里出错了?该怎么改?
系统显示两个错误,其实都是指向max的申明问题的。如下:在main函数中使用了max,但是max没有事先申明。C语言规定用户自定义的变量和函数都需要事先申明。修改方法是:在main函数之前申明max函数 max(float x,float y);修改编译后错误消失:2.现在只有两个警告,第一个警告是说明main函数应该有无类型...

相似回答