标题:哪儿错了?
只看楼主
磨成大力佛
Rank: 1
等 级:新手上路
帖 子:7
专家分:2
注 册:2009-9-28
得分:0 
哥们,你看看我改的程序,我不是说lz的程序没问题,我是说我后来改的没问题,楼主定义了一个ch,我觉得多余,定义一个str[]就可以,然后对数组初始化。
2009-12-23 12:16
wufei1989121
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:39
专家分:113
注 册:2009-11-13
得分:0 
while((ch=getchar())!='\n') 这儿你把'\n'换成'#'或其他 试试
2009-12-23 12:23
functionY
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2009-12-23
得分:0 
我错了。。。对不起大家。。。但是我要说的是:
1。楼主错了,楼主输入的数据没有导入树组,还有就是我在2楼说的。。。
2。3楼的兄弟没错。。。scanf()是能跳过空格,换行符等。。。
3。8楼的兄弟错了,其实你没初始化数组。。。你只是吧输入的数据导入数组前部分,如果输入的数据没有数组的大,数组后部分就会包含垃圾值。。。
还有就是getch()函数是要用conio.h这个头文件的。。。

[ 本帖最后由 functionY 于 2009-12-23 13:50 编辑 ]

345602733便是我的终身代号。。。
2009-12-23 12:46
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
得分:5 
3。8楼的兄弟错了,其实你没初始化数组。。。你只是吧输入的数据导入数组前部分,如果输入的数据没有数组的大,数组后部分就会包含垃圾值。。//不太明白你的意思,是少了‘\0’的意思吗。下面我改了一下还有问题吗?
#include<stdio.h>
#include<string.h>
int main(void )
{
char str[80],ch;
int i;
i=0;
printf("Input a string:");
while((ch=getchar())!='\n')
{str[i]=ch;
  i++;
  }
str[i]='\0';/*我加了这句*/
if(str[i-1]=='y')
  strcat(str,"es");
else if(str[i-1]=='s'||str[i-1]=='x'||str[i-1]=='ch'||str[i-1]=='sh')
  strcat(str,"es");
else if(str[i-1]=='o')
  strcat(str,"es");
else
  strcat(str,"s");
printf("%s",str);
getch();
return 0;
}

qq7434391
2009-12-23 16:27
functionY
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2009-12-23
得分:0 
以下是引用liangwenbc在2009-12-23 16:27:48的发言:

3。8楼的兄弟错了,其实你没初始化数组。。。你只是吧输入的数据导入数组前部分,如果输入的数据没有数组的大,数组后部分就会包含垃圾值。。//不太明白你的意思,是少了‘\0’的意思吗。下面我改了一下还有问题吗? ...
我表达得不太清楚,不过应该是没有'\n'的意思。。。
相对而言,你多加了个变量CH,3楼的跟简洁。。。getch()函数是要加conio.h头文件的
还有就是,提示输入时,如果输入空格,空格也会被当成字符打印出来的,所以3楼的用法才是合理的。。。

345602733便是我的终身代号。。。
2009-12-23 16:36
liangwenbc
Rank: 3Rank: 3
来 自:广州
等 级:论坛游侠
帖 子:168
专家分:174
注 册:2008-6-11
得分:0 
以下是引用functionY在2009-12-23 16:36:41的发言:

我表达得不太清楚,不过应该是没有'\n'的意思。。。
相对而言,你多加了个变量CH,3楼的跟简洁。。。getch()函数是要加conio.h头文件的
还有就是,提示输入时,如果输入空格,空格也会被当成字符打印出来的,所以3楼 ...
我用getch()从来没加头文件也可以呢

qq7434391
2009-12-23 16:56
functionY
Rank: 1
等 级:新手上路
帖 子:11
专家分:7
注 册:2009-12-23
得分:0 
以下是引用liangwenbc在2009-12-23 16:56:20的发言:

我用getch()从来没加头文件也可以呢
..................

345602733便是我的终身代号。。。
2009-12-23 18:16
eumenides
Rank: 2
等 级:论坛游民
帖 子:18
专家分:36
注 册:2009-12-25
得分:4 
错不灰心,千错成王,万错成神。随便写了个,如下
#include<stdio.h>
#include<string.h>
int main(void)
{
 char s[20];
 int n;
 printf("Enter letter:");
 gets(s);
 n=strlen(s);
 if((s[n-1]=='s'||s[-1]=='x')||(s[n-2]=='s'&&s[n-1]=='h')||(s[n-2]=='c'&&s[n-1]=='h'))
  printf("%s\n",strcat(s,"es"));
 else if(s[n-1]=='o')
  printf("%s\n",strcat(s,"es"));
 else printf("%s\n",strcat(s,"s"));
 return 0;
}
2009-12-26 19:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-294115-1-1.html




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

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