我在试着做一个简单的程序如果我输入-为了简化-
进入
5235
屏幕打印输出
长度为4
总和是8
进入
54468
打印
长度为5
总和是10
然而,只有长度似乎是工作,我不知道为什么。
我得到了用户输入的数字的总长度,并指定如果数字是奇数,则添加偶数计数,反之亦然,但它似乎没有工作。
#include <stdio.h>
#include <cs50.h>
int main(void)
{
long long cc_number;
long long x;
long long length;
int sum, count = 0;
do
{
printf("Please Enter Credit Card Number ");
cc_number= get_long_long();
x= cc_number;
}
while (x>0);
while (x != 0)
{
x= x/10;
length++;
}
x= cc_number;
while (x != 0)
{
x= x/10;
int digit= (int) (x % 10);
count++;
if ((count % 2 == 0) && (length %2 ==1))
{
sum=sum+digit;
}
else ((count % 2 == 1) && (length %2 ==0))
{
sum=sum+digit;
}
}
printf("the sum is %i", sum);
printf("the length of the digits is %lli", length);
}
2条答案
按热度按时间w6lpcovy1#
1.您需要将
sum
和length
初始化为0
。否则,它们将保留垃圾值1.接受输入的循环不正确。您需要
否则将无限循环。
1.您需要将这两条线互换,使其变为:
否则,在第i次迭代中,digit将获得第i+1位,而不是第i位。
else (...)
是无效语法。您需要else if (...)
。完整列表:
这个打印出来
(我对print语句做了一些修改。)
iezvtpos2#