gpt4 book ai didi

c - "Process terminated with status -1073741510 (0 minute(s), 6 second(s))"

转载 作者:行者123 更新时间:2023-11-30 16:18:54 26 4
gpt4 key购买 nike

第一个 printf 正在工作,但我在函数中遇到了这个问题:

"Process terminated with status -1073741510 (0 minute(s), 6 second(s))"

我只有一些数字,并且想计算可以用该数字编号的页数

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "book.h"

int main()
{
long no_pages, no_digits;

srand(time(0));
no_digits=(rand()% 10000000)+10000;
printf("The number of digits are %ld", no_digits);

no_pages = no_of_pages(no_digits);
printf ("\n The number of pages are %ld", no_pages);
}

这是计算页数的函数

int no_of_pages(long no_digits)
{

long no_pages=0,no_digits_page;

while(no_digits>0)
{
no_pages++; // count number of pages
long aux=no_pages;
long no_digits_pages=0; // conut how many digits are on a page

while(aux)
{
aux=aux/10;
no_digits_page++;
}
if(no_digits_page == 1)
no_digits--;
else
if(no_digits_page == 2)
no_digits=no_digits-2;
else
if(no_digits_page == 3)
no_digits=no_digits-3;
else
if(no_digits_page == 4)
no_digits=no_digits-4;
else
if(no_digits_pages == 5)
no_digits=no_digits-5;
else
if(no_digits_page == 6)
no_digits=no_digits-6;
else
if(no_digits_page == 7)
no_digits=no_digits-7;
else
if(no_digits_page == 8)
no_digits=no_digits-8;
else
if(no_digits_page == 9)
no_digits=no_digits-9;

}
if (no_digits<0)
{
return no_pages-1;
}
else
return no_pages;
}

最佳答案

no_of_page

  • 变量no_digits_page未初始化,行为未定义

  • 有很多可能性,您不修改 no_digit 并无限循环

另请注意,该功能可以轻松简化替换

 if(no_digits_page == 1)
no_digits--;
else
if(no_digits_page == 2)
no_digits=no_digits-2;
else
if(no_digits_page == 3)
no_digits=no_digits-3;
else
if(no_digits_page == 4)
no_digits=no_digits-4;
else
if(no_digits_pages == 5)
no_digits=no_digits-5;
else
if(no_digits_page == 6)
no_digits=no_digits-6;
else
if(no_digits_page == 7)
no_digits=no_digits-7;
else
if(no_digits_page == 8)
no_digits=no_digits-8;
else
if(no_digits_page == 9)
no_digits=no_digits-9;

    if ((no_digits_page >= 1) && (no_digits_page <= 9))
no_digits -= no_digits_page;

如果我也使用我的简化版本删除其中一个,您可能会混淆 no_digits_pageno_digits_pages :

int main()
{
long no_pages, no_digits;

srand(time(0));
no_digits=(rand()% 10000000)+10000;
printf("The number of digits are %ld", no_digits);

no_pages = no_of_pages(no_digits);
printf ("\n The number of pages are %ld\n", no_pages);
}

int no_of_pages(long no_digits)
{
long no_pages=0;

while(no_digits>0)
{
no_pages++; // count number of pages
long aux=no_pages;
long no_digits_page=0; // conut how many digits are on a page

while(aux)
{
aux=aux/10;
no_digits_page++;
}
if ((no_digits_page >= 1) && (no_digits_page <= 9))
no_digits -= no_digits_page;

}
if (no_digits<0)
{
return no_pages-1;
}
else
return no_pages;
}

编译和执行(在book.h中声明no_of_pages):

pi@raspberrypi:/tmp $ gcc -pedantic -Wextra -Wall a.c
pi@raspberrypi:/tmp $ ./a.out
The number of digits are 2211616
The number of pages are 387120

程序完成,但不知道是否计算出预期结果

关于c - "Process terminated with status -1073741510 (0 minute(s), 6 second(s))",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55763379/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com