C语言数组题目
本帖最后由 鬼魅王子 于 2019-10-26 18:24 编辑题目:
将二维数组a表示的矩阵每行各元素循环左移n个数
1 2 3 4 5
11 12 13 14 15
21 22 23 24 25
例如左移两个
变成
34 512
13 14 15 11 12
23 24 25 21 22
我的代码运行一直是错的求看哪里错了
#include <stdio.h>
int main()
{
int a={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};
int n=0,j,k;
printf("循环左移几个数:");
scanf("%d",&n);
for(j=0;j<=2;j++)
{
for(k=0;k<=n-1;k++)
{
int t;
t=a,a=a,a=t;
}
}
for(j=0;j<=2;j++)
{
for(k=0;k<=4;k++)
{
printf("%d ",a);
}
printf("\n");
}
return 0;
}
scanf后加_s 乎乎 发表于 2019-10-26 19:05
scanf后加_s
怎么加?
scanf("%d",&n);改为scanf_s("%d",&n); 乎乎 发表于 2019-10-26 19:11
scanf("%d",&n);改为scanf_s("%d",&n);
scanf_s()是什么意思我还没用过 乎乎 发表于 2019-10-26 19:11
scanf("%d",&n);改为scanf_s("%d",&n);
结果还是错的 已解决
修改换位代码
#include <stdio.h>
int main()
{
int a={{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};
int n=0,j,k;
printf("循环左移几个数:\n");
scanf("%d",&n);
for(j=0;j<=2;j++)
{
for(k=0;k<=n-1;k++)
{
int t;
t=a,a=a,a=t;
}
}
for(j=0;j<=2;j++)
{
for(k=0;k<=4;k++)
{
printf("%d ",a);
}
printf("\n");
}
return 0;
} scanf_s("%d", &n);安全性问题,可以新建空项目,不要用默认模块。
#include <stdio.h>
int main()
{
int a = { {1,2,3,4,5},
{11,12,13,14,15},
{21,22,23,24,25} };
int n = 0, j, k;
printf("循环左移几个数:");
scanf_s("%d", &n);
for (j = 0; j <=2; j++)
{
for (k = 0; k <= n; k++)
{
int t;
t = a,
a = a;
a = t;
if (k >= 3) {
t = a,
a = a;
a = t;
}
}
}
for (j = 0; j <= 2; j++)
{
for (k = 0; k <= 4; k++)
{
printf("%d ", a);
}
printf("\n");
}
return 0;
}
不好意思,我是菜鸟,我是这样解决的 乎乎 发表于 2019-10-26 20:09
#include
int main()
{
测试是错误的
页:
[1]
2