C语言实验8

这篇博客记录了将实验题第六题与第七题整合成动态程序的过程,主要问题是输出结果可能出现乱码,解决办法是调整输出条件。通过使用switch函数和for循环实现了动态转换,并从中学到利用这些结构解决问题的方法。代码中创建了多个数组来存储不同情况,并根据变量num的值进行不同长度的数组输出。
摘要由CSDN通过智能技术生成

大一时写的,很菜

实验目的:

将实验题第六题与第七题接起来,形成动态程序。

实例:实验题第六题第七题

实验思路:

第七题已经写出,重点是第六题动态化,运用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"); 	
 }
  }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值