当前位置: 代码迷 >> C语言 >> 是在想不明白的问题!请高手指点 呵呵
  详细解决方案

是在想不明白的问题!请高手指点 呵呵

热度:285   发布时间:2008-06-06 22:07:25.0
是在想不明白的问题!请高手指点 呵呵
/*编写一个交换变量值的函数,利用还函数交换数组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  元素  

----------------解决方案--------------------------------------------------------
for(;n>10;n++)//如果n>10,请重新输入
    {
        printf("error!\n");
            printf("please input n again:\n");
        scanf("%d",&n);
    }
你n++了。
----------------解决方案--------------------------------------------------------
[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;
}
----------------解决方案--------------------------------------------------------
  相关解决方案