题目内容: 从键盘输入一个int型的正整数n(已知:0<n<10000),编写程序判断n落在哪个区间。
发布网友
发布时间:2022-05-26 11:29
我来回答
共2个回答
热心网友
时间:2023-10-15 01:57
示例1不正确
#include"stdio.h"
int po(int i)
{
int j;
j=1;
while (i)
{
j*=10;
i--;
}
if (j==1) j--;
return j;
}
int nu(int i)
{
int j;
j=0;
while (i)
{
i/=10;
j++;
}
return j-1;
}
int main()
{
int n;
printf("Please enter the number:\n");
scanf("%d",&n);
if (n < 0||n > 10000) {printf("error!\n");return 0;}
printf("%d: %d-%d\n",n,po(nu(n)),po(nu(n)+1)-1);
return 0;
}
这是网上找到的
下面是我自己的
#include <stdio.h>
int main()
{
int a;
printf("Please enter the number:\n");
scanf("%d",&a);
if (a>=1000 & a <= 9999)
printf("%d: 1000-9999\n",a);
else if (a <= 999 & a >= 100)
printf("%d: 100-999\n",a);
else if (a <100 & a >= 10)
printf("%d: 10-99\n",a);
else if (a>=0 &a < 10)
printf("%d: 0-9\n",a);
else printf("error!\n");
return 0;
}
热心网友
时间:2023-10-15 01:57
大家可以一一用分支语句实现这个程序,但是,如果情况太多的话,分支语句太麻烦,我这里用膜除的方法实现他,对于细分到更小的范围也适用,只需修改循环变量就可以了。
#include<stdio.h>
#include<stdlib.h>
main(){
int n,i=1;
printf("Please enter the number:\n");
scanf("%d",&n);
while(i<=10000){
i*=10;
if(n%i==n)
break;
}
if(i>10000||n<0)
printf("error!\n");
else if(i>10)
printf("%d: %d-%d\n",n,i/10,i-1);
else
printf("%d: 0-9\n",n);
system("pause");
}