当前位置:编程学习 > C/C++ >>

c语言:在主函数中输入10个等长的字符串。用另一个函数对它们排序。然后再主函数中输出。求高人指点!!

#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)
这个地方错了,应为if(strcmp(a[i],a[i+1])>0) 
strcmp是比较两个字符串的大小,各式为strcmp(ch1,ch2)
其他:用c语言编写:1、编写函数求两个数的较大值,并在主函数中调用它 2、对10个整数进行排序(升序) 1、 int max(int a,int b) { return a 你输入的是十个字符吧,strcmp(a[i]>a[i+1])>0不用strcmp,那是比较字符串的,字符直接比就行,不用那个strcmp

上一个:一道关于function的C语言题目
下一个:我是学C语言的新手我想知道C语言这两种写法有什么区别?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,