请帮我看看问题出在哪里呢,应该没有太大错误
#include <stdio.h>
char a[8];
char b[8];//输出数组
int cm[8][2];
char sm[8];
int i,j,k;
//输出控制
void change1(int c[8][2])
{
printf("请输入输入线每个时隙的用户信息:");
for(i=0;i<8;i++)
{
scanf("%c",&a[8]);
}
for(i=0;i<8;i++)
{
sm[i]=a[i]; //顺序写入
b[c[i][2]]=sm[i];
}
}
//输入控制
void change2(int c[8][2])
{
printf("请输入输入线每个时隙的用户信息:");
for(i=0;i<8;i++)
{
scanf("%c",&a[8]);
}
for(i=0;i<8;i++)
{
b[c[i][2]]=a[i];
sm[c[i][2]]=a[i];//控制写入
}
}
//输出
void printest()
{
printf("输入线语音存储器控制存储器输出线 ");
for(k=0;k<8;k++)
{
printf("%c",a[k]);
printf(" ");
printf("%c",sm[k]);
printf(" ");
printf("%d",cm[k]);
printf(" ");
printf("%c",b[k]);
printf(" ");
}
}
void main()
{
int c;
printf("请选择工作方式:1.输出控制 2.输入控制");
scanf("%d",&c);
printf("请输入八组交换请求:");
for(i=0;i<8;i++)
{
for(j=0;j<2;j++)
{
scanf("%d",&cm[i][j]);
}
}
switch(c)
{
case 1: change1(cm[8][2]);break;
case 2:change2(cm[8][2]);break;
}
printest();
}
你对数组的基本概念没有搞清
若函数定义的参数为change1(int c[8][2])
你调用时要用
change1(cm);
而不是
change1(cm[8][2]);