因为这个数字很长,而且开头允许以零开始,所以有必要使用字符串来保存这个数字。然后用两个变量分别指向它的第一个数字和最后一个数字,在使用一个循环判断这两个数字是否相同,如果相同,就把前面的标加一,并且把后面的下标减去一,直到前面的下标大于后面的下标,或者两个下标所指的数字不相同。只要退出的时候两个下标的数字不相同,原来的数字就不是幸运数字,否则他就是一个幸运数字。
我理解倒序就是原本从大到小,
排成从小到大(或者反过来)
这样的话,
最简单的方法,
编一个循环体:
int
b[N];//假定数组a存放原数据,
b存放倒序后的数据,N为数据个数
for(i=0,j=N;i
=0;i++,j--)
{
b[j]=a[i];
}
如果要求不使用新数组的话,就交换两头元素的位置,比如12345,
15交换,24交换:
int
t;
//中间变量t
for(i=0;i
追问:
这样递增递减
变量是什么
评论
0
0
0
加载更多
按照题目要求编写的C语言程序如下
#include<stdioh>
int main()
{
int a[4][5],index=1;
int i,j;
//正序赋值
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
{
a[i][j]=index++;
}
}
//逆序输出
for(i=3;i>=0;i--)
{
for(j=4;j>=0;j--)
{
printf("%-5d ",a[i][j]);
}
printf("\n");
}
return 0;
}
过程:根据题意,就是要求先输出个位数,然后是十位数,再是百位数、千位数等等。
思路:通过不断的除以10求余数可分别得到个位数,十位数,百位数,千位数等等。
源程序:
说明:
执行过程如下:
第1步:先求解表达式1,此题不用求解直接是1,所以程序往下执行。
第2步:求解表达式2,n初值是256,其值为真(非0),则执行for语句中指定的内嵌语句 printf("%d",n%10); ,然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。
第3步:求解表达式3,即n=n/10。
第4步:转回上面第2步继续执行。
第5步:循环结束。
程序执行过程如图所示:
运行过程说明
程序运行结果:
当然,如果想输入负整数-256:
增加负整数代码
原理同正整数部分,程序运行结果:
程序运行结果
当然还可以增加输入是否正确的判断部分。
#include<stdioh>
int main()
{int n,i,j,t,a[200];
printf("数组中数的个数:");
scanf("%d",&n);
printf("数组中的数:\n");
for(i=0;i<n;i++)
{
a[i]=i+1;
printf("%d ",a[i]);
}
for(i=0,j=n-1;i<j;i++,j--)
{t=a[i];a[i]=a[j];a[j]=t;}
printf("\n逆序后的数组:\n");
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
getch();
return 0;
}
#include <stdioh>
int main()
{
int t, n, i = 0, a[20];
while (scanf("%d", &a[i]) != EOF && a[i] != 0) i++;
n = i - 1;
for (i = 0; i <= n / 2; i++)
{
t = a[i];
a[i] = a[n - i];
a[n - i] = t;
}
for (i = 0; i < n; i++)
printf("%d ", a[i]);
printf("%d\n", a[i]);
return 0 ;
以上就是关于C语言中怎么求逆序全部的内容,包括:C语言中怎么求逆序、c语言倒序程序怎么编写、怎么做呀,用逆序循环,C语言的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)