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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言 求大神改成正确的 题目是:输入两个整数num1和num2,计算并输出它们的和、差、积、商和余数相关的知识,希望对你有一定的参考价值。

#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

#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语言方面有什么疑问也欢迎多和我交流*/
参考技术A 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语言规定的特殊符号,切记!
参考技术B 把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,编译通过就可以了,最好加一个换行
编译的警告一定是会有的,但是有些警告并不会影响运行结果,不需要修改,你先运行下看结果正不正确
参考技术C 虽然我是学C++的,不是很记得C的输出格式,但是感觉你的输出有问题,最后那几个没有说明X,Y,Z,K,J是什么类型的 应该类似printf(“i=%d”,i);之类的 参考技术D 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

本回答被提问者采纳

c语言,求任意一个整数各位数字之积

c语言,求任意一个整数各位数字之积刚学编程,请大神用简单一点的语言

以下是一个将整个过程封装为函数的示例代码,可以输入一个整数,然后计算该整数各位数字之积:

```c
#include <stdio.h>

int digit_product(int num)
int product = 1;
while(num != 0)
product *= num % 10; // 计算每个数字
num /= 10;

return product;


int main()
int num, product;
printf("请输入一个整数:");
scanf("%d", &num);
product = digit_product(num);
printf("%d 各位数字的乘积是 %d
", num, product);
return 0;

```

在上面的代码中,我们使用了一个 while 循环对输入的整数进行各位数字计算。对于每个数字,我们使用 % 运算符获取数字的各位数值,然后计算它们的乘积得到总的乘积。最后,将计算出的乘积返回。

示例输出:

```
请输入一个整数:12345
12345 各位数字的乘积是 120
```

希望这个示例代码可以帮助你实现你所需的功能。
参考技术A #include <stdio.h>
void main()

int num,count = 1;
scanf("%d",&num);
while(num > 0)

count = count*(num%10);
num = num/10;

printf("%d \n",count);
参考技术B

int d = 1234, res = 1;

while (d > 0)res *= d % 10; res /= 10;

以上是关于C语言 求大神改成正确的 题目是:输入两个整数num1和num2,计算并输出它们的和、差、积、商和余数的主要内容,如果未能解决你的问题,请参考以下文章

三道C语言位运算题目,求大神!

C语言如何求一个整数的各个位数之和

C语言 输入5个整数数,求最大和最小值

java语言编写一个程序,从键盘输入一个整数,将其转换为二进制数并输出 求大神帮忙

C语言设计编程,求大神解答!一个字符串,求存在多少子序列为"LOVE" ?

C语言程序设计:求n个数的最小公倍数。