C,每次运行时添加数字

时间:2012-10-29 11:41:53

标签: c while-loop

你好相当新的编码,我有这个程序,每次程序运行时应该添加一个数字,它计算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

4 个答案:

答案 0 :(得分:1)

%dint / 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”的内容。