初级C语言问题!! 请进。

作者&投稿:彤虽 (若有异议请与网页底部的电邮联系)
C语言初级试题,大虾请进!~

fi


max is 2


<
b

第4题是不是题目错了
plus函数里 是return(z)吧
如果是return(z)的话 答案是
A+B=9
如果是return(x) 答案是A+B=4

hELLO!


f


4 12

8 8

字符或字节

缓冲文件系统

#include "graphics.h"
#include "stdlib.h"
#include "stdio.h"
#include "fcntl.h"
#include "dos.h"
union REGS r;

struct MOUSE{
int getit;
int x1;
int y1;
int x2;
int y2;
}ms;
void MSB(float,float,float,float,int,int,int,int,int);
void mouse_drop(struct MOUSE *in);
/*定义鼠标拖动的函数,通过鼠标的按下、放开来选定一个矩形区域*/
int data_processor(struct MOUSE m,float *x0,float *x1,float *y0,float *y1);
/*将鼠标选定的区域转化成MSB集的区域*/

void mouse_IQR(int *num,int *bx,int *cx,int *dx)
{/*调用鼠标的中断,在这里定义函数让下面一些函数调用,以减少编程的重复,
在这里,通过int86函数(在dos.h里)调用中断,鼠标的中断号为:33h */
r.x.ax=*num;
r.x.bx=*bx;
r.x.cx=*cx;
r.x.dx=*dx;
int86(0x33,&r,&r);
*bx=r.x.bx;
*cx=r.x.cx;
*dx=r.x.dx;
*num=r.x.ax;
}


int init_mouse()
{
/*初试化鼠标,查询鼠标驱动有没有安装,功能号为 0 */
int num=0;
mouse_IQR(&num,&num,&num,&num);
if(num!=-1)
return 1;
else return 0;
}

void mouse_show();
void mouse_position(int *x,int *y)
{/*鼠标在屏幕中所处的位置*/
int button=0,num=3;
mouse_show();
mouse_IQR(&num,&button,x,y);
}

void mouse_hide()
{/*隐藏鼠标光标*/
int num=2;
mouse_IQR(&num,&num,&num,&num);
}

void mouse_show()
{/*显示鼠标光标*/
int num=1;
mouse_IQR(&num,&num,&num,&num);
}

int mouse_click(int k)
{/*查询鼠标是使用左键(返回1)还是右键(返回2)*/
int bx=0,num=3;
mouse_IQR(&num,&bx,&num,&num);
return(bx&k);
}

void waiton(int buttom)
{/*等待鼠标动作*/
if(buttom==1)
while(mouse_click(1));
if(buttom==2)
while(mouse_click(2));
}

int mousexy(int x1,int y1,int x2,int y2)
{/*查询鼠标是否在区域内*/
int x,y;
mouse_position(&x,&y);
if(x>x1&&xy1&&yL||m<-1e10) break;
x=xx;
y=yy;
}
color=n%16;
putpixel(x1+i,y1+j,color);

}
}
}
void mouse_drop(struct MOUSE *in)
{
char out[20];
int x,y;
int oldx,oldy;
struct MOUSE r;
r=*in;
setwritemode(1);
setlinestyle(USERBIT_LINE,0x7777,1);
setcolor(15);
if(r.getit==1)
{
mouse_hide();
rectangle(r.x1,r.y1,r.x2,r.y2);
mouse_show();
}
mouse_position(&x,&y);
r.x1=x;
r.y1=y;
oldx=x;
oldy=y;
r.getit=1;
mouse_hide();
rectangle(x,y,x,y);
mouse_show();
while(mouse_click(1)) {mouse_position(&x,&y);
if(oldx!=x || oldy!=y){
mouse_hide();
rectangle(r.x1,r.y1,x,y);
rectangle(r.x1,r.y1,oldx,oldy);
mouse_show();
oldx=x;
oldy=y;
}
if(mouse_click(2)){
r.getit=0;
mouse_hide();
rectangle(r.x1,r.y1,oldx,oldy);
mouse_show();
waiton(2);
break;}
}
if(r.getit==1){
r.x2=x;
r.y2=y;
if(x==r.x1 && r.y1==y)
r.getit=0;
else
r.getit=1;
}
setlinestyle(SOLID_LINE,0,1);
*in=r;
waiton(1);
setwritemode(0);
setmouse(0,0,getmaxx(),getmaxy());
}

int data_processor(struct MOUSE m,float *x0,
float *x1,float *y0,float *y1)
{
float d1,l1,d2,l2,d,l;
float xx0,xx1,yy0,yy1,x,y;
d1=*x1-*x0;
l1=*y1-*y0;
d2=637;
l2=477;
xx0=m.x1;
xx1=m.x2;
yy0=m.y1;
yy1=m.y2;
if(xx0==xx1 || yy0==yy1) return(0);
if(xx0>xx1)
{x=xx0;
xx0=xx1;
xx1=x;
}
if(yy0>yy1)
{x=yy0;
yy0=yy1;
yy1=x;
}
d=1;
l=1;
x=*x0;
y=*y0;
*x0=x+(xx0-d)*d1/d2;
*x1=x+(xx1-d)*d1/d2;
*y0=y+(yy0-l)*l1/l2;
*y1=y+(yy1-l)*l1/l2;
if(*x0==*x1 || *y0==*y1)
return(0);
else
return(1);
}


