发现遇到很多类似的问题,每次遇到或多或少会头疼几分钟因为需要动脑子。。。
或许是本人太懒了。。太懒了。。太懒了。。
这就是为什么喜欢套公式而懒得推导,喜欢用定理而懒的证明。
或许高数课本上黑体字很重要吧,重要的都不想看别的东西了。
哒哒哒哒哒哒~~冒蓝火
不过,还是c语言比较合口味。。。
只有规则,没有为什么,没有为什么。
一生:“老师,c语言这里为什么……”;
老师:“没有为什么,记住就行”;
一生:“……”;
好了,既然不需要情感,只需要规则,那有些东西加个指针输入到脑海中的某个细胞中,用的时候再调出来,那岂不比电脑还有效率???
对于数字翻转。。。。O(∩_∩)O当然既有笨的方法。
int main()
{
int i,j,k;
printf(“请输入一个三位数:”);
scanf(“%1d%1d%1d”,&i,&j,&k);
printf(“倒序输出该三位数:%d%d%d\n”,k,j,i);
return 0;
}
是不是很笨,,,但是省脑细胞啊。。如果知道输入的肯定为三位数就别跟自己过不去了非要用巧妙的方法。。。。有时候笨方法更省时间。。
好了上面那个只是个玩笑
int main()
{
char shuaiqi[100] ;
int i;
scanf("%s",&shuaiqi);
for (i = 0; i < strlen (shuaiqi);i++)
{
printf("%c",shuaiqi[strlen (shuaiqi) - i-1]);
}
}
对于这串代码来说,很明显是用字符串的格式输入,然后再输出字符串,非常好理解,但是有一个很无奈的问题,如果输入的最后一位是0的话,它还是会原封不动的打出来,显得特别傻。
也就是在上次实验课的时候看着它干瞪眼了好久好久。。。。。
(当时真是愚蠢)
愚蠢到写下了这个纠结的代码
int main()
{
int i,a,sum[10] = {0};
char ch;
for (i = 0; i <= 9;i++ ){
while ((ch = getchar()) !='\n')
{
sum[i] += ch - '1' + 1;
}
}
for (i = 0;i <=9;i ++)
{
printf("%d\n",sum[i]);
}
}
Dev测试成功但是老师的系统测试超时。。。
心态爆炸。。。接着,就是字符串方法回避不了的那个开头0的问题。。056 056是个什么东东???就是56呀,但是计算机不认啊,情商太低了真应该跟我学习学习。
然后还想设个if语句看看能不能把最后一位的零特殊化拿出来。。
但又想到了如果有好多的0怎么办啊1000000。
心态爆炸。。。
之后是某位不愿意承认自己是大佬的巨佬写的
int integer[11];
for(int i = 0; i < 10; i++)
{
scanf(“%d”, &integer[i]);
int s = 0;
for(int j = integer[i]; j>=1;)
{
s = s + j % 10;
j = j / 10;
}
integer[i] = s;
}
for(int i = 0; i < 10; i++)
{
printf(“%d”, integer[i]);
if(i != 9)
{
printf(“\n”);
}
}
膜大佬,膜大佬,。巧妙的把数字最前方的0去掉了。。。。(虽然和我最后想的差不多但想的过程比我快了好久。)
不过我觉得大佬的思路很好啊。。但是代码串有点多了。尤其是那放眼望去的sssss 乍一看以为是字符组。所以化简过后的,也是目前我知道的最干脆的版本:
int opposite(int a)
{
int sum = 0;
while (a)
{
sum = sum*10 + a%10;
a /= 10;
}
return sum;
}
哈!!!!
于是就把最精华的版本背过了。。
希望大家也能在c语言的探索中找到自己的乐趣。
虽然我写的对于大佬来说实在是荒诞的自娱自乐。
不过我很快乐啊~~~~
青春的意义是什么? 不就是快乐么?