scanf("%d;%d",&a,&b);中间的分号也要按照格式输出,他才能正确赋值,否则他找不到b,b的还是垃圾值,一般是很大的负数,所以总是输出a了解决办法,scanf("%d%d",&a,&b);中间的分号去掉,scanf能自动跳过空格找到下一个值赋给b的。或者不改变源代码,但你输入的时候小心点,‘;’的大小写也不能错。