错!!!
首先你没有明确C语言的内在特点!如果按%S输出必须是字符型的你可以用%d来输出但是就转换成了字符的字符码了。如果你想实现你想要的输出你就写个转换函数
这样就可以了 我不知道你是先学什么语言的。要是你先学VB的话 在学C语言的时候你就把VB忘了 要不按VB的思路来看C语言那就完蛋了
#include
int main() {
char s[10];
char *p;
int negative=0; // 为 0 表示是正数,1 为负数
printf("input the integer: ");
scanf("%s",s);
p=&s[0];
if(s[0]=='-') {
negative=1;
p++;
}
for(int i=0;i<9-negative&&p[i]!='\0';i++)
if(p[i]<'0'||p[i]>'9') {
printf("%s is not a integer\n",p);
return 0;
}
if(p[i]!='\0') { // 整数是 i-1 位
printf("%s is too long\n",p);
return 0;
}
int Int=0;
if (negative==0)
for(int j=0;j Int=Int*10+(p[j]-'0');
else
for(int j=0;j Int=Int*10-(p[j]-'0');
printf("%s = %d\n",s,Int);
return 1; // 程序顺利结束
}
编译通过
用系统函数atoi("1234")就可以了!在程序前面加上#include