用了和c++一样的思路,结果c++全部正确,C#却错了,不知道哪里出了问题,求各位博主帮忙找找C#代码哪里有错。
C++代码:(找自某个博主的代码)
#include<cstdio>
int main(){
int k,n;
int flag=0;
while(scanf("%d %d",&k,&n)!=EOF){
if(n){
if(flag==1) printf(" ");
printf("%d %d",k*n,n-1);
if(n>1) flag=1;
}
}
if(flag==0) printf("0 0");
return 0;
}
我的C#代码:
using System;
class x
{
public static void Main(string[] args)
{
string[] strs = Console.ReadLine().Split(' ');
int n = strs.Length;
int[] numx = new int[n];
int[] numz = new int[n];
int flag=0;
for(int i=0;i<n/2;i++)
{
numx[i] = int.Parse(strs[i*2]);
numz[i] = int.Parse(strs[i*2+1]);
}
for(int i=0;i<n/2;i++)
{
if(numz[i]!=0){
if(flag == 1)
{
Console.Write(" ");
}
Console.Write("{0} {1}",numx[i]*numz[i],numz[i]-1);
if(numz[i]>1)flag=1;
}
}
if(flag == 0)
{
Console.Write("0 0");
}
}
}
在线等待,急!)
在末尾加一个C#版本的0返回值即可
有帮助望采纳
第10行:
flag = 1;//if (n > 1)