c语言中一些细节问题

该题试求m到n的和,为什莫求出来的总是0;

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

int sum(int a, int b) {
    int s = 0,i;
    for( i=a;i<=b;i++)
        s += i;
        
    
    return s;
}
int m = 0;
    int n= 0;
    int c = sum(m, n);
    scanf_s("%d %d", &m,&n);
    printf("sum=%d", c);


你的语句顺序反了,应该先写入m和n再传入函数


//NO.10 -22.01.30
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<string.h>

int sum(int a, int b) 
{
    int s = 0, i;
    for (i = a; i <= b; i++)
    {
        s += i;
    }
    return s;
}
 
int main()
{
    int m = 0;
    int n = 0;
    //int c = sum(m, n);
    scanf_s("%d %d", &m, &n);
    //应该先写入m和n再传入函数!
    int c = sum(m, n);
    printf("sum=%d\n", c);

    return 0;
}

img

要先输入m,n的值再计算才有用啊

int c = sum(m, n);
scanf_s("%d %d", &m,&n);

改变这两句的顺序就可以了