请问这一段C语言写的代码还有什么需要改进的?

来源:百度知道 编辑:UC知道 时间:2024/07/03 04:00:39
#include <stdio.h>
#include <string.h>
void main()
{
char num1[20],num2[20],flog;
int i=0,j=0,len;
prinrf("Please enter a number:\n");
do{
num1[i]=getchar();
if(num1[i]<=48||num1[i]>=57)
{
i--;
}
i++;
}while(flog!=13);
num1[i]='\0';
len=strlen(num1);
i=len-1;
for(j=0;j<len;j++,i--)
{
num2[j]=num1[i];
}
num2[len]='0';
printf("The opposition number of number is %s.\n",num2);

#include <stdio.h>
#include <string.h>
void main()
{
char num1[20],num2[20],flog;
int i=0,j=0,len;
prinrf("Please enter a number:\n");
do{
num1[i]=getchar();
flog=num1[i];
if(num1[i]<=48||num1[i]>=57)i--;
i++;
}while(flog!='\13');
num1[i]='\0';
len=strlen(num1);
i=len-1;
for(j=0;j<len;j++,i--)num2[j]=num1[i];
num2[len]='\0';
printf("The opposition number of number is %s.\n",num2);

1.flog没有值的改变,会是死循环.
2.for(j=0;j<len;j++,i--)中的j<len应该为j<=len.

1.flog没变,do while是一个死循环
2.for(j=0;j<len;j++,i--)中的j<len不需要改为j<=len