一道c语言的题,高分悬赏(最好有注释)

编写一个名为liquid()的c语言函数,要求接收一个整型数字以及变量gallons,quarts,pints和cups的地址。被传递的整数表示杯的总数total以及以及这个函数要确定被传递数值中的加仑、夸脱、品脱和杯数的数量。使用传递的地址,这个函数应该直接改变调用函数中各自变量的数值。使用这个关系式:2杯等于1品脱,4杯等于一夸脱,16杯等于1加仑。
如用英文解答将追加分数50:
write a c function named liquid() that is to accept an integer number and the addresses of the variables gallons,quarts,pints and cups.the passed integer represents the total number of cups,and the function is to determine the number of gallons,quarts,pints and cups in the passed value.using the passed addresses,the function should directly alter the respective variables in the calling function.use the relationships of 2 cups to a pint,4 cups to a quart,and 16cups to a gallon.
最好有详解,谢谢~O(∩_∩)O
我现在学c语言不到3个月,学的不是很深,都是基础,希望大家能够用简单点的方法帮我解——使用函数模块(属于流程控制)我们现在学到的有数据处理和交互式输入,流程控制(选择控制和循环控制)谢谢大家,麻烦好心人了~!

这个函数的意思就是,你有178块钱,那么你就要转换成1张100的,1张50的,1张20的,1张5块的,1张2块的,1张1块的。
只不过你的问题没有我举的例子这么复杂。
#include<stdio.h>
void TransChange(int total,int *gallon,int *quart,int *pint,int *cup)
{
*gallon=total/16;//get the number of gollon
total=total%16;//change the total at the quart
*quart=total/4;//get the number of quart
total=total%4;//change the total at the pint
*pint=total/2;//get the number of pint
total=total%2;//change the tatal at the cup
*cup=total;//get the number of cup
}
void main(void)
{
int total,gallon,quart,pint,cup;//define the variables
printf("please input the total of cup\n");//register input
scanf("%d",&total);//input the variable of total
TransChange(total,&gallon,&quart,&pint,&cup);
printf("The result is %d gallons,%d quarts,%d pints,%d cups\n",gallon,quart,pint,cup);//output the result
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-12-02
好简单的题目啊!how simple this question is!

#include<stdio.h>
void TransChange(int total,float *gallon,float *quart,float *pint,float *cup)
{
*gallon=total/16.0;
*quart=total/4.0;
*pint=total/2.0;
*cup=total;
}

int main(void)
{
int total;
float gallon,quart,pint,cup;

printf("Please input the total of cups:\n");
scanf("%d",&total);
TransChange(total,&gallon,&quart,&pint,&cup);
printf("The result is %f gallons or %f quarts or %f pints or %f cups.\n",gallon,quart,pint,cup);
return 0;
}
第2个回答  2008-12-02
Define a struct which include 4 members:gallons,quarts,pints,cups.
Define variable "total" for "input cups";the function liquid() would caculate the data of the struct's member according to the "cups".
/********************Start Program***************************/
typedef struct
{
int gallons;
int quarts;
int pints;
int cups;
} TLIQUID;

void liquid( TLIQUID *this, int total )
{
this->gallons = ( total/16 );//16cups to a gallon
this->quarts = ( total/4 ); //4 cups to a quart
this->pints = ( total/2 ); //2 cups to a pint
this->cups = ( total ); //cups to cups:)
}
/*************************************************************/
I assume it should be OK,try it:-)
And, DO NOT FORGET the REWORD-_-

