今日夜猫:今日夜猫尚未产生,快去抢签吧!
.广播: ------------
论坛.新帖.热帖.精帖.发帖
返回 发贴 设置 管理
查看贴子

适合菜鸟——数组应用程序设计

2014/7/4 10:24:00  (1607)    C4论坛  
数组应用程序设计


1、从键盘输入11个数存入一维数组中,先输出下标为奇数的元素,再输出下标为偶数的元素。
解:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为0,当i<=10时,循环执行第③步。
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为1,当i<=9时,循环执行第⑤步。
⑤输出数组元素a[i]的值,并令变量i的值加2。
⑥令变量i的初值为0,当i<=10时,循环执行第⑦步。
⑦输出数组元素a[i]的值,并令变量i的值加2。
⑵源程序:
main()
{float a[11];
int i;
for(i=0;i<=10;i++)
scanf(“%f“,&a[i]);
for(i=1;i<=9;i+=2) /*输出下标为奇数的元素*/
printf(“%f,“,a[i]);
for(i=0;i<=10;i+=2) /*输出下标为偶数的元素*/
printf(“%f,“,a[i]);
printf(“\n“);
}
注意:
①对一批一维数组元素进行输入、输出或其它处理时,通常要用单重循环控制数组元素下标的变化。
2、从键盘输入11个数存入一维数组中,将下标为奇数的元素值取倒数后重新存入该数组中,并输出所有元素。
解:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为0,当i<=10时,循环执行第③步。
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为1,当i<=9时,循环执行第⑤步。
⑤将数组元素a[i]的值取倒数之后重新存入a[i]中,并令变量i的值加2。
⑥令变量i的初值为0,当i<=10时,循环执行第⑦步。
⑦输出数组元素a[i]的值,并令变量i的值加1。
⑵源程序:
main()
{float a[11];
int i;
for(i=0;i<=10;i++)
scanf(“%f“,&a[i]);
for(i=1;i<=9;i+=2)
a[i]=1/a[i]; /*因a[i]为float型,故不必写作1.0/a[i]*/
for(i=0;i<=10;i++)
printf(“%f,“,a[i]);
printf(“\n“);
}
注意:
①因为部分数组元素的值要取倒数,结果有可能是实数,故数组a应定义为实型。
②因为a[i]为float型,故1/a[i]不必写作1.0/a[i]。
3、从键盘输入11个数存入一维数组中,将左半部分的元素值取倒数后重新存入该数组中,并输出所有元素。
解:
解法1:
⑴编程思路:
①首先定义变量和数组,数组a用于存放输入的11个数,i为循环变量。
②令变量i的初值为0,当i<=10时,循环执行第③步。
③输入一个数存入数组元素a[i]中,并令变量i的值加1。
④令变量i的初值为0,当i<=4时,循环执行第⑤步。
⑤将数组元素a[i]的值取倒数之后重新存入a[i]中,并令变量i的值加1。
⑥令变量i的初值为0,当i<=10时,循环执行第⑦步。
⑦输出数组元素a[i]的值,并令变量i的值加1。
⑵源程序:
main()
{float a[11];
int i;
for(i=0;i<11;i++)
scanf(“%f“,&a[i]);
for(i=0;i<5;i++) /*左半部分数组元素的下标为0到4*/
a[i]=1/a[i];
for(i=0;i<11;i++)
printf(“%f,“,a[i]);
printf(“\n“);
}

解法2:

#define N 11
main()
{float a[N];
int i;
for(i=0;i<N;i++)
scanf(“%f“,&a[i]);
for(i=0;i<N/2;i++) /*左半部分下标为0到N/2-1*/
a[i]=1/a[i];
for(i=0;i<N;i++)
printf(“%f,“,a[i]);
printf(“\n“);
}

4、从键盘输入11个数存入一维数组中,将右半部分的元素值取相反数后重新存入该数组中,并输出所有元素。

解法1:

main()
{float a[11];
int i;
for(i=0;i<11;i++)
scanf(“%f“,&a[i]);
for(i=6;i<11;i++) /*右半部分下标为6到10*/
a[i]=-a[i];
for(i=0;i<11;i++)
printf(“%f,“,a[i]);
printf(“\n“);
}

解法2:

#define N 11
main()
{float a[N];
int i;
for(i=0;i<N;i++)
scanf(“%f“,&a[i]);
for(i=(N+1)/2;i<=N-1;i++) /*右半部分下标为(N+1)/2到N-1*/
a[i]=-a[i];
for(i=0;i<N;i++)
printf(“%f,“,a[i]);
printf(“\n“);
}

