大一时写的,很菜
实验目的:
将实验题第六题与第七题接起来,形成动态程序。
实例:实验题第六题第七题
实验思路:
第七题已经写出,重点是第六题动态化,运用switch函数分成多个情况
遇到的问题:
最终输出结果含有乱码
解决方法:
上述结果出现的原因是不能确定输出数组的长度,所以将输出条件改为不等于0(但是改完之后电脑端还有几率出现问题,但手机端没有问题)。
吸取的经验与教训:
利用好switch函数可以处理很多问题,利用好for函数的循环条件改变输出
参考代码:
#include<stdio.h>
#include<string.h>
int main()
{char a[80];
int b[80],i,j,l,t,num=1;
printf("请输入长度不小于10的小写字母字符串,且最多使用10个不同的小写字母\n");
scanf("%s",a);
l=strlen(a);
int s=1;
b[0]=0;
printf("%c转化为%d\n",a[0],b[0]);
for(i=1;i<l;i++)
for(j=0;j<i;j++)
{
if(a[i]==a[j])
{
b[i]=b[j];
break;
}
if(a[i]!=a[j])
if(j>=i-1)
{
b[i]=s;
printf("%c转化为%d\n",a[i],s);
s++;
break;
}
}
printf("原数组为%s\n",a);
printf("转换后为");
for(i=0;i<l;i++)
printf("%d ",b[i]);
printf("\n");
for(i=0;i<l;i++)
{for(j=0;j<i;j++)
{if(b[i]==b[j])
break;
else
if(j>=i-1)
{
num++;
break;}
}
}
printf("num=%d\n",num);
int A[80],B[80],C[80],D[80],E[80],F[80],G[80],H[80],I[80],J[80];
int k,n,m,o,p,q,r;
j=k=n=m=o=p=q=r=s=t=0;
for(i=0;i<l;i++)
{switch(b[i])
{
case 0:A[j]=i;j++;break;
case 1:B[k]=i;k++;break;
case 2:C[n]=i;n++;break;
case 3:D[m]=i;m++;break;
case 4:E[o]=i;o++;break;
case 5:F[p]=i;p++;break;
case 6:G[q]=i;q++;break;
case 7:H[r]=i;r++;break;
case 8:I[s]=i;s++;break;
case 9:J[t]=i;t++;break;
default:printf("错误,请看清要求输入!\n");
}
}
switch(num)
{
case 1:
printf("%d",A[0]);//由于A[0]==0,而后边有条件限制,所以先输出0,防止A[0]无法输出
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");break;
case 2:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");break;
case 3:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");break;
case 4:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");break;
case 5:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");break;
case 6:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");
for(i=0;F[i]!=0;i++)
printf("%d ",F[i]);
printf("\n");break;
case 7:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");
for(i=0;F[i]!=0;i++)
printf("%d ",F[i]);
printf("\n");
for(i=0;G[i]!=0;i++)
printf("%d ",G[i]);
printf("\n");break;
case 8:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");
for(i=0;F[i]!=0;i++)
printf("%d ",F[i]);
printf("\n");
for(i=0;G[i]!=0;i++)
printf("%d ",G[i]);
printf("\n");
for(i=0;H[i]!=0;i++)
printf("%d ",H[i]);
printf("\n");break;
case 9:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");
for(i=0;F[i]!=0;i++)
printf("%d ",F[i]);
printf("\n");
for(i=0;G[i]!=0;i++)
printf("%d ",G[i]);
printf("\n");
for(i=0;H[i]!=0;i++)
printf("%d ",H[i]);
printf("\n");
for(i=0;I[i]!=0;i++)
printf("%d ",I[i]);
printf("\n");break;
case 10:
printf("%d",A[0]);
for(i=0;A[i]!=0;i++)
printf("%d ",A[i]);
printf("\n");
for(i=0;B[i]!=0;i++)
printf("%d ",B[i]);
printf("\n");
for(i=0;C[i]!=0;i++)
printf("%d ",C[i]);
printf("\n");
for(i=0;D[i]!=0;i++)
printf("%d ",D[i]);
printf("\n");
for(i=0;E[i]!=0;i++)
printf("%d ",E[i]);
printf("\n");
for(i=0;F[i]!=0;i++)
printf("%d ",F[i]);
printf("\n");
for(i=0;G[i]!=0;i++)
printf("%d ",G[i]);
printf("\n");
for(i=0;H[i]!=0;i++)
printf("%d ",H[i]);
printf("\n");
for(i=0;I[i]!=0;i++)
printf("%d ",I[i]);
printf("\n");
for(i=0;J[i]!=0;i++)
printf("%d ",J[i]);
printf("\n");break;
default:printf("错误,请看清要求输入!\n");
}
}