[问题]一段C代码,不知道我那里写错了

软件和网站开发以及相关技术探讨
回复
feral
帖子: 18
注册时间: 2006-05-04 2:13
来自: 辽宁

[问题]一段C代码,不知道我那里写错了

#1

帖子 feral » 2008-02-18 20:48

//编写一个程序,创建一个有26个元素的数组,并在其中存储26个小写字母
//并让该程序显示数组的内容
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char ch[26];
int index, ind; //用来表示数组的序号,后一个变量纯属于为了输出的无奈之举
char ch_mid;

for(index=0,ind=1;index<26;index++,ind++)
{
printf("请输入第 %d 个元素:\n",ind);

ch_mid=getchar();
getchar(); //屏蔽掉回车
if(islower(ch_mid)&&isalpha(ch_mid))
{
ch[index]=ch_mid;
}
else

printf("您输入的第%d个元素是%c,不是小写字母,请重新输入:\n",ind,ch_mid);
continue;
}
} // 写入元素到数组

for(index=0,ind=1;index<26;index++,ind++)
{
printf("您输入的元素的第%d个元素是%c.\n",ind,ch[index]);
}

return 0;
}
上次由 feral 在 2008-02-21 4:01,总共编辑 1 次。
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#2

帖子 iblicf » 2008-02-18 21:00

如果是vi ,,, % 可以匹配括号,gg=G c风格排版,很容易找语法错误
feral
帖子: 18
注册时间: 2006-05-04 2:13
来自: 辽宁

#3

帖子 feral » 2008-02-18 21:14

不好意思 我本来缩进写的还行 呵呵 不懂HTML(?) 一帖上来就这样了
而且即使是现在 我进到编辑里面的时候 缩进还是没有问题的 不会搞了
头像
iblicf
帖子: 3766
注册时间: 2007-01-15 17:15

#4

帖子 iblicf » 2008-02-18 21:23

代码: 全选

#include<stdio.h>
#include<ctype.h>
int main(void)
{
	char ch[26];
	int index, ind; //用来表示数组的序号,后一个变量纯属于为了输出的无奈之举
	char ch_mid;

	for(index=0;index<26;index++)
	{
		printf("请输入第 %d 个元素:\n",index+1);

		ch_mid=getchar();
		getchar(); //屏蔽掉回车
		if(islower(ch_mid)&&isalpha(ch_mid))
		{
			ch[index]=ch_mid;
		}
		else

			printf("您输入的第%d个元素是%c,不是小写字母,请重新输入:\n",index+1,ch_mid);
		continue;
	}
	for(index=0;index<26;index++)
		printf("您输入的元素的第%d个元素是%c.\n",index+1,ch[index]);

	return 0;
} // 写入元素到数组
头像
cnchyan
帖子: 106
注册时间: 2005-06-19 23:33

#5

帖子 cnchyan » 2008-02-19 18:49

楼主else后面的括号是中文的,另外输出非法字符的处理逻辑也有问题
Ubuntu Karmic
acer 5595 : core2 duo T7200;2*1024M DDR2-667 ;intel 965pm;ati mobility readon X1600

贫贱不能移,富贵不能淫,威武不能屈
头像
冲浪板
论坛版主
帖子: 7513
注册时间: 2007-05-06 8:19

#6

帖子 冲浪板 » 2008-02-19 19:04

把题目里的“一个”改为“一段”,“程序”改为“代码”
magic_andy
帖子: 1
注册时间: 2007-06-01 14:02

#7

帖子 magic_andy » 2008-02-19 22:39

问题在这里

"
else

printf("您输入的第%d个元素是%c,不是小写字母,请重新输入:\n",index+1,ch_mid);
continue;
"
头像
wuwud
帖子: 13
注册时间: 2007-06-06 15:49

Re: [问题]一个C程序,不知道我那里写错了

#8

帖子 wuwud » 2008-02-20 10:56

feral 写了://编写一个程序,创建一个有26个元素的数组,并在其中存储26个小写字母
//并让该程序显示数组的内容
#include<stdio.h>
#include<ctype.h>
int main(void)
{
char ch[26];
int index, ind; //用来表示数组的序号,后一个变量纯属于为了输出的无奈之举
char ch_mid;

for(index=0,ind=1;index<26;index++,ind++)
{
printf("请输入第 %d 个元素:\n",ind);

ch_mid=getchar();
getchar(); //屏蔽掉回车
if(islower(ch_mid)&&isalpha(ch_mid))
{
ch[index]=ch_mid;
}
else

printf("您输入的第%d个元素是%c,不是小写字母,请重新输入:\n",ind,ch_mid);
continue;
}
} // 写入元素到数组

for(index=0,ind=1;index<26;index++,ind++)
{
printf("您输入的元素的第%d个元素是%c.\n",ind,ch[index]);
}

return 0;
}
这里使用

代码: 全选

continue;
会产生一种情况:当你输入错误的字符的时候,会跳空一个数组元素。即如果你在第5个元素时输入一个大写A,会执行continue语句,index和ind会增加1,第5个数组元素将被跳过。[/code]
中国特色:工资的增长速度永远比物价的增长速度低!
回复