鱼C论坛

 找回密码
 立即注册
查看: 1413|回复: 6

[已解决]VS2019免费版编译很不稳定啊

[复制链接]
发表于 2020-5-20 11:32:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
比如我下面的代码,注释中的问题一直有。今天无聊看看exe文件。结果exe说要买9本书然后一闪而没。于是我加了system(“pause")。头文件不用说了,肯定加了。调试时却发现sort函数没有执行。然后我又注释掉system(”pause")。调试,sort函数又运行了。然后我再取消注释,这会sort函数正常运行了。所以这vs2019一会儿东一会儿西。同样的代码不同的时间编译结果不同。
  1. #include<stdio.h>
  2. int TOTAL;//换成全局变量,照样是输入几本就几本,去重完全没有起作用
  3. void total(int book[], int n)//统计书本数量并去重
  4. {
  5.         int j,m;
  6.         for (j = 0; j < n-1; j++)
  7.         {
  8.                 if (book[j] == book[j + 1])
  9.                 {
  10.                         for (m = j; m < n - j; m++)
  11.                         {
  12.                                 if (m < n - 2)
  13.                                 {
  14.                                         book[m + 1] = book[m + 2];
  15.                                 }
  16.                                 else
  17.                                 {
  18.                                         book[m + 1] = NULL;
  19.                                 }
  20.                         }
  21.                         TOTAL--;
  22.                         //i--;
  23.                 }
  24.         }
  25.         printf("总共需要买%d本书\n", TOTAL);
  26. }
  27. void sort(int book[],int n)//对里面内容排序并输出
  28. {
  29.         int i,j;
  30.         for (i = 0; i < n - 1; i++)
  31.         {
  32.                 for (j = 0; j < n - 1 - i; j++)
  33.                 {
  34.                         if (book[j] > book[j + 1])
  35.                         {
  36.                                 book[j] ^= book[j+1];
  37.                                 book[j+1] ^= book[j];
  38.                                 book[j] ^= book[j+1];
  39.                         }
  40.                 }
  41.         }
  42.         for (i = 1; i <= (n / 10); i++)
  43.         {
  44.                 for (j = (i - 1) * 10 + 1; j <= i * 10; j++)
  45.                 {
  46.                         printf("%d\t", book[j]);
  47.                 }
  48.                 printf("\n");
  49.         }
  50. }

  51. void main()
  52. {
  53.         int i,num[100];
  54.         printf("请输入想买书的同学数量(不超过100人):\n");
  55.         scanf("%d\n",&TOTAL);
  56.         //fflush(stdin);加此代码则不执行sort函数
  57.         for (i = 0; i < TOTAL; i++)//总是先输入,再连续出现两行printf内容,然后才正常。始终未查出什么原因
  58.         {
  59.                 printf("请输入第%d个同学想买的书的IBSN号:\n",i+1);
  60.                 scanf("%d",&num[i]);
  61.         }
  62.         total(num, TOTAL);
  63.         sort(num, TOTAL);
  64.         //sort(num, total(num, n));
  65. }
复制代码
最佳答案
2020-5-20 21:44:49
一直在用,没出过啥问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-20 11:36:28 | 显示全部楼层
VS的问题的可能性基本为0。
建议找找自身问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 12:23:14 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-20 11:36
VS的问题的可能性基本为0。
建议找找自身问题。

2019还不完全成熟好吧
2017不香吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 12:32:55 | 显示全部楼层
老八秘制 发表于 2020-5-20 12:23
2019还不完全成熟好吧
2017不香吗

这都一年了明年都出2021了还不成熟呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 12:36:28 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-20 12:32
这都一年了明年都出2021了还不成熟呢

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-20 21:44:49 | 显示全部楼层    本楼为最佳答案   
一直在用,没出过啥问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-21 16:03:21 | 显示全部楼层
初学者不要想着为微软这种企业找 bug,可能性近乎于 0
同样不要认为是编译器 bug,可能性近乎于0
如果,你了解了企业级别,软件发布的流程,你都会觉得自己的想法可笑。

然后,解答你的问题。
首先,感谢你,我以前从来没有想过 flush(stdin) 这样的操作。所以,就去查了资料。获得了如下的新知识。

use-fflushstdin-c
Microsoft C++ Doc
stackoverflow using fflush stdin

undefined

undefined
not_recommended.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-21 23:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表