求高手解答一些简单的C语言题目!(高分悬赏)
min=i; \/*有比当记录还小的就记录下他的下标*\/ } if(s[max]<s[i]){ max=i; \/*有比当记录还大的就记录下他的下标*\/ } } printf("数组的最小值:%.2f\\n数组的最大值%.2f\\n",s[min],s[max]);} main(){ int i;float s[10];printf("求数组中最小最小值\\n\\n");printf(...

C语言编写一个程序,急用!!高分悬赏(正确答案追加分数)
printf("===十道题目回答如下===\\n\\n");for(int j = 0; j < 10; j++){ printf("%d + %d = %d\\t", plu[j][0], plu[j][1], plu[j][2]);if(plu[j][2] != plu[j][3])printf("(正确答案为%d)", plu[j][3]);printf("\\n");} printf("输入任意键返回主菜单\\...

用C语言编程组合与排列的生成,很着急。。高分悬赏。下周要交。悬赏可以...
include <stdio.h> int m,n,k;int array[1001];int flag[1001];void combination(int now,int lenght);void arrange();int main(){ scanf("%d %d", &m, &n);combination(1, 0);k = 0;arrange(0);printf("总共有%d种排列方式\\n", k);return 0;} void combination(int now, int...

【c语言判断题】求详解,高分悬赏
1、结构体类型是用户把基本类型整合成的一个类型,是用户自定义类型。所以C语言没有原生的结构体类型,所以第一句应该是对的的。2、对,论述如1 3、结构体变量指针,是一个指针类型的变量。它的内容可以是一个结构体的首地址,也可以是\\0(也就是空),所以指针只有赋值了以后才是指向那个结构体变...

高分悬赏这道题的解法(C或C++,也可以是思路)
先分析A,B和C可能出现的数值 首先C是最大的并且是三位数,所以A的百位数只可能是1 2 3 再来看B,应为B是A的两倍,所以B的百位数只可能是2到6之间,3*A的最大值只有987,所以A<325,所以B的百位数只可能到6。然后C的百位数就是3到9之间。以上分析当然是一个笼统的分析而已,可以更加详细...

高分悬赏 求三维数据点C语言插值计算程序
2.一维拉格朗日插值c语言程序:Int lagrange(x0, y0, n, x, y)Float xo[], yo[], x;Int n;Float *y { Int i, j;Float p;y=0;If (n>1){ For(i=0;i<n;i++){ P=1;For(j=1;j<n;j++){ If(i!=J)P=p*(x-x0[j]\/x0[i]-x0[j]);} y=*y+p*y0[i];Return...

c语言0到任意数的连加,求和 高分悬赏
C语言求100以内的奇数和,偶数和13 C语言编程实现计算1到100之间的奇数之和32 更多相关问题>> 用APP一键提问“c语言0...”的问题 回答 include <stdio.h> main(){ int sum1(0),sum2(0);for(int i = 0 ; i < 101 ; i++){ if(i%2 == 0)sum1++;else sum2++;} printf("%d ...

C语言基础N多题~~~高分悬赏
21.若有以下定义和语句:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则不能正确表示a数组元素的表达式是()A)*p B)a[10] C)*a D)a[p-a]22.在以下一组运算中,优先级最高的运算符是()A)<= B)= C)% D)&& 23.设有如下程序,运行结果是()...

图中找回路 C语言编程 跪求大神帮助 高分悬赏 采纳 追加分数
(2)用深入优先(DFS)从任 一顶点v0开始搜索,在搜索过程中标记访问过的顶点和边,如果有某个顶点未访问,且该顶点有一条边与v0相连,即找到一条回路。伪码差不多是这个样子吧。int DFS(Graph G,int vj){ visited[vj]=TRUE;for(vj所有邻接点vi){ if(visited[vi]=FALSE){ if(Edge[vj][...

C语言大神帮帮我啊!!帮帮忙,我悬赏高分帮帮忙!!在线等待
void Swap(int &a,int &b){ int temp=a;a=b;b=temp;} void Perm(int list[],int k,int m)\/\/k表示前缀的位置,m是要排列的数目.{ if(k==m-1)\/\/前缀是最后一个位置,此时打印排列数.{ int tag=0;for(int i=0;i<m;i++){ if(list[i]==i+1){ tag=1;break;} } if(!

相似回答