5、求出斐波那契数列的前20项并输出。

main()
{long f[20]={1,1};
int i;
for(i=2;i<=19;i++)
f[i]=f[i-2]+f[i-1];
for(i=0;i<=19;i++)
printf(“%12ld“,f[i]);
}

6、从键盘输入10个数,求出其中的最大数并输出。

main()
{int a[10],max,i;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
max=a[0];
for(i=1;i<=9;i++)
 {if(a[i]>max)
max=a[i];
}
printf(“max=%d\n“,max);
}

7、从键盘输入10个数,求出其中的最大数和最小数并输出。

解法1:

main()
{int a[10],max,min,i;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
max=a[0];
for(i=1;i<=9;i++)
 {if(a[i]>max)
max=a[i];
}
min=a[0];
for(i=1;i<=9;i++)
 {if(a[i]<min)
min=a[i];
}
printf(“max=%d\n“,max);
printf(“min=%d\n“,min);
}

解法2:

main()
{int a[10],max,min,i;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
max=min=a[0];
for(i=1;i<=9;i++)
 {if(a[i]>max)
max=a[i];
if(a[i]<min) /*或else if(a[i]<min)*/
min=a[i];
}
printf(“max=%d,min=%d\n“,max,min);
}

8、从键盘输入11个数存入一维数组a中,再将其中的值按相反的顺序存入数组b中并输出。

解法1:

main()
{int a[11],b[11],i;
for(i=0;i<11;i++)
scanf(“%d“,&a[i]);
for(i=0;i<11; i++)
{b[i]=a[10-i];
printf(“%d,“,b[i]);
}
printf(“\n“);
}

解法2:

#define N 11
main()
{int a[N],b[N],i;
for(i=0;i<N;i++)
scanf(“%d“,&a[i]);
for(i=0;i<N;i++)
{b[i]=a[N-1-i];
printf(“%d,“,b[i]);
}
printf(“\n“);
}

8A、从键盘输入11个数存入一维数组中,将其中的值前后倒置后重新存入该数组中并输出。

解法1:

main()
{int a[11],i,j,t;
for(i=0;i<=10;i++) /*用循环输入11个元素*/
scanf(“%d“,&a[i]);
i=0;j=10;
while(i<j)
{t=a[i];a[i]=a[j];a[j]=t; /*交换对应元素的值*/
i++;j--;
}
for(i=0;i<=10;i++) /*用循环输出11个元素*/
printf(“%d,“,a[i]);
printf(“\n“);
}

解法2:

main()
{ int a[11],i,j,t;
for(i=0;i<=10;i++) /*用循环输入11个元素*/
scanf(“%d“,&a[i]);
for(i=0,j=10; i<j; i++,j--)
{t=a[i];
a[i]=a[j];
a[j]=t; /*交换对应元素的值*/
}
for(i=0;i<=10;i++) /*用循环输出11个元素*/
printf(“%d,“,a[i]);
printf(“\n“);
}

解法3:

#define N 11
main()
{int a[N],i,t;
for(i=0;i<N;i++) /*用循环输入11个元素*/
scanf(“%d“,&a[i]);
for(i=0;i<N/2; i++) /*N为奇数偶数均可*/
{t=a[i];
a[i]=a[N-1-i];
a[N-1-i]=t; /*交换对应元素的值*/
}
for(i=0;i<N;i++) /*用循环输出11个元素*/
printf(“%d,“,a[i]);
printf(“\n“);
}

9、从键盘输入11个数存入一维数组中,将该数组中左半部分与右半部分的值平移交换后重新存入该数组中并输出。

解法1:

main()
{int a[11],i,t;
for(i=0;i<11;i++) /*用循环输入11个元素*/
scanf(“%d“,&a[i]);
for(i=0;i<=4; i++)
{t=a[i];
a[i]=a[i+6];
a[i+6]=t; /*交换对应元素的值*/
}
for(i=0;i<11;i++) /*用循环输出11个元素*/
printf(“%d,“,a[i]);
printf(“\n“);
}

解法2:

