quxiangjiangnan 2022-05-25 20:41 采纳率: 100%
浏览 369
已结题

拼题a上的几个难题,几个同学对照着答案尝试了几次依就报错

实验题,总是不对
【C0369】应用函数输出给定正整数的因子展开式

完成程序,设计实现函数void solve(int x) ,其功能为输出一个给定正整数x(x>1)的质因子展开式。

函数接口定义:
void solve(int x);/功能为输出一个给定正整数x(x>1)的质因子展开式/
裁判测试程序样例:
#include <stdio.h>

/* 请在这里填写答案 */

int main(){
void solve(int);
int x;
scanf("%d",&x);
if(x<2) printf("error data");
else{
printf("%d=",x);
solve(x);
}
return 0;
}
输入格式:
请在一行中输入整数x的值。

输出格式:
对每一组输入的x,按以下格式输出x的质因子展开式(假如x的质因子分别为a、b、c):

x=abc

输入样例1:
72
输出样例1:
72=22233
输入样例2:
1
输出样例2:
error data
输入样例3:
5
输出样例3:
5=5

【C0371】应用函数实现矩阵乘法

完成程序,设计实现函数void f(int a[],int b[],int c[],int m,int n,int t),其功能为计算给定的两个整型数组(一个为m行n列,一个为n行t列)的乘积矩阵。

函数接口定义:
void f(int a[],int b[],int c[],int m,int n,int t);/功能为计算给定的矩阵a(m行n列)和矩阵b(n行t列)的乘积矩阵c/
裁判测试程序样例:
#include <stdio.h>

/* 请在这里填写答案 */

int main(){
int i,j,a[3][4],b[4][3],c[3][3];
for(i=0; i<3; i++)
for(j=0; j<4; j++)
scanf("%d",&a[i][j]);
for(i=0; i<4; i++)
for(j=0; j<3; j++)
scanf("%d",&b[i][j]);
f(a[0],b[0],c[0],3,4,3);
for(i=0; i<3; i++){
for(j=0; j<3; j++)
printf("%5d",c[i][j]);
printf("\n");
}
}
输入格式:
首先输入整型数组a[3][4]的各元素的值,再输入整型数组b[4][3]的各元素的值,数据中间以空格为间隔。

输出格式:
对于输入的a数组和b数组,输出a和b的乘积矩阵c[3][3],其中每个元素显示格式为:占5列,右对齐。

输入样例:
1 2 3 4
2 3 4 5
3 4 5 6
1 2 3
2 3 4
3 4 5
4 5 6
输出样例:
30 40 50
40 54 68
50 68 86

6-3 【C0373】应用递归函数实现起泡排序

完成程序,设计实现递归函数void sort(int a[],int n),其功能为使用“起泡法”对a数组存储的n(n<=20)个数按从大到小排序,排列后任然存储a数组中。

函数接口定义:
void sort(int a[],int n);/*功能为使用“起泡法”对a数组存储的n(n<=20)个数按从大到小排序,排列后任然存储a数组中*/
裁判测试程序样例:
#include <stdio.h>
#define N 20

/* 请在这里填写答案 */

int main(){
int a[N],i,n;
scanf("%d",&n);
if(n>20) printf("error data");
else{
for(i=0; i<n; i++)
scanf("%d",&a[i]);
sort(a,n);
for(i=0; i<n; i++)
printf("%5d",a[i]);
printf("\n");
}
return 0;
}
输入格式:
请在第一行中输入整数n的值,表示数据的个数。

在第二行中输入n个无序整数,数据中间以空格为间隔。

输出格式:
对每一组输入的n个无序整数,输出按照从小到大顺序的排序结果,其中每个数显示格式为:占5列,右对齐。

输入样例1:
10
1 2 3 4 5 0 9 8 7 6
输出样例1:
9 8 7 6 5 4 3 2 1 0
输入样例2:
45
输出样例2:
error data

  • 写回答

1条回答 默认 最新

  • qzjhjxj 2022-05-26 10:28
    关注

    供参考:

    //【C0369】应用函数输出给定正整数的因子展开式
    #include <stdio.h>
    /* 请在这里填写答案*/
    void solve(int x)
    {
        int i = 2, k = 0;
        while (x != 1){
            if (x % i == 0){
                printf(k++ == 0 ? "%d" : "*%d", i);
                x /= i;
            }
            else {
                i++;
            }
        }
    }
    int main() {
        void solve(int);
        int x;
        scanf("%d", &x);
        if (x < 2) printf("error data");
        else {
            printf("%d=", x);
            solve(x);
        }
        return 0;
    }
    
    
    //【C0371】应用函数实现矩阵乘法
    //裁判测试程序样例:
    #include <stdio.h>
    /* 请在这里填写答案 */
    void f(int a[], int b[], int c[], int m, int n, int t)
    {
        int i, j, k;
        for (i = 0; i < m; i++)
            for (j = 0; j < m; j++)
                for (k = 0, c[i * t + j] = 0; k < n; k++)
                    c[i * t + j] += a[i * n + k] * b[k * m + j];
    }
    int main() {
        int i, j, a[3][4], b[4][3], c[3][3];
        for (i = 0; i < 3; i++)
            for (j = 0; j < 4; j++)
                scanf("%d", &a[i][j]);
        for (i = 0; i < 4; i++)
            for (j = 0; j < 3; j++)
                scanf("%d", &b[i][j]);
        f(a[0], b[0], c[0], 3, 4, 3);
        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++)
                printf("%5d", c[i][j]);
            printf("\n");
        }
    }
    
    
    //6-3 【C0373】应用递归函数实现起泡排序
    //裁判测试程序样例:
    #include <stdio.h>
    #define N 20
    /* 请在这里填写答案 */
    void sort(int a[], int n)
    {
        int tmp;
        if (n == 1)
            return;
        else {
            for (int i = 0; i < n - 1; i++) {
                if (a[i] < a[i + 1]) {
                    tmp = a[i];
                    a[i] = a[i + 1];
                    a[i + 1] = tmp;
                }
            }
            sort(a, n - 1);
        }
    }
    int main() {
        int a[N], i, n;
        scanf("%d", &n);
        if (n > 20) printf("error data");
        else {
            for (i = 0; i < n; i++)
                scanf("%d", &a[i]);
            sort(a, n);
            for (i = 0; i < n; i++)
                printf("%5d", a[i]);
            printf("\n");
        }
        return 0;
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 6月3日
  • 已采纳回答 5月26日
  • 创建了问题 5月25日

悬赏问题

  • ¥15 远程桌面文档内容复制粘贴,格式会变化
  • ¥15 关于#java#的问题:找一份能快速看完mooc视频的代码
  • ¥15 这种微信登录授权 谁可以做啊
  • ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题