张世来4610484 发表于 2020-3-15 22:30:27

宏定义

#include <stdio.h>
#define swap(x,y) {int a;a=x;x=y;y=a;}
main ()
{
        int a,b,i;
        for(i=0;i<10;i++)
        {
                scanf("%d",&a);
        }
        for(i=0;i<10;i++)
        {
                scanf("%d",&b);
        }
        for(i=0;i<10;i++)
        {
                swap(a,b);

        }
        for(i=0;i<10;i++)
        {
                printf("%d",a);
        }
        printf("\n");
        for(i=0;i<10;i++)
        {
                printf("%d",b);
        }
        printf("\n");

       
}
用带参宏实现数组a和数组b的值的交换,麻烦看看这个错在哪,编译错了,不知道怎么改

jackz007 发表于 2020-3-16 01:39:51

#include <stdio.h>
#define swap(x , y) {int a ; a = * x ; * x = * y ; * y = a ;}
main ()
{
      int a , b , c , d , i                      ;
      printf("现在输入数组 a:\n")                     ;
      for(i = 0 ; i < 10 ; i ++) scanf("%d" , & a)    ;
      printf("现在输入数组 b:\n")                     ;
      for(i = 0 ; i < 10 ; i ++) scanf("%d" , & b)    ;
      for(i = 0 ; i < 10 ; i ++) {
                c = a , d = b                        ;
                swap(& c , & d)                            ;
                a = c , b = d                        ;
      }
      printf("数组 a:\n")                               ;
      for(i = 0 ; i < 10 ; i ++) printf("\t%d\n" , a) ;
      printf("\n")                                       ;
      printf("数组 b:\n")                               ;
      for(i = 0 ; i < 10 ; i ++) printf("\t%d\n" , b) ;
      printf("\n")                                       ;
}
      编译、运行实况:
C:\Bin>g++ -o swap swap.c

C:\Bin>swap
现在输入数组 a:
1
2
3
4
5
6
7
8
9
10
现在输入数组 b:
10
20
30
40
50
60
70
80
90
100
数组 a:
      10
      20
      30
      40
      50
      60
      70
      80
      90
      100

数组 b:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10


C:\Bin>
页: [1]
查看完整版本: 宏定义