QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 839|回复: 4

一个c语言问题

[复制链接]
发表于 2003-4-12 23:24:54 | 显示全部楼层 |阅读模式
我写了一个简单的程序:
是这样的。。。。输入10的float数。
#include <stdio.h>
main()
{
        float a[11];
        int i;
        for(i=1;i<10;i++)
        {
                scanf("%f \n",&a);
        }
        printf("\n");
        for(i=1;i<11;i++)
        {
                printf("%f \n",a);
        }
}
什么地方不对,我第十的结果有错误
还有下面的一个程序,有定义问题。
#include <stdio.h>

float max(float a[30]);

void main()
{
        float b[30];
        int c;
        c = max(b);
        printf("%d \n",c);
}

float max(float a[30])
{
        int i;
        float t,max;
        for(i=0;i<30;i++)
        {
                scanf("%f \t",a);
        }
        for(i=0;i<30;i++)
        {
                if(a>a[i+1])
                {
                        t = a;
                        a = a[i+1];
                        a[i+1] = t;
                }
        }
        max = a[29];
        return (max);
}
那里出错了。。。没有结果。。。
发表于 2003-4-12 23:35:05 | 显示全部楼层
scan()里最好不要有类似\n这样的东西,你的第一个for循环只循环了9次,但打印但循环了10次,所以第十个错了。
回复

使用道具 举报

发表于 2003-4-12 23:59:23 | 显示全部楼层
是的!不快是部长,部长回复我的帖子啊
回复

使用道具 举报

发表于 2003-4-13 02:04:21 | 显示全部楼层
(1)
scanf("%f \t",a);  --> scanf("%f \t", &a);

(2)
#include <stdio.h>

float max(float a[4]);

int main()
{
        float b[4];
        float c;                   // First error
        c = max(b);
        printf("%f \n", c);
       
        return 1;
}

float max(float a[4])
{
        int i;
        float t;
        float max;
       
        for(i=0;i<4;i++)
        {
                scanf("%f", &a);           // Second
        }
       
        for(i=0;i<4-1;i++)                     // Third, only need loop (n  - 1), or ...
        {
                if(a>a[i+1])
                {
                                                    // Shift from lower to higher
                        t = a[i+1];               // Fourth, should save bigger
                        a[i+1] = a;           // you saved the smaller
                        a = t;                  //
                       
                        printf("%s %i %s %f \t %f \t %f \t %f \t %f \n", "round = ", i, " t= ", t, a[0], a[1], a[2], a[3]);
                }
        }

        max = a[3];
        return max;
}
回复

使用道具 举报

发表于 2003-4-13 02:22:18 | 显示全部楼层
gcc -o f f.c -Wall

-Wall可以帮你找出类型不匹配的错误
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 05:35 , Processed in 0.058677 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表