您的位置:首页 > 编程语言 > C语言/C++

C语言第九次作业练习

2017-04-29 23:54 417 查看
以下程序教材基于 谭浩强C程序设计(第四版)

第1题 教材P.218习题4。

# include<stdio.h>

int array[3][3];

int main(void)
{
void convert(int array[3][3]);
int i,j;
printf("请输入3*3矩阵:\n");
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
printf("a[%d][%d]=",i,j);
scanf("%d",&array[i][j]);
}
printf("\n");
printf("您输入的矩阵为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%-3d",array[i][j]);
printf("\n");
}
printf("\n");
convert(array);
printf("该矩阵的转置为:\n");
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
printf("%-3d",array[i][j]);
printf("\n");
}
printf("\n");
return 0;
}

void convert(int array[3][3])
{
int i,j,t;
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{
t=array[i][j];
array[i][j]=array[j][i];
array[j][i]=t;
}
}


第2题 教材P.218习题5。

# include<stdio.h>
# include<string.h>

int main(void)
{
void fanxu(char str[]);
char str[100];
printf("请输入一个字符串:\n");
scanf("%s",str);
fanxu(str);
printf("输出反序字符串:\n");
printf("%s",str);
printf("\n");
return 0;
}

void fanxu(char str[])
{
char x;
int i,j;
j=strlen(str);
for(i=0,j;i<(strlen(str)/2);i++,j--)
{
x=str[i];
str[i]=str[j-1];
str[j-1]=x;
}
}


第3题 教材P.218习题6。

# include<stdio.h>

void link(char a[],char b[])
{
int i=0,j=0;
while(a[i++]!='\0');
i--;
while(b[j]!='\0')
{
a[i++]=b[j++];
}
a[i]='\0';
}

int main(void)
{
char a[100],b[100];

printf("请输入第一个字符串:\n");
gets(a);
printf("请输入第二个字符串:\n");
gets(b);
link(a,b);
printf("连接后的字符串为:\n");
puts(a);

return 0;
}


第4题 教材P.218习题9。

# include<stdio.h>

int zimu,shuzi,space,others;

void tongji(char str[])
{
int i;
for(i=0;str[i]!='\0';i++)
{
if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z')
zimu++;
else if(str[i]>='0'&&str[i]<='9')
shuzi++;
else if(str[i]==' ')
space++;
else
others++;
}
}

int main(void)
{
char a[100];

printf("请输入字符串:\n");
gets(a);
zimu=shuzi=space=others=0;
tongji(a);
printf("字母:%d\n数字:%d\n空格:%d\n其他字符:%d\n",zimu,shuzi,space,others);

return 0;
}


第5题 教材P.218习题11。规定输入的10个字符以字符数组名作为函数形参的形式传递给排序函数。

# include<stdio.h>

char str[10];

void paixu(char str[])
{
int i,j;
char t;
for(j=1;j<10;j++)
for(i=0;(i<10-j)&&(str[i]!='\0');i++)
if(str[i]>str[i+1])
{
t=str[i];
str[i]=str[i+1];
str[i+1]=t;
}
}

int main(void)
{
int x;

printf("请输入10个字符:\n");
scanf("%s",str);
paixu(str);
printf("字符由小到大排序为:\n");
for(x=0;x<10;x++)
printf("%c",str[x]);
printf("\n");

return 0;
}


第6题 编写函数sort,用选择法对输入的10个整数按有小到大顺序排列。

# include<stdio.h>

char str[10];

void sort(char str[])
{
int i,j,k=0,t;
for(i=0;i<9;i++)
{
k=i;
for(j=i+1;j<10;j++)
if(str[k]>str[j])
{
k=j;
}
if(k!=i)
{
t=str[k];
str[k]=str[i];
str[i]=t;
}
}
}

int main(void)
{
int i;

printf("请输入10个整数:(中间不需要隔开):\n");
scanf("%s",str);
sort(str);
printf("升序排列为:\n");
for(i=0;i<10;i++)
printf("%c",str[i]);
printf("\n");

return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: