| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2228 人关注过本帖, 3 人收藏
标题:帮忙看一下,哪里错了,谢谢!
只看楼主 加入收藏
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏(3)
 问题点数:0 回复次数:12 
帮忙看一下,哪里错了,谢谢!

/*编写一个程序,计算一行字母中的元音个数及辅音个数.*/ #include <stdio.h> #include <string.h> void main() { char x[20]; int y=0,f=0,i=0; printf("input wold:\n"); scanf("%s",x); for(i=0;i<20;i++) { switch(strlen(x[y])) { case 'a': case 'e': case 'i': case 'o': case 'u': case 'A': case 'E': case 'I': case 'O': case 'U': y++; break; default: f++; break; } } printf("y=%d f=%d",y,f); }

运行出错,一时又不知道出错在哪里,请大家批评指正.

[此贴子已经被作者于2004-06-01 22:38:01编辑过]

搜索更多相关主题的帖子: case wold include 
2004-06-01 22:18
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

方法二:也有问题,请帮忙看一下.

#include <stdio.h> void main() { char x[80]; int f=0,i=0; printf("input wold:\n"); scanf("%s",x); for(i=0;'x[i]'!='\0';i++) { if(x[i]=='a'||x[i]=='e'||x[i]=='i'||x[i]=='o'||x[i]=='u' ||x[i]=='A'||x[i]=='E'||x[i]=='I'||x[i]=='O'||x[i]=='U') i++; else f++; } printf("元音=%d 辅音=%d\n",i,f); }

晕自己,那天在学校里还做得挺好的,一回家就搞忘记了,烦燥!请指点一下.谢谢

[此贴子已经被作者于2004-06-01 22:47:46编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-01 22:35
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 

第二个程序:

for(i=0;'x[i]'!='\0';i++)改为for(i=0;x[i]!='\0';i++)

for里面的统计元元音的变量不能用i改为k或其他... that's ok!


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-06-01 23:46
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

第一个程序:

strlen(x[y])该函数是计算长度的,你用x[i]就可以了


我的主页 http://www.
2004-06-01 23:49
jiely
Rank: 1
等 级:新手上路
帖 子:106
专家分:0
注 册:2004-5-15
收藏
得分:0 

第一个程序错误是]

for(i=0;i<20;i++)改为for(i=0;x[i]!='\0';i++)

switch(strlen(x[y]))改为switch(x[i])或者用取词函数strtok()


我的爱好:C和数据库!正在学VC++ 我的QQ:345895839,有共同爱好的加我!期待着与你共同进步!
2004-06-01 23:55
darrenyang
Rank: 1
等 级:新手上路
帖 子:51
专家分:0
注 册:2004-5-5
收藏
得分:0 

[此贴子已经被作者于2004-06-02 12:42:51编辑过]


2004-06-02 12:41
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
#include &lt;stdio.h&gt;
#include &lt;string.h&gt;
void main()
{
   char str[50],ch,*ptr;
   int y=0,f=0;
   printf("input wold:\n");
   gets(str);
   ptr=str;
   while(*ptr)
   {   ch=*ptr++;
       switch(ch)
       {
          case 'a':
          case 'e':
          case 'i':
          case 'o':
          case 'u':
          case 'A':
          case 'E':
          case 'I':
          case 'O':
          case 'U':
            y++;
             break;
           default:
             f++;
             break;
       }
   }
   printf("y=%d f=%d",y,f);
}

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2004-06-02 17:20
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 

还是不行啊.改成下面的格式了, #include <stdio.h> void main() { char x[80]; int y=0,f=0; printf("input wold:\n"); scanf("%s",x); for(y=0;x[y]!='\0';y++) { if(x[y]=='a'||x[y]=='e'||x[y]=='i'||x[y]=='o'||x[y]=='u' ||x[y]=='A'||x[y]=='E'||x[y]=='I'||x[y]=='O'||x[y]=='U') y++; else f++; } printf("y=%d f=%d \n",y,f); } 我输入zhanghaidangwangxuelian,出来的是y=23,f=11,我用了VC,Dev,C-Free三个编辑器都是一样的结果.

晕,得改成这样才行,还得定义一个变量: #include <stdio.h> void main() { char x[80]; int y=0,f=0,i=0; printf("input wold:\n"); scanf("%s",x); for(i=0;x[i]!='\0';i++) { if(x[i]=='a'||x[i]=='e'||x[i]=='i'||x[i]=='o'||x[i]=='u' ||x[i]=='A'||x[i]=='E'||x[i]=='I'||x[i]=='O'||x[i]=='U') y++; else f++; } printf("y=%d f=%d \n",y,f); } 晕自己,总算搞清楚了,谢谢版主啊,

[此贴子已经被作者于2004-06-02 18:40:11编辑过]


学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-02 18:19
jzh2004
Rank: 1
等 级:新手上路
帖 子:341
专家分:0
注 册:2004-4-30
收藏
得分:0 

你怎么用Y++?你要另外用个变量,要不Y要加两次。


我的主页 http://www.
2004-06-02 18:29
当当
Rank: 1
等 级:新手上路
帖 子:235
专家分:0
注 册:2004-4-30
收藏
得分:0 
这个也是一样的,还是有问题,我改成这样了:
#include &lt;stdio.h&gt;
void main()
{
   char x[80];
   int y=0,f=0,i=0;
   printf("input wold:\n");
   scanf("%s",x);
   for(i=0;i&lt;80;i++)
   {
       switch(x[i])
       {
          case 'a':
          case 'e':
          case 'i':
          case 'o':
          case 'u':
          case 'A':
          case 'E':
          case 'I':
          case 'O':
          case 'U':
             y++;
             break;
           default:
             f++;
             break;
       }
   }
   printf("y=%d f=%d \n",y,f);
}
还是输入zhanghaidangwangxuelian,y=9这个算对了,但是f=71,它直接用80-9了,难道我非得输入80个字符吗?

学好编程就能编出自己的未来! 加油!自信!努力!奋斗!
2004-06-02 18:34
快速回复:帮忙看一下,哪里错了,谢谢!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017771 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved