简单的c

1、输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。

2、求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。

3、矩阵转置:将一个m行n列矩阵(即m×n矩阵)的每一行转置成另一个n×m矩阵的相应列

   例如:将2*3的矩阵转置后输出:

   即将     12 3    转置     1  4

               45 6                 2  5

                                       3  6



解答:对于第一题的话,我们可以直接用选择循环来处理,但是对于字符串尾部的结束标志来说是一个非常麻烦的问题,所以采用两个数组来比较,避免了碰到结束符的尴尬。

对于第二题,我们可以采用一个负号标志,来记录每一轮之后,下一轮应当的结果,相加后,负号标志乘以负一转正,继续参加下一轮的运算,直到结束。

对于第三题,将对应的行坐标和列坐标交换之后即可得出结果。

#include <stdio.h>
#include <math.h>
int main(void){
	/*int i=0,kong=0,zi=0,shu=0,other=0,j=0;
	char s[1000];
	char s1[1000];
	gets(s);
	while(s1[j]=s[i++]){
		if((s1[j]>='a' && s1[j]<='z' )|| (s1[j]>='A' && s1[j]<='Z'))//计算字符
			zi+=1;
		else if(s1[j]>='0'&&s1[j]<='9')//计算数字
			shu+=1;
		else if(s1[j]==' ')//计算空格
			kong+=1;
		else//计算其他的字符
			other+=1;
		j++;
	}
	printf("数字有:%d\n字符有:%d\n空格有:%d\n其他有:%d\n",shu,zi,kong,other);
*/


//第二个,注释掉了,同第一个,均在devc++环境下完成测试运行
/*
	int i,n;
	double s=0;
	int sige=1;
	scanf("%d",&n);
	for(i=1;i<=n;i++){
		s+=(1.0/i)*sige;
		sige*=-1;//标识符,来记录下一轮的符号
	}
	printf("%lf",s);*/
	int i,j,k,l,m,n;
	scanf("%d%d",&m,&n);
	int a[m][n];
	int b[n][m];
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
			scanf("%d",&a[i][j]);
	for(j=0;j<n;j++)
		for(i=0;i<m;i++)
			b[j][i]=a[i][j];//行坐标和列坐标交换
	for(i=0;i<n;i++){
		for(j=0;j<m;j++)
			printf("%5d",b[i][j]);
		printf("\n");
	}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值