如何调用对整数中的数字进行计数的函数
How to call function that counts digits in an integer
我的函数应该得到一个非负整数,return 这个数字有多少位,例如数字 563 函数 return 3。
对于 0 将 return 1.
*我是 c 的新手,所以它对我来说仍然很混乱。
谢谢
这是我的代码:
#include <stdio.h>
int numOfDigits(int n); //Declartion
void main()
{
int num1, counter = 0, newNum;
printf("Enter A Number: ");
scanf("%d", &num1);
}
int numOfDigits(int n1)
{
int counter = 0;
if (n1 == 0)
return 1;
while (n1 > 0) {
counter++;
n1 /= 10;
}
return counter;
}
我应该写什么才能使程序运行?
只需调用您制作的数字计数函数并将其return值赋给一个变量,然后使用printf()
函数打印该变量的值;或者,在 printf()
中调用您的数字计数函数作为参数:
#include <stdio.h>
int numOfDigits(int n);
int main(void)
{
int num1;
int counter = 0;
printf("Enter A Number: ");
scanf("%d", &num1);
counter = numOfDigits(num1);
printf("number of digits: %d\n", counter);
//printf("number of digits: %d\n", numOfDigits(num1)); alternate method
}
int numOfDigits(int n1)
{
int counter = 0;
if (n1 == 0)
return 1;
while (n1 > 0) {
counter++;
n1 /= 10;
}
return counter;
}
一些注意事项:
- 既然你提到你需要得到一个 non-negative 数字,考虑使用
unsigned int
类型,并将 scanf()
和 printf()
调用中的格式说明符更改为 "%u"
.
- 函数
main
应声明为 int main(void)
或 int main(int argc, char **argv)
我的函数应该得到一个非负整数,return 这个数字有多少位,例如数字 563 函数 return 3。 对于 0 将 return 1.
*我是 c 的新手,所以它对我来说仍然很混乱。 谢谢
这是我的代码:
#include <stdio.h>
int numOfDigits(int n); //Declartion
void main()
{
int num1, counter = 0, newNum;
printf("Enter A Number: ");
scanf("%d", &num1);
}
int numOfDigits(int n1)
{
int counter = 0;
if (n1 == 0)
return 1;
while (n1 > 0) {
counter++;
n1 /= 10;
}
return counter;
}
我应该写什么才能使程序运行?
只需调用您制作的数字计数函数并将其return值赋给一个变量,然后使用printf()
函数打印该变量的值;或者,在 printf()
中调用您的数字计数函数作为参数:
#include <stdio.h>
int numOfDigits(int n);
int main(void)
{
int num1;
int counter = 0;
printf("Enter A Number: ");
scanf("%d", &num1);
counter = numOfDigits(num1);
printf("number of digits: %d\n", counter);
//printf("number of digits: %d\n", numOfDigits(num1)); alternate method
}
int numOfDigits(int n1)
{
int counter = 0;
if (n1 == 0)
return 1;
while (n1 > 0) {
counter++;
n1 /= 10;
}
return counter;
}
一些注意事项:
- 既然你提到你需要得到一个 non-negative 数字,考虑使用
unsigned int
类型,并将scanf()
和printf()
调用中的格式说明符更改为"%u"
. - 函数
main
应声明为int main(void)
或int main(int argc, char **argv)