#define N 11
main()
{int a[N],i,t;
for(i=0;i<N;i++) /*用循环输入11个元素*/
scanf(“%d“,&a[i]);
for(i=0;i<=N/2-1; i++) /*N为奇数偶数均可*/
{t=a[i];
a[i]=a[i+(N+1)/2];
a[i+(N+1)/2]=t; /*交换对应元素的值*/
}
for(i=0;i<N;i++) /*用循环输出11个元素*/
printf(“%d,“,a[i]);
printf(“\n“);
}

10、从键盘输入100个数存入一维数组中,求其和与平均值并输出。

#define N 100
main()
{float a[N],s,p;
int i;
s=0;
for(i=0;i<N;i++)
{scanf(“%f“,&a[i]);
s=s+a[i];
}
p=s/N;
printf(“s=%f,p=%f\n“,s,p);
}

11、从键盘输入一批正数存入一维数组中(以-1为结束标记),求其和与平均值并输出。

解法1:

#define N 200
main()
{float a[N],s,p;
int n=0;
s=0;
while(1)
{scanf(“%f“,&a[n]);
if(a[n]==-1) break;
s=s+a[n];
n++;
}
p=s/n;
printf(“s=%f,p=%f\n“,s,p);
}

解法2:

#define N 200
main()
{float a[N],s,p;
int n=0;
s=0;
scanf(“%f“,&a[n]);
while(a[n]!=-1)
{s=s+a[n];
n++;
scanf(“%f“,&a[n]);
}
p=s/n;
printf(“s=%f,p=%f\n“,s,p);
}

12、从键盘输入10个数,用选择法按降序排序并输出。

解法1:

main()
{int a[10],i,j,t;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
for(i=0;i<=8;i++)
{for(j=i+1;j<=9;j++)
{if(a[i]<a[j])
{t=a[i];a[i]=a[j];a[j]=t;}
}
}
for(i=0;i<=9;i++)
printf(“%d,“,a[i]);
printf(“\n“);
}

解法2:

main()
{int a[10],t,i,j,max,k;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
for(i=0;i<=8;i++)
{max=a[i];k=i; /*max保存本轮最大数,k保存其下标*/
for(j=i+1;j<=9;j++)
{if(a[j]>max)
{max=a[j];k=j;}
}
t=a[i];a[i]=a[k];a[k]=t; /*将本轮最大数与a[i]互换*/
}
for(i=0;i<=9;i++)
printf(“%d,“,a[i]);
printf(“\n“);
} 

解法3:改进的选择法

main()
{int a[10],t,i,j,max;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
for(i=0;i<=8;i++)
{max=i; /*max保存本轮最大数的下标*/
for(j=i+1;j<=9;j++)
{if(a[j]>a[max])
max=j;
}
t=a[i];a[i]=a[max];a[max]=t; /*将本轮最大数与a[i]互换*/
}
for(i=0;i<=9;i++)
printf(“%d,“,a[i]);
printf(“\n“);
}

解法4:改进的选择法

main()
{int a[10],t,i,j,max;
for(i=0;i<=9;i++)
scanf(“%d“,&a[i]);
for(i=0;i<=8;i++)
{max=i; /*max保存本轮最大数的下标*/
for(j=i+1;j<=9;j++)
{if(a[j]>a[max])
max=j;
}
if(max!=i) /*若本轮最大数不是a[i]*/
{t=a[i];a[i]=a[max];a[max]=t;} /*将本轮最大数与a[i]互换*/
}
for(i=0;i<=9;i++)
printf(“%d,“,a[i]);
printf(“\n“);
}

12A、从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。

main()
{int p[10],i,j,t;
* a[10][30],m[30];
for(i=0;i<=9;i++)
gets(a[i]); /*输入姓名存入数组a的第i行*/
for(i=0;i<=9;i++)
scanf(“%d“,&p[i]); /*输入成绩*/
}
for(i=0;i<=8;i++)
{for(j=i+1;j<=9;j++)
{if(p[i]<p[j])
{t=p[i];p[i]=p[j];p[j]=t; /*交换成绩*/
strcpy(m,a[i]);strcpy(a[i],a[j]);strcpy(a[j],m); /*交换姓名*/
}
}
}
for(i=0;i<=9;i++)
{printf(“%s,“,a[i]); /*输出姓名*/
printf(“%d\n“,p[i]); /*输出成绩*/
}
}

13、从键盘输入一组数据按行优先次序存入数组a[3][4]中,再按列优先次序输出。

