有问题就有答案
Q1:c语言编程11000(指针,数组)
# include # definen 100 void main(){ inta[N],i=0,countcharstr[N],* p;获取(字符串);p=str while(* p){ if(* p=" 0 " * p=" 9 "){ sscanf(p," %d ",a[I]);而(* p=" 0 " * p=" 9 ")p;} elsep } count=I;printf("%d\n ",计数);for(I=0;我
Q2:c语言 怎样编写一个指针数组来储存1000个字符串
# include # include int main(){ char str[2000];char * p;获取(字符串);p=str看跌期权(p);返回0;}是这个意思吗?给指针分配一个字符串就像上面那样~!希望对你有帮助~!
Q3:C语言 数组和指针编程题?
//ConsoleApplication3.cpp : 定义控制台应用程序的入口点。#include "stdafx.h"void upCopy(char* new1, char* old){while (*old){if (65<=*old && *old<= 90) *new1++=*old;old++;}*new1=0;}int main(){char s1[140]; //="";char s0[]="foiwABEifjCDB";upCopy(s1, s0);printf("(%s%s",s1,")");getchar();return 0;}
Q4:c语言中定义一个a[1000]的数组,向这个数组中输入1000个数,怎么编程输出1000个数中数值
#includeintmain(){inta[1000],min,I;for(I=0;i1000i ){scanf("%d ",a[I]);if(I==0 | | a[I]min)min=a[I];}printf("Min=%d\n ",Min);返回0;}
Q5:编写一个C语言程序,利用指针对数组进行排序
#包括#包括#包括#定义MAXlen 20void shell_sort(int *x,int n) { //希尔排序int h,j,k,t;for(h=n/2;h0;h=h/2) { //控制增量for(j=h;j n;j){ t=*(x j);for(k=j-h;(k=0t *(x k));k-=h){ *(x k h)=*(x k);} *(x k h)=t;} } } int main(){ int I;int IaR[Maxlen];srand((无符号整数)时间(空));printf("\n排序前: \ n ");for(I=0;i MAXlenI){ IaR[I]=(无符号整数)兰德()% 1000;if(I % 10==0)printf(" % \ n ");printf("]",IaR[I]);} printf(" \ n ");shell _ sort(IaR,Maxlen);printf("\n排序后: \ n ");for(I=0;I MAXlenI){ if(I % 10==0)printf(" % \ n ");printf("]",IaR[I]);} printf(" \ n \ n ");返回0;}
Q6:C语言编程(要求使用指针)
你可以考虑PM,我会详细讨论//用栈结构计算两个数的最大公约数# include # include # define maxlen 100 # define newlen 10//栈结构相当于一个手枪弹匣,一次只能得到顶部的bullet struct栈{//stack structure int * base;//堆栈底部的int top//堆栈顶部的int长度;//堆栈高度};typedef struct stack * p_stack,i _ stack//定义堆栈类型结构p _ stack stack _ init(p _ stack stack)//初始化一个堆栈{ pstack=NULL//堆栈指针为空PS track=(p _ stack)malloc(sizeof(stack));//如果给栈分配结构(PS tack==null)//如果分配不成功(指针仍然为空),返回false返回false;PS track-top=0;//栈顶位置为0p stack-base=(int *)malloc(sizeof(int)* maxlen);//为堆栈分配元素空间PS track-length=MAXLEN;//堆栈高度(容量)初始化if(PS track-base==NULL)//如果空间分配不成功,释放堆栈结构,返回false { free(PS track);pstack=空;返回false}返回pstack//返回堆栈指针} p _ stack stack _ exp(p _ stack stack)//扩展堆栈容量{ PS track-base=(int *)real loc(PS track-base,sizeof(int)*(PS track-length=newlen));//如果(PS track-base==NULL)//将空间重新分配给大小为(stack height NEWLEN)的堆栈,如果分配不成功,则释放并返回空的{ free(PS track);pstack=空;}返回pstack//返回重新分配的空间指针} bool stack _ release(p _ stack stack)//释放一个堆栈{ free(PS track-base);//空闲(PS track空间(PS track);//释放堆栈结构pstack=NULL//堆栈指针指向空返回true//返回true } bool stack _ push(p _ stack PS track,int值)//推送堆栈{ if(PS track-top==PS track-length-1)//如果堆栈已满(堆栈顶部下标=堆栈高度-1),则重新分配空间stack _ exp(PS track);PS track-base[PS track-top]=值;//将值推入栈顶,栈顶指针上移返回true}int stack_top(p_stack pstack)//堆栈顶部数据{ return pstack-base[pstack-top-1];//返回栈顶数据}int stack_pop(p_stack pstack)//弹出{if(!Pstack-top) //如果栈为空(栈顶下标为0),-1 return -1返回;返回PS track-base[-(PS track-top)];//返回栈顶的内容,将栈顶向下调整1} int func (p _ stack pstack,int a,int b)//轮流除{int y,z;stack _ push(PS track,a);//将第一个数字推入stack _ Push(PS track,b);//将输入的第二个数字推到堆栈顶部,同时(1) //循环执行以下步骤{ y=stack _ top(PS track);//获取第一个栈顶号stack _ pop(pstack);//栈顶数字栈z=stack _ top(PS track);//获取第二个栈顶数if(0==z%y) //如果y能整除z,则y是两个数的最大公约数,返回y;stack _ push(PS track,y);//否则,将y推送到stack _ push(PS track,z % y);//然后按z除以y的余数到栈顶} } int main(){ p _ stack pstack=NULL;int a,b;pstack=stack _ init(pstack);//初始化堆栈上的printf("请输入两个用空格分隔的整数\ n ");//提示scanf("%d %d ",a;b;);//从键盘输入两个整数printf("最大公约数为:%d\n ",func(pstack,a,b));//调用stack _ release(pstack);//调用后,释放栈返回0;}