求助,代码有错误吗?
本帖最后由 NYJYA 于 2019-1-26 17:58 编辑题目描述:
编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。
只要结果,别输出什么提示信息。
输入:
一行字符串
输出:
统计数据,4个数字,空格分开。
#include<stdio.h>
#include<string.h>
void search(int *p1,int *p2,int *p3,int *p4,char b)
{
int i,k;
k=strlen(b);
for(i=0;i<k;i++)
{
if((b>='A'&&b<='Z')||(b>='a'&&b<='z'))
*p1=*p1+1;
else if(b>='0'&&b<='9')
*p2=*p2+1;
else if(b==' ')
*p3=*p3+1;
else *p4=*p4+1;
}
}
int main()
{
int w=0,n=0,s=0,o=0;
char a;
gets(a);
search(&w,&n,&s,&o,a);
printf("%d %d %d %d\n",w,n,s,o);
return 0;
}
没什么问题吧 int search(int *p1,int *p2,int *p3,int *p4,char b)
这个函数 有 int 型的返回值,你没有返回,最好改成 void search (...); ljd884497 发表于 2019-1-23 16:55
int search(int *p1,int *p2,int *p3,int *p4,char b)
这个函数 有 int 型的返回值,你没有返回, ...
改了,还是通不过{:10_266:}{:10_266:} #include<stdio.h>
#include<string.h>
int search(int *p1,int *p2,int *p3,int *p4,char b) //不需要返回值,返回值写成void
{
int i,k;
k=strlen(b);
for(i=0;i<k;i++)
{
if((b>='A'&&b<='Z')||(b>='a'&&b<='z'))
*p1=*p1+1;
else if(b>='1'&&b<='9') //这里b应该是和'0'还有'9'比较
*p2=*p2+1;
else if(b==' ')
*p3=*p3+1;
else *p4=*p4+1;
}
}
int main()
{
int w=0,n=0,s=0,o=0;
char a;
gets(a);
search(&w,&n,&s,&o,a);
printf("%d %d %d %d\n",w,n,s,o);
return 0;
} rencaixiaomeng 发表于 2019-1-23 20:36
#include
#include
int search(int *p1,int *p2,int *p3,int *p4,char b) //不需要返回值,返回值 ...
还是通不过{:10_266:}{:10_266:} NYJYA 发表于 2019-1-24 09:20
还是通不过
#include<stdio.h>
#include<string.h>
//int search(int *p1,int *p2,int *p3,int *p4,char b) //返回值写成void
void search(int *p1,int *p2,int *p3,int *p4,char b)
{
int i,k;
k=strlen(b);
for(i=0;i<k;i++)
{
if((b>='A'&&b<='Z')||(b>='a'&&b<='z'))
*p1=*p1+1;
//else if(b>='1'&&b<='9') //b与'0'和'9'比较
else if(b>='0'&&b<='9')
*p2=*p2+1;
else if(b==' ')
*p3=*p3+1;
else *p4=*p4+1;
}
}
int main()
{
int w=0,n=0,s=0,o=0;
char a;
gets(a);
search(&w,&n,&s,&o,a);
printf("%d %d %d %d\n",w,n,s,o);
return 0;
} 行客 发表于 2019-1-24 12:09
还是通不过{:10_266:}{:10_266:} #include<stdio.h>
#include<string.h>
void search(int *p1, int *p2, int *p3, int *p4, char b)
{
int i, k;
k = strlen(b);
for(i = 0; i < k; i++)
{
if((b >= 'A'&&b <= 'Z') || (b >= 'a'&&b <= 'z'))
*p1 = *p1 + 1;
else if(b >= '0'&&b <= '9')
*p2 = *p2 + 1;
else if(b == ' ')
*p3 = *p3 + 1;
else *p4 = *p4 + 1;
}
}
int main(void)
{
int w = 0, n = 0, s = 0, o = 0;
char a;
gets(a);
search(&w, &n, &s, &o, a);
printf("%d %d %d %d\n", w, n, s, o);
return 0;
}
int search(int *p1,int *p2,int *p3,int *p4,char b)
30 7 6 12
请按任意键继续. . . NYJYA 发表于 2019-1-26 16:24
还是通不过
错误信息请贴上来 行客 发表于 2019-1-26 17:07
错误信息请贴上来
未通过的数据:
结果 耗时 内存
答案错误 0 1658880
答案错误 0 1531904
NYJYA 发表于 2019-1-26 17:56
未通过的数据:
结果 耗时 ...
又是用的在线的那个?你把在线用的哪个贴上地址来。 本帖最后由 NYJYA 于 2019-1-26 19:30 编辑
行客 发表于 2019-1-26 17:58
又是用的在线的那个?你把在线用的哪个贴上地址来。
http://newoj.acmclub.cn/problems/1069
页:
[1]