总览:
一10:10~11:50 写c语言程序报告
二、4:10~6:00 学习蛇形矩阵和螺旋三角形,刷vj上的题
三、7:00~8:40 写形式与政策,c语言程序报告
四、8:40~10:00 听学长讲结构体、周老师的区间问题。
一、学习流程图,写伪代码,写简单的程序
二、
今天下午刷了3个题,下面是刷题之后个别题的总结以及代码:
1.题目链接字符串与模拟练习 - Virtual Judge (vjudge.net)
思路:确定第一个位置,根据规律从上下左右四个方向向数组进行存值。研究下标与何时存值以及超出边界和下一个位置有值的情况做怎么样的处理。蛇形矩阵同理。
AC代码:
#include<stdio.h>
#include<string.h>
int a[1001][1001];
int main()
{
int n, i, j, x, T;
scanf("%d", &T);
while (T--) {
i = 0;
j= 0;
memset(a,0,sizeof a);
a[i][j] = 1;
x = 1;
scanf("%d", &n);
while (x < (n * (n + 1) / 2)) {
while (1) {
if (j < n - 1 && a[i][j + 1] == 0)
a[i][++j] = ++x;
else
break;
}
while (1) {
if (j > 0 && a[i + 1][j - 1] == 0)
a[++i][--j] = ++x;
else
break;
}
while (1) {
if (i > 0 && a[i - 1][j] == 0)
a[--i][j] = ++x;
else
break;
}
while (1) {
if (j < n - 2 && a[i][j + 1] == 0)
a[i][++j] = ++x;
else
break;
}
}
for (i = 0; i < n; i++) {
for (j = 0; j < n - i; j++)
printf("%d ", a[i][j]);
printf("\n");
}
printf("\n");
}
}
2.题目链接字符串与模拟练习 - Virtual Judge (vjudge.net)
思路:分3种情况,全0,全1,有0也有1,第3种的情况的时候找到第一个1的时候记录它的下标,再找到最后1个1记录它的下标,循环计算这区间内有几个0。
AC代码:
#include<stdio.h>
#include<string.h>
int main()
{
char s[1000];
int t,i,k,c,x,y,flag;
scanf("%d",&t);
getchar();
while(t--)
{
gets(s);
k=strlen(s);
flag=1;
for(i=0;i<k;i++)
{
if(s[i]=='0');
else break;
}
if(i>=k)
{
printf("0\n");
flag=0;
}
if(flag==1)
{
for(i=0;i<k;i++)
{
if(s[i]=='1');
else break;
}
if(i>=k)
{
printf("0\n");
flag=0;
}
if(flag==1)
{
c=0;
for(i=0;i<k;i++)
if(s[i]=='1')
{
x=i;
break;
}
for(i=x;i<k;i++)
{
if(s[i]=='1')
y=i;
}
for(i=x;i<y;i++)
{
if(s[i]=='0')
c++;
}
printf("%d\n",c);
}
}
}
}
三、学长讲的非常好,希望他以后经常讲。
明天也要加油。