C++。字数统计,运行显示 函数调用中参数太多。
请问是哪里的问题?该如何更改?
(该代码非原创代码仅供学习使用)
#include
#include
int main()
{
int n,m; //n行,m列
int g; //段落数
int end; //可能作为断尾的行数
int a[105]; //一行字符(数字)
int b[10005]; //上一行行末0的个数记入数组
{
while(scanf("%d%d%d",&n,&m,&g)!=EOF)
{
int ans = 0; //答案
int num = 0; //表示上一行的尾端的空白字数
int end = 0; //段落数量
for(int i = 1;i <= n;i++)
{
for(int j = 1;j <= m;j++)
{
scanf("%d",&a[j]);
//统计全部为0的个数
if(!a[j])ans++;
}
//上一行可以作为尾端
if(!a[1]&&!a[2])
b[++end]=num;
//算出这一行尾端的空白字数
for(int j = m;j >= 1;j--)
//第一次不是0
if(a[j] == 1)
{
num = m-j; //行末0的个数
break;
}
}
ans -= 2 * g; //去掉段首
ans -= num; //去掉段尾的空白字数
//利用贪心算法,减去行末最多0的个数
sort(b+1,b+end+1);
for(int i = end;i >= end-(g-2);i--)
ans -= b[i];
printf("%d\n",ans);
}
return 0;
}
代码:
#include<stdio.h>
int main()
{
char c;
int letters = 0, space = 0, digit = 0, other = 0;
printf("请输入一行字符:\n");
while ((c = getchar()) && c!= '\n')
{
if ((c >= 'a' && c <= 'z' )|| (c >= 'A' && c <= 'Z'))
letters++;
else if (c == ' ')
space++;
else if (c >= '0' && c <= '9')
digit++;
else
other++;
}
printf("%d\n", letters+space+digit+other);
return 0;
}
}
错误消息没发出来,不好判断