指针数组运用

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void input(char *p[],int n){
	int j;
	for(j=0;j<n;j++){
//改为gets(p[j]);只能处理n-1个?因为有回车符被读取了 不过gets(可以处理进来空格..) 
  gets(p[j]);

}/*for(j=0;j<n;j++){
	printf("%s",p[j]);
}*/
}
void sort(char *p[],int n){
	char *temp;
	int m,i;
	//冒泡
	for(m=1;m<=n;m++){
		for(i=0;i<=n-2;i++){
			if(strcmp(p[i],p[i+1])>0){
				temp=p[i+1];
			    p[i+1]=p[i];
			    p[i]=temp;
				
			}
		}
	}
	
}
void put(char *p[],int n){
	int k;
	for(k=0;k<n;k++){
		printf("%s",p[k]);
		if(k!=n-1)
		printf("\n");
	}
}
int main(){
	int n,i;
	scanf("%d",&n);
	char *p[n];
	for(i=0;i<n;i++){
		p[i]=(char *)malloc(5000);
	}
	input(p,n);
	sort(p,n);
	put(p,n);
	return 0;
} 
//学习通按姓名排序问题





不足

scanf("%d",&n);  这里输入整数n以后会输入一个回车,回车被gets读到了,当作一个空字符串。

修改方法:scanf("%d\n",&n)scanf("%d",&n); getchar();  吃掉回车


2.递归之逆序输出
2.![在这//想到师兄的递归逆序数组,是不是在这里得出135可以递归叫数
#include<stdio.h>
#include<string.h>
char *str[10]={"ling1","yi","er","san","si","wu","liu","qi","ba","jiu"};
void digui(int k,int cnt)
{  if(k==0) return ;
	digui(k/10,cnt+1);
	 printf("%s",str[k%10]);
	 if(cnt!=0) printf(" ");
	
}
int count(char m[])
{   int i,sum=0;
	int j=strlen(m);
	for(i=0;i<=j-1;i++)
	{
	sum+=m[i]-'0';	
	}
return sum;
	
}
int main()
{
	char m[100000];
	gets(m);
	int j=strlen(m);
	int a=count(m);
	digui(a,0);
}





3天梯1009


```java
/*Hello World Here I Come
输出样例:
Come I Here World Hello*/
//用指针数组,记得开空间
#include<stdio.h>
#include<stdlib.h>
int main(){
	char *m[100],n;
	int i;
	for(i=0;i<=50;i++)
	{
		m[i]=(char *)malloc(20);
	}
	for(i=0;;i++)
	{    
		scanf("%s",m[i]); 
		//最后一个不以空格结尾 
		n=getchar(); 
		if(n!=' ')  break;
		
	}
	for(int t=i;t>=0;t--)
	{
		printf("%s",m[t]);
		if(t!=0) printf(" "); 
	}
	return 0;
} 

ps:测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值