您的位置:首页 > 其它

17-1-3 1601上机作业

2017-01-03 15:26 211 查看
本实验习题1-4要求用指针方法处理

1、输入3个整数,按由大到小的顺序输出。

#include<stdio.h>
void pailie(int *a,int *b,int *c)
{
int temp;
if(*b<*c)
{
temp=*b;
*b=*c;
*c=temp;
}
if(*a<*b)
{
temp=*a;
*a=*b;
*b=temp;
}
if(*b<*c)
{
temp=*b;
*b=*c;
*c=temp;
}
}
int main()
{
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
pailie(&a,&b,&c);
printf("%d %d %d\n",a,b,c);
return 0;
}


(用指针真的好麻烦,等会用C艹写一个快排,感受一下C艹的威力)

注意,以下为C++代码!!!

#include<cstdio>
#include<algorithm>
using namespace std;
int main()
{
int a[3];
scanf("%d %d %d",&a[0],&a[1],&a[2]);
sort(a,a+3,greater<int>());
printf("%d %d %d\n",a[0],a[1],a[2]);
return 0;
}


多简单,短短11行代码,就搞定了。

等学到C++的时候就会知道有种东西叫做迭代器,其实也算是种指针吧。

2、写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
ad8e


#include<stdio.h>
#include<string.h>
#include<math.h>
int str(char *p)
{
return strlen(p);
}
int main()
{
char a[10000];
gets(a);
printf("%d",str(a));
return 0;
}


3、编写一个程序,输入月份号,输出该月的英文月名。例如,输入“3”,则输出“March”,要求用指针数组处理。

#include<stdio.h>
char a1[]={"January"},a2[]={"February"},a3[]={"March"},a4[]={"April"},a5[]={"May"},a6[]={"June"},a7[]={"July"},a8[]={"August"},
a9[]={"September"},a10[]={"October"},a11[]={"November"},a12[]={"December"};
int main()
{
int *p[13];
p[1]=a1;
p[2]=a2;
p[3]=a3;
p[4]=a4;
p[5]=a5;
p[6]=a6;
p[7]=a7;
p[8]=a8;
p[9]=a9;
p[10]=a10;
p[11]=a11;
p[12]=a12;
int n;
scanf("%d",&n);
printf("%s\n",p
);
return 0;
}


4、输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。写3个函数:①输入10个数;②进行处理;③输出10个数。

#include<stdio.h>
void print(int *a)
{
int i;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
}
void solve(int *a)
{
int i,t,temp;
t=0;
for(i=0;i<10;i++)
{
if(a[i]>a[t]) t=i;
}
temp=a[t];
a[t]=a[9];
a[9]=temp;
t=0;
for(i=0;i<10;i++)
{
if(a[i]<a[t]) t=i;
}
temp=a[t];
a[t]=a[0];
a[0]=temp;
}
void scan(int *a)
{
int i;
for(i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}
int main()
{
int a[20];
print(a);
solve(a);
scan(a);
return 0;
}


5编写一个C程序,将10个整型数字输入到一个名为temp的数组中。每输入一个数字,计算一次已经输入的数字之和。10个数字全输入完毕之后,输出这10个数字以及他们的平均值。

#include<stdio.h>
int main()
{
int temp[100];
int i;
int sum=0;
for(i=0;i<10;i++)
{
scanf("%d",&temp[i]);
sum+=temp[i];
}
for(i=0;i<10;i++)
{
printf("%d ",temp[i]);
}
printf("\n");
printf("Average=%f\n",sum/10.0);
return 0;
}


6编写一程序将字符串“This is a test”存储到名为strtest的数组中。并使用以下语句输出:

for ( i = 0; i <=14; i++ )

printf ( “%c”, strtest[i] );

#include<stdio.h>
int main()
{
char strtest[]={"This is a test"};
int i;
for(i=0;i<14;i++)
{
printf("%c",strtest[i]);
}
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: