#include<stdio.h>
#include<string.h>
void fun(char a[])
{
int i,j,t;
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
{
if(strcmp(a[i]>a[i+1])>0)
{ t=a[i];
a[i]=a[i+1];
a[i+1]=t;
}
}
}
main()
{
int i;
char a[10];
for(i=0;i<10;i++)
scanf("%c",a[i]);
fun(a);
for(i=0;i<10;i++)
puts(a);
}
这个程序出现以下错与提示:
1 error(s), 2 warning(s)
error C2198: 'strcmp' : too few actual parameters
warning C4047: 'function' : 'const char *' differs in levels of indirection from 'int '
warning C4024: 'strcmp' : different types for formal and actual parameter 1
已经知道答案了!!#include<stdio.h>
#include<string.h>
void fun(char a[][20])
{
int i,j;
char t[20];
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
{
if(strcmp(a[i],a[i+1])>0)
{ strcpy(t,a[i]);
strcpy(a[i],a[i+1]);
strcpy(a[i+1],t);
}
}
}
main()
{
int i;
char a[10][20];
for(i=0;i<10;i++)
scanf("%s",a[i]);
fun(a);
for(i=0;i<10;i++)
puts(a[i]);
}
我改了,但是提示的问题更多???什么情况??
追答大哥,你的题目是要输入十个等长的字符串,而你的if(strcmp(a[i]>a[i+1])>0)
这一句是比较一个字符,不是字符串的,strcmp是比较字符串的,所以错了。那个你的
for(i=0;i<10;i++)
scanf("%c",a[i]); //取地址符号都没有的,错了哈,加上&
希望可以帮助到你,还有疑问请追问
我都改好了,但是在运行时我还没输入完,它就弹出程序停止运行的提示?这又是怎么回事你知道么?
本回答被提问者和网友采纳题目就是要比较字符串啊??