关闭

17-1-3 1601上机作业

120人阅读 评论(0) 收藏 举报
分类:

本实验习题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函数中输入字符串,并输出其长度。

#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[n]);
    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;
}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1757次
    • 积分:115
    • 等级:
    • 排名:千里之外
    • 原创:10篇
    • 转载:1篇
    • 译文:0篇
    • 评论:2条