0

你好,在编码方面相当新,我有这个程序应该在每次运行程序时添加一个数字,它计算 1 + 2 + 3 +......(n - 1) + n 和一个比较将值设置为 (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

4

4 回答 4

1

%d与/中的int变量一起使用。scanfprintf

%lf是为了double价值观。

于 2012-10-29T11:43:13.173 回答
1

value匹配测试second_value也是错误的。用于==测试是否相等

即改变

if(value = second_value){

if(value == second_value){

请注意,启用警告的编译(-Wall对于 gcc,/W4对于 msvc)会为您标记这一点。

于 2012-10-29T11:45:21.343 回答
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;
}
于 2012-10-29T11:50:47.363 回答
0

如果您想执行 1 次以上:只需添加类似的内容:

#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”。

于 2012-10-29T13:20:43.863 回答