因为 p = "1234567" ,对于这个字符串,它是一个复杂型常量,是存储在rodata段里的,是不能修改的。所能当运行到while(s1<s2){t=*s1++*s1=*s2--*s2=t}时,就会出现段错误。
#include <stdio.h>void main()
{int num_10,changenum
int stack[10]={0}
int top=0
while(1){
top =0
printf("\ninput you will change number:\n")
scanf("%d",&num_10)
printf("you will change %d to \n",num_10)
scanf("%d",&changenum)
do{
stack[top++]=num_10%changenum
num_10/=changenum
}while (num_10)
top --
while(top>=0)
{ if(stack[top]<10)
printf("%d",stack[top])
else if( stack[top]>=10&&stack[top]<16)
{
switch (stack[top])
{
case 10:printf("A")break
case 11:printf("B")break
case 12:printf("C")break
case 13:printf("D")break
case 14:printf("E")break
case 15:printf("F")break
}
}
top--
}
}
getch()
}