|
|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- # include <stdio.h>
- # include <malloc.h>
- # include <stdlib.h>
- typedef struct Arr{
- char *a;
- int len;
- int cnt;
- }arr,*parr;
- void init_arr(parr ,int );
- void insert_arr(parr);
- void delete_arr(parr);
- int main ()
- { arr S;
- init_arr(&S,100);
- insert_arr(&S);
- for(int i=0;i<S.cnt;i++)
- printf("%c",S.a[i]);
- return 0;
- }
- void init_arr(parr pArr,int length)
- { pArr->a=(char*)malloc(sizeof(char)*length);
- if(NULL==pArr->a)
- exit(-1);
- else{
- printf("请输入需要的个数:\n");
- scanf("%d",&pArr->cnt);
- printf("请输入字母\n");
- for(int i=0;i<pArr->cnt;i++)
- scanf("%s",&pArr->a[i]);
- }
- }
- void insert_arr(parr pArr)
- {
- int pos;
- char val;
- printf("请输入要插入的位置\n");
- scanf("%d",&pos);
- printf("请输入要插入的元素\n");
- scanf("%s",&val);
- for(int k=pArr->cnt-1;k>=pos-1;--k)
- {
- pArr->a[k-1]=pArr->a[k];
- }
- pArr->a[pos-1] = val;
- pArr->cnt++;
- for(int i=0;i<pArr->cnt-1;i++)
- { int t;
- for(int j=0;j<pArr->cnt-1-i;j++)
- if(pArr->a[j]>pArr->a[j+1])
- { t=pArr->a[j];
- pArr->a[j]=pArr->a[j+1];
- pArr->a[j+1]=t;
- }
- }
- }
复制代码
scanf("%s",&pArr->a[i]);为什么是%s才行,而我想输入%c,但是%c就只能输入2个字母,可输入的是%s进行排序又不行
总之我是想对一个数组先自己输入几个字母后,再选定位置插入字母后排序
请大神告诉我该怎么改,谢谢
|
|