| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1311 人关注过本帖
标题:为什么exchange函数显示的是非法定义
只看楼主 加入收藏
Davieyu
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-6-28
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
为什么exchange函数显示的是非法定义
#include<stdio.h>
void main()
{
    int a[10];char str[10];
    int *p1=a;char *p2=str;
    int i;
    void exchange(int *p1,char *p2);
    printf("please enter interger number and name:");
    for(i=0;i<=9;i++)
    {    scanf("%d",p1++);                  //输入名字   
    }   
        for(i=0;i<=9;i++)                                
        {  scanf("%s",p2++);                    //输入学号
        if(*(a+i)<*(a+i+1))
         exchange(p1,p2);                     
        }
           for(p1=a;p1<=a+10;p1++)
           {  printf("%d",*p1);
           }  printf("%s",p2);



           void exchange(int *p1,char *p2)    //学号从小到大排列,名字跟着一起变
           {   
                int temp;char s;
                temp=*p1;
                *p1=*(p1+1);
                *(p1+1)=temp;
                                  s=*p2;
                *p2=*(p2+1);
                *(p2+1)=s;
           }
搜索更多相关主题的帖子: exchange include please number 
2016-07-01 22:49
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:20 
#include<stdio.h>
void main()
{  <--------------------------------这个括号匹配的下面没有与之匹配,少了一个跟这个main函数的括号匹配
    int a[10];char str[10];
    int *p1=a;char *p2=str;
    int i;
    void exchange(int *p1,char *p2);
    printf("please enter interger number and name:");
    for(i=0;i<=9;i++)
    {   
     scanf("%d",p1++);                  //输入名字   
    }   -------->这里一对匹配括号(for循环括号一对)
        for(i=0;i<=9;i++)                                
        {  
        scanf("%s",p2++);                    //输入学号
        if(*(a+i)<*(a+i+1))
         exchange(p1,p2);                     
        }-------->这里一对匹配括号(for循环括号一对)
           for(p1=a;p1<=a+10;p1++)
           {  
            printf("%d",*p1);
           } -------->这里一对匹配括号(for循环括号一对)
             printf("%s",p2);



           void exchange(int *p1,char *p2)    //学号从小到大排列,名字跟着一起变
           {   
                int temp;char s;
                temp=*p1;
                *p1=*(p1+1);
                *(p1+1)=temp;
                                  s=*p2;
                *p2=*(p2+1);
                *(p2+1)=s;
           }-------->这里一对匹配括号(自定义函数括号一对)

main函数的花括号到哪里结束?因为少了一个花括号,编译器把自定义函数默认为在main函数中定义。报非法错误。

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2016-07-02 03:05
快速回复:为什么exchange函数显示的是非法定义
数据加载中...
 
   



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

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