C 如何计算数字中的数字,包括前导零?
此代码尝试计算输入数字中的位数 如果输入编号为C 如何计算数字中的数字,包括前导零?,c,scanf,C,Scanf,此代码尝试计算输入数字中的位数 如果输入编号为06584,则此代码的输出将为4,不包括零。如何将5作为输出(因此计算零) #包括 void main() { int n,c=0,d; printf(“输入否”); scanf(“%d”和“&n”); 而(n!=0) { d=n%10; C++; n=n/10; } printf(“位数=>%d\n”,c); } #包括 #包括 int main() { charn[101]; printf(“输入否”); 扫描频率(“%100s”,n); pri
06584
,则此代码的输出将为4
,不包括零。如何将5
作为输出(因此计算零)
#包括
void main()
{
int n,c=0,d;
printf(“输入否”);
scanf(“%d”和“&n”);
而(n!=0)
{
d=n%10;
C++;
n=n/10;
}
printf(“位数=>%d\n”,c);
}
#包括
#包括
int main()
{
charn[101];
printf(“输入否”);
扫描频率(“%100s”,n);
printf(“位数=>%d\n”,strlen(n));
}
如何计算数字中的数字,包括前导零
要计算输入的位数(包括前导0位数),请记录数字前后的扫描偏移量。此方法将符号字符报告为数字,但不计算前导空格
使用“%n”
记录到目前为止扫描的字符数
没有数学解决方案能够检测到前导零。您必须以字符串形式读取用户输入,并获取字符串长度。您应该在输入之前添加
printf
of n,而您将看到前导0(s)已消失char n[100];scanf(“%s”,n);c=strlen(n)代码>。这将为您提供假设输入有效的位数。要验证它是否确实是一个数字,请使用strtol
。对于像“-123”
这样的负输入,使用%n
,应该报告3还是4?
#include<stdio.h>
void main()
{
int n,c=0,d;
printf("Enter no\n");
scanf("%d",&n);
while(n!=0)
{
d=n%10;
c++;
n=n/10;
}
printf("No of digits=>%d\n",c);
}
#include<stdio.h>
#include <string.h>
int main()
{
char n[101];
printf("Enter no\n");
scanf("%100s",n);
printf("No of digits=>%d\n",strlen(n));
}
#include<stdio.h>
int main() {
int begin;
int after = 0;
int number;
printf("Enter number\n");
fflush(stdout);
// +--- consumes leading white-space
// | +- record number of characters scanned
scanf(" %n%d%n", &begin, &number, &after);
if (after > 0) {
printf("No of digits: %d\n", after - begin);
printf("Value read : %d\n", number);
} else {
puts("Invalid input");
}
}
Enter number
000123
No of digits: 6
Value read : 123