main()
{int a[3][4],i,j;
for(i=0;i<=2;i++) /*行优先次序,外循环控制行号*/
for(j=0;j<=3;j++) /*内循环控制列号*/
scanf(“%d“,&a[i][j]);
for(j=0;j<=3;j++) /*列优先次序,外循环控制列号*/
{for(i=0;i<=2;i++) /*内循环控制行号*/
{printf(“%6d“,a[i][j]);}
printf(“\n“);
}
}

14、从键盘输入一组数据按行优先次序存入数组a[3][4]中,再按相反的次序输出。

main()
{int a[3][4],i,j;
for(i=0;i<=2;i++) /*外循环控制行号*/
for(j=0;j<=3;j++) /*内循环控制列号*/
scanf(“%d“,&a[i][j]);
for(i=2;i>=0;i--)
{for(j=3;j>=0;j--)
{printf(“%6d“,a[i][j]);}
printf(“\n“);
}
}

15、从键盘输入一组数据存入数组a[3][3]中,再将主对角线及其下方元素值取倒数后重新存入该数组中,并输出所有元素。

main()
{float a[3][3];
int i,j;
for(i=0;i<=2;i++) /*外循环控制行号*/
for(j=0;j<=2;j++) /*内循环控制列号*/
scanf(“%f“,&a[i][j]);
for(i=0;i<=2;i++)
{for(j=0;j<=i;j++)
{a[i][j]=1/a[i][j];} /*因a[i][j]为float型,故不必写作1.0/a[i][j]*/
}
for(i=0;i<=2;i++)
{for(j=0;j<=2;j++)
{printf(“%f,“,a[i][j]);}
printf(“\n“);
}
}

15A、已知一个二维数组a[2][3]={{1,2,3},{4,5,6}},将其转置后存入另一个二维数组b[3][2]中。

main()
{int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
for(i=0;i<3;i++) /*按行给数组b的元素赋值*/
{for(j=0;j<2;j++) /*并分行显示数组b内容*/
{b[i][j]=a[j][i];
printf(“%6d“,b[i][j]);
}
printf(“\n“); /*注意该语句的位置*/
}
}

16A、已知一个3×4的矩阵a[3][4]={{1,2,3,4},{9,8,7,6},{-9,10,-5,2}},找出其中最大的元素值并输出。

main()
{int i,j,max;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];}
printf(“max=%d\n“,max);
}

16B、已知一个3×4的矩阵a[3][4]={{1,2,3,4},{9,8,7,6},{-9,10,-5,2}},找出其中最大的元素值及其行列号并输出。

main()
{int i,j,max,row,colum;
int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}};
max=a[0][0];
row=0;
colum=0;
for(i=0;i<=2;i++)
for(j=0;j<=3;j++)
if(a[i][j]>max)
{max=a[i][j];
row=i;
colum=j;
}
printf(“max=%d,row=%d,colum=%d\n“,max,row,colum);
}

16、从键盘输入一组数据存入数组a[3][3]中,求其主对角线元素之和。

main()
{float a[3][3],s=0;
int i,j;
for(i=0;i<=2;i++) /*外循环控制行号*/
for(j=0;j<=2;j++) /*内循环控制列号*/
scanf(“%f“,&a[i][j]);
for(i=0;i<=2;i++)
s=s+a[i][i]; /*主对角线元素行列号相同*/
printf(“s=%f\n“,s);
}

17、从键盘输入一组数据存入数组a[3][3]中,求其主对角线下方元素之和。

main()
{float a[3][3],s=0;
int i,j;
for(i=0;i<=2;i++) /*外循环控制行号*/
for(j=0;j<=2;j++) /*内循环控制列号*/
scanf(“%f“,&a[i][j]);
for(i=0;i<=2;i++)
{for(j=0;j<i;j++)
s=s+a[i][j];
}
printf(“s=%f\n“,s);
}

18、从键盘输入一组数据存入数组a[4][4]中,求其四周元素之和。

main()
{float a[4][4],s=0;
int i,j;
for(i=0;i<=3;i++) /*外循环控制行号*/
for(j=0;j<=3;j++) /*内循环控制列号*/
scanf(“%f“,&a[i][j]);
for(i=0;i<=3;i++)
{for(j=0;j<=3;j++)
{if(i==0||i==3||j==0||j==3) /*行列号等于0或者等于3*/
s=s+a[i][j];
}
}
printf(“s=%f\n“,s);
}

19、已知两个矩阵a[3][2]={1,3,5,2,4,6},b[3][2]={9,8,7,3,2,1},求其和矩阵c[3][2]并输出。

