#include<stdio.h>
int main()
{
int n,i,a,x,d;
scanf("%d",&n);
for(i=1;i<=n;i++){
scanf("%d",&a);
if(a%2==0)
x=a/2;
if(a%4==0)
d=a/4;
else if(a%2!=0&&a%4!=0)
x=d=0;
else if(a%4!=0&&a%2==0){x=a/2;
d=0;
}
printf("%d %d\n",d,x);
}
return 0;
}
回答:说实话,你的程序我是没看懂的,这个计算0的个数的问题,代码如下:
#include<stdio.h>
//计算 0 的个数
int f(int a) {
int number = 0;
while (a > 0) {
int temp = a % 10;
if (temp == 0) {
number++;
}
a = a / 10;
}
return number;
}
//由于没有说明是如何输入的,如果仅仅输入多个数据后,一起输出,则需要放在数组里面,稍作修改即可
int main()
{
int a, number = 0;
while (true) {
printf("请输入一个int整数:");
scanf("%d", &a);
if (a < 0) {
a = -a;
number=f(a);
}
else if (a == 0) {
number = 1;
}
else {
number=f(a);
}
printf("0 的个数为:%d", number);
printf("\n");
printf("\n");
}
}
这里考虑了负数的情况,但在输入“000”时与情况不符,你看着再改改也行