标题:vs2019 scanf问题求大佬解答
只看楼主
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
结帖率:100%
已结贴  问题点数:20 回复次数:2 
vs2019 scanf问题求大佬解答
#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
 
int main()
{
    int n = 0, shuzu[20];
    char num[20];
    printf("请输入数字:");
    while (scanf("%s", num))
    {
        if (!strcmp(num, "ok") || !strcmp(num, "OK"))
            break;
        shuzu[n] = atoi(num);
        n=n+1;
    };

    int temp, i;
    for (i = 0; i < n - 1; i++)
    { for (int j = i + 1; j < n; j++)
       if (shuzu[i] < shuzu[j])
        {
            temp = shuzu[i];
            shuzu[i] = shuzu[j];
            shuzu[j] = temp;
        }
    }
    printf("排序后:");
    for (i = 0; i < n/2; i++)
    {
         printf("%d ", shuzu[i]);
        printf("%d ", shuzu[n - i - 1]);
    }
    if (n % 2 == 1)
    {
        printf("%d ", shuzu[i]);
    }
    return 0;
}

大佬们这个是用c语言vs2019编的小程序
作用是输入数组,按最大最小,第二大第二小,第三大第三小……一直到最后.可正常输出
如何将第一行的#define _CRT_SECURE_NO_DEPRECATE  去掉仍可正常输出,
我最开始没有加第一行,用的scanf_s 一直提示scanf_s那句 0x7C06EF8C (ucrtbased.dll)处(位于 输入10到15个数字按最大最小二大二小……输出2.exe 中)引发的异常: 0xC0000005: 写入位置 0x00C00000 时发生访问冲突。
该如何解决
多谢各位大佬
搜索更多相关主题的帖子: scanf vs2019 int printf num 
2022-08-16 09:17
不会游泳的虾
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:101
专家分:643
注 册:2021-7-1
得分:20 
while (scanf("%s", num))修改为:while (scanf_s("%s", num, 20) == 1)
还缺了几个头文件,修改如下,供参考:
程序代码:
#include <stdio.h>
#include <stdlib.h> // atoi()函数头文件
#include <string.h> // strcmp()函数头文件
int main()
{
    int n = 0, shuzu[20];
    char num[20];
    printf("请输入数字:");
    while (scanf_s("%s", num, 20) == 1)
    {
        if (!strcmp(num, "ok") || !strcmp(num, "OK"))
            break;
        shuzu[n] = atoi(num);
        n = n + 1;
    }//;

    int temp, i;
    for (i = 0; i < n - 1; i++)
    {
        for (int j = i + 1; j < n; j++)
            if (shuzu[i] < shuzu[j])
            {
                temp = shuzu[i];
                shuzu[i] = shuzu[j];
                shuzu[j] = temp;
            }
    }
    printf("排序后:");
    for (i = 0; i < n / 2; i++)
    {
        printf("%d ", shuzu[i]);
        printf("%d ", shuzu[n - i - 1]);
    }
    if (n % 2 == 1)
    {
        printf("%d ", shuzu[i]);
    }
    return 0;
}


[此贴子已经被作者于2022-8-16 10:30编辑过]

2022-08-16 10:20
wuxiami
Rank: 1
等 级:新手上路
帖 子:44
专家分:0
注 册:2022-7-17
得分:0 
回复 2楼 不会游泳的虾
多谢大佬
2022-08-16 10:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-509793-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.430575 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved