| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1399 人关注过本帖
标题:[求助]新手上路,输入任意数目的字母要求编一程序使它倒输
只看楼主 加入收藏
jiangzw625
Rank: 1
等 级:新手上路
帖 子:119
专家分:0
注 册:2006-3-27
收藏
得分:0 

你用的是VC吧
可是我调试过的啊。
那你可以这样试试/
把第2个循环语句中的循环初始化改成i=strlen(a)-1看看
想报错误的话就在while循环里加一个条件语句
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
{printf("\n你输入的的不是有效字符");
continue;}

[此贴子已经被作者于2006-3-29 17:18:00编辑过]


马马乎乎
2006-03-29 17:13
musicml
Rank: 1
等 级:新手上路
帖 子:273
专家分:0
注 册:2005-4-2
收藏
得分:0 
#include<stdio.h>
#include<string.h>

int main()
{
char arry[1000];
gets(arry);
strrev(arry);
puts(arry);
return 0;
}

Every thing is possible.
2006-03-29 17:33
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 

厉害。
我是菜鸟。。

2006-03-29 18:02
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 
以下是引用jiangzw625在2006-3-29 17:13:00的发言:

你用的是VC吧
可是我调试过的啊。
那你可以这样试试/
把第2个循环语句中的循环初始化改成i=strlen(a)-1看看
想报错误的话就在while循环里加一个条件语句
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
{printf("\n你输入的的不是有效字符");
continue;}


哈哈。。
if!((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n'))
要還加個括號,把!括進去。
我試過了。 不過這個程序好像不能即時報錯。
比如說。
我輸入:windows4xp回車後他才會提示有錯誤。
我想問問。怎麼才能輸到4的時候不回車就提示有錯。並終止程序運行呢?

2006-03-30 01:16
DoubleJ
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2006-3-23
收藏
得分:0 

/*為了即時報錯,我改了一下*/
#include<stdio.h>
#include<string.h>

void main()
{
char a[100];
int i=0;

while(a[i]!='\n')
{
i++;
scanf("%c",&a[i]);

if(! ((a[i]>=65&&a[i]<=90)||(a[i]>=97&&a[i]<=122)||(a[i]=='\n')))
{
printf("\n你输入的%c不是有效字符",a[i]);
break;
}
fflush(stdin);


}
a[i]='\0';

for(i=strlen(a);i>=0;i--)
printf("%c",a[i]);

printf("\n");
}
/*但是必須輸一個字付敲一個回車,不知道朋友有沒有更好的方法*/

[此贴子已经被作者于2006-3-30 1:24:19编辑过]

2006-03-30 01:24
flyblue
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-3-28
收藏
得分:0 

我知道了,我做的和你的要求有所不同,我是输入5个数字,(每个数字用空格分开)
运行:请输入数字:
5 4 3 2 1
数字正向排序如下:
1 2 3 4 5
数字逆向输出如下:
5 4 3 2 1 (在vc上运行)
这个和你的要求有差异,我再改下,这个程序你只能参考

2006-03-30 10:32
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

#include <conio.h>
#include<stdio.h>
#include<string.h>

int main()
{
char a[100];
int i=0 ;
struct text_info ti; //使用了text_info 可以为以增添功能做准备
while(i<99)
{
a[i]=getch();
putch(a[i]);
if((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))i++;
else
if(a[i]==13){i++;break;}
else
{
gettextinfo(&ti);
gotoxy(10,10);
printf("\n你输入的%c不是有效字符\n继续....\n",a[i]);
gotoxy(ti.curx-1,ti.cury);
}
}
a[i]='\0' ;
puts(a);

return 0 ;
}


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-03-30 11:05
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
以下是引用zhangjuan在2006-3-29 16:39:00的发言:

我没有看懂main函数调用!=10 这是什么道理?

我们通常所说的回车其实是两个字符值, 10 ,13


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2006-03-30 11:16
不知所云
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2006-3-27
收藏
得分:0 

五楼的方法我看不懂,不知道谁能帮忙解释一下,我不胜感激。
但我改二楼的方法,程序如下:
#include <stdio.h>
#include <string.h>
#include<conio.h>
void main()
{ clrscr();
char p[50],*q;
int i,j,t=0;
gets(p);
j=strlen(p);
q=j+p-1;
for(i=1;i<=j;i++)
if((p[i]<'A')||(p[i]>'z')||(p[i]>'Z')&&(p[i]<'a'))
{printf("ERROR!");t=1;break;}
if(t==1);
else
{while(q>=p)
{printf("%c",*q--);}}
printf("\n");
getch();
}

2006-03-31 11:46
快速回复:[求助]新手上路,输入任意数目的字母要求编一程序使它倒输
数据加载中...
 
   



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

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