C语言问题输入一个正整数求出它是几位数;输出原数和位数。 为何不行

#include<stdio.h>

void count(char []);
int digit;
int main(void)
{

char text[80];
printf("Please input numbers:\n");
gets(text);
printf("Numbers:\n");
puts(text);
digit=0;
count(text);
printf("digit:%d\n",digit);
return 0;
}
void count(char str[])
{
int i;
for(i=0;str!='\0';i++)
{
if(str[i]>='0'&& str[i]<='9')
digit++;
}
}

count函数有错,改一下:
void count(char str[]){
int i;
for(i=0;str[i]!='\0';i++)
digit++;
}
就可以了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-01-20
void count(char str[])
{
int i;
for(i=0;i<=sizeof(str);i++)
{
if(str[i]>='0'&& str[i]<='9')
digit++;
}
}
方法不对。
而且:为什么不直接输出:sizeof(str);这个最直接了····
第2个回答  2014-01-21
//用系统函数就行了,不用那么麻烦
#include <stdio.h>
#include <string.h>
int main()
{
char text[80];
gets(text);
printf("%d\n%s\n",strlen(text),text);
return 0;
}

//准确来说你的做法不符合题意,你不是用正整数存储和输入,下面给个正确的
#include <stdio.h>
int main()
{
unsigned a,i,n=1;
printf("输入一个正整数:\n");
scanf("%d",&a);
printf("原数为:%d\n",a);
while(a>=10)
{
a=a/10;
n++;
}
printf("位数:%d\n",n);
return 0;
}

第3个回答  2014-01-20

void count(char str[])
{
  int i;
  for(i=0;str[i]!='\0';i++)
  {
    if(str[i]>='0'&& str[i]<='9')
      digit++;
  }
}

第4个回答  2014-01-20
你count中都暗示输入可以为其他非数字字符了,为什么你显示原数用puts呢。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网