我的代码是获取最多1000000的任何整数的位数。这是我的代码,使用while
或for
或if
:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main() {
int t,num_of_seven_segment=0;
printf("Enter test case: ");
scanf("%d", &t);`
/* for(;t!=0;t=t/10)
{
if(t>=1000001)
break;
num_of_seven_segment++;
}*/
while(t!=0)
{
t=t/10;
num_of_seven_segment++;
}
printf(" %d",num_of_seven_segment);
getch();
}
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int t;
int num_of_sevensegment=0;
printf("enter test cases");
scanf("%d",&t);
if(t<1000000)
num_of_sevensegment+=6;
if (t<100000)
num_of_sevensegment--;
if (t<10000)
num_of_sevensegment--;
if (t<1000)
num_of_sevensegment--;
if (t<100)
num_of_sevensegment--;
if (t<10)
num_of_sevensegment--;
else if(t==1000000)
num_of_sevensegment=7;
printf("%d",num_of_sevensegment);
return 0;
}
答案 0 :(得分:0)
由于您使用的是在线评判,我会说在第一个代码的末尾添加return 0;
语句应该可以修复它。 getch()
通常不起作用。
此外(与运行时错误无关),我认为在线评委中不需要明确提示用户输入。
此外,在声明 - printf(" %d",num_of_seven_segment);
中,%d
之前似乎还有一个额外的空格 - 可能是错误答案的来源。