本文主要是介绍行首行尾的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目一般要求输出数据时行首行尾均无空格,而相邻数据间用单个空格隔开,此时我们分两条语句输出。
#include<stdio.h>
#define maxn 105
int a[maxn];
int main(){int x,n=0;while(scanf("%d",&x)==1){a[n++]=x;}int i;for(i=n-1;i>0;i--){printf("%d ",a[i]);}printf("%d\n",a[0]);return 0;
}
上面这个程序里面还有一个注意的点,数组a的声明在main函数的外面。和放在里面的区别是,只有放在外面时,数组a才可以开得很大;放在main函数里面数组稍大就会异常退出。
同样的一般有很多行输出时,行与行之间换行,但是最后一行输出后,不再换行,也是分开操作,单独对最后一行进行处理。
不做处理:
#include<stdio.h>
#define maxn 100
int main(){int a,i,b,c,kase=0;int m[maxn];for(i=100;i<=999;i++){a=i%10;b=i/10%10;c=i/100;if(a*a*a+b*b*b+c*c*c==i){m[kase++]=i;} }for(i=0;i<=kase-1;i++){printf("%d\n",m[i]);}//printf("%d",m[kase-1]);return 0;
}
输出结果 :
153
370
371
407
处理后:
#include<stdio.h>
#define maxn 100
int main(){int a,i,b,c,kase=0;int m[maxn];for(i=100;i<=999;i++){a=i%10;b=i/10%10;c=i/100;if(a*a*a+b*b*b+c*c*c==i){m[kase++]=i;} }for(i=0;i<=kase-2;i++){printf("%d\n",m[i]);}printf("%d",m[kase-1]);return 0;
}
输出结果:
153
370
371
407
将题目要求读明白,尤其是输出的格式。
这篇关于行首行尾的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!