我编写了一个按升序排序数字的程序。
我成功地编译并执行了它,但问题是,首先'对于'循环它比输入的输入多一个输入。
假设我输入t
的值等于5,则下面的循环需要6个输入。
for(i=0;i<t;i++){
scanf("%d\n",&a[i]);
}
我调试了这段代码,发现i=0
正在接受2个输入,但我该如何解决呢。
代码
#include<stdio.h>
int main()
{
int t,i;
printf("Enter the number of numbers:");
scanf("%d",&t);
int a[t],temp;
printf("Enter the numbers\n");
for(i=0;i<t;i++)
{
scanf("%d\n",&a[i]);
}
for(i=0;i<t-1;i++)
{
for(int j=i+1;j<t;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
}
printf("Sorted\n");
for(int k=0;k<t;k++)
{
printf("%d\n",a[k]);
}
}
答案 0 :(得分:2)
scanf
语法如下:
int i;
scanf("%d", &i);
\n
printf
将for循环更改为此
for(i=0; i<t; i++)
{
scanf("%d", &a[i]);
}
答案 1 :(得分:0)
实际上,当您在屏幕上打印符号“\ n”时,表示输出流采用命令来更改行。这仅用于打印过程。当您尝试通过scanf输入值时,它实际上无用且有问题,从而破坏了您的代码。所以你必须写:
release_info(row_index, row=1)