我在开始学习c#。下面一个程序的两个版本怎么结果不一样?
正确.version
using System;
class Test{
static void divide(int a,int b,out int result,out int
remainder){
result=a/b;
remainder=a%b;
}
static void Main(){
for(int i=1;i<10;i++)
for(int j=1;j<10;j++){
int ans,r;
divide(i,j,out ans,out r);
Console.WriteLine("{0}/{1}={2},{3}%{4}={5}",i,j,ans,i,j,r);
}
Console.ReadLine();
}
}
运行结果:1/1=1,1%1=0
1/2=0,1%2=1
1/3=0,1%3=1
1/4=0,1%4=1
1/5=0,1%5=1
1/6=0,1%6=1
1/7=0,1%7=1
1/8=0,1%8=1
1/9=0,1%9=1
2/1=2,2%1=0
2/2=1,2%2=0
2/3=0,2%3=2
2/4=0,2%4=2
2/5=0,2%5=2
2/6=0,2%6=2
2/7=0,2%7=2
2/8=0,2%8=2
2/9=0,2%9=2
3/1=3,3%1=0
3/2=1,3%2=1
3/3=1,3%3=0
3/4=0,3%4=3
3/5=0,3%5=3
3/6=0,3%6=3
错误.version
using System;
class Test{
static void divide(int a,int b,out int result,out int remainder){
result=a/b;
remainder=a%b;
}
static void Main(){
for(int i=1;i<10;i++)
for(int j=1;j<10;j++){
int ans,r;
divide(i,j,out ans,out r);
Console.WriteLine("{0}/{1}={2},{0}%{1}={3}",i,j,ans,i,j,r);//改动处
}
Console.ReadLine();
}
}
运行结果:1/1=1,1%1=1
1/2=0,1%2=1
1/3=0,1%3=1
1/4=0,1%4=1
1/5=0,1%5=1
1/6=0,1%6=1
1/7=0,1%7=1
1/8=0,1%8=1
1/9=0,1%9=1
2/1=2,2%1=2
2/2=1,2%2=2
2/3=0,2%3=2
2/4=0,2%4=2
2/5=0,2%5=2
2/6=0,2%6=2
2/7=0,2%7=2
2/8=0,2%8=2
2/9=0,2%9=2
3/1=3,3%1=3
3/2=1,3%2=3
3/3=1,3%3=3
3/4=0,3%4=3
3/5=0,3%5=3
3/6=0,3%6=3
3/7=0,3%7=3
3/8=0,3%8=3
3/9=0,3%9=3
4/1=4,4%1=4
4/2=2,4%2=4
4/3=1,4%3=4
4/4=1,4%4=4
4/5=0,4%5=4
4/6=0,4%6=4
4/7=0,4%7=4
4/8=0,4%8=4
4/9=0,4%9=4
5/1=5,5%1=5
5/2=2,5%2=5
5/3=1,5%3=5
5/4=1,5%4=5
5/5=1,5%5=5
5/6=0,5%6=5
5/7=0,5%7=5
5/8=0,5%8=5
5/9=0,5%9=5
6/1=6,6%1=6
6/2=3,6%2=6
6/3=2,6%3=6
6/4=1,6%4=6
6/5=1,6%5=6
6/6=1,6%6=6
6/7=0,6%7=6
6/8=0,6%8=6
6/9=0,6%9=6
7/1=7,7%1=7
7/2=3,7%2=7
7/3=2,7%3=7
7/4=1,7%4=7
7/5=1,7%5=7
7/6=1,7%6=7
7/7=1,7%7=7
7/8=0,7%8=7
7/9=0,7%9=7
8/1=8,8%1=8
8/2=4,8%2=8
8/3=2,8%3=8
8/4=2,8%4=8
8/5=1,8%5=8
8/6=1,8%6=8
8/7=1,8%7=8
8/8=1,8%8=8
8/9=0,8%9=8
9/1=9,9%1=9
9/2=4,9%2=9
9/3=3,9%3=9
9/4=2,9%4=9
9/5=1,9%5=9
9/6=1,9%6=9
9/7=1,9%7=9
9/8=1,9%8=9
9/9=1,9%9=9
为什么会出现这种问题?