纵有疾风起
#include <stdio.h>
#include <stdlib.h>
#include <stdio.h>
#include <stdlib.h>
void pre(int *p);
int main()
{
int a[3];
int i,j;
int *p;
p=a;
while(~scanf("%d %d %d",p,p+1,p+2))
{ p=a;
pre(p);
for(i=0;i<3;i++)
{
printf("%d ",*(p+i));
}
}
return 0;
}
void pre(int *p)
{ int t;
int *p1;
p1=p;
int i,j;
for(i=0;i<2;i++)
{ for(j=i+1;j<3;j++)
if(*(p1+i)>*(p1+j))
{
t=*(p1+i);
*(p1+i)=*(p1+j);
*(p1+j)=t;
}
}
}
这个是正确的,但是我又遇到了网管不同意的情况,仙女落泪,仙女不知道为啥
#include <stdio.h>
#include <stdlib.h>
void sort(int *p,int n);
int main()
{ int i;
int *p;
int n=3;
while(1)
{ p=(int *)malloc(sizeof(int ));
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
}
sort(p,n);
for(i=0;i<n;i++)
{
if(i<n-1) printf("%d ",p[i]);
else printf("%d",p[i]);
}
printf("\n");
} return 0;
}
void sort(int *p,int n)
{ int i,t;
for(i=0;i<n;i++)
{
if(p[i]>p[i+1])
{ t=p[i+1];
p[i+1]=p[i];
p[i]=t;
}
}
}
我不知道为啥,哭泣
5875
#include <stdio.h>
#include <stdlib.h>
void pre(int *p,int n,int m);
int main()
{
int a[101];
int i,j,n,m;
int *p;
while(~scanf("%d %d\n",&n,&m))
{ p=a;
for(i=0;i<n;i++)
{scanf("%d ",p+i);
}
p=a;
pre(p,n,m);
}
return 0;
}
void pre(int *p,int n,int m)
{ int i,j;
int t;
int b[101];
for(i=0;i<n;i++)
{ if(*(p+i)>=m)
{
printf("%d ",*(p+i));
}
}
}
#include <stdio.h>
#include <stdlib.h>
void pre(int *p,int n,int max,int min);
int main()
{
int i,max,min,a[11],n;
int *p;
while(~scanf("%d %d %d\n",&n,&min,&max))
{ p=a;
for(i=0;i<n;i++)
{ scanf("%d",p+i); }
p=a;
pre(p,n,max,min);
}
return 0;
}
void pre(int *p,int n,int max,int min)
{ int i;
for(i=0;i<n;i++)
{ if((*(p+i)<max)&&(*(p+i)>min))
{ printf("1 "); printf("%d\n",*(p+i));break;}
else if(i==n-1)
{ printf("0 ");
printf("%d\n",*(p+i));
}
}
}
#include <stdio.h>
#include <stdlib.h>
int fun(char a[]){
if(a[0]!='-'&&a[0]!='+'&&!(a[0]>='0'&&a[0]<='9'))
return 0;
int exponent=10,ans=0,flag=0;
int cnt=1;
if(a[0]=='-')
flag=1;
if(a[0]>='0'&&a[0]<='9')
ans+=(a[0]-'0');
while(a[cnt]>='0'&&a[cnt]<='9'){
int temp=a[cnt]-'0';
cnt++;
ans*=exponent;
ans+=temp;
}
if(flag==1)
ans=-ans;
return ans;
}
int main()
{
char a[100];
while(~scanf("%s",a)){
int ans=fun(a);
printf("%d\n",ans);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
void sort(float m,float *p,int n)
{
int i;
for(i=0;i<n;i++)
{
if(*(p+i)>=m)
{
printf("%.2f ",m);break;
}
printf("%.2f ",*(p+i));
}
for(;i<n;i++)
{
printf("%.2f ",*(p+i));
}
printf("\n");
}
int main()
{
int n,i,j;
float a[100];
float *p;
float m;
while(~scanf("%d",&n))
{ p=&a;
scanf("%f",&m);
for(i=0;i<n;i++)
{
scanf("%f",p+i);
}
sort(m,p,n);
}
return 0;
}
我刚开始试了试用普通的数组进行冒泡排序,也过了,真的比这个简单,但是人家让用指针,咱就用吧,然后就是我的新电脑时不时在锐格上有不符合网管什么什么的要求,我也不知道为啥,但是重新登陆就好了,之前问学长学长也解决了,可是就是没彻底,不过也能用,还有就是,这个题让好长时间都在写链表的我想起来了指针的一点点,很好,继续指针吧!!!!
#include <stdio.h>
#include <stdlib.h>
int main()
{ int n,m,i,j;
while(~scanf("%d%d",&n,&m))
{double a[n][m];
double *p=a;
int i,j;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
scanf("%lf",p+i*m+j);
int hang;
int lie;
double max=0;
for(i=0;i<n;i++)
{ for(j=0;j<m;j++)
{
if(max<*(p+(i*m)+j))
{max=*(p+(i*m)+j);hang=i;lie=j;}
}
}
printf("%.2lf %d %d\n",*(p+hang*m+lie),hang+1,lie+1);
}
return 0;
}
#include <stdio.h>
#include <stdlib.h>
//void pre(char *p,char *p1,int n,int m);
int main()
{
int n,m,i;
char a[101],b[101];
char *p,*p1;
while(scanf("%s",a)!=-1)
{
p=&a;//p1=&b;
scanf("%d %d",&n,&m);
for(i=n-1;i<m;i++)
{
printf("%c",*(p+i));
}
printf("\n");
}
return 0;
}
好啦,这里就告一段落了,这一节唤醒了我之前对指针的学习
加油!开启下一章