0

こんにちは、コーディングはかなり新しいです。プログラムを実行するたびに数値を追加する必要があるこのプログラムがあり、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

4 に答える 4

1

/の変数で使用%dします。intscanfprintf

%lf値用doubleです。

于 2012-10-29T11:43:13.173 に答える
1

valueマッチングのテストsecond_valueも間違っています。==等しいかどうかをテストするために使用します

すなわち変更

if(value = second_value){

if(value == second_value){

警告を有効にしてコンパイルすると ( -Wallgcc の場合/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

複数回実行したい場合:次のようなものを追加するだけです:

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

無限ループが必要な場合は、「do while」の代わりに while(1) のようなものを自然に使用できます。

于 2012-10-29T13:20:43.863 に答える