P1427 小鱼的数字游戏
1.思路
刚看到这道题的时候就想着先输入,然后再逆序输出。然后不知道for循环中间的代码不知道怎么写,想了想,发现其实可以不写。只要在for循环里,加个判断就行了。
2.源码
#include<stdio.h>
int main(){
int i,a[101];
for(i=0;;i++){
scanf("%d",&a[i]);
if(a[i]==0)
break;
}
int count=i;
for(i=count-1;i>=0;i--)
printf("%d ",a[i]);
}
3.栈的思想
看到这题的标签时,感觉很奇怪,怎么跟栈有关,然后看了大佬的代码,才理解了,栈是先进后出,然后我说的是逆序输出,表达的意思是一样的。
#include<stdio.h>
int a[101];//如果你的第一个数存储在a[1]里,一定要多开一两个空间 ,以防越界访问
int top=0,c;
int main(){
while(1){
scanf("%d",&c);
if(c==0) break;
a[++top]=c;
/*
或者写成:
top++;
a[top]=c;
个人比较喜欢压码……
*/
}
while(top!=0){
printf("%d ",a[top--]);
/*
或者写成:
cout<<a[top];
top--;
*/
}
return 0;
}