法一:
可利用for循环将数从1加到所要输入的数:
#include <stdio.h> int main() { int num; while(scanf("%d",&num) != EOF) { int sum = 0,i; for(i = 1; i <= num;i++) { sum = sum + i; } printf("%d\n\n",sum); } return 0; }
法二:
利用等差数列公式计算,sum = (1+num)*num/2;但是要注意除2的位置,如果先乘再除,会造成数据溢出的问题,所以要先除再乘。
错例:#include <stdio.h> int main() { double num; while(scanf("%lf",&num) != EOF) { double sum = 0; sum=(1+num)/2*num;//注意数据溢出的问题 printf("%.0lf\n\n",sum); } return 0; }
#include <stdio.h> int main() { int num; while(scanf("%d",&num) != EOF) { int sum = 0; sum=(1+num)*num/2;//数据溢出了 printf("%d\n\n",sum); } return 0; }