注册 登录
编程论坛 C++教室

新人求助,谢谢!

wuchunbing 发布于 2012-10-14 18:39, 224 次点击
用while、do....while循环结构分别设计以下个体的程序。
(1)把键盘输入的数列(如1,3,5,7,9)按相反的顺序(如9,7,5,3,1)输出。
6 回复
#2
小糊涂神c302012-10-14 20:52
#include<stdio.h>
int main(int argc,char *argv[])
{
    int arr[20];
    int i=0;
    printf("请输入一组数字,以0结束输入:");
    do{
        scanf("%d",&arr[i]);
        if(arr[i++]==0)
            break;
    }while(1);
    while(--i){
        printf("%d\t",arr[i]);
    }
    return 0;
}
楼主看一下这样的复合要求吗?
#3
wuchunbing2012-10-14 21:12
谢谢 虽然略有错误 不过十分感谢你给我的模子;还有 怎么得论坛分数啊 没分数结不了帖子 望赐教
#4
wuchunbing2012-10-14 21:14
还有 只用while语句怎么设计呢
#5
小糊涂神c302012-10-15 08:54
回复 2楼 小糊涂神c30
由于匆忙回答的却是有点小错误,那就是反向输出的时候第一个第一次输入的数据没有输出来!用while其实也是一样的,for循环和while循环是可以相互转换的!
#include<stdio.h>
int main(int argc,char *argv[])
{
    int arr[20];
    int i=0;
    printf("请输入一组数字,以0结束输入:");
    do{
        scanf("%d",&arr[i]);
        if(arr[i++]==0)
            break;
    }while(1);
    while(1){
        i--;
        printf("%d\t",arr[i]);
        if(i==0)
            break;
    }
    return 0;
}
这是改正了的!

#include<stdio.h>
int main(int argc,char *argv[])
{
    int arr[20];
    int i=0;
    printf("请输入一组数字,以0结束输入:");
    while(1){
        scanf("%d",&arr[i]);
        if(arr[i++]==0)
            break;
    }
    while(1){
        i--;
        printf("%d\t",arr[i]);
        if(i==0)
            break;
    }
    return 0;
}
这是用两个while循环写的,不过个人觉得这种情况的题目还是用for循环要好很多!
#6
小糊涂神c302012-10-15 08:57
还有就是你说的结贴的问题,你的分数已经有20个问题点数,你结贴的时候给别人加分就行了,只要不超过20分即可。
#7
wuchunbing2012-10-15 10:36
受教了 真的太感谢了 我这几天 看到while 就要吐了 以后向你多学习 多赐教
1