| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 557 人关注过本帖
标题:是在想不明白的问题!请高手指点 呵呵
只看楼主 加入收藏
clqngw
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-4-17
收藏
 问题点数:0 回复次数:2 
是在想不明白的问题!请高手指点 呵呵
/*编写一个交换变量值的函数,利用还函数交换数组a和数组b中的对应元素值*/

#include<stdio.h>
#define SIZE 10
void swap(int *p,int *q);

int main()
{
    int a[SIZE],b[SIZE];
    int i,n;
    printf("please input array length(<10):\n");
    scanf("%d",&n);
    for(;n>10;n++)//如果n>10,请重新输入
    {
        printf("error!\n");
            printf("please input n again:\n");
        scanf("%d",&n);
    }

    printf("input numbers of a[]:\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    printf("input numbers of b[]:\n");
    for(i=0;i<n;i++)
        scanf("%d",&b[i]);


    for(i=0;i<n;i++)//利用交换函数,交换两数组中队应位置的值
    swap(&a[i],&b[i]);

    printf("---------------------\n");

    printf("After swap:\n");
    printf("Array a:\n");
    for(i=0;i<n;i++)
       printf("%d\n",a[i]);

    printf("**************************\n");
    
    printf("After swap:\n");
    printf("Array b:\n");
    for(i=0;i<n;i++)
        printf("%d\n",b[i]);

}
void swap(int *p,int *q)
{
    int temp;
    temp=*p;
    *p=*q;
    *q=temp;
}

/*一个还没有想清楚的问题:就是在n的输入的时候,如果一开始输入错误,再重新输入之后,为什么数组的
范围会自动加一。*/
搜索更多相关主题的帖子: include numbers please 元素 
2008-06-06 22:07
wsh2160132
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-5-28
收藏
得分:0 
for(;n>10;n++)//如果n>10,请重新输入
    {
        printf("error!\n");
            printf("please input n again:\n");
        scanf("%d",&n);
    }
你n++了。
2008-06-07 17:18
clqngw
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2008-4-17
收藏
得分:0 
[bo][un]wsh2160132[/un] 在 2008-6-7 17:18 的发言:[/bo]

for(;n>10;n++)//如果n>10,请重新输入
    {
        printf("error!\n");
            printf("please input n again:\n");
        scanf("%d",&n);
    }
你n++了。



谢谢指点   问题应解决   其实   是之前对for循环 太依赖了   换个while会很简单的解决这类单变量限值问题   谢谢   呵呵


/*编写一个交换变量值的函数,利用还函数交换数组a和数组b中的对应元素值*/

#include<stdio.h>
#define SIZE 10
void swap(int *p,int *q);

int main()
{
    int a[SIZE],b[SIZE];
    int i,n;
    printf("please input array length(<10):\n");
    scanf("%d",&n);
    while(n>10)//如果n>10,请重新输入
    {
        printf("error!\n");
            printf("please input n again:\n");
        scanf("%d",&n);
    }

    printf("input numbers of a[]:\n");
    for(i=0;i<n;i++)
        scanf("%d",&a[i]);
    printf("input numbers of b[]:\n");
    for(i=0;i<n;i++)
        scanf("%d",&b[i]);


    for(i=0;i<n;i++)//利用交换函数,交换两数组中队应位置的值
    swap(&a[i],&b[i]);

    printf("---------------------\n");

    printf("After swap:\n");
    printf("Array a:\n");
    for(i=0;i<n;i++)
       printf("%d\n",a[i]);

    printf("**************************\n");
    
    printf("After swap:\n");
    printf("Array b:\n");
    for(i=0;i<n;i++)
        printf("%d\n",b[i]);

}
void swap(int *p,int *q)
{
    int temp;
    temp=*p;
    *p=*q;
    *q=temp;
}
2008-06-07 22:41
快速回复:是在想不明白的问题!请高手指点 呵呵
数据加载中...
 
   



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

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