| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 808 人关注过本帖
标题:先定义问题,找错。。
只看楼主 加入收藏
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:11 
先定义问题,找错。。
编写程序,要求用户录入一串整数(把这串整数存储在数组中),然后通过调用sort函数来排序这些整数。

#define N 50
#include<stdio.h>
#include<conio.h>

sort(int a[]);

void main()
{
  int a[N],i,num,m;
  clrscr();
  printf("Enter number of shu zu=");
  scanf("%d",&num);
  printf("They are:");
  for(i=0;i<num;i++)
    scanf("%d",&a[i]);
  m=sort(a);
  printf("Pai lei wei:%d\n",m);
  getch();
}


sort(int a[])
{
  int i,j,num,temp;
  for(i=0;i<num;i++)
    for(j=0;j<num-i-1;j++)
      if(a[j]>a[j+1])
    {
     temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }

}


哪里有错?
搜索更多相关主题的帖子: 用户 
2011-04-15 13:30
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:3 
程序代码:
#define N 50
#include<stdio.h>
#include<conio.h>

void sort(int a[]);

void main()
{
  int a[N],i,num,m;

  clrscr();

  printf("Enter number of shu zu=");
  scanf("%d",&num);

  printf("They are:");

  for(i=0;i<num;i++)
    scanf("%d",&a[i]);

 
sort(a);

 
printf("Pai lei wei:\n");


 for(i=0;i<num;i++)
  printf("%d\t",a[i]);

 
printf("\n");
  getch();
}


void sort(int a[])
{
  int i,j,num,temp;

  for(i=0;i<num;i++)
    for(j=0;j<num-i-1;j++)
  {
      if(a[j]>a[j+1])
    {
     temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
  }
}


   唯实惟新 至诚致志
2011-04-15 13:43
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 2楼 qq1023569223
不对
我试了
它提示Warning
    Possible use of ‘num’ before definition  in function sort
说我在没定义前久用了num了
我在sort()里  怎么给num付初值?
2011-04-15 14:24
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
收藏
得分:3 
sort(int *a,int num);//多写个一个形参
2011-04-15 14:43
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:0 
程序代码:
void sort(int a[])
{
  int i,j,n,temp;

  for(i=0;i<n;i++)
    for(j=0;j<n-i-1;j++)
  {
      if(a[j]>a[j+1])
    {
     temp=a[j];
     a[j]=a[j+1];
     a[j+1]=temp;
    }
  }
}


   唯实惟新 至诚致志
2011-04-15 14:49
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 5楼 qq1023569223
不对
我改了之后
它又显现在定义n前先用了n了
和我刚才给你回 的错误一样‘
2011-04-15 15:10
hjywyj
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:3
帖 子:1114
专家分:2611
注 册:2010-4-14
收藏
得分:3 
这个最好用指针函数
2011-04-15 15:15
yjj598889481
Rank: 1
等 级:新手上路
帖 子:57
专家分:2
注 册:2011-4-4
收藏
得分:0 
回复 7楼 hjywyj
把你用指针的代码发给我好吗
2011-04-15 15:32
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
是这样的嘛
程序代码:

root@~ #cat 4.c
#include <stdio.h>

int main (void) {
        long long int number;
        int a[20],len=0,j,i,temp;
        scanf("%lli",&number);
        do {
                a[len]=number%10;
                number/=10;
                len++;
        }while(number!=0);
        for(i=0;i<len-1;i++) {
                for(j=i+1;j<len;j++) {
                        if(a[i]>a[j]) {
                                temp=a[i];
                                a[i]=a[j];
                                a[j]=temp;
                        }
                }
        }
        for(j=0;j<len;j++) { printf ("%i",a[j]); };printf ("\n");
        return 0;
}

root@~ #./4
2132434565678908912
0112223344556678899
root@~ #


[ 本帖最后由 ansic 于 2011-4-15 15:49 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-15 15:38
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
程序代码:
root@~ #cat 6.c
#include <stdio.h>
#define N 20
int main (void) {

        int i,num,array[N];
        void sort (int a[],int n); //声明函数原型

        printf ("Enter numbers of array:\n"); //输入元素个数
        scanf ("%i",&num);

        printf ("Input ...\n");  //开始输入

        for(i=0;i<num;i++) { scanf("%i",&array[i]); }

        printf ("\nBefore sort ...\n"); //打印排序钱

        for(i=0;i<num;i++) { printf ("%i ",array[i]); };printf ("\n");

        sort(array,num);//调用函数sort,对数组做升序排列,接受参数为一个整数数组,和一个整数长度

        printf ("\nAfter sorted ...\n");//打印排序后

        for(i=0;i<num;i++) { printf ("%i ",array[i]); };printf ("\n");

        return 0;

}
//利用交换法升序排列数组
void sort (int a[],int n) {

        int i,j,temp;

        for(i=0;i<n-1;i++) {
                for(j=i+1;j<n;j++) {
                        if(a[i]>a[j]) {
                                temp=a[i];
                                a[i]=a[j];
                                a[j]=temp;
                        }
                }
        }
}
root@~ #

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-04-15 16:27
快速回复:先定义问题,找错。。
数据加载中...
 
   



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

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