统计个数?

LiuYi_7 2009-02-13 03:28:20
#include<stdio.h>
int main()
{
char s[100][100];
int n,p,j,a,e,i,o,u;
scanf("%d",&n);
for(p=0;p<n;p++)
{
gets(s[p]);
getchar();
}
for(p=0;p<n;p++)
{
a=0;e=0;i=0;o=0;u=0;
for(j=0;s[p][j]!='\0';j++)
{
if(s[p][j]='a')a++;
if(s[p][j]='e')e++;
if(s[p][j]='i')i++;
if(s[p][j]='o')o++;
if(s[p][j]='u')u++;
}
if(p<n-1)
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n\n",a,e,i,o,u);
else
printf("a:%d\ne:%d\ni:%d\no:%d\nu:%d\n",a,e,i,o,u);
}
}


这段代码是统计元音字母的个数
为什么输出都为0的啊
给位高手看看
谢谢!
...全文
96 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
tangshuiling 2009-02-13
  • 打赏
  • 举报
回复

给楼主一个c++的算法和一个类c++的c算法,比较起来c++更优雅~~!
一、c++算法
#include <string>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
char arr[]={'a','e','i','o','u'};
string test;
cin>>test;
for(int i=0;i<sizeof(arr)/sizeof(arr[0]);++i)
{
cout<<count(test.begin(),test.end(),arr[i])<<endl;
}

return 0;
}
二、c算法
#define MAXSIZE 80
int count(char* str,int length,char arr)
{
int cnt=0,i=0;
for(;i<length;++i)
{
if(str[i]==arr) cnt++;
}
return cnt;

}
int main()
{
char arr[]={'a','e','i','o','u'};
char* test=(char*)malloc(MAXSIZE);
int length=strlen(test)+1,i=0;
gets(test);

for(;i<sizeof(arr)/sizeof(arr[0]);++i)
{
printf("%d\n",count(test,length,arr[i]));
}
free(test);
return 0;
}
a_rockboy 2009-02-13
  • 打赏
  • 举报
回复
1.char s[100][100];
初始化
ZeroMemory(s, 100 * 100);

2.
for(p=0;p <n;p++)
{
a=0;e=0;i=0;o=0;u=0;

这不又清零了么。
a=0;e=0;i=0;o=0;u=0;

for(p=0;p <n;p++)
{

3.
if(s[p][j]='a')a++;
使用 if(s[p][j]=='a')a++; 最好调整为switch结构。比你的效率高。

waizqfor 2009-02-13
  • 打赏
  • 举报
回复
LZ为要用2维数组呢 没理解
没有统计截面 LZ改改就行了

#include<stdio.h>
int main()
{
int sum = 0;
char input;
printf("请输入一行字符,结束输入请按回车.\n");
fflush(stdin);
while((input=getchar()) != 10) /* 遇到回车前一直接受输入 */
{
if ((input == 'a') || (input == 'e') || (input == 'i') || (input == 'o') || (input == 'u'))
{
sum++;
}
}
printf("原音个数=%d\n", sum);
return 0;
}
baihacker 2009-02-13
  • 打赏
  • 举报
回复
        if(s[p][j]='a')a++; 
if(s[p][j]='e')e++;
if(s[p][j]='i')i++;
if(s[p][j]='o')o++;
if(s[p][j]='u')u++;

if(s[p][j]=='a')a++;
if(s[p][j]=='e')e++;
if(s[p][j]=='i')i++;
if(s[p][j]=='o')o++;
if(s[p][j]=='u')u++;







scanf("%d",&n);
getchar();
for(p=0;p <n;p++)
{
gets(s[p]);
}


hhyttppd 2009-02-13
  • 打赏
  • 举报
回复
自己调试啊。。。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