C语言经典题目(22)

简介: C语言经典题目(22)

1.转置矩阵

用指针的方法处理:写一个函数,将3*3的整型矩阵转置

转置:第一行变为第一列.......最后一行变为最后一列
要求使用指针写这个转置函数,那就使用数组指针来间接进行转置操作
#include<stdio.h>
void move(int(*pa)[3])
{
    int i, j, temp;
    for (i = 0; i < 3; i++)
        for (j = 0; j < i; j++)
        {
            temp = *(*(pa + i) + j);
            *(*(pa + i) + j) = *(*(pa + j) + i);
            *(*(pa + j) + i) = temp;
        }
}
int main()
{
    int a[3][3];
    int temp;
    for (int i = 0; i < 3; i++)
        for (int j = 0; j < 3; j++)
            scanf("%d", &a[i][j]);
            
    printf("转置前的数组为:\n");
    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
            printf("%5d ", a[i][j]);
        printf("\n");
    }
    move(a);
    printf("转置后的数组为:\n");

    for (int i = 0; i < 3; i++)
    {
        for (int j = 0; j < 3; j++)
            printf("%5d ", a[i][j]);
        printf("\n");
    }
    return 0;
}

2.字符串连接

用指针的方法处理:写一个函数,将两个字符串连接。

#include<stdio.h>
#include<assert.h>
char* my_strcat(char* dest, const char* src)
{
    char* ret = dest;
    assert(dest != NULL);
    assert(src != NULL);  
    while (*dest)
    {
        dest++;
    }
    while (*dest = *src)
    {
        dest++;
        src++;
    }
    return ret;
}
int main()
{
    char str1[30],str2[30];
    scanf("%s", str1);
    scanf("%s", str2);
    my_strcat(str1, str2);
    printf("连接后的结果为:%s", str1);
}

3、分析程序

分析下面程序,说出其功能

#include<stdio.h>
int main()
{
    int m,n,i,j;
    int max=0;
    scanf("%d%d",&m,&n);
    for(i=m;1;i++)          
    {
        if(i%m==0&&i%n==0)  
        break;              
    }
    
    for(j=1;j<=n;j++)        
    {
        if(m%j==0 && n%j==0)   
        {
            if(max<j)        
            max=j;           
        }
    }
    printf("%d *************%d\n",i,max);
    return 0;
} 
程序功能:输出输入的两个数的最小公倍数和最大公约数

第一个循环的作用:只有i可以同时整除m和n的时候才会执行break跳出循环。所以第一个循环的作用就是找到m和n的最小公倍数。

第二个循环的作用:找出可以同时被m和n整除的数,并且通过if语句,使max是最后的最大公约数。

相关文章
|
6月前
|
C语言
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
C语言:数组和指针笔试题解析(包括一些容易混淆的指针题目)
|
6月前
|
存储 C语言 C++
C语言------------指针笔试题目深度剖析
C语言------------指针笔试题目深度剖析
44 1
|
11月前
2.C语言题目---字符串左旋
2.C语言题目---字符串左旋
76 1
|
1月前
|
程序员 C语言
【C语言】LeetCode(力扣)上经典题目
【C语言】LeetCode(力扣)上经典题目
|
11月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
60 1
|
3月前
|
存储 编译器 C语言
【C语言】指针练习题目
【C语言】指针练习题目
|
5月前
|
测试技术 C语言
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
数据结构学习记录——树习题—Tree Traversals Again(题目描述、输入输出示例、解题思路、解题方法C语言、解析)
45 1
|
6月前
|
算法 编译器 API
C语言易混淆、简单算法、结构体题目练习、常见关键字总结-1
C语言易混淆、简单算法、结构体题目练习、常见关键字总结
|
5月前
|
C语言
c语言循环题目
c语言循环题目
|
6月前
|
C语言
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)
PTA 浙大版《C语言程序设计(第3版)》题目集 习题8-4 报数 (20分)