【发布时间】:2020-06-11 01:35:36
【问题描述】:
我目前正在上课学习 C。我已经获得了将用户输入的值设置为 num 的代码,但是当我尝试为另一个变量(placeHolder1)分配 num 的值并返回该新变量时,我得到了一堆随机数。不完全确定为什么新变量没有收到 num 持有的内容。在我的原始帖子中,我遗漏了很多代码,因为我不知道我是否能够全部分享。是的,这是一个 CS50 问题,不,我不是要求解决问题集,只是要求变量的指定问题。其中很多都被注释掉了,因为我试图找出为什么我得到的值与预期不同。
#include <stdio.h>
#include <cs50.h>
#include <math.h>
string cardType;
long get_card_num(string prompt);
long length;
long tempNumL;
long tempNumS;
int startNum;
long sum1;
long sum2;
int main(void)
{
long n = get_card_num("Number: "); //prompts user for input
printf("%li\n",n);
}
long checksum(num)
{
long placeHolderA=num;
long placeHolderB=num/10;
/*do
{
sum1+=(placeHolder1%10);
placeHolder1=placeHolder1/100;
}
while(placeHolder1/100>1);
do
{
sum2+=(placeHolder2%10);
placeHolder2= placeHolder2/100;
}
while(placeHolder1/100>0);
*/
return num;
}
long get_card_num(string prompt)
{
long num;
num = get_long("%s", prompt); //assigns num to the value of what user input
tempNumL=num; // used to get length
tempNumS=num; // used to get starting num
do
{
tempNumL = tempNumL/10; //gets length
length++;
}
while(tempNumL>0);
if(length<13)
{
get_card_num(prompt);
}
checksum(num);
/*
if((length==13 || length==16) && startNum==4)
{
}
if(length==15)
{
}
if(length==16 && startNum!=4)
{
}
else
{
printf("INVALID");
}
*/
return num;
}
【问题讨论】:
-
placeHolder1在get_num中定义在哪里?那不可能是你的实际代码,如果是,它就不可能编译。 -
long checksum(num)是什么?你对它有什么期待? -
这段代码真的可以编译吗?如果没有,请使用完整的可重现示例进行更新。
-
这是一个 cs50 问题吗?
-
我更新了问题@M.M