实验6利用数组处理批量数据
实验6 利用数组处理批量数据
班级学号姓名
一、实验目的
① 掌握一维数组和二维数组的定义、赋值和输入输出的方法;
② 掌握字符数组和字符串函数的使用;
③ 掌握与数组有关的算法(特别是排序算法)。
二、实验内容
编写以下程序并调试。
1、编写C程序:分别用①选择法和②冒泡法对10个整数排序。(选择法可以参考邮件附件:第六章 数组,冒泡法参考课本P147页)
#include
#include
void main( )
{ int i,j,t,a[10];
printf("input 10 nubers:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<9;j++)
for(i=0;i<9-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers :\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
}
2、编写C程序:将一个数组中的值逆序重新排放。
#include
#include
void main( )
{ int i,a[10];
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=9;i>=0;i--)
printf("%5d",a[i]);
printf("\n");
}
3、有一篇文章共有3行文字每行有个80字符要求分别统计出其中英文大写字母、小写字母、空格以及其它字符的个数#include
int main()
{
int a=0,b=0,e=0,d=0,i,j;
char t[3][80];
for (i=0;i<3;i++)
{
printf("请输入每一行的文字 %d:\n",i+1);
gets(t[i]);
for (j=0;j<80 && t[i][j]!='\0';j++)
{
if(t[i][j]>='a'&&t[i][j]<='z'||t[i][j]>='A'&&t[i][j]<='Z')
a=a++;
else if(t[i][j]==' ')
b=b++;
else if(t[i][j]>='0'&&t[i][j]<='9')
e=e++;
else d=d++;
}
}
printf("英文字母个数:%d\n空格个数:%d\n数字个数:%d\n其他个数:%d\n",a,b,e,d);
return 0;
}
* * * * *
* * * * *
* * * * *
* * * * *
* * * * *
#include
int main()
{
char d[][9]={{'*','*','*','*','*'},{' ','*','*','*','*','*'},{' ',' ','*','*','*','*','*'},
{' ',' ',' ','*','*','*','*','*'},{' ',' ',' ',' ','*','*','*','*','*'}};
int i,j;
for(i=0;i<5;i++)
{
for(j=0;j<9;j++)
printf("%c",d[i][j]);
printf("\n");
}
return 0;
}
5、有一行电文译文下面规律译成密码:
A->Z a->z
B->Y b->y
C->X c->x
…
即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变,要求编程序将密码回原文,并打印出密码和原文。
#include
int main()
{
int n,j;
char a[100],b[100];
printf("请输入电文密码:");
gets(a);
printf("\n电文密码:%s",a);
for (j=0;j<100 && a[j]!='\0';j++)
{
if ((a[j]>='A') && (a[j]<='Z'))
b[j]=155-a[j];
else if ((a[j]>='a') && (a[j]<='z'))
b[j]=219-a[j];
else
b[j]=a[j];
}
n=j;
printf("\n原文:");
for (j=0;j
put