码迷,mamicode.com
首页 > 其他好文 > 详细

第十二周编程总结--助教

时间:2018-11-29 15:26:40      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:等于   判断   定义函数   for循环   思路   memset   相等   har   bubuko   

题目1 跟奥巴马一起画方块
(1)实验代码
#include<stdio.h>
int main ()
{
 int n, i, j;
 char a;
 
 scanf("%d %c", &n, &a);
  
 for(i = 1;i <= n*0.5+0.5;i++)
 {
  for(j = 1;j <= n;j++)
  printf("%c",a);
  printf("\n");
 }
 return 0;
}
(2)设计思路
第一步:定义整型变量和字符变量
第二步:输入并用for循环
第三步:输出图形
(3)本题调试过程碰到问题及解决办法
for循环的条件一开始错了,看了下题目改正了。
(4)运行结果截图
技术分享图片
题目2 编程打印空心字符菱形
(1)实验代码
#include<stdio.h>
int main ()
{
 int n, i, j, k;
 char a;
 scanf("%c %d", &a, &n);
 n = (n + 1) / 2;
 
 for(i = 0;i < n;i++)//行数的输出
 {
  for(j = 1;j < n-i;j++)
  printf(" ");//每个字符前输出的空格
  
  printf("%c",a+i);
  
  for (j=0;j<2*i-1;j++)
  printf (" ");//菱形里面的空格
  if(i)//if(a)代表i不等于0时满足if条件,等价于if(i!=0)
  printf ("%c",a+i);
  
  printf ("\n");
 }
 for(i = n-1; i >0 ; i--)
 {
  for (j = 0; j < n-i; j++)
  printf(" ");
  
  printf("%c",a+i-1);
  for (j=0;j<2*i-3;j++)
  printf(" ");
  
  if (i-1!=0)
  printf ("%c",a+i-1);
  
  printf ("\n");
 }
 return 0;
 }
(2)设计思路
第一步:将菱形拆成上下两部分
第二步:上半部分用三个for循环,每次字符加一
第三步:下半部分一样,只是每次字符减一
第四步:输出图形
(3)本题调试过程碰到问题及解决办法
格式错误了一次,空格问题
(4)运行结果截图
技术分享图片
题目3 输出三角形字符阵列
(1)实验代码
#include <stdio.h>
int main()
{
    int n, i, j,count = 0;
    scanf("%d", &n);
   
    for (i = n; i > 0; i--) //输出有多少行
    {
        for (j = 0; j < i; j++) //每行有多少个字符
       {
            printf("%c ", ‘A‘ + count);
            count++;//每循环一次加一,用于字母的增加
        }
        printf("\n");
    }
    return 0;
}
(2)设计思路
第一步:定义输入的变量
第二步:两个for循环
第三步:字符增加
第四步:输出图形
(3)本题调试过程碰到问题及解决办法
没什么问题
(4)运行结果截图
技术分享图片
题目4 阅览室
(1)实验代码
#include<stdio.h>
#include<math.h>
#include<string.h>
int main ()
{
 int n, x, h, m;
 int sum=0,s=0;
 int  b[1001];
 char a;
 
 scanf("%d", &n);
 memset(b,-1,sizeof(b));
 
 while(n--)
 {
  while(1)
  {
   scanf("%d %c %d:%d", &x, &a, &h, &m);
   
   if(x==0)
   {
    memset(b,-1,sizeof(b));
    
    if(s!=0)
    printf("%d %.0f\n",s,(double)sum/s);
    
    else
    printf("0 0\n");
    
    sum = s = 0;//此处将sum和s清0
    break;
   }
   else
   {
    if(a==‘S‘)
    b[x] = h * 60 + m;
    
    else if(a==‘E‘&&b[x]!=-1)
    {
     sum += h * 60 +m -b[x];
     s++;
     b[x]=-1;
    }
    
   }
  }
 }
 return 0;
}
(2)设计思路
第一步:定义函数
第二步:定义整型变量和字符变量,加数组,用memset函数将数组b[x]全变为-1
第三步:输入要几天的借书记录,用与for循环的次数
第四步:输入,用if判断是否为0,为0输出0 0,不为0继续判断为S还是E
第五步:将输入为S的时间变为分钟,当下一次的b[x]相等且b[x]不为-1时算出时间
第六步:输出结果
(3)本题调试过程碰到问题及解决办法
sum和s没有清0,结果错误
(4)运行结果截图
技术分享图片

第十二周编程总结--助教

标签:等于   判断   定义函数   for循环   思路   memset   相等   har   bubuko   

原文地址:https://www.cnblogs.com/zw431387/p/10037633.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!