个人感觉这位兄弟写的关于指针的解释比较易懂、比较好,所以想分享一下,有需要的朋友可以去看一下
本文为CSDN博主「挠头狒狒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:点击这里跳转
或者手动后面的网址:https://blog.csdn.net/qq_45830608/article/details/105915374
输入格式:
输入要求:
在第1行输入已有有序数个数n;
在第2行依次升序输入n个整数,数据之间以空格间隔;(限定n<100);
在第3行输入要插入新数w;
输出格式:
输出要求: 升序输出已经插入新数的数组元素中间以空格间隔
#include
int main()
{
int n,m,i,j,t;
scanf("%d",&n);
int a[n+1];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&m);
a[n]=m; //将m赋值给数组空余的a[n]
for(i=0;i<=n;i++) //排序阶段了,外层循环
{
for(j=0;j<n-i;j++)
{
if(a[j]>a[j+1])
{
t=a[j];a[j]=a[j+1];a[j+1]=t;
}
}
}
for(i=0;i<=n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
输入格式:
输入要求:输入10个整数
输出格式:
输出要求:输出最大元素
#include
int main()
{
int a[10],i,*p,max;
p=a;
for(i=0;i<10;i++)
{
scanf("%d",p+i);
if(i==0)
max=*(p+i);
else if(*(p+i)>max)
max=*(p+i);
}
printf("%d",max);
return 0;
}
输入格式:
输入要求: 输入10个数,数据之间用空格间隔。
输出格式:
输出偶数个数
#include
int main()
{
int a[10],i,*p,n=0;
p=a;
for(i=0;i<10;i++)
{
scanf("%d",p+i);
if(*(p+i)%2==0)
n++;
}
printf("%d",n);
return 0;
}
输入格式:
输入要求
在第1行输入要存入数组a的元素个数n;
在第2行依次输入n个整数,数据之间以空格间隔;
输出格式:
输出要求:输出数据之间以空格间隔;
#include
int main()
{
int i,*p,n;
scanf("%d",&n);
int a[n];
p=a;
for(i=0;i<n;i++)
scanf("%d",p+i);
for(i=0;i<n;i++)
printf("%d ",a[n-1-i]);
return 0;
}
输入一个五位数,判断是否是“回文数”。
如果符合要求就输出判断“是”,如果不符合要求就输出判断“不是”。
输入格式:
输入一个五位数
输出格式:
输出判断结果:如果符合要求就输出判断“是”,如果不符合要求就输出判断“不是”。
第一个就是单独取各个数,然后比较位数(因为这是指定的五位数,所以…算是钻空子,,,,,,)
这个题目用数组真的是自己给自己添麻烦
第二个就是逆序数出这个数,然后将这个数与原数进行比较,用的无限循环while(1)。用break;跳出的
#include
int main()
{
int x,a,b,c,d,e;
scanf("%d",&x);
a=x/10000;
b=x/1000%10;
c=x/100%10;
d=x/10%10;
e=x%10;
if(a==e&&b==d)
{
printf("是");
}
else
{
printf("不是");
}
return 0;
}
#include
int main()
{
int num,sum,t,zero;
sum=0;
scanf("%d",&num);
zero=num;
while(1)
{
t=num%10;
sum=sum*10+t;
num=num/10;
if(num==0)
break;
}
if(zero==sum)
printf("是");
else
printf("不是");
return 0;
}
输入格式:
输入格式:
在第1行输入矩阵m行n列,数据以空格隔开;
从在第2行开始连续输入m行,每行输入n个整数,数据以空格隔开;
输出格式:
输出格式:
输出m个数,分别是每行最大数,每个数值后跟一个空格。
做法不唯一的,我是新建一个数组,然后将每行进行比较,最大的那个数就放到这个新数组中,最后直接输出这个新数组。
#include
int main()
{
int m,n;
scanf("%d%d",&m,&n);
int a[m][n];
int i,j;
int max[m],t;
for (i=0;i<m;i++)
for (j=0;j<n;j++)
scanf("%d",&a[i][j]);
for (i=0;i<m;i++)
{
max[i]=a[i][0];
for (j=0;j<n;j++)
if(a[i][j]>=max[i])
max[i]=a[i][j];
}
for(i=0;i<m;i++)
printf("%d ",max[i]);
return 0;
}