两个C语言程序,不知道错在哪

来源:百度知道 编辑:UC知道 时间:2024/06/28 04:18:45
#include"stdio.h"
int fine(int str[])
void fir(int a[10])
void main( )
{
int a[10],i;
for(i=0;i<10;i++)
scanf("%d",a[i]);
n=fine(a);
printf("%d",n)
fir(a);}

fine(int str[10])
{int i,b,n;
for(i=0;i<10;i++)
{b=a[i];
for(n=i+1;n>i;n++)
if(a[i]<a[n])
b=i;}
printf("%d",b);
}

void fir(int a[10])
{int temb,i;
temb=a[i];a[0]=a[i];a[0]=temb;
print("a[0]=%d",a[0]);
}
求出最小的数组元素,并调掉第一
WIN TC老提示:错误 fine.c 3: 说明语法错误

第二个
#include"stdio.h"
void str(int x[]);
main()
{int a[10],i;
for(i=0;i<10;i++)
scanf("%d",a[i]);
str(int a[10]);
}

void str(int x[])
{int i;
for(i=9;i!=0;i--)
printf("%d",x[i]);
}
将树组反顺序输出
WIN TC老提示:错误 1.c 7: 表达式语法错在 main 函数中
不知道错在哪
还有别的好用点的编译软件吗?介绍下。

1)printf("%d",n)后面要加分号
2)str(int a[10]); 调用函数时括号内不用加int,应为:str(a);
两个还有同样的错误scanf("%d",a[i]); 加&,&为取地址符,应为为:scanf("%d",&a[i]);

第一个:语法错误在第三行,因为你第二行少写了分号。
第二个:语法错误在第七行,因为你这一行应该写成str(a);

如果说想用错误语法但编译却能够通过,所有编译软件都不是很好用,如果是想找一个符合ANSI C语法的编译器,推荐用gcc。

修改后的第一个程序
#include"stdio.h"
int fine(int str[]);
void fir(int b[10],int i);
void main( )
{
int a[10],i,n;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
n=fine(a);
printf("%d",n);
fir(a,n);
}

fine(int str[10])
{int i,b,n;
for(i=0;i<10;i++)
{b=0;
for(n=i+1;n>i;n++)
if(str[i]<str[n])
b=i;}
return(b) ;
}

void fir(int b[10],int i)
{int temb;
temb=b[i];b[0]=b[i];b[0]=temb;
printf("a[0]=%d",b[0]);
}

修改后的第二个程序
#include"stdio.h"

void str(int