你好相当新的编码,我有这个程序,每次程序运行时应该添加一个数字,它计算1 + 2 + 3 + ......(n - 1)+ n 和一个if语句,将值与(n *(n + 1))/ 2进行比较,然后显示一条消息,如果它相同或不同。
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 0, second_value;
printf("Enter a number\n");
scanf("%lf", &n_data_value);
while (count < 10) {
value = (1 + value) + (n_data_value - 1) + n_data_value;
printf("%f\n", value);
second_value = (n_data_value * (n_data_value + 1))/2;
printf("The number is %f\n", value);
count = count + 1;
if(value = second_value){
printf("value = %f and second_value = %f", value, second_value);
}
}
return 0;
}
当我运行它时我就得到了这个
输入数字3
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
0.000000
该数字为0.000000
答案 0 :(得分:1)
将%d
与int
/ scanf
中的printf
个变量一起使用。
%lf
适用于double
值。
答案 1 :(得分:1)
value
匹配second_value
的测试也是错误的。使用==
测试相等性
即。变化
if(value = second_value){
到
if(value == second_value){
请注意,启用警告进行编译(gcc为-Wall
,msvc为/W4
)会为您举报。
答案 2 :(得分:0)
我认为你只需要这个
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 1, second_value;
printf("Enter a number\n");
scanf("%d", &n_data_value);
while (count <= n_data_value) {//while loop to calculate 1+2+3+...+n
value = value + count;
count = count + 1;
}
second_value = (n_data_value * (n_data_value + 1))/2;//calculates n(n+1)/2
printf("The number is %d\n", second_value);
if(value == second_value){//compares value
printf("value = %d and second_value = %d", value, second_value);
}
return 0;
}
答案 3 :(得分:0)
如果你想这样做超过一次:只需添加类似的东西:
#include <stdio.h>
int main(void)
{
int value = 0, n_data_value, count = 1, second_value;
char char_quit='';
do //Infinite loop
{
printf("Enter a number\n");
scanf("%d", &n_data_value);
while (count <= n_data_value) {//while loop to calculate 1+2+3+...+n
value = value + count;
count = count + 1;
}
second_value = (n_data_value * (n_data_value + 1))/2;//calculates n(n+1)/2
printf("The number is %d\n", second_value);
if(value == second_value)//compares value
{
printf("value = %d and second_value = %d", value, second_value);
}
//Ask to continue ?
printf("Do you want to continue ? Y/N \n"); //Y or any other key will force to continue the program
scanf("%c", &char_quit );
}while (char_quit == 'n' || char_quit == 'N');
return 0;
}
你可以自然地使用类似的东西:while(1)如果你想要一个无限循环,那么“do while”的内容。