c 语言题请帮我看下我这样做对不对

来源:百度知道 编辑:UC知道 时间:2024/06/17 02:24:10
这道题是这样的:(float)(a+b)/2+(int)x%(int)y
设:a=2;b=3;x=3.5;y=2.5;
我是这样做的:
#include <stdio.h>
void main()
{
float x,y;
int a,b;
a=2;b=3;x=3.5;y=2.5;
printf("f%x f%y\n",x,y);
printf("d%a d%b\n",a,b);
}
运行结果是:f3 fy d%a d%b
我这样做到底对不对,
你们是怎么做的呀,那正确的做法是怎样的,为什么?
然后在麻烦你们说明一下。谢谢了!!!小弟的刚学的
哈哈,哈哈……,有没有搞错,你们没有一个是对的,应该是这样做才对:
#include <stdio.h>
void main()
{
int a,b;
float x,y;
a=2;
b=3;
x=3.5;
y=2.5;
(float)(a+b)/2+(int)x%(int)y;
printf("%d\n%d\n",a,b);
printf("%f\n%f\n",x,y);
}

3.50000

(float)(a+b)/2+(int)x%(int)y 等于3.500000
小朋友,这只是一条C语句.
天才,你还能为这条语句扩展.

不对啊
第一,a和b是float x和y是int 这个你反了
还有在你printf之前最好再设一个参数比如说m
然后你先m=(float)(a+b)/2+(int)x%(int)y
最后再printf 参数m就好了

怎么看着有点晕 你不应加引号 对于计算的表达市

强人。。。头次见到这么写。。。
include <stdio.h>
void main()
{
float x,y;
int a,b;
a=2;b=3;x=3.5;y=2.5;
printf("%f %f\n",x,y);//记住啊,编译器会按顺序替换格式化字符的
printf("%d %d\n",a,b); //这个也一样
}

/*不过按照提义,你写错了*/:
#include <stdio.h>
int main()
{
int x,y;
float a,b;
scanf("%f %f",&a,&b);
scanf("%d %d",&x,&y);
float an=(a+b)/2+x%y;
printf("%f\n",an);
return 0;
}
//是这样吧。。。
//gcc下编译通过

当然不对。答案应该是3.5的 先给你一个C++的,后面再给一个C的
//C++的编译
#include <iostream>
using namespace std;
int main()
{int a=2,b=3;
float s