main()
{int a[3][2]={1,3,5,2,4,6},b[3][2]={9,8,7,3,2,1},c[3][2];
int i,j;
for(i=0;i<3;i++)
{for(j=0;j<2;j++)
{c[i][j]=a[i][j]+b[i][j];
printf(“%6d“,c[i][j]);
}
printf(“\n“);
}
}

20、已知两个矩阵a[3][2]={1,3,5,2,4,6},b[2][4]={9,8,7,3,2,1,5,6},求其积矩阵c[3][4]并输出。

main()
{int a[3][2]={1,3,5,2,4,6},b[2][4]={9,8,7,3,2,1,5,6},c[3][2];
int i,j,k;
for(i=0;i<3;i++)
{for(j=0;j<4;j++)
{c[i][j]=0;
for(k=0;k<2;k++)
{c[i][j]=c[i][j]+a[i][k]*b[k][j];}
printf(“%6d“,c[i][j]);
}
printf(“\n“);
}
}

21、从键盘输入6个学生5门课程的成绩,求每个人的总分与平均分。

main()
{float g[6][5],s[6],a[6];
int i,j;
for(i=0;i<6;i++)
{s[i]=0; /*s[i]是第i个人的总分*/
for(j=0;j<5;j++)
{scanf(“%f“,&g[i][j]); /*g[i][j]是第i个人第j门课的成绩*/
s[i]=s[i]+g[i][j];
}
a[i]=s[i]/5; /*a[i]是第i个人的平均分*/
printf(“%f,%f\n“,s[i],a[i]);
}
}

22、从键盘输入6个学生5门课程的成绩,求每门课程的平均分。

main()
{float g[6][5],s[6],a[6];
int i,j;
for(i=0;i<6;i++)
{for(j=0;j<5;j++)
scanf(“%f“,&g[i][j]); /*g[i][j]是第i个人第j门课的成绩*/
}
for(j=0;j<5;j++) /*列优先次序,外循环控制列号,内循环控制行号*/
{s[j]=0; /*s[j]是第j门课的总分*/
for(i=0;i<6;i++)
{s[j]=s[j]+g[i][j];}
a[j]=s[j]/6; /*a[j]是第j门课的平均分*/
printf(“%f\n“,a[j]);
}
}

23、从键盘输入一个字符串存入数组a中,再将数组a的内容前后倒置后存入数组b中并输出。

#include <string.h>
main()
{* a[80],b[80];
int n,i;
gets(a);
n=strlen(a);
for(i=0;i<=n-1;i++)
b[i]=a[n-1-i];
b[n]=‘\0‘; /*或b[i]=‘\0‘;*/
puts(b);
}

24、从键盘输入一个字符串存入数组a中,再将a的内容前后倒置后重新存入数组a中并输出。

解法1:

#include <string.h>
main()
{* a[80],t;
int n,i,j;
gets(a);
n=strlen(a);
i=0;j=n-1;
while(i<j)
{t=a[i];a[i]=a[j];a[j]=t; /*交换对应元素的值*/
i++;j--;
}
puts(a);
}

解法2:

#include <string.h>
main()
{* a[80],t;
int n,i;
gets(a);
n=strlen(a);
for(i=0;i<n/2;i++)
{t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;} /*交换对应元素*/
puts(a);
}

25、从键盘输入10个字符串存入二维字符数组中,求出其中最大者并输出。

#include <string.h>
main()
{* a[10][80],max[80];
int i;
for(i=0;i<10;i++)
gets(a[i]); /*a[i]代表a的第i行*/
strcpy(max,a[0]);
for(i=1;i<10;i++)
{if(strcmp(a[i],max)>0)
strcpy(max,a[i]);
}
puts(max);
}

26、从键盘输入一个字符串存入字符数组中,求出该字符串的长度并输出(不能调用strlen函数)。

#include <string.h>
main()
{* a[80];
int n;
gets(a);
n=0;
while(a[i]!=‘\0‘)
n++;
printf(“n=%d\n“,n);
}

27、从键盘输入一个字符串存入数组a中,再将数组a的内容复制到数组b中并输出(不能调用strcpy函数)。

解法1:

#include <string.h>
main()
{* a[80],b[80];
int i,n;
gets(a);
n=strlen(a);
for(i=0;i<=n;i++) /*包括‘\0‘在内*/
b[i]=a[i];
puts(b);
}

解法2:

