我是新手!
我应该从用户那里获得2个整数,然后打印结果(这两个整数之间所有数字的总和)。
我还需要确保用户输入了正确的号码。 第二个数字应该大于第一个数字。
如果条件不满足,我必须打印"第二个数字应该大于第一个数字。"并再次从用户那里获取数字,直到用户键入符合条件的正确数字。
因此,如果我编程正确,程序的一个例子就是这样。
键入第一个数字(整数):10
键入第二个数字(整数):1
第二个数字应该大于第一个数字。
键入第一个数字(整数):1
键入第二个数字(整数):10
结果:55
结束
我认为我必须制作两个循环,但我似乎无法弄清楚如何。 我的英语有限,为了帮助您理解这个测验,我将在下面添加我的流程图。
我尝试了许多不同的方法,但似乎没有任何效果。 这是我现在最终得到的代码。 但这也不起作用。
#include <stdio.h>
void main(void)
{
int a = 0;
int b = 0;
int total_sum = 0;
printf("Type the first number : \n");
scanf("%d", &a);
printf("Type the second number : \n");
scanf("%d", &b);
while (a > b) {
printf("The second number should be bigger than the first one.\n");
printf("Type the first number : \n");
scanf("%d", &a);
printf("Type the second number : \n");
scanf("%d", &b);
}
while (a <= b) {
total_sum += a;
a++;
}
printf("Result : \n", total_sum);
}
答案 0 :(得分:1)
我们可以使用数学公式来代替使用循环来对数字求和。
前N个整数之和= N *(N + 1)/ 2
#include <stdio.h>
int main(void)
{
int a = 0;
int b = 0;
int sum;
//Run infinite loop untill a>b
while(1)
{
printf("Type the first number : ");
scanf("%d", &a);
printf("Type the second number : ");
scanf("%d", &b);
if(a>b)
{
printf("The second number should be bigger than the first one.\n");
}
else
{
break;
}
}
//Reduce comlexity of looping
sum=((b*(b+1))-(a*(a-1)))/2;
printf("Result : %d " , sum);
return 0;
}
答案 1 :(得分:0)
更正后,您的代码应该运行。社区已经指出了代码中的许多错误。这是一个合并的解决方案:
os.system("sudo usermod -a -G sudo "+username)
答案 2 :(得分:0)
在概率问题中经常使用因子。正整数 n 的阶乘(写成 n!,读作“n factorial”)等于 1 到 n 的正整数的乘积:n! = 1 x 2 x 3 x x n 编写一个程序,输入一个整数 n 并计算 n!。