#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#define N 100
void count() {
char c;
int letters = 0;
int space = 0;
int digit = 0;
int others = 0;
int word = 0;
printf("请输入字符串:(输入#结束)");
while ((c = getchar()) != '#')
{
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
{
letters++;
}
else if (c >= '0' && c <= '9')
{
digit++;
}
else if (c = ' ')
{
space++;
word++;
}
else
{
others++;
word++;
}
}
printf("英文字母有%d个,空格有%d个,数字有%d个,其他字符有%d个,英文单词有%d个\n", letters, space, digit, others,word);
}
void sum() {
char c;
int sum = 0;
printf("请输入字符串:(输入#结束)");
while ((c = getchar()) != '#')
{
if (c >= '0' && c <= '9')
{
sum = sum + (int)c - 48;
}
}
printf("和为%d", sum);
}
void SumandMult() {
//将两个大整数分别存入字符串数组num1和num2中
char num1[N] = { '\0' }, num2[N] = { '\0' };//初始化,如果不初始化也可以的,直接定义;
int n1[N], n2[N], n3[2 * N] = { 0 }, n4[2 * N] = { 0 };//整型数组n3[]必须进行初始化,否则后面逐个计算时会出错!!!
int a, b, c;
int i, j;
printf("请输入两个大整数:(空格隔开)\n");
scanf("%s %s", num1, num2);//获取数组,加不加&都可以
//gets(num1);
//gets(num2);
a = strlen(num1);//计算字符串数组num1的长度
b = strlen(num2);//计算字符串数组num2的长度
c = a + b - 1;//n1*n2得到的结果数组n3的长度
//将字符串数组转化成整型数组
for (i = 0; i < a; i++)
{
n1[i] = num1[i] - '0';
}
for (i = 0; i < b; i++)
{
n2[i] = num2[i] - '0';
}
//逐个相乘
for (i = 0; i < a; i++)
{
for (j = 0; j < b; j++)
{
n3[i + j] += n1[i] * n2[j];//这里要用到n3[0]~n3[c-1]的初始值,所以数组n3[2*N]必须初始化,否则容易计算出错
}
}
//对数组n3中的数据至右向左进位
for (i = c - 1; i > 0; i--)
{
n3[i - 1] += n3[i] / 10;
n3[i] = n3[i] % 10;
}
//正向输出结果数组n3
printf("输出两个大整数相乘的积:\n");
for (i = 0; i < c; i++)
{
printf("%d", n3[i]);
}
printf("\n");
int l = a;
if (b > a) { l = b; }l;
int n[N + 1], m[N + 1];
memset(n, 0, sizeof(n));
memset(m, 0, sizeof(m));
for (i = 0; i < a; i++)
{
n[i] = n1[a - 1 - i] - '0';
}
for (i = 0; i < b; i++)
{
m[i] = n2[b - 1 - i] - '0';
}
for (i = 0; i < l; i++)
{
n4[i] = n4[i] + n[i] + m[i];
n4[i + 1] = n4[i] / 10;
n4[i] %= 10;
}
if (n4[l] != 0)
{
printf("1");
}
for (i = l - 1; i >= 0; i--)
{
printf("%d", n4[i]);
}
}
int main()
{
int a;
printf("pls enter (1,2,3):");
scanf_s("%d", &a);
switch (a)
{
case 1:
count();
break;
case 2:
sum();
break;
case 3:
SumandMult();
break;
}
//count();
//sum();
//SumandMult();
system("pause");
return 0;
}