#include <string.h>
main()
{* a[80],b[80];
int i,n;
gets(a);
for(i=0;a[i]!=‘\0‘;i++)
b[i]=a[i]; /*未复制‘\0‘*/
a[i]=‘\0‘;
puts(b);
}

28、从键盘输入两个字符串分别存入字符数组a和b中,再将b中的字符串连接到a中字符串之后并输出(不能调用strcat函数)。

#include <string.h>
main()
{* a[80],b[30];
int i,n1,n2;
gets(a);
gets(b);
n1=strlen(a);
n2=strlen(b);
for(i=0;i<=n2;i++) /*包括‘\0‘在内*/
a[n1+i]=b[i];
puts(a);
} 

29、从键盘输入两个字符串分别存入字符数组a和b中,比较两个字符串的大小并输出结果(若a>b,则结果大于0;若a<b,则结果小于0;若a=b,则结果等于0。不能调用strcmp函数)。

#include <string.h>
main()
{* a[80],b[80];
int i,r;
gets(a);
gets(b);
i=0;
while(a[i]!=‘\0‘&&b[i]!=‘\0‘) /*若遇到‘\0‘,则停止比较*/
{if(a[i]==b[i])
i++; /*若对应字符相等,则继续比较下一个*/
else
break; /*若对应字符不相等,则停止比较*/
}
r=a[i]-b[i];
printf(“r=%d\n“,r);
}

30、从键盘输入的一行字符,统计其中单词的个数。假设单词之间以空格分隔。

#include <string.h>
main()
{* a[80];
int i,n,c=0;
gets(a);
n=strlen(a);
for(i=0;i<=n-1;i++)
{if(a[i]!=‘ ‘&&(a[i+1]==‘ ‘||a[i+1]==‘\0‘))
c++; /*第i个字符不是空格,第i+1个字符是空格或‘\0‘,表示一个单词结束*/
}
printf(“c=%d\n“,c);
}

31、从键盘输入一行字符,统计其中单词的个数。假设单词之间以标点或空格分隔。

#include <ctype.h>
#include <string.h>
main()
{* a[80];
int i,n,c=0;
gets(a);
n=strlen(a);
for(i=0;i<=n-1;i++)
{if(isalpha(a[i])&&!isalpha(a[i+1]))
c++; /*或if(isalpha(a[i])!=0&&isalpha(a[i+1])==0)*/
} /*第i个字符是字母,第i+1个字符不是字母,表示一个单词结束*/
printf(“c=%d\n“,c);
}

32、从键盘输入一行字符,按下列规则加密之后输出。

A→Z a→z
B→Y b→y
C→X c→x
......
Z→A z→a

#include <string.h>
main()
{* a[80];
int i,n;
gets(a);
n=strlen(a);
for(i=0;i<=n-1;i++)
{if(a[i]>=‘a‘&&a[i]<=‘z‘)
a[i]=‘z‘-(a[i]-‘a‘); /*z减去原字符与a的差值,就是新字符*/
else if(a[i]>=‘A‘&&a[i]<=‘Z‘)
a[i]=‘Z‘-(a[i]-‘A‘);
}
puts(a);
}

 

 

 

 
楼主信息
 潇儿(16142) OFFLINE
 E界诸侯 亲王 .
 普通会员 来自:交友
 .....更多...
[楼主]:博客 相册 贴子 回复
[操作]:管理 举报 下载 收藏
[分享]:空间 微博 家族 更多
[签名]:
赞 (16) 倒 (8)
发表回复


[板凳]

水之义(6526) OFFLINE 11-14 01:58
E界功臣.御史中丞.普通会员
存储器单元用寄存器中转交换
 

 回复 只看TA

[椅子]

泪点低(6526) OFFLINE 11-09 19:09
E界功臣.御史中丞.普通会员
SHOUJ手机党签个币!
 

 回复 只看TA

[沙发]

ヾ凉生っ(3850) OFFLINE 07-04 11:24
E界国公. 丞相.普通会员
晚上睡觉
 

 回复 只看TA

更多回贴(3) 楼主回复

【E友的最新回帖动态】
[软件]听听音阅1.8
[教程]『更新』悠米jra软件、游戏
[测试]悠米游戏铁血战将破解插件
[分享]破解悠米米付通付费提示的插件
悠米顶级破解技术

返回上级 返回首页
首页合作客服留言QQ群简版
E界,引领视界
mrpej.com @CopyRight