如何用从语言写一个函数输入3个字符串 按从小到大的顺序输出 要求用指针
int strcmp(char *s1,char * s2);
这里char *s1可以是一个字符串,其实该函数参数取的是字符串的首地址,一直读取到'\0'结束(字符串型的末尾都有一个字符'\0'),这样就把整个字符串读进去了。所以,也可以用字符串指针的形式,指针就是地址,把字符串的首地址赋值给一个指针p,那么p同样可以是此函数的参数char *s1
两种输入都正确
int GetLength(char* s)
{
char* p=s;
int len=0;
while(*p)
{
*p++;
len++;
}
return len;
}
char str1[]= "";str2[]= "";str3[]= "";
int *p1 = str1;*p2 = str2;*p3 = str3;
int res1= strcmp(p1,p2);
int res2= strcmp(p1,p3);
int res3= strcmp(p2,p3);
if (res1 * res2 <0)
{
printf("%s %s %s", (res3<0?p2:p3),p1, (res3<0?p3:p2));
}
else if(res1 == res2)
{
if(res1>=0)printf("%s %s %s", (res3<0?p2:p3), (res3<0?p3:p2),p1);
else printf("%s %s %s",p1, (res3<0?p2:p3), (res3<0?p3:p2));
}
三目运算符 可以很好利用
#include <stdio.h>
//假定字符串都是一样长,
//经过此函数以后,s1是小的串
void func_two(char *s1,char *s2)
{
char *p=NULL;
char *p1=s1,*p2=s2;
while(*p1++!=NULL)
{
if( *p1++ < *p2++ )
{
continue;
}
else
{
p=s1;
s1=s2;
s2=p;
return;
}
}
return;
}
void func_three(char *s1,char *s2,char *s3)
{
//两两排序
func_two(s1,s2);
func_two(s1,s3);
func_two(s2,s3);
return;
}
void main()
{
char str1[]="abc";
char str2[]="abd";
char str3[]="abe";
func_three(str3,str1,str2);
printf("s1:%s,s2:%s,s3:%s\n",str1,str2,str3);
}
C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
k=j-1;while(i<j){ b[k]=a;\/\/互换值;i++;k--;} return 0;} int main(){ char c[20];char d[20];int i,l;\/\/gets(c);\/\/输入字符串;scanf("%s",c);\/\/另一种方式;如果输入的是字符串,则不需要加地址符,因为在c语言中数组名代表该数组的起始地址;l=strlen(c);\/\/测试字...
c语言:写一个函数,将输入的3*3的整形矩阵进行转置 用函数
include<stdio.h> int main(){ void move(int *s);int a[3][3];int i=0;int *p=&a[0][0];printf("请输入一个3*3的数组:\\n");for(i=0;i<3;i++){ scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);} move(p);printf("转置后的结果:\\n");for(i=0;i<3;i...
c语言如何定义一个函数可以返回多个值回去给主函数呀。
使用函数参数:void display(int* shiwa,int* wa,int* qiao,int* bai,int* shi,int ge)函数中用类似这样的用法计算:(*ge)=Data%10;void main() { int shiwa,wa,qiao,bai,shi,ge; display(&shiwa,&wa,&qiao,&bai,&shi,&ge) } 用一个足够长的数返回:long display() { long n; ...
c语言中怎样用一个函数删除字符串中的一个元素?
include <stdio.h> include <string.h> void remove_char(char *str, char c) { int i, j;int len = strlen(str);for (i = 0, j = 0; i < len; i++) { if (str[i] != c) { str[j++] = str[i];} } str[j] = '\\0';} int main() { char str[] = "Hello,...
c语言 写一个函数,用气泡法对输入的10个字符按从大到小顺序排列!!!急...
{ char temp;for(int i=0; i<n-1; i++){ for(int j=0; j<n-1-i; j++){ if(arr[j] < arr[j+1]){ temp = arr[j];arr[j] = arr[j+1];arr[j+1] = temp;} } } } void main(){ char arr[N];int i;printf("请输入十个字符:");for(i=0; i<N; i++){...
用C语言:写一个函数,将两个字符串连接
字符串连接:即将字符串b复制到另一个字符a的末尾,并且字符串a需要有足够的空间容纳字符串a和字符串b。include<stdio.h>void mystrcat(char a[],char b[]){\/\/把a和b拼接起来 int i=0,j=0;while(a[i++]!='\\0'); i--;while(b[j]!='\\0'){ a[i++]=b[j++];} a[i]='\\0...
C语言编程,写一个函数,使输入的一个字符串按反序存放,在主函数中输入和...
第二,你的yuan函数设计有问题。你犯了一个初学者很容犯的错误试图从被调用函数中返回一个数组(或指针)的值。要知道,被调用的函数编译后存储在堆栈当中:它在被调用时创建,结束调用时销毁。所以说,不能用它来返回数组(或指针)的值。至此,你的提问已经解决。下面给出我的想法,现在思考你要...
用C语言写一个删除学生信息的程序。(要求有删除的函数)。
if (result == -1) { printf("没有该学生信息!\\n"); return 0; } else \/\/删除当前学生信息即为将数组从result的位置依次前挪一个位置 { for(i=result; i<n-1; ++i) \/\/最后在main函数中,要将n的值减1 { num[i] = num[i+1]; strcpy(names[i],names[i+1]); math[i] = math[...
用c语言写:输入一个整数,利用函数调用方式编程,判断该数是否为素数...
,num,div);} //将isPrime设置为0,表示其不是一个素数 isPrime=0;} } if(isPrime==1){ printf("%lu是素数.\n",num);} printf("Pleaseenteranotherintegerforanalysis.");printf("Enterqtoquit.\n");} printf("Bye.\n");return0;} 运行效果:...
用C语言写了一个函数,需要返回一个数组,但好像C不能返回数组吧_百度知 ...
1,把数组定义成全局变量,全局变量是在程序运行结束后才被释放的,可以返回 2,用malloc函数手动分配数组的地址,这样数组就被保存在堆中,在函数结束时不会被系统回收,在程序结束的时候也不会被系统回收,所以在程序结束的时候一定要注意对这块内存的回收释放,避免内存泄露。3,把函数的形参写成指针...
顾矿搏拿: %d"n");scanf("b,不懂的话可以百度一下int max = a>:c):(b>c?b:c);,&a);scanf("?a.h> int main() {int a ;The Max Number is :%d\stdio?(a>,&c);/, c;printf("Pleast Input three number:\/这是使用了三目运算啊;%d"printf("%d",&b);scanf("#include
白河县14788695166: C语言调用一个函数输入3个字符串并返回给数组 - ?
顾矿搏拿: 你的程序修改如下 #include "stdio.h" #define N 3 #define M 80 void _kf(char b[N][M]); int main(void) { int i;char a[N][M];puts("请输入3个字符串");_kf(a);for(i=0;i<N;i++)puts(a[i]);system("PAUSE"); } void _kf(char b[N][M]) {int i;for(i=0;i<N;i++)gets(b[i]);}
白河县14788695166: 用C语言编写一个程序:从键盘上输入三个字符,从小到大输出 - ?
顾矿搏拿: #include "stdafx.h" void Compare(char a,char b,char c) {char max,min;max = a>b?a:b;//求出a和b中的最大值min = a<b?a:b;//求出a和b中的最小值if(c>=max) //判断c是不是最大值{printf("最大的字符为:%c\n",c);printf("中间...
白河县14788695166: 编写一个自定义函数,完成将3个字符按从小到大顺序输出 - ?
顾矿搏拿: #define swap(x,y) {x=x^y; y=y^x; x=x^y;}void printchar(char a,char b,char c){ if(a>b) swap(a,b); if(b>c) swap(b,c); if(a>b) swap(a,b); printf("%c %c %c \n",a,b,c);}void main(){ char a,b,c; printf("input three char \n"); scanf("%c %c %c",&a,&b,&c); printchar(a,b,c);}
白河县14788695166: 编程实现:用字符输入|输出函数输入3个字符,将它们反向输出 - ?
顾矿搏拿: 汗一个:var c1, c2, c3: Char; begin Readln(c1, c2, c3); Writeln(c3, ' ', c2, ' ', c1); Readln; end;
白河县14788695166: 用c语言编写一个程序,从键盘上输入3个字符串,由小到大输出?
顾矿搏拿:#include <stdio.h> #include <conio.h> int main(void) { int n[3]={NULL}; scanf("%d%d%d",&n[0],&n[1],&n[2]); for (int i=0;i<3;i++) { for (int t=0;t<3;t++) { if (n[i]<n[t]) { n[i]^=n[t]; n[t]^=n[i]; n[i]^=n[t]; } } } printf("%d %d %d\n",n[0],n[1],n[2]); getch(); return 0; }//例子代码!!~
白河县14788695166: C语言输入3个字符,把他们组成一个3位整数 - ?
顾矿搏拿: #include void main() { char a,b,c; int num; printf("请输入三个字符:"); scanf("%c%c%c",&a,&b,&c); num=((int)a%10)*100+((int)b%10)*10+((int)c%10); printf("把他们组成一个3位整数:%d\n",num); }
白河县14788695166: 输入3个数字字符 输出由他们组成的一个整数的c语言怎么写 - ?
顾矿搏拿: #include <iostream> void main() { int data[3]; for (int i = 0; i < 3; ++i) { scanf("%d", &data[i]); } printf("%d", 100 * data[0] + 10 * data[1] + data[2]); }
白河县14788695166: 编写程序:输入三个数字字符,输出由它们组成的一个整数.例如:输入'2'、'5'、'7',输出257. - ?
顾矿搏拿: 用一个字符串接收三个字符.如:a[3]. 然后这样: int i=0 ,j ,k; int result=0; //用于存储得到的整数 while(i<3) { j=0; k=1; while(j<i) {k*=10; j++;} //k为第i位的权result+=(a[i]-'0')*k; //用(a[i]-'0')将字符转化为数值,再乘以位权k , }
白河县14788695166: 用C语言写一个函数完成下列任务 - ?
顾矿搏拿: #include <stdio.h>#include <string.h> int main(int argc, char *argv[]) { char strNum[100]; int intNum = 0; int i, p = 1; // 字符串形式整数scanf("%s",strNum); // 从字符串的最末位(对应整数的最低位)开始处理for(i = strlen(strNum) - 1 ; i >= 0 ; ...