使用C,得到所有不工作的其他数字的总和
我正在尝试做一个简单的程序,如果我输入-保持简单- 进入 5235 在屏幕上打印 长度为4使用C,得到所有不工作的其他数字的总和,c,cs50,C,Cs50,我正在尝试做一个简单的程序,如果我输入-保持简单- 进入 5235 在屏幕上打印 长度为4 总数是8 进入 54468 印刷品 长度为5 总数是10 然而,只有长度似乎是有效的,我不知道为什么 我得到了用户输入的数字的总长度,并指定了数字是否为奇数,然后添加偶数,反之亦然,但它似乎不起作用 #include <stdio.h> #include <cs50.h> int main(void) { long long cc_number; long long x;
总数是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);
}
#包括
#包括
内部主(空)
{
长cc_编号;
长x;
长长的;
整数和,计数=0;
做
{
printf(“请输入信用卡号”);
cc_number=get_long_long();
x=cc_编号;
}
而(x>0);
而(x!=0)
{
x=x/10;
长度++;
}
x=cc_编号;
而(x!=0)
{
x=x/10;
整数位数=(整数)(x%10);
计数++;
如果((计数%2==0)和(&(长度%2==1))
{
总和=总和+位数;
}
else((计数%2==1)和&(长度%2==0))
{
总和=总和+位数;
}
}
printf(“总和为%i”,总和);
printf(“数字的长度为%lli”,长度);
}
sum
和length
初始化为0
。否则,它们将保留垃圾值do {
...} while (x <= 0);
否则,在第i次迭代中,digit将获得i+1位,而不是第i位else(…)
是无效语法。如果(…),则需要
完整列表:
#include <stdio.h>
int main(void)
{
long long cc_number;
long long x;
long long length = 0;
int sum = 0, count = 0;
cc_number = (x = 54560);
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 if((count % 2 == 1) && (length %2 ==0))
{
sum=sum+digit;
}
}
printf("The sum is %i\n", sum);
printf("The length of the digits is %lli\n", length);
}
(我对print语句做了一些修改。)它到底是如何工作的?1)
sum
未初始化。2)x=x/10;整数位数=(整数)(x%10)代码>-->可能整数位数=x%10;x=x/10代码>3)其他((计数%2==1)和(长度%2==0))
-->其他如果((计数%2==1)和(长度%2==0))
4)而(x>0)代码>-->while(x@Sundaze123添加了稍微修改过的代码版本。请复制并检查。
#include <stdio.h>
int main(void)
{
long long cc_number;
long long x;
long long length = 0;
int sum = 0, count = 0;
cc_number = (x = 54560);
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 if((count % 2 == 1) && (length %2 ==0))
{
sum=sum+digit;
}
}
printf("The sum is %i\n", sum);
printf("The length of the digits is %lli\n", length);
}
$ ./a.out
The sum is 10
The length of the digits is 5