| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1251 人关注过本帖
标题:C语言题目,麻烦大神解答一下
只看楼主 加入收藏
TKSMD
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-5-4
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
C语言题目,麻烦大神解答一下
实验题目要求
1定义一个N个元素的浮点整数
2为数组输入数值,最多N个,也可以输入0为标志提前结束输入
3对输入的M个数值进行排序,交换法或者选择法均可,降序排列
4对排序后的数值按照每行3个进行输出,输出数值保留一位小数
5分别定义三个函数实现上述3个步骤
2016-05-04 17:09
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:10 
#include<stdio.h>
#define    N 10
int main()
{
    void input(int s[N]);
    void mov(int s[N]);
    void output(int s[N]);
    int a[N];
    input(a);
    mov(a);
    output(a);
    return 0;
   
}
void input(int s[N])
{
    int i;
    for(i=0;i<N;i++)
    {
        scanf("%d",&s[i]);
        if(s[i]==0)
        break;
    }
}
void mov(int s[N])
{
    int i,j,k;
    for(i=0;i<N;i++)
    {   
        if(s[i]==0)
        break;   
        for(j=i+1;j<N;j++)
        {
            if(s[i]<s[j])
            {
                k=s[i];
                s[i]=s[j];
                s[j]=k;
            }
        }   
    }
    for(i=0;i<N;i++)
    {   
        if(s[i]==0) break;
        printf("%d\t",s[i]);
    }
}
void output(int s[N])
{
    int i,j=0;
    for(i=0;i<N;i++)
    {
        if(s[i]==0)
        break;
        printf("%d\t",s[i]);
        j++;
        if(j==3)
        {
            printf("\n");
            j=0;
        }
    }
}
2016-05-04 18:17
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:10 
回复 楼主 TKSMD
你这第一条要求有点不合适,你看下原题目是不是看错了,浮点数就是小数。整数就是整数。浮点型整数好像不太合适吧
2016-05-05 08:51
wanglianyi1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:647
专家分:2067
注 册:2015-6-18
收藏
得分:0 
2楼答案基本解决了。不过有数据类型方面,和输出格式要修改下。数组类型要求是浮点型的。输出保留一位小数;数据输出可以直接在排序sort函数中调用output函数,还有个问题,如果提前输入0结束,当数组元素少于预定义的N的时候,就会出错了。所以程序修改如下:

#include<stdio.h>
#define N 12
void input(float arr[N]);
void sort(float arr[N]);
void output(float arr[N]);
int m;
int main()
{
   
    float arr[N];
    input(arr);
    sort(arr);   
    return 0;   
}
void input(float arr[N])
{   
    printf("请输入数组的各个元素值,数之间Enter确认.\n\n");
    printf("也可以提前输入0结束数据输入.\n\n");
    for(m=0;m<N;m++)
    {
        scanf("%f",&arr[m]);
        if(arr[m]==0)
            break;
    }
    printf("输入的%d个数据如下(保留一位小数):\n",m);
    for(m=0;m<N;m++)
    {   
        if(arr[m]==0)
            break;
        printf("%.1f\t",arr[m]);
    }
    printf("\n");
}
void sort(float arr[N])
{
    int i,j;
    float temp=0.0;
    for(i=0;i<m;i++)
    {   
        if(arr[i]==0)
        break;   
        for(j=i+1;j<m;j++)
        {
            if(arr[i]<arr[j])
            {
                temp=arr[i];
                arr[i]=arr[j];
                arr[j]=temp;
            }
        }   
    }
    printf("数组元素降序排序:\n");
    output(arr);
}
void output(float arr[N])
{
    int i,j=0;
    for(i=0;i<m;i++)
    {
        if(arr[i]==0)
            break;
        printf("%.1f\t",arr[i]);
        j++;
        if(j==3)
        {
            printf("\n");  
            j=0;
        }
    }
    printf("\n");
}


[此贴子已经被作者于2016-5-5 09:43编辑过]

2016-05-05 09:23
linlulu001
Rank: 13Rank: 13Rank: 13Rank: 13
等 级:贵宾
威 望:20
帖 子:944
专家分:4047
注 册:2016-4-13
收藏
得分:0 
你有心了,不是我看错,是了原来写的,直接复制上来。懒的改了,让楼主自己改。
连这个都不会改,说明他要重新巩固下,不过他也有必要重新巩固下,毕竟这个程序太简单了。
2016-05-05 09:47
快速回复:C语言题目,麻烦大神解答一下
数据加载中...
 
   



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

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