输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
注意:要考虑到空格的读取,scanf会忽略空格
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a[10000];
gets(a);
printf("输入的字符串为:\n");
printf("%s\n", a);
int length = strlen(a);
int Lnum=0, Knum=0, Snum=0, Qnum=0;
int i=0;
for(i=0; i<length; i++)
{
if((a[i]>='a' && a[i]<='z') || (a[i]>='A' && a[i]<='Z'))
Lnum++;
else if(a[i] == ' ')
Knum++;
else if(a[i]<='9' && a[i]>='0')
Snum++;
else
Qnum++;
}
printf("字母个数为:%d\n", Lnum);
printf("数字个数为:%d\n", Snum);
printf("空格个数为:%d\n", Knum);
printf("其他字符个数为:%d", Qnum);
return 0;
}
求下列式子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i=0;
float result=0;
for(i=1; i<=100; i++)
{
if(i%2 == 1)
{
result = result+(1/(double)i);
}
else
{
result = result-(1/(double)i);
}
}
printf("计算结果为:%lf", result);
return 0;
}
矩阵转置:将一个m行n列矩阵(即m×n矩阵)的每一行转置成另一个n×m矩阵的相应列
例如:将2*3的矩阵转置后输出:
即将 1 2 3 转置 1 4
4 5 6 2 5
3 6
注意:先了解矩阵转置的规则
#include <stdio.h>
#include <stdlib.h>
int main()
{
int m, n;
scanf("%d%d", &m, &n);
int a[m][n];
int b[n][m];
int i=0, j=0;
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
scanf("%d", &a[i][j]);
}
}
printf("原矩阵:\n");
for(i=0; i<m; i++)
{
for(j=0; j<n; j++)
{
printf("%5d", a[i][j]);
}
printf("\n");
}
printf("转置后:\n");
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
b[i][j]=a[j][i];
}
}
for(i=0; i<n; i++)
{
for(j=0; j<m; j++)
{
printf("%5d",b[i][j]);
}
printf("\n");
}
}