C语言中让两个正的int型变量相加的程序为什么运行结果会出现负数?如题 程序如下#include "stdio.h"void main(){ int n1,n2,total; printf("This program adds two numbers.\n"); printf("1st numb

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 12:22:12
C语言中让两个正的int型变量相加的程序为什么运行结果会出现负数?如题 程序如下#include "stdio.h"void main(){    int n1,n2,total;    printf("This program adds two numbers.\n");    printf("1st numb

C语言中让两个正的int型变量相加的程序为什么运行结果会出现负数?如题 程序如下#include "stdio.h"void main(){ int n1,n2,total; printf("This program adds two numbers.\n"); printf("1st numb
C语言中让两个正的int型变量相加的程序为什么运行结果会出现负数?
如题 程序如下
#include "stdio.h"
void main()
{
    int n1,n2,total;
    printf("This program adds two numbers.\n");
    printf("1st number?\n");
    printf("n1= ");
    scanf("%d",&n1);
    printf("2nd number?\n");
    printf("n2= ");
    scanf("%d",&n2);
    total=n1+n2;
    printf("The total is %d\n",total);
}
一般的数据都没什么问题 要是输入的数过大的话就会出现奇怪的结果  比如负数什么的 以下是截图




C语言中让两个正的int型变量相加的程序为什么运行结果会出现负数?如题 程序如下#include "stdio.h"void main(){ int n1,n2,total; printf("This program adds two numbers.\n"); printf("1st numb
因为int是有最大限制的,当相加的结果超出这个限制之后,(就是所谓的溢出),最高位可能会变为1,也就是表示负数,所以结果为负数