黄天望百度百科:如何用C语言实现逆序存放数组里面的数?(急救)!!!回答的满意,本人另加悬赏分!!!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 01:51:00
手动任意输入一些数,放到数组里.
如何用C语言实现逆序存放数组里面的数?
我想的是设数组里数值的个数为N,
用第N个和第一个互换,第N-1个和第1+1个互换...以此类推
一共互换N/2次就实现了逆序存放
但是我编了两个程序
用来统计手动输入数值的个数却老是解决统计不了里面数值的个数问题
看看这两个程序到底哪儿错了?
#include <stdio.h>
void main()
{
int a,sum=4;
char c[10000];
for(a=1;a<sum;a++)
{
scanf("%c",&c[a]);
while((c[a]=getchar())=='\n')
{sum=0;}
sum++;
}
printf("%d",a);
}

#include <stdio.h>
void main()
{
int a[10000];
int i,sum=4;
for(i=1;i<sum;i++)
{
scanf("%d",&a[i]);
while(a[i]==0)
{sum=0;}
sum++;
}
printf("%d",i);
}

不要悬赏分。

给你修改了第二个。
输入若干个数,输入数值是99999表示输入结束。
i是输入时的计数器。

#include <stdio.h>
void main()
{
int a[10000];
int i=0;
int j,k;
int aa;

Lab1:
scanf("%d",&a[i]);
if (a[i] == 99999) goto done; //输入99999,则输入结束
i = i + 1; // 否则,计数器加 1
goto Lab1; // 返回上面,再接收下一个输入数

done:;
printf("i=%d\n",i);

for (k=0;k<i;k++) printf("%d ",a[k]);
printf("\n"); // 打印输入数

j = i / 2;

for (k=0;k <= j; k++){
aa = a[k]; // 暂存
a[k] = a[i-1-k]; // 交换
a[i-1-k] = aa; // 交换
}

for (k=0;k<i;k++) printf("%d ",a[k]);
// 打印换序后的输入数
}

计数器从大到小循环

第一个
while((c[a]=getchar())=='\n')
{sum=0;}
sum++;错了
应该改为
while((c[a]=getchar())=='\n')
{sum=0;
sum++;}
第二个也一样
大括号后移一条语句
{sum=0;
sum++;}