不懂再问!

同学,你好,我看到你的问题了,原因就出在你不明白的这个地方,
m=max(a,max(a,b));本身的意思是:函数的嵌套。

它的运算步骤是:设定 xx=max(a,b)
则:m=max(a,max(a,b));首先运算 xx=max(a,b)
然后再运算:m=max(a,xx),
这道题错误的原因不是在你不理解这个地方,而是你得到的结果前两个参数的最大值,
若想得到三个数据的最大值,需要更改的地方是:
m=max(a,max(b,c));

意思是先比较 b,c中的最大值,然后再和a比较取出最大值。

m=max(a,max(a,b));
改成m=max(c,max(a,b));

max(a,b)是返回a和b的较大者,
然后
m=max(c,max(a,b));
返回值再和c比较,得出较大者,赋值给m

m=max(a,max(a,b)); 是什么意思.
这是比较 而且你只比较了a和b,

就是只比较了你输入的前2个数字

所以导致 你输入 1 1 2时 a=1,b=1,c=2但是你程序没有比较C

所以显示1!

为什么参数内又有一个max(a,b)

比较 a和b的值取出较大的!

m=max(a,max(a,b));
这句错了...变成m=max(c,max(a,b));就行了...
这句的意思是先将a与b比罗..大的那个再与c比较..简单的嵌套..

m=max(a,max(a,b)); 应该改成m=max(c,max(a,b)); max(a,b)放在那个函数中是进行调用,因为函数返回了一个整型的值!可以直接用于比较。

m=max(a,max(a,b)); 改成m=max(a,max(b,c));
记得给我加分哦


淮阳县13942708169: C语言编程初学问题 -
畅倪复方: (1)程序输出:c1=a;c2=b;c1=97;c2=98;因为:你用%c,就是你要输出一个字符,97的ascii码就是小写字母a,98为b; (2)如果你把c1=197,c2=198,应该会提示隐式转换吧,如果定义char c1,c2,默认为有符号的char型,取值范围为-128~127,因此输出的是197-256=-59,198-256=-58,貌似用%c一般机器输出的是?吧,一般的就输出0-127能输出字符吧. (3)换成int和(2)的%c一样,%d就是int的值.

淮阳县13942708169: C语言问题 初级
畅倪复方: 首先在C盘放一个mp3声音文件,在打印输出aaa的同时,播放这段mp3声音文件.就可以看到输出aaaa的同时播放声音了. #include <stdio.h>#include <windows.h>#pragma comment(lib, "winmm.lib") int main(){ mciSendString("open \"C:\\aaa.mp3\" alias file", NULL, 0, NULL); mciSendString("play file", NULL, 0, NULL); printf("aaa"); getchar();}

淮阳县13942708169: C语言的一些初级问题.
畅倪复方: 加换行符代表按enter键结束输入;不加也可以; 那个表达式肯定是错误的,不能那么写; &这个是取地址符,就是把数存在那个内存里.

淮阳县13942708169: 关于C语言的初级问题
畅倪复方: 无符号类型和 有符号类型的区别就是取值范围和正负问题. 取值范围:对于同一类型,如果所占的字节为n的话,它的无符号类型的范围就是0~(2^8n)-1;有符号类型的范围就是-(2^8n)/2-1~(2^8n)/2; 正负问题:从上面的取值可以看出,无符号类型只有正数,有符号类型包括正负数; 具体在什么时候用,要看你的程序设计了..

淮阳县13942708169: 初级C语言问题
畅倪复方: printf("%s",a); 输出ABCD printf("%s",*a); 输出类型不匹配的错误信息. printf("%c",*a); 输出A(字符串的第一个字符A) printf("%d",*a); 输出65(字母A的ASCII码)

淮阳县13942708169: c语言初级问题 -
畅倪复方: for(i=0,i<3;i++) for(j=0,j<3,j++) if(arr[i][j]<m) {m=arr[i][j];row=i;col=j;} 这个循环会把arr[3][3]所有元素都轮询一遍,目的就是找其中的最小元素 当然 -850最小所在row,col为2,0

淮阳县13942708169: C语言初级问题 -
畅倪复方: 你定义的是char类型,scanf获得的是string类型,肯定会出错,把转换字符%s换成%c就行了.

淮阳县13942708169: C语言初级问题!
畅倪复方: 那里是写句子的代码如下: #include"stdio.h" #include"math.h" void main() { double a,b; a=2*3.14-1; b=log(sqrt(a))/log(5); printf("%f\n",b); getchar(); }

淮阳县13942708169: 关于C编程的初级小问题,很有意思的!!! -
畅倪复方: 首先素数是:它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积,例如:7 为了更清楚的让你理解,我就用举例的方法,来说一下.我们就拿7来举例.当在...

淮阳县13942708169: C语言初级超简单问题 希望有人回答正确 -
畅倪复方: 说简单点,C语言里 “=”运算符的运算规则是把 后面的赋值给前面的 前一段a+b有值 后一个a+b 不是变量名 c是变量名 而a+b 不是一个规范的变量名 前一个语句是把 a+b的值赋值给c 后一个语句错在1,a+b不是合格的变量名2,c没定义3,c没有值,即当作字符处理,将c字符赋值给"a+b"= =!这什么东西啊

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网