#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++;
}
就可以了。
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);这个最直接了····
{
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;
}
#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呢。。