C语言改错题,二维数组的。 帮忙说下i,j,k,m,n分别控制的什么,谢谢,找出错误!

作者&投稿:郟凡 (若有异议请与网页底部的电邮联系)
c语言编程问题 改错 关于二维数组的使用~

#include #includevoid week(int a,char *ca);int main(int argc, char *argv[]){ int a; scanf("%d",&a); char ca[20] = ""; week(a,ca); printf("%s
",ca); return 0;}void week(int a,char *ca){ char week[7][100]={"Sunday","Monday","Tuesday","wednesday","Thursday","Friday","Saturday"}; strcpy(ca,week[a-1]);}这个是改好的。我只能告诉你子函数里边的数组跟变量都是临时的,不能返回主函数使用。对二维数组的初始化时没有问题的,二维数组的赋值不外乎初始化整体赋值和非初始化逐项赋值。这个不光是二维数组,是数组都是这样的。欢迎追问。

#include
# define m 2
# define s 2
# define n 2
void main()
{
int a[m+1][s+1],b[s+1][n+1];//下标是从0开始的,所以要多一个
int i,j,t,w=0;
printf("输入A %d*%d的矩阵
",m,s);
for(i=1;i<=m;i++)
for(j=1;j<=s;j++)
scanf("%d",&a[i][j]);
printf("输入B %d*%d的矩阵
",s,n);
for(i=1;i<=s;i++)
for(j=1;j<=n;j++)
scanf("%d",&b[i][j]);//这里是b[i][j]你写成了a[i][j]
printf("所得的新矩阵为C %d*%d模式
",m,n);

for(i=1;i<=m;i++)//从1开始的,你上面是这么写的
{
for(j=1;j<=n;j++)
{
for(t=1,w=0;t<=s;t++)
{
w=w+a[i][t]*b[t][j];

}
printf("%d",w);//做好再打印
}
printf("
");
}
}

代码和图都有了,你自己对照着修改,很详细了!

 

#include <stdio.h>

#define M 100

void RataterArray(int array[M][M],introws,int cols)

{

intregcount=rows%2==0?rows/2:(rows+1)/2;//regcount为矩形个数

intseedNum=1;//seedNum初值

for(inti=0;i<regcount;i++)//为每层矩形赋值

{

for(introw=0;row<rows;row++)

{

for(intcol=0;col<cols;col++)

{

//矩形的上边横线

if(row==i&&array[row][col]==-1)

{

array[row][col]=seedNum-i+col;

}

//矩形的右边横线

if(col==(cols-i-1)&&array[row][col]==-1)

{

array[row][col]=seedNum+(rows-2*i)+(cols-2*i)-2-(rows-i-1-row);

}

//矩形的下边横线

if(row==(rows-1-i)&&array[row][col]==-1)

{

array[row][col]=seedNum+(rows-2*i)+(cols-2*i)-2+(cols-i-1-col);

}

//矩形左边竖线

if(col==i&&array[row][col]==-1)

{

array[row][col]=seedNum+(rows-2*i)+(cols-2*i)-2+(cols-i*2)-1+(rows-i-1-row);

}

}

}

seedNum=(rows-2*i+cols-2*i)*2-4+seedNum;//矩形的尾值作为内含矩形的seedNum初始值

}

}

void main()

{

intarray[M][M];

//分别为数组的行和列

introws,cols;

printf("请输入螺旋数组的行数和列数:");

scanf("%d%d",&rows,&cols);

//初始化数组为-1

for(inti=0;i<rows;i++)

{

for(intj=0;j<cols;j++)

{

array[i][j]=-1;

}

}

//螺旋数组赋值函数

RataterArray(array,rows,cols);

printf("打印螺旋数值如下:
");

for(i=0;i<rows;i++)

{

for(intj=0;j<cols;j++)

{

printf("%4d",array[i][j]);

}

printf("
");

}

}

运行效果:




用指针,函数。求二维数组第一行的平均值。求大神帮忙改错
并且使用p时不能用下标,p[2][3]是错误的,因为不知道p指向的int*型的长度,无法编译成*(p+2*10+3)必须自己写成*(p+2*10+3)来调用 假如定义成 deal(int (*p)[10])就不一样了,编译器就能知道p是一个指向长度为10的数组的指针 那么p[2][3]就能编译成*(p+2*10+3)了 总之,C语言...

计算机二级c语言如何短期备考?
(2)C语言知识题40分。单选题10分(每题1分),一般考的都是基础知识;填空题30分,每空1分,其中5分为基础知识填空,25分为语言运用填空(比如:递归、排序、二维数组、单链表等知识点读程序填写题)。2、上机考试一共40分,分两道题。(1)改错题(18分):一般为4个错误,包括语法错误(如...

求解一道C语言二级考试 改错题 统计一维数组中0和1的个数
题目呢?这个不难。include<iostream.h> void main(){ int n,*p;int a=0,b=0;cout<<"输入数组元素的个数n:";cin>>n;p=new int[n];cout<<"输入数组元素:";for(int i=0;i<n;i++)cin>>p[i];for(int j=0;j<n;j++){ if(p[j]==0)a++;else b++;} cout<<"一维数组...

C语言考试技巧
2.改错题 (1)上机改错题中有2个(或3个)错误需要修改。 (2)试题中用“\/***found***\/”来提示在下一行(或下面第二行)有错。 (3)错误的性质基本...Unix与C是共生的,Unix的思考方式和习惯更加符合C语言的思考方式和习惯。在Unix下,你可以找到无数优秀的源代码供你尽情阅读,你可以方便地查看某个库函数的...

计算机二级c语言分数是怎么分配的?
计算机二级c语言分数分配:1、单项选择题,40题,40分(含公共基础知识部分10分)。2、程序填空题,2~3个空,18分;上机题。3、程序改错题,2~3处错误,18分;上机题。4、程序设计题,1题,24分;上机题。补充资料:考试内容 1、C语言程序的结构。程序的构成、main函数和其他函数;头文件、数据...

大一C语言作业,求改错. 改到可以正确运行不报错..
include <conio.h>#include <stdio.h>#define M 20int amatric(int n,int xx[][M]){ int i,j; for(j=0; j<n;j++) xx[0][j]=(n-j)*(n-j); for(i=1;i<n;i++) { for(j=0;j<n-1;j++) xx[i][j]=xx[i-1][j+1]; xx[i][n-1]=xx[i-1][0...

c语言,数组程序设计
因为这道题是改错题,不能动太多。楼下的那种方法我试过了是可以的,但还是想问有其他改法吗?O(∩_∩)O谢谢,戀心の風snow | 浏览3054 次 |举报 我有更好的答案推荐于2017-12-16 16:12:01 最佳答案 #include <stdio.h> int main(void) { int i,x,n; int a[10]; printf("输入数组元素的个数...

用c++编写函数找出二维数组(5*4)中元素的最大值与最小值,并返回其最...
0][0];for (int i = 0; i < 5; i++){for (int j = 0; j < 4; j++){if (arr[i][j] > nMax)\/\/最大值比较{nMax = arr[i][j];}else if (arr[i][j] < nMin)\/\/最小值比较{nMin = arr[i][j];}}}int main(){\/\/定义一个5*4的二维数据。int arr[5][...

C语言编程,输入五个学生的五科成绩,求每科的平均分,最高分,最低分...
include <stdio.h>main(){double a[8][5]={0};int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++)scanf("%lf",&a[i][j]);}for(j=0;j<5;j++){for(i=0;i<5;i++)a[5][j]+=(a[i][j]\/5.0);printf("课程%d的平均分=%g\\n",j+1,a[5][j]);}for(i=0;i<...

C++用二维数组输出字符串为什么输出的是16进制的数,亲们帮忙改错下,么...
sort函数的for循环退出后给各类统计结果的最后一个字符赋值'\\0',标志字符串结束 b[0][c] = b[1][d] = b[2][e] = b[3][f] = '\\0';main函数中输出部分改成:cout<<"大写英文字母:\\t";cout<<b[0]<<endl;cout<<"小写英文字母:\\t";cout<<b[1]<<endl;cout<<"数字\\t";cou...

铅山县15242639299: c语言 求纠错 题目:写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换 -
宾莉硫酸: #include<stdio.h> void main() { int change(int a[3][3]); int a[3][3],i,j; printf("请输入9个数字:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); a[3][3]=change(a); printf("转换后:\n"); for(i=0;i<3;i++) for(j=1;j<=3;j++) { printf("%d\t"...

铅山县15242639299: C语言,一维指针指向二维数组,代码改错 -
宾莉硫酸: 有以下几处要改,从调用函数说起:首先void sortStr(char *s)改为void sortStr(char s[][20])原因在于,s是作为一个字符二维数组,需指定每行宽度.而你写的是字符的指针,顶多可以作为字符串(一维)的首地址而不是二维的.strcmp(s+min,s+j)...

铅山县15242639299: C语言问题求解如图谢谢二维数组意思是 -
宾莉硫酸: 定义int型数组,默认会填充0,就是说,a[0][3]和a[1][3]值为零.但是int型数组,同一数组元素中,是不会有两个数字的,所以a[0][2]是1715,a[1][2]是1816,都是一个数字.之前写的有点跑偏,编辑了下.

铅山县15242639299: c语言如何修改数组中的数据 -
宾莉硫酸: 可以直接赋值的. 如你定义的二维数组,a[2][2]={0,1,2,3};以及一个变量int x; scanf("%d",&x);//从键盘获取x的数值.假设x的输入数值为8 那么可以用a+下标赋值就可以了.如a[0][1]=x. 那么二维数组就变成,a[2][2]={0,8,2,3}

铅山县15242639299: C语言 键盘输入一个二维数组 最大值【求帮忙看一下哪里错了,还有测试时候我应该怎么输入呢? -
宾莉硫酸: 3行5列是a[3][5] 测试一个一个输入就好 .......

铅山县15242639299: C语言如何在子函数中对主函数中的二维数组值进行修改? 二维数组已经在主函数中用动态数组分配了空间. -
宾莉硫酸: 用数组时,必须要知道二维数组的后一个维度,否则无法正确修改,比如: void modify(int a[][10]) {a[1][2] = 12;a[2][5] = 25; } void main() {int a[5][10];a[1][2] = 0;a[2][5] = 0;modify(a);printf("a(1,2)=%d, a(2,5)=%d\n",12, 25); }用指针方...

铅山县15242639299: 求解一道C语言二级考试 改错题 统计一维数组中0和1的个数 -
宾莉硫酸: 题目呢?这个不难.#include<iostream.h> void main() { int n,*p; int a=0,b=0; cout<<"输入数组元素的个数n:"; cin>>n; p=new int[n]; cout<<"输入数组元素:"; for(int i=0;i<n;i++) cin>>p[i]; for(int j=0;j<n;j++) { if(p[j]==0) a++; else b++; } cout<<"一维数组中0的个数:"<<a<<endl; cout<<"一维数组中1的个数:"<<b<<endl; } 用的是动态数组,这样就好了,如果你能帮我解决我的问题就更好了.在我的提问:

铅山县15242639299: C语言有关2维数组的一个简单问题 -
宾莉硫酸: 你这么改:把for(j=i;j...

铅山县15242639299: C语言输入一个二维数组,求里面的鞍点,就在我的程序上改,看哪里错了 -
宾莉硫酸: #include int main() { int a[3][3],i,j,col,max,min,mini,t; printf("请输入一个二维数组:\n"); for(i=0;i for(j=0;j scanf("%d",&a[i][j]); for(i=0;i { max=a[i][0];col=0; for(j=1;j if(a[i][j]>max) { max=a[i][j];col=j; } } //第i行中的最大值是 a[i][col]; //家下来看a[i][...

铅山县15242639299: c语言二维数组4X5转置矩阵,帮我看看哪儿错了 -
宾莉硫酸:// 被转置的矩阵应该是方阵,非方阵的转置貌似没有代数意义. /* 请输入矩阵的行列数:3 4 您输入的是一个(3*4)矩阵 1 2 3 4 5 6 7 8 9 0 2 3 转置矩阵为: 1 5 9 2 6 0 3 7 2 4 8 3 Press any key to continue */ #include#define N 20...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网