为什么我的VS不可以调试显示返回值为0就跳了出来

somethingisbeautiful 2017-03-13 08:37:15
#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
int n=0,i=0,yu[16]={0};
printf("请输入0-32767的数字:");
scanf("%d",&n);
for(i=0;n>2;i++)
{
yu[i]=n%2;
n=n/2;
}
for(i=15;i>0;i--);
{
printf("%d",yu[i]);
if(i%4==0)
{printf(" ");}
}

return 0;



“practice.exe”: 已加载“C:\Users\Administrator\Documents\Visual Studio 2010\Projects\随手一来\practice\Debug\practice.exe”,已加载符号。
“practice.exe”: 已加载“C:\Windows\SysWOW64\ntdll.dll”,Cannot find or open the PDB file
“practice.exe”: 已加载“C:\Windows\SysWOW64\kernel32.dll”,Cannot find or open the PDB file
“practice.exe”: 已加载“C:\Windows\SysWOW64\KernelBase.dll”,Cannot find or open the PDB file
“practice.exe”: 已加载“C:\Windows\SysWOW64\msvcr100d.dll”,已加载符号。
程序“[8120] practice.exe: 本机”已退出,返回值为 0 (0x0)。
...全文
836 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-03-14
  • 打赏
  • 举报
回复
在每个最后不带\n的printf后面加fflush(stdout); 在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin); 另外请检查scanf的返回值。
//请今后要用
char c;
scanf("%c",&c);
//时,都改为
char s[2];
char c;
scanf("%1s",s);
c=s[0];
自信男孩 2017-03-13
  • 打赏
  • 举报
回复
#include <stdio.h>

int main(int argc,char  *argv[])
{
    int n = 0, i = 0, yu[16] = {0};

    printf("请输入0-32767的数字:");
    scanf("%d", &n);
    for(i = 0; n > 0; i++)
    {
        yu[i] = n % 2;
        n = n / 2;
    }
    for (i = 15; i >= 0; i--) {
        printf("%d", yu[i]);
        if(i%4==0) {
            printf(" ");
        }
    }

    return 0;
}
去掉第二个for循环后面的;, 改一下第一个和第二个for循环的退出条件。 建议注意一下coding style.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