首页

文章

用c语言指针编程

发布网友 发布时间:2022-03-23 13:42

我来回答

3个回答

热心网友 时间:2022-03-23 15:12

有点麻烦,试试~~

最近考试有点忙,~
还未通过编译,你自己看着改改,我会尽快再发给你的。~~
1、首先格式化输入到栈,形式为:(字母开始,字母结束,空格分开不同单词,空格不能连续)。
2、构建子栈,步骤:由母栈经格式化(取每个单词后半部到子栈)。
3、排序。
4、输出。

子栈元素首行格式为(堆栈元素 + 指向一数据结构的指针)

#include<ctype.h>
#include<stdio.h>
#define STACK_INT_SIZE 100 //存储空间初始分配量
#define STACKINCREMENT 10 //存储空间分配增量
#define OK 0
typedef struct C_Node{
char elem;
struct C_Node *next;
}C_Node;
typedef struct C_Stack{
char C_elem;
char *base;
char *top;
C_Node *C_next;
}C_Stack;
typedef struct{
char *base;
char *top;
int stacksize;
}SqStack;
Status InitStack (SqStack &S)
{ S.base=(ElemType*)malloc(STACK_INIT_SIZE*sizeof(ElemType));
if (!S.base) exit (OVERFLOW); //存储分配失败
S.top = S.base;
S.stacksize = STACK_INIT_SIZE;
return OK;
}
Status Push (SqStack &S, char e) {
if (S.top - S.base >= S.stacksize) {//栈满,追加存储空间
S.base=(ElemType *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof (ElemType));
if (!S.base) exit (OVERFLOW); //存储分配失败
S.top = S.base + S.stacksize;
S.stacksize += STACKINCREMENT;
}
*S.top++ = e;
return OK;
}

format_input()
{int Finish=0,flag;
char ch;
while(!Finish)
{flag=0;
scanf("%c",&ch);
if(' '==ch)
else if(isalpha(ch)){
if(0==flag)
else
}
else
}
}

Creat_C_Stack()
{指向 M_Stack 内元素的指针p(用于指向一个单词的最后字母),q(指向p的前方第一个空格元素);
指向 C_Stack 首行元素的指针C_i(),及随后元素的C_i_j(insert_place);
q=M_Stack.top;
p=M_Stack.top;

i=0;
q=top;
p=top-1;
num=0;
while(1)
for(;q.elem!=' ';)
q--;
i=(p-q-1)/2;
Insert_P=C_Stack[num];
Insert_P.elem=p.elem;
p--;
for(j=0;j<i;j--)
Insert_P.next=Insert_P.next;
Insert_P.elem=p.elem;
p--;
if(q==M_Stack) return;
}
Sort()
{C_Stack C_p=C_Stack[j],C_q=C_Stack[j+1],C_Temp;
for(C_p.next!=NULL&&C_q.next!=NULL)
{if(C_p.elem!=C_q.elem){
if(C_p.elem>C_q.elem){
C_temp=C_p;C_q=C_p;C_p=C_temp;
}
else
}
}
}
output()
{for(i=0;i<C_num;i++){
q=C_Stack[i];printf("%c",q.elem);
for(q.next!=NULL){
q=q.next;
printf("%c",q.elem);
}
}
}

#include<stdio.h>
void main()
{printf("只有空格和字母为有效字符,\n");
printf("其他字符将使输入结束。\n");
format_input();
Creat_C_Stack();
Sort();
Output();
}

热心网友 时间:2022-03-23 16:30

//1. 设计一个函数能将一个数组中的最大值和最小值返回给调用者。
//2. 输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。
#include<stdio.h>
/*fun1 将得到数组的最大值和最小值,通过参数返回给调用者*/
int fun1(int arr[],int len,int *max,int *min)
{
if(len==0)
{
printf("have not data.\n");
return 1;
}
if(max==NULL || min==NULL)
{
printf("pointer error.\n");
return 2;
}
*min=*max=arr[0];
for(int i=1;i<len;i++)
{
if(*min > arr[i])
{
*min=arr[i];
continue;
}
if(*max<arr[i])
{
*max=arr[i];
continue;
}
}
return 0;
}

/*fun2 将输入十个数到数组中 */
void fun2(int arr[])
{
printf("please input 10 numbers:\n");
for(int i=0;i<10;i++)
{
scanf("%d",&arr[i]);
}
}

/* fun3 将数组的最大值放入数组尾部,将最小值放入数组首部*/
void fun3(int arr[], int len)
{
int k_min=0;//记录最小值的位置
int k_max=len-1;//记录最大值的位置

for(int i=1;i<len-1;i++)
{
if(arr[i]<arr[k_min])
{
k_min=i;
continue;
}
if(arr[i]>arr[k_max])
{
k_max=i;
continue;
}
}
// 交换
int tmp;
tmp=arr[0];
arr[0]=arr[k_min];
arr[k_min]=tmp;

tmp=arr[len-1];
arr[len-1]=arr[k_max];
arr[k_max]=tmp;
}

/* fun4 输出数组的内容*/
void fun4(int arr[],int len)
{
printf("********处理后**********\n");
for(int i=0;i<len;i++)
printf("%d ",arr[i]);
printf("\n");
}

