1、输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#include <stdio.h>
void main(){
char ch; ///定义变量记录每次输入的字符
int letters=0,space=0,number=0,other=0;
while((ch=getchar())!='\n'){ //当输入回车结束循环
if(ch>='a'&&ch<='z'||ch>'A'&&ch<'Z'){
letters++;
}else if(ch==' '){
space++;
}else if(ch>='0'&&ch<='9'){
number++;
}else{
other++;
}
}
printf("字母:%d个\n空格:%d个\n数字:%d个\n其他:%d个\n",letters,space,number,other);
}
2、求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
#include <stdio.h>
void main(){
double sum=0;//记录结果
for(int x=1;x<=100;x++){
if(x%2==0){
sum-=(1.0/x);
}else{
sum+=(1.0/x);
}
}
printf("%f\n",sum);
}
3、矩阵转置:将一个m行n列矩阵(即m×n矩阵)的每一行转置成另一个n×m矩阵的相应列
例如:将2*3的矩阵转置后输出:
即将 1 2 3 转置为 1 4
### 4 5 6 ##### 2 5
############# 3 6
#include<stdio.h>
main()
{
int a[100][100];//定义数组范围
int i,j,x,y;
printf("输入数组行数(row<100)和列数(columns<100):\n");
scanf("%d\n",&x);
scanf("%d",&y);
printf("数组转置前:\n");
for(i=0;i<x;i++){
for(j=0;j<y;j++){
scanf("%d",&a[i][j]);//输入数组
}
}
printf("数组转置后:\n");
for(i=0;i<y;i++){
for(j=0;j<x;j++){
printf("%d ",a[j][i]);//数组转置
}
printf("\n");
}
}