程序应采用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();
}
答案 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();
}