C语言 求大神改成正确的 题目是:输入两个整数num1和num2,计算并输出它们的和、差、积、商和余数

#include<stdio.h>intmain(void){intnum1,num2;intx,y,z,k,j;print("Enternum1=",num1);sca... #include <stdio.h>
int main(void)
{ int num1,num2;
int x,y,z,k,j;
print("Enter num1=",num1);
scanf("%d",&num1);
print("Enter num2=",num2);
scanf("%d",&num2);
x=num1+num2;
y=num1-num2;
z=num1*num2;
k=num1/num2;
j=num1%num2;
print("num1+num2=x",x);
print("num1-num2=y",y);
print("num1*num2=z",z);
print("num1/num2=k",k);
print("num1%num2=j",j);

return 0;
}
我上C语言就4节课 新手
我把下面改成printf("num1+num2=%d",x);
printf("num1-num2=%d",y);
printf("num1*num2=%d",z);
printf("num1/num2=%d",k);
printf("num1%num2=%d",j);

提醒成功编译,但有警告信息.
xfc2_6.c: In function ‘main’:
xfc2_6.c:5: warning: too many arguments for format
xfc2_6.c:7: warning: too many arguments for format
xfc2_6.c:18: warning: format ‘%n’ expects type ‘int *’, but argument 2 has type ‘int’
xfc2_6.c:18: warning: too few arguments for format
有什么要改的吗? 谢谢
额 最后格式还要这样的
Enter num1:5

Enter num2:3

5+3=8

5-3=2

5*3=15

5/3=1.67

5%3=2
展开
 我来答
toints
2012-03-28 · 超过13用户采纳过TA的回答
知道答主
回答量:74
采纳率:0%
帮助的人:34.2万
展开全部
#include <stdio.h>
int main(void)
{ int num1,num2;
int x,y,z,j;
float k; /**得将k定义成实型的,即float或double型,因为除法结果有可能为小数,否则会导致错误*/
printf("Enter num1=");/**这一行是提醒输入数字num1,只需要引号里面的就可以了*/
scanf("%d",&num1);
printf("Enter num2="); /**这一行是提醒输入数字num2,也只需要引号里面的就可以了*/
scanf("%d",&num2);
x=num1+num2;
y=num1-num2;
z=num1*num2;
k=num1/num2;
j=num1%num2;
printf("num1+num2=%d\n",x); /**等于号后面应该是%d,%d表示输出的是整形数据,即你定义的int型*/
printf("num1-num2=%d\n",y); /**输出应该是printf而不是print,最好加上\n换行*/
printf("num1*num2=%d\n",z);
printf("num1/num2=%f\n",k); /**k定义的是float型,所以输出时应该是%f而不再是%d*/
printf("num1%num2=%d\n",j);
return 0;
}
}
/** 你可以运行一下我给你改的,我建议你以后编程要学会缩进,这样让程序结构给清晰。在学C语言方面有什么疑问也欢迎多和我交流*/
anhaoxiong
2012-03-28 · 超过14用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:37.1万
展开全部
k=num1/num2;
这句的发出警告是因为两个数相除,编译器是先把int型转化为float型,得到的结果也是float型的。你定义的k是int型的,编译器自动启动类型转换(把除得的float型转化为int型再赋值给k),你把这句改成:k=(int)(num1/num2);这个警告就不会出现了。

printf("num1/num2=%d",k);
这句发成警告是应为在printf函数中只要是 /n 。则作换行处理,你在 / 和 n 之间加一个空格 就不会有问题了:printf("num1 / num2=%d",k);

printf("num1%num2=%d",j);
如果这句还有问题,你同样加空格:printf("num1 % num2=%d",j);
有些符号是c语言规定的特殊符号,切记!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唐博1347
2012-03-28 · TA获得超过799个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:290万
展开全部
把print("num1+num2=x",x);
print("num1-num2=y",y);
print("num1*num2=z",z);
print("num1/num2=k",k);
print("num1%num2=j",j);

中=后面的xyzkj都改成%d,编译通过就可以了,最好加一个换行
编译的警告一定是会有的,但是有些警告并不会影响运行结果,不需要修改,你先运行下看结果正不正确
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
halolzh
2012-03-28
知道答主
回答量:1
采纳率:0%
帮助的人:1648
展开全部
虽然我是学C++的,不是很记得C的输出格式,但是感觉你的输出有问题,最后那几个没有说明X,Y,Z,K,J是什么类型的 应该类似printf(“i=%d”,i);之类的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zsx10110
推荐于2017-10-04 · TA获得超过8872个赞
知道大有可为答主
回答量:2369
采纳率:66%
帮助的人:3105万
展开全部
print改成printf就可以了
标准答案 拿去吧 除法进行的Int型的除法 自己懂得
#include <stdio.h>
int main(void)
{ int num1,num2;
int x,y,z,k,j;
printf("Enter num1=");
scanf("%d",&num1);
printf("Enter num2=");
scanf("%d",&num2);
x=num1+num2;
y=num1-num2;
z=num1*num2;
k=num1/num2;
j=num1%num2;
printf("num1+num2=%d\n",x);
printf("num1-num2=%d\n",y);
printf("num1*num2=%d\n",z);
printf("num1/num2=%d\n",k);
printf("num1%%num2=%d\n",j);
return 0;
}
追问
如果除法要保留2位呢
追答
那么num1 num2就得是double 但是 你的num1%num2 要求的是int型 所以不能改  你只是求商嘛  余数后面有求  所以没必要用double
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式