#include <stdio.h>
#include <string.h>
int main(){
int a,j,i,c;
char x[100];
while(gets(x))
{
j=strlen(x);
for(i=0;i<j;i++){
if(x[i]=='A')
{
a=i;
break;
}//找到第一个A
}
/*for(i=0;i<j;i++)
if(x[i]=='A')
{
c=i;)*/
//这里错啦,这段循环应该从a开始循环到j找到第二个A
for(i = a + 1; i < j; i++){
if(x[i]=='A'){
c=i;
break;
}
}//找到第2个A
}
int t = c - a;
printf("%d",t);
return 0;
}
按照你的想法是第一次找到A把下标存到a,
而第二次找A的方法错啦,你应该从a开始找第二个A。
#include <stdio.h>
int main()
{
int stu[30];
int i;
int cnt1 = 0, cnt2 = 0, cnt3 = 0, cnt4 = 0, cnt5 = 0;
printf("请输入30位学生的成绩:\n");
for (i = 0; i < 30; i++)
{
scanf("%d", &stu[i]);
if (stu[i] >= 90)
count1++;
else if (stu[i] >= 80)
count2++;
else if (stu[i] >= 70)
count3++;
else if (stu[i] >= 60)
count4++;
else
count5++;
}
printf("90及90分以上有%d人\n", cnt1);
printf("80~89分有%d人\n", cnt2);
printf("70~79分有%d人\n", cnt3);
printf("60~69分有%d人\n", cnt4);
printf("60分以下有%d人\n", cnt5);
return 0;
}
这个方法比较简单,还可以用switch case 将分数/10分成区间来做