| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 292 人关注过本帖
标题:数组数组,不要指针!!
只看楼主 加入收藏
Justinlong
Rank: 2
等 级:论坛游民
帖 子:19
专家分:13
注 册:2012-3-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
数组数组,不要指针!!
大侠们,帮帮小弟呀,我最近遇到了一道题,却想来想去都想不通!虽然能编出来一点点,但有很多错误!求解!!!!
题目:输入含有n个数值的整数数列和整数m,利用选择排序方法挑选出钱m个较小的数值,并显示输出。要求挑选出前m个数值后,程序立即结束。(不能事先规定n的值。)请不要神马指针,只需要基本的算法就行了。谢谢!!!
以下是我的代码,但错漏百出!
#include<stdio.h>
int main()
{
    int num[100],m,j,i,min,n;
    char ch,zm[100];
    printf("请输入m的值:\n");
    scanf("%d",&m);
    printf("请输入n个数:\n");
    ch=getchar();
    i=0;
    do
    {
        j=0;
        do
        {
            ch=getchar();
            if(ch==' '||ch=='\n')
                break;
            zm[j]=ch;
            j++;
        }while(1);
        num[i]=atoi(zm);
        i++;
        if(ch=='\n')
            break;
    }while(1);
    n=i;
    i=0;
    while(i<m)
    {
        min=i;
        j=min+i;
        do
        {
            if(num[min]>num[j])
                min=j;
            j++;
            if(j>=n-1)
                break;
        }while(1);
        if(min!=i)
        {
            j=num[i];
            num[i]=num[min];
            num[min]=j;
        }
        i++;
    }
    for(i=0;i<m;i++)
    {
        printf("%5d",num[i]);
    }
    printf("\n");
    return 0;
}
搜索更多相关主题的帖子: include 神马 算法 
2012-04-17 13:14
hellovfp
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:禁止访问
威 望:30
帖 子:2976
专家分:7697
注 册:2009-7-21
收藏
得分:20 
程序代码:
#include <stdio.h>

void select_sort(int array[], int size);

int main()
{
    int num[100];
    int i, m = 0, n = 0;
    
    printf("请输入m的值:\n");
    scanf("%d", &m);
    
    printf("请输入n的值:\n");
    scanf("%d", &n);
    getchar();
    
    printf("请输入数组的值:\n");
    for(i = 0; i < n; i++)
    {
        scanf("%d", &num[i]);
    }
    
    select_sort(num, n);
    
    if(m < n)
    {
        printf("前m个数为:\n");
        for(i = 0; i < m; i++)
        {
            printf("%d ", num[i]);
        }
    }
    puts("\n");
    getchar();
    return 0;
}

//选择排序
void select_sort( int array[], int size )
{
    int i, j, min = 0;
    int tmp;
    
    for(i = 0 ; i < size - 1; i++ )
    {    
        min = i;
        for(j = i + 1; j < size ; j++)
        {
            if(array[j] < array[i] )
            {
                min = j;
            }
        }
        
        if(min != i) //交换
        {
            tmp = array[i];
            array[i] = array[min];
            array[min] = tmp;
        }
    }
    
}


输出:
请输入m的值:
3
请输入n的值:
5
请输入数组的值:
11 12 14 18 10
前m个数为:
10 11 12

Press any key to continue

我们都在路上。。。。。
2012-04-17 14:15
快速回复:数组数组,不要指针!!
数据加载中...
 
   



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

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