没有在c中输出但没有编译错误

时间:2018-04-13 06:20:14

标签: c

程序应采用n个数字,并应按升序返回所有数字。 程序编译没有错误。但在运行时没有输出。 我使用了数组并输入该数组中的值。然后冒泡排序所有元素并将它们排列在另一个数组中。然后在输出中打印出数组元素。

#include<stdio.h>
#include<conio.h>
void main()
{
    int a[100],c,b,d[100];
    clrscr();
    printf("\n\n enter the number to be arranged\n\n");
    scanf("%d",&c);
    for(int i=0; i<=c; i++)
    {
        scanf("%d",&a[i]);
    }

    int max=a[0];
    bg:
    for(i=1; i<c; i++)
    {
        if(max<a[i])
        {
            max=a[i];
        }
        else
        {
            max=a[0];
        }
    }
    d[c-1]=max;
    c=c-1;
    printf("****%d",d[c-1]);
    max=a[0];
    if(c>=0)
    {
        goto bg;
    }
    for(i=0; i<2; i++)
    {
        printf("/n%d",d[i]);
    }
    getch();
}

3 个答案:

答案 0 :(得分:1)

删除循环内的第一个max=a[0]; 它会破坏您的搜索范围。

可以解释不打印(参见其他答案,Artur Pasymowski的信用)),输入(例如来自文件)实际上只有n个输入,而输入循环正在等待另一个输入。
如果你手动输入并给另一个它可能会工作。然后你会注意到我在上面指出的排序问题。

答案 1 :(得分:1)

收集数字以进行排序的循环太多了。它应该是:

for (int i = 0; i < c; i++)
{
    scanf("%d", &a[i]);
}

输入n个数字后,它会再等一个,所以它什么也没做。

答案 2 :(得分:1)

please define in for loop int 

#include<stdio.h>
#include<conio.h>
void main()
{
    int a[100],c,b,d[100];
    clrscr();
    printf("\n\n enter the number to be arranged\n\n");
    scanf("%d",&c);
    for(int i=0; i < c; i++)
    {
        scanf("%d",&a[i]);
    }

    int max=a[0];
    bg:
    for(int i=1; i<c; i++)
    {
        if(max<a[i])
        {
            max=a[i];
        }
        else
        {
            max=a[0];
        }
    }
    d[c-1]=max;
    c=c-1;
    printf("****%d",d[c-1]);
    max=a[0];
    if(c>=0)
    {
        goto bg;
    }
    for(int i=0; i<2; i++)
    {
        printf("/n%d",d[i]);
    }
    getch();
}