文章目录
- 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;
}