发布网友 发布时间:2022-04-22 04:23
共4个回答
热心网友 时间:2022-07-11 01:27
#include<stdio.h>
main()
{int a,b,S,Y; /*S为商,Y为余数*/
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
S=a/b;
Y=a%b;
printf("商S=%d,余数Y=%d\n",S,Y);
}
如果要求精确商的话,可以这样:
#include<stdio.h>
main()
{int a,b,Y; /*S为商,Y为余数*/
double S;
scanf("%d%d",&a,&b);
printf("a=%d,b=%d\n",a,b);
S=(double)a/b;
Y=a%b;
printf("商S=%f,余数Y=%d\n",S,Y);
}
热心网友 时间:2022-07-11 01:28
这涉及到强制转换的问题,但碰到%又行不通了.这里我提供一种方法:
int
main()
{
flout
m,n;
long
s;
s=90657;
m=100000*int((float)s*(float)s/100000);
n=(float)s*(float)s-m
printf("%d",n);
}
注意到了90657已经超过了int型的范围,所以我改了long定义s.
再就是强制转换(float),可把后面跟的变量值转换为相应类型.
最后利用到了求余数的方法.先把a转换为实型,一个数a对另一个数b取余后,余数等于a-b*float(a/b).再把最后的值转化为整型表示即可,若整数部分太大不能转也没关系,因为只是后面多了一些0.
printf("%d",n);
改回为printf("%f",n);
也没关系的.
对于long
的问题,我想说这是计算的问题;90657*90657/100000,计算机得先计算90657*90657,而这已经超出了long的范围.虽然整个值看起来没超过,但90657*90657就已经不能通过.
热心网友 时间:2022-07-11 01:28
都不记得了...
你的意思我也不太明白
你意思是编写对任意数求余的c程序吗?
void
main()
{
int
n,s;
printf("输入要求余的数\n");
scanf("%d",&n);
printf("输入除数\s");
scanf("%d",&s);
printf("余数是%d\n",n%s);
}
是不是这样?
热心网友 时间:2022-07-11 01:29
#include <stdio.h>
void main()
{
int i,j,a,b;
scanf("%d,%d",&i,&j);
a=i/j;b=i%j;
printf("%d,%d",a,b);
}