第六十五课 编程题(循环体的标志位)
1. 随机输入一个整数num,输出一个新的数,新数恰好与原数每一位上的数字相反,(如果原数末尾有多个零,输出的新数高位不含0)。
int num = Convert.ToInt32(Console.ReadLine());
int temp = 1;
int he = 0;
string fei = "";
while (num > 1)
{
int i = num % 10;
num = num / 10;
if (i > 0)
{
fei += i;
}
}
Console.WriteLine(fei);
我这属于作弊不?嘿嘿!先学到这儿,我再想想。
2. 输入一个整数,如果这个数字末尾有数字0,则将末尾的0全部去掉,直到遇到不是零的数字,但输入的整数中间的0保留。
(这个我还没想好!!看了老师的讲解我也得好好反应反应,脑子被搅和乱了。)
int n= Convert.ToInt32(Console.ReadLine());
bool yudao = false;
while (n != 0)
{
int i = n % 10;
if(yudao == false)
{
if (i != 0)
{
Console.Write(i);
yudao = true;
}
}
else{
Console.Write(i);
}
n = n / 10;
利用bool的两个判断的性质,来从一个判断中跳到另一个判断,这样的方法很好用,很经典Console.Write(i);
yudao = true;
这里的输出语句输出了一个数字,就是被判断不为零的第一个数字,所以要输出一下,然后将判断更改为另一面,就是true,跳出满足false条件的判断。
标志位:(个人定义的哈)
标记一个条件来判断,从而满足条件后跳出此标记的判断,并进入另一条语句。
其实没那么难,如果当时反应不过来就先干别的,回头再想,逻辑这东西如果不是天生的好,那么大家就都一样。