| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1387 人关注过本帖
标题:设计c语言程序,把由键盘输入的数列(如1,3,5,7,9)按相反的顺序(如9,7,5, ...
只看楼主 加入收藏
爱猎狐者
Rank: 1
等 级:新手上路
帖 子:9
专家分:2
注 册:2012-9-20
结帖率:100%
收藏
已结贴  问题点数:18 回复次数:5 
设计c语言程序,把由键盘输入的数列(如1,3,5,7,9)按相反的顺序(如9,7,5,3,1)输入
设计c语言程序,把由键盘输入的数列(如1,3,5,7,9)按相反的顺序(如9,7,5,3,1)输入
#include<stdio.h>
#define n 5
void main()
{
int i=0,j=5,k,a[n];
for(i=0;i<n;i++)
scanf("%d",&a[i]);
while(i<j) {k=a[i];a[i]=a[j];a[j]=k;i++;j--;}
for(i=0;i<6;i++)

printf("%d",a[i]);
}
这个程序可以编译,输入13579后,却没有输出97531,为什么????
搜索更多相关主题的帖子: include 
2012-11-06 21:37
光头小子
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2012-11-6
收藏
得分:4 
第一个for循环后i的值为5,没置0
2012-11-06 21:40
maopengr11
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2012-10-30
收藏
得分:4 
你看这个程序行不行,用到栈的知识;
#include<stdio.h>
#include<malloc.h>
#define MAXSIZE 1024
typedef int DATATYPE
typedef struct
{
   DATAType data[MAXSIZE];
   int top;
}seqstack; /*定义一个顺序栈*/
seqstack * s;

seqstack * initseqstack()     /*栈的初始化*/
{
   seqstack * s;
   s=(seqstack * )malloc(sizeof(seqstack));   /*申请栈的空间*/
   s->top=-1;             /*栈顶指针的初始化*/
   return s;
 }

int empty(seqstack * s)    /*判栈空*/
{
    if(s->top==-1) return 1;
     else return 0;
}

int push(seqstack * s,DATAType x)    /*入栈*/
{
   if(s->top==MAXSIZE-1)
    {
        printf("overflow");return 0;
     }
   s->top++;
   s->data[s->top]=x;
   return 1;
 }

void pop(seqstack * s)     /*出栈*/
{
   s->top--;
}
 
DATAType top(seqstack * s)   /*读栈顶元素*/
{
    return(s->data[s->top]);
}

void main()
{
   int x;
    s=initseqstack();
    printf("input intiger:");
    scanf("%d",&x);
    while(x!='#')
    {
       push(s,x);
       printf("input intiger:");
       scanf("%d",&x);
     }
    while(!empty(s))
    {
      x=top(s);
      printf("%d",x);
      pop(s);
     }
}
        
   
        
      
      
   
   
2012-11-06 22:30
浅唱我的Time
Rank: 7Rank: 7Rank: 7
等 级:黑侠
帖 子:98
专家分:562
注 册:2012-9-24
收藏
得分:4 
直接这样
#include<stdio.h>
#define n 5
int main()
{
  int i,a[n];
  for(i=0;i<n;i++)
  scanf("%d",&a[i]);
  for(i=4;i>=0;i--)
  printf("%d",a[i]);
}
2012-11-06 22:42
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:4 
程序代码:
#include<stdio.h>
#define n 5
void main()
{
    int i = 0, j = 4, k, a[n];
    for (i = 0;i < n;i++)
        scanf("%d", &a[i]);

    i = 0;//这里 上面的for已经使i=5了,要再变成0

    while (i < j)
    {
        k = a[i];a[i] = a[j];a[j] = k;
        i++;    j--;
    }
    for(i = 0;i < 5;i++)//数组元素只有5个、、
        printf("%d", a[i]);
}


[fly]存在即是合理[/fly]
2012-11-06 22:43
fan200953
Rank: 2
等 级:论坛游民
帖 子:18
专家分:30
注 册:2012-9-1
收藏
得分:4 
scanf("%d",&a[i]);
while(i<j) {k=a[i];a[i]=a[j];a[j]=k;i++;j--;}
在这两句之间添加一句i=0; 因为第一个循环完试,i=5,以后的while不执行的。

2012-11-07 12:15
快速回复:设计c语言程序,把由键盘输入的数列(如1,3,5,7,9)按相反的顺序(如9 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025852 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved