回 帖 发 新 帖 刷新版面

主题:为什么我输入的代码是对的但在Dev C++上运行后的结果不对?

#include<stdio.h>
#include<stdlib.h>
int main()
{
    int area_code,tel_num;
    printf("请输入你的十位数电话号码");/*输入的号码是0395410112/
    scanf("3%d%7d",&area_code,&tel_num);
    printf("你的电话区号是:%3d\n",area_code);
    printf("你的电话号码是:%7d\n",tel_num);
    system("pause");
    return 0;

运行结果是
请输入你的十位数电话号码0395410112
你的电话区号是:  2
你的电话号码是:     58
请按任意键继续. . .
正确的应该是 
你的电话区号是 39
你的电话号码是:5410112

回复列表 (共4个回复)

沙发


scanf("3%d%7d",&area_code,&tel_num);
应该是scanf("%3d%7d",&area_code,&tel_num);吧

板凳

回复windy0will:难道是我的编译环境不同所得出的结果也不同,我编译运行了几次都是错的结果,还有就是本例中的scanf()函数的格式控制符"%3d%7d"能够自行将原来输入的数字按指定的栏宽设置输出数值是吗?本人初学小菜鸟,多多指教

3 楼


还有就是本例中的scanf()函数的格式控制符"%3d%7d"能够自行将原来输入的数字按指定的栏宽设置输出数值是吗


是的。

4 楼

scanf()函数的格式控制符"%3d%7d" 限制了宽度
1.输入的都是当做字符串的
2.通过"%3d%7d"限制的(格式)宽度取字符串,然后按照其中指定的数据类型(d)转为数字

我来回复

您尚未登录,请登录后再回复。点此登录或注册