| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:为什么会这样?
只看楼主 加入收藏
supercn
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2005-1-27
收藏
 问题点数:0 回复次数:4 
为什么会这样?
有两个问题要请教一下各位大虾:
1.这是一个寻找最长字符串的程序

#include <stdio.h>
#include <string.h>
#define N 5
#define M 81
char *fun(char (*sq)[N])
{int i;
 char *sp;
 sp=sq[0];
 for(i=0;i<N;i++)
  if(strlen(sp)<strlen(sq[i]))
    sp=sq[i];
 return sp;
}
main()
{char str[N][M],*longest; int i;
 printf("enter %d lines\n",N);
 for(i=0;i<N;i++) gets(str[i]);
 printf("\nThe N string :\n",N);
 for(i=0;i<N;i++) puts(str[i]);
 longest=fun(str);
 printf("\nThe longest string:\n"); puts(longest);
}
   但无论怎样,结果都是第一个输入的字符串。
2.这是一个统计元音字母个数的程序

#include <conio.h>
#include <stdio.h>
void fun(char *s,int num[5])
{int k,i=5;
 for(k=0;k<i;k++)
  num[i]=0;
 for(;*s;s++)
 {i=-1;
  switch(*s)
  {case 'a':case 'A':{i=0;break;}
   case 'e':case 'E':{i=1;break;}
   case 'i':case 'I':{i=2;break;}
   case 'o':case 'O':{i=3;break;}
   case 'u':case 'U':{i=4;break;}
  }
  if(i>=0)
   num[i]++;
 }
}
main()
{char s1[81]; int num1[5],i;
 clrscr();
 printf("\nPlease enter a string:"); gets(s1);
 fun(s1,num1);
 for(i=0;i<5;i++) printf("%d  ",num1[i]);printf("\n");
}
   最后结果却是一串很长的数字
2005-08-16 22:43
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
得分:0 
第一个这样就对了
你比较下就知道为什么错了


#include <stdio.h>
#include <string.h>
#define N 5
#define M 81
char *fun(char (*sq)[N])
{int i;
char *sp;
sp=sq[0];
for(i=0;i<N;i++)
  if(strlen(sp)<strlen(sq[i]))
    sp=sq[i];
return sp;
}
main()
{char str[N][M],*longest; int i;
printf("enter %d lines\n",N);
for(i=0;i<N;i++) gets(str[i]);
printf("\nThe N string :\n",N);
for(i=0;i<N;i++) puts(str[i]);
longest=fun(str);
printf("\nThe longest string:\n"); puts(*longest);
getch();
}

2005-08-17 11:36
84009030
Rank: 1
等 级:新手上路
帖 子:191
专家分:0
注 册:2005-5-19
收藏
得分:0 

2. void fun(char *s,int num[5]) { int k,i=5; for(;*s;s++) { i=-1; switch(*s) { case 'a':case 'A':{i=0;break;} case 'e':case 'E':{i=1;break;} case 'i':case 'I':{i=2;break;} case 'o':case 'O':{i=3;break;} case 'u':case 'U':{i=4;break;} } if(i>=0) num[i]++; } for(i=0;i<5;i++) printf("%d ",num[i]); printf("\n"); }

main() { char s1[81]; int num1[5],i; printf("\nPlease enter a string:"); gets(s1); for(i=0;i<5;i++) num1[i]=0; fun(s1,num1); getch(); }


/* HELLO.C -- Hello, jat chan */ #include \"stdio.h\" #include \"conio.h\" main() { printf(\"Hello, jat chan\\n\"); getch(); }
2005-08-17 13:00
sunllcom
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2005-7-23
收藏
得分:0 
第一个程序中fun函数里面的形参应该是这样吧,char *fun(char (*sq)[M]),里面是M吧.

2005-08-17 13:32
fanfan200830
Rank: 1
等 级:新手上路
帖 子:86
专家分:0
注 册:2005-8-18
收藏
得分:0 
1.不要忘了加  getch();

戒骄戒躁,面对自我。人生的意义在克服和创造。失败是人生的家常便饭,重要的是我们学会了什么。
2005-08-19 11:23
快速回复:为什么会这样?
数据加载中...
 
   



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

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