gpt4 book ai didi

存储字符代替整数

转载 作者:行者123 更新时间:2023-11-30 14:51:13 25 4
gpt4 key购买 nike

存储字符代替整数

    /* C program to find strong number using Structure and Pointers*/

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

struct strg {
long int a;
}*strgvar;

int strong(int);

int main() {
int result;
strgvar = (struct strg*) malloc(sizeof(struct strg));
printf("Enter the number ...\n");
scanf("%ld", &strgvar -> a);
result = strong(strgvar -> a);
if(result == strgvar->a) {
printf("Its a strong number !");
}
else {
printf("Its not a strong number !");
}
return 0;
}

int strong (int a) {
int fact, r, n, sum = 0;
while(a != 0) {
r = r % 10;
for(int i =0; i <= r; i++) {
fact = fact * i;
}
sum = sum + fact;
n = n/ 10;
}
return sum;
}
<小时/>

运行此程序时,输入的整数未存储在变量中。但是在输入任何字符时,它会打印“Its a Strong number!”

示例:

case 1:

Enter the number... 234

2

178

er

fg yu8 . case 2: Enter the number ...e

这是一个强大的数字!

最佳答案

除非a==0开始,否则strong中的循环显然是无限的。如果 scanf 失败,strgvar->a未初始化,因此您的程序具有未定义的行为。一种“合理”的可能性是该值被读取为 0,从而产生观察到的结果。

关于存储字符代替整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48477181/

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