C语言:下面要求的C程序怎么编?
要求:输入出错时要求提示重新输入该字符。 展开
哈哈,刚才回答了同样的问题,你没有看见,因为被“违规”了。
代码文本:
#include "stdio.h"
#define N 81
int main(int argc,char *argv[]){
char s[N],i,j,k,t;
puts("Please enter a string composed of lowercase letters...");
for(i=0;i<N;i++){
if((t=getchar())!=EOF && t>='a' && t<='z')
s[i]=t;
else if(t=='\n')
break;
else{
printf("Error, enter again this character: ");
i--;
}
}
s[i]='\0';
printf("The string you input is '%s'\nAfter rearrangement is '",s);
for(i=0;s[i];i++){
for(j=i+1;s[j];j++)
if(s[i]==s[j]){
for(k=s[j];j>i;s[j--]=s[j-1]);
s[j+1]=k;
break;
}
putchar(s[i]);
}
printf("'\n");
return 0;
}
#include <conio.h>
int main()
{
int ord[26],cnt[26];
for (int i=0;i<26;i++) ord[i]=cnt[i]=0;
while(1)
{
int ch=getch();
if (ch=='\n' || ch=='\r') break;
else if (ch<'a' || ch>'z') {
printf("%c 输入错误,重新来过!\n",ch);
continue;
}
else {
int id=-1;
for (int i=0;i<26;i++) {
if (ord[i]==0 && id<0)
{
id=i;
break;
}
if (ord[i]==ch)
{
cnt[i]++;
break;
}
}
if (id>=0) {
ord[id]=ch;
cnt[id]=1;
}
}
}
for (int i=0;ord[i];i++)
for (int j=0;j<cnt[i];j++) printf("%c",ord[i]);
}
输入不带回显的版本