gpt4 book ai didi

c - C语言中的奇数?铅 'ram or algorithm' !

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:15:57 24 4
gpt4 key购买 nike

这个程序给了我们奇数在给定整数中的位置,这个程序运行良好,但是当我给他一个整数时,它的数字大于 10 - 比如 123456789123-,它不起作用。不知道是内存问题还是算法问题?

#include<stdio.h>
#include<stdlib.h>

main(){

int a,b;
int i = 0;

scanf("%d",&a);

while(a/10!=0){
b=a%10;
if(b%2!=0)
printf("\nodd number position: %d",i);
a=a/10;
i++;
}

if(a%2!=0)
printf("\nodd number position: %d",i);

system("pause");
}

最佳答案

问题出在处理器(架构)上,而不是 RAM。在您的平台上,int 的大小似乎是 32 位,不能容纳 123456789123 这样大的数字。正如 Groo 对 Raon 评论的那样,您可以改用字符串(如果您不打算对数字进行任何计算):

char a[1024] = {0}; /* should be plenty, but extend the array even more if needed */

fgets(a, sizeof a, stdin); /* fgets is recommended as it doesn't overflow */

int i, length = strlen(a);

for(i = 0; i < length; i++){
/* count your odd digits here
left as an exercise to the reader */
/* note that you must access the individual digits using a[i] */
}

关于c - C语言中的奇数?铅 'ram or algorithm' !,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19563922/

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