#include <stdio.h>
int main(void)
{
int n, sum, i = 0;
int a = 0;
scanf("%d", &n);
while (a == 0)
{
i++;
sum += i;
if (sum >= n)
{
a = 1;
}
}
printf("%d", i);
return 0;
}
不知道哪里错了,测试不通过
sum += i;
你的sum根本没有初始化
逻辑也不对
#include <stdio.h>
int main(void)
{
int n, sum = 0, i = 0;
int a = 0;
scanf("%d", &n);
while (sum < n)
{
i++;
sum += i;
}
printf("%d", i);
return 0;
}
int main() {
int n, i, sum;
printf("请输入一个正整数n:");
scanf("%d", &n);
sum = 0;
i = 1;
while (sum < n) {
sum += i;
i++;
}
printf("使1+2+...+i>=n成立的最小整数i是:%d\n", i - 1);
return 0;
}
【以下回答由 GPT 生成】
你的代码存在一个问题:变量sum没有初始化,导致在使用之前其值是不确定的。可以将sum初始化为0,解决这个问题。以下是修改后的代码:
#include <stdio.h>
int main(void)
{
int n, sum = 0, i = 0;
int a = 0;
scanf("%d", &n);
while (a == 0)
{
i++;
sum += i;
if (sum >= n)
{
a = 1;
}
}
printf("%d", i);
return 0;
}
这个修改后的代码将能够正确计算出使得1+2+...+i大于等于给定的正整数n的最小整数i。
【相关推荐】