c - 从C中结构的数组成员中打印元素
问题描述
我一直在解决 CyclicRotation 的问题。这是我的代码:
#include<stdio.h>
#include<stdlib.h>
struct Results{
int *A;
int N;
};
struct Results solution(int A[], int N, int K){
struct Results result;
int *tab, i=0, j=0;
tab = (int*) malloc(N*sizeof(int));
if(N==0){
result.A = A;
result.N = N;
return result;
}
if(K>N){
K = K % N;
}
if(K<N && N != 0){
for(i=N-K;i<N;i++){
tab[j] = A[i];
j = j + 1;
}
i = 0;
while(i<N-K){
tab[j] = A[i];
i++;
j++;
}
} else {
tab = A;
}
result.A = tab;
result.N = N;
return result;
}
int main()
{
int j[]={2,3,4,5,6,7,8};
int mylen;
int myk = 3;
mylen = sizeof(j)/sizeof(j[0]);
return 0;
}
我在代码中试过这个:
int main()
{
int j[]={2,3,4,5,6,7,8};
int mylen;
int myk = 3;
mylen = sizeof(j)/sizeof(j[0]);
printf("The result is %d",solution(j,mylen,myk).A);
return 0;
}
预期结果为 6782345,但控制台中的结果不同:
The result is -591373584
我不确定数组打印是否正确(鉴于这是一个数组,也许我需要一个循环?)。拜托,你能给我一个帮助吗?先感谢您。
解决方案
int main()
{
int j[]={2,3,4,5,6,7,8};
int mylen;
int myk = 3;
mylen = sizeof(j)/sizeof(j[0]);
struct Results results = solution(j, mylen, myk);
for(int i = 0; i < mylen; i++)
printf("%d\n", results.A[i]);
free(results.A);
return 0;
}
推荐阅读
- php - 如何在不使用主题 function.php 的情况下使用自己创建的自定义插件替换 WooCommerce 插件的功能
- numpy - 有什么方法可以在 NumPy 中获取矩阵的 sqrt 吗?不是元素明智,而是作为一个整体
- python - 如果出现任何错误,是否可以在循环中运行 try 语句?
- class - 可选参数的默认值必须是常数颤振/飞镖
- colors - 将 CCT(相关色温)转换为 x、y 色度
- python - 根据鼠标点击输入编辑绘图
- c# - 如何填充用户给我的字符或字符串数组 [6,6] 并将其显示到文本框?
- java - 取链表Java的平均值
- database - 如何使用 Flutter sqflite 查询 SQL Lite 数据库
- r - 给定特定数据帧,如何减去矩阵中的两个值?