标签:temp 表情 3.2 amp tps bre [1] 计数 while
定义控制变量i,j,k,年份year,不同数字个数n,年份取代值digit,统计相同个数变量same;用sum=year+i;累加年份,用digit记录sum的值digit=sum;count=digit%10;a[j]=count;digit=digit/10,存放每个位的数字,对sum重新赋值same=0;将a[i]遍历数组,即嵌套循环for(k=0;k<4;k++)for(j=k+1;j<4;j++)如果(a[k]==a[j])则same++;
如果(same==1&&n==3)break;
如果((same==3||same==2)&&n==2)break;
如果(same==0&&n==4)break;
如果(same==6&&n==0)break;
输出i的值;
用循环for(j=3;j>=0;j--)依次逆序输出年份;
1.一开始没注意到循环条件的自相矛盾,写成for(i=0;i>=0;i++),导致怎么也进不了循环内,后来在同学和老师帮助下改正;
2.把digit=digit/10写成count=count/10;
3.后来提交PTA时,发现n=2时错误,自己怎么也弄不懂为什么错,因为答案输出和sample一样,在同学帮助下终于知道了自己少写了一种情况,即same=2时,刚好也有两个不同的情况,而自己只考虑了3个相同时2个不同的情况,这是考虑问题不周全引发的错误;
定义控制变量i,j,max存放最大值,,n为输入整数的个数,a[1000]存放整数,count2存放出现次数最多的数,count1统计统计每个整数出现的次数;
输入n,scanf("%d",&n);
循环输入整数存入数组a[1000],for(j=0;j<n;j++)scanf("%d",&a[j]);
令最大值为a[0],max=a[0];
for(i=0;i<n;i++) 令count1=0;
统计出现次数最多的数
for(j=0;j<n;j++)
如果(a[i]==a[j])则count1++;
如果(j==(n-1)&&count1>count2)则 count2=count1;max=a[i];
输出"%d %d",max,count2”;
1.一开始把统计次数的循环for(j=0;j<n;j++)写成for(j=i+1;j<n;j++),调试发现这样会使得统计数本身没有统计到,开始时以为干脆把每个数都从头到尾统计一遍就行,现在发现了一种更高效的做法,即写成for(j=i;j<n;j++),这样的话虽然不是每个数都会被完整统计一遍出现次数,只有那个数在出现第一次时才会完整统计个数,但依然可以得出出现次数最多的数
2.如果条件满足(j==(n-1)&&count1>count2),则 max=a[i];而不是max=a[j];a[i]才是拿来比较的那个数,a[j]是用来将数组遍历一遍的数;
定义time1[1001],time2[10]={0},time1存放初借书数间,time2存放不同天数借书的总时间,将time2的元素全归0;
定义count[10]={0},day,i=0,book=1,其中count统计不同天借阅总次数;
定义h和m,记录时间的时和分;定义ch;
输入day;
while(i<day)
输入("%d %c %d:%d",&book,&ch,&h,&m);
如果(ch==‘S‘&&book!=0)则time1[book]=h60+m;这是记录不同书号开始借的时间
如果(ch==‘E‘&&book!=0&&time1[book]!=0)则time2[i]=time2[i]+h60+m-time1[book]; count[i]++;当天借阅时间总和;
当book!=0时执行以上循环;
i++;
for(i=0;i<day;i++)
如果(count[i]==0)输出"%d %d\n",count[i],0;
否则输出"%d %0.f\n",count[i],time2[i]*1.0/count[i];
4.time2[i]=h60+m-time1[book]改为time2[i]=time2[i]+h60+m-time1[book],这样才能做到累加;
李琴的代码:
我的代码:
1.这题是7-4 简化的插入排序,我的代码主要是设置了两个数组,用数组a重新排列后给数组b赋值,而李琴的代码主要是插入排序法,我觉得她的代码比较简洁,但是不大容易理解,我的代码相对复杂,但可能更容易理解,但还是比较喜欢简洁的风格;
1.1 C中如何存储字符串?
存储方式和数组差不多,都是一个字符对应一个存储单元,最后一个一定是0;
1.5 16进制、二进制字符串如何转10进制?写伪代码?
if(s[i]>=‘A‘&&s[i]<=‘F‘)
n=s[i]-‘A‘+10;
else if(s[i]>=‘a‘&&s[i]<=‘f‘)
n=s[i]-‘a‘+10;
else n=s[i]-‘0‘;
temp=temp*16+n;
详细罗列不明白地方,包括课堂派错题、PTA错题。
3.期中考试小结
3.1 你认为为什么没考好?
3.2 罗列错题。
请在选择题、填空题、改错题、编程题分别举一题说明为什么错了,怎么改?
3.3 下半学期要怎么调整C的学习?
标签:temp 表情 3.2 amp tps bre [1] 计数 while
原文地址:http://www.cnblogs.com/guoruiqian/p/7956938.html