gpt4 book ai didi

C编程两个整数之间所有整数的和

转载 作者:太空宇宙 更新时间:2023-11-03 23:41:21 27 4
gpt4 key购买 nike

我是新手!

我应该从用户那里得到 2 个整数,并打印结果(这两个整数之间所有数字的总和)。

我还需要确保用户输入了正确的数字。第二个数字应该比第一个大。

如果条件不满足,我必须打印“第二个数字应该大于第一个”。并再次从用户那里获取号码,直到用户输入符合条件的正确号码。

所以如果我正确地编程,程序的示例将是这样的。

Type the first number(integer) : 10

Type the second number(integer) : 1

The second number should be bigger than the first one.

Type the first number(integer) : 1

Type the second number(integer) : 10

Result : 55

End

我想我必须做两个循环,但我似乎不知道怎么做。我的英语有限,为了帮助您理解这个测验,我将在下面添加我的流程图。

Flowchart

我尝试了很多我能想到的不同方法,但似乎没有任何效果。这是我现在得到的代码。但这也不起作用。

#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);
}

最佳答案

我们可以使用数学公式来代替循环求和。

前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;
}

关于C编程两个整数之间所有整数的和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44196705/

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