/*主函数*/
int main()
{
int arr[10];
int min,max;
min=max=0;
int len=sizeof(arr)/sizeof(int);
//调用函数fun2给数组赋值
fun2(arr);
// 调用fun1获得数组最值
fun1(arr,len,&max,&min);
printf("max=%d,min=%d\n",max,min);
//调用 fun3
fun3(arr,len);
// 调用fun4输出数组
fun4(arr,len);

//getchar();
//getchar();
fflush(stdout);
getchar();
getchar();
return 0;
}

参考资料:给你做参考吧,还是得自己理解为上策

热心网友 时间:2022-03-23 18:04

#include<stdio.h>
#define N 10//数组长度为10!!
void function_name(int *a,int *large,int *small){
*small=*a;
*large=*a;
int i=0;

for(;i<N;i++){
if(a[i]<*small)
*small=a[i];
if(a[i]>*large)
*large=a[i];
}
}
int main(){
int large=0;
int small=0;
int a[N]={2,4,6,7,8,4,0,90,87,54};
function_name(a,&large,&small);
printf("%d,%d",small,large);
}
//帅哥,给个最佳答案吧
谷歌浏览器怎么设置成中文_谷歌浏览器设置中文语言 【谷歌浏览器技巧】谷歌浏览器如何更改语言? 史上最全ETF全解 证券ETF是深市的吗 怎样把莲藕肉丸子做的好吃? 高三语文小说赏析小说形象分析与答题技巧 人物形象题答题技巧 借助什么分析小说的人物形象 脖子旁边疼是什么原因 在群里不是好友怎么把群里人建另一个群 蛇床子的药理作用 炒蛇床子和生蛇床子有什么区别 为什么把床头垫高点 为什么床头高点儿 为什么要给新生儿抬高床头 人脸识别打卡考勤机找哪家? 背后搞你的人什么心态 很皮的搞笑撩人句子高情商的撩人句子(82句) 恶搞爱情短信 床头挂什么财运最旺最好 床上放什么东西辟邪 道家床头挂什么画最好最旺 床头贴什么最好最旺道家 建设工程竣工后,是否必须取得《规划验收许可证》? 环评竣工验收 手机几年没用了开不了机怎么办 红烧啤酒鸡的家常做法大全怎么做好 双男主泰剧新剧推荐 2019泰剧《爱情理论》小受暗恋花心直男好友 液体卫生巾和普通卫生巾的区别是什么?液体卫生巾的优点 可水洗粘尘垫哪家好 电脑12g够用吗? 宝宝双侧肺炎病变严重吗 什么是洁净气体灭火器 2024年实用父亲节礼物推荐有哪些?(2300字选购指南) 40包速溶咖啡比对 作文请以“这样挺好”为题,写一篇记叙文或议论文,不少于800字。要求... 如何写好作文我就是这么好 惊魂未定什么意思?有什么典故? 安阳火车站到新师院北门的公交车有哪些? 安阳市公交车26从火车站发车多长时间到终点站 太仓汽车站去太仓乐遥浏河公墓坐几路公交 请问廉江市哪里有奥克斯手机专业维修店,急!! 梅赛德斯奔驰E350敞篷版的整体简介及其性能如何 员工出差前需要做什么准备工作? 用(祝愿自己生日快乐)写首藏头诗,希望有才华的人帮帮忙,谢谢了_百度... 请问做爱前吃什么药可以延长做爱时间? 我每天锻炼,然后吃什么,能延长我房事时间?现在两分钟,双方都苦恼。_百 ... 做爱前吃什么最能滋补身体 吃什么能让房事时间长些? 如何设置路由器tplink qq截图默认保存在什么位置 谁知道qq截图自动保存在哪个文件夹里 请问电脑屏幕截图的图片自动保存在哪儿 QQ截图后图片会自动保存到哪里? 西瓜有什么切法? 一个西瓜切三刀,七块西瓜八块皮,怎么切法? 清蒸鲈鱼的步骤. 清蒸鲈鱼的正确做法是怎样的,有哪些需要注意的? 花蛤是常吃的海鲜,炒花蛤的流程是怎样的? 炒花蛤怎么做肉才不掉 炒花蛤怎么炒 怎么炒花蛤肉 爆炒花蛤怎么做? 如何炒花蛤 花蛤怎么炒? 炒花蛤怎么做 怎么炒花蛤 想吃炒花蛤,如何能让花蛤吐沙吐干净? 炒花蛤正确的处理方法 tplink路由器怎么设置无线网络 tp-link更换路由器怎么设置路由器 路由器tplink怎么设置 如何设置无线路由器tplink 怎样设置无线路由器tplink tplink怎么设置路由器 怎么设置路由器TPLINK 路由器怎么设置 普通家用tp-link无线路由器设置 qq怎么隐藏手机型号??在线等 手机qq空间发说说怎么修改/隐藏显示的手机型号 你好,空调外机风扇不转是什么原因 空调外机风扇不转是什么原因 河南洛阳土特产方便带的 空调外机风扇不转是怎么回事 空调室外机风扇为什么不转? 河南的特产有什么?(方便携带的) 空调外机风扇时转时不转是什么原因? 空调外机风机不转什么原因? 洛阳都有什么干货特产.或方便邮寄的特产 空调室外机组风扇不转有哪些原因?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com