不止想摸鱼 2020-06-01 17:28 采纳率: 100%
浏览 202
已采纳

c语言的困惑——printf函数除了输出还做了什么?

详细问题见此地址:https://blog.csdn.net/weixin_45972337/article/details/106473968

请各位指导。

  • 写回答

3条回答 默认 最新

  • 狂颜 2020-06-01 18:03
    关注

    哇,看了眼代码,我觉得主要的问题是不规范,语法有问题,建议换个编译器试试。问题注释在代码里。

    int main(){
        int nc, np;
        scanf("%d", &nc);
        long long A[nc], B[np];     // 这里的np未赋值,就开数组,应该开不出来的
        for(int i = 0; i < nc; i++){
            scanf("%lld", &A[i]);
        }
        scanf("%d", &np);
        for(int i = 0; i < np; i++){
            scanf("%lld", &B[i]);
        }
        sort(A, A+nc, cmp2);
        sort(B, B+np, cmp2);
        long long ans = 0;
    //  for(int i = 0; i < nc; i++){
    //      printf("%lld:%lld ",A[i], B[i]);
    //  }
        for(int i = 0; B[i] >0 && A[i] > 0; i++){   // 我没看题,这里没考虑数组越界
            ans += A[i] * B[i];
        }
        for(int i = min(nc, np)-1; B[i] < 0 && A[i] < 0; i--){  // 这里也没考虑数组越界
            ans += A[i] * B[i];
        }
        printf("输出结果:"); 
        printf("*%lld*", ans);
        return 0;
    }
    

    首先把程序写规范,想开np、nc的大小的数组建议还是用vector的resize,这种开定长数组不是所有编译器能通过的比如vs。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了