文章目录

  • ​​NEFU锐格实验二[多维数组]​​
  • ​​知识点​​
  • ​​题目​​
  • ​​5809​​
  • ​​5814​​
  • ​​5815​​
  • ​​5816​​
  • ​​5808​​

NEFU锐格实验二[多维数组]

知识点

题目

知识点

5809

二维数组调用

5814

二维数组转置

5815

二维数组转置行列不同

5816

字符串二维数组,多组输入

5808

字符处理

题目

5809

#include <stdlib.h>
#include<stdio.h>
int main()
{
int max_save[10][7]={{1,1,1,1,1,1,0},
{0,1,1,0,0,0,0},
{1,1,0,1,1,0,1},
{1,1,1,1,0,0,1},
{0,1,1,0,0,1,1},
{1,0,1,1,0,1,1},
{1,0,1,1,1,1,1},
{1,1,1,0,0,0,0},
{1,1,1,1,1,1,1},
{1,1,1,1,0,1,1}};
int num,col;
scanf("%d",&num);
/*模拟七段数码显示管分5行输出,
*奇数行只输出空格或者-,
*偶数行只输出空格或者|。*/
//start
if(max_save[num][0])printf(" - \n");
else printf(" \n");
if(max_save[num][5])printf("| ");
else printf(" ");
if(max_save[num][1])printf("|\n");
else printf(" \n");
if(max_save[num][6])printf(" - \n");
else printf(" \n");
if(max_save[num][4])printf("| ");
else printf(" ");
if(max_save[num][2])printf("|\n");
else printf(" \n");
if(max_save[num][3])printf(" - \n");
else printf(" \n");
//end
return 0;
}

5814

#include <stdio.h>
#include <stdlib.h>
#define N 5
int main(void)
{
void transfor(int a[][N]);
int array[N][N],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&array[i][j]);
transfor(array);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
j!=N-1?printf("%d ",array[i][j]):printf("%d\n",array[i][j]);
return 0;
}
void transfor(int a[][N])
{
//start
int tmp;
for(int i=0;i<N;i++)
{
for(int j=0;j<i;j++)
{
tmp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=tmp;
}
}
//end
}

5815

#include <stdio.h>
#include <stdlib.h>
#define R 3
#define C 5
#define N (R>C?R:C)
int main(void)
{
void transfor(int a[][N]);
int array[N][N],i,j;
for(i=0;i<R;i++)
for(j=0;j<C;j++)
scanf("%d",&array[i][j]);
transfor(array);
for(i=0;i<C;i++)
for(j=0;j<R;j++)
j!=R-1?printf("%d ",array[i][j]):printf("%d\n",array[i][j]);
return 0;
}
void transfor(int a[][N])
{
//start
int tmp[N][N];
for(int i=0;i<C;i++)
for(int j=0;j<R;j++)
tmp[i][j]=a[j][i];

for(int i=0;i<C;i++)
for(int j=0;j<R;j++)
a[i][j]=tmp[i][j];

//end
}

5816

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int n;
char color[][10]={"green","red","blue","pink","orange","black"};
char input[10];
int count[10];
int main()
{
while(scanf(" %d",&n)!=EOF)
{
int ans=0,id;
memset(count,0,sizeof count);
while(n--)
{
scanf(" %s",input);
for(int i=0;i<6;i++)
if(!strcmp(color[i],input))
{
count[i]++;
if(count[i]>ans)
{
ans=count[i];
id=i;
}
}
}
if(id==0)printf("green\n");
if(id==1)printf("red\n");
if(id==2)printf("blue\n");
if(id==3)printf("pink\n");
if(id==4)printf("orange\n");
if(id==5)printf("black\n");
}
}

5808

又是讨厌的字符串处理hh
这题的话个人感觉逐个读入处理比较简单些

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int n;
char c;
int main()
{
int flag=0;
while(scanf("%c",&c)!=EOF)
{
if(isalpha(c))//看是不是字母
{
printf("%c",c);
flag=1;
}
else
{
if(flag)
{
flag=0;
printf("\n");
}
}
}

return 0;
}