1.求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,例如:2+22+222+2222+22222
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i = 0;
int j = 0;
int a = 0;
int sum = 0;
printf("请输入一个数(个位数):");
scanf_s("%d", &i);
a = i;
for (j = 1; j < 6; j++)
{
sum += i;
i = i * 10 + a;
}
printf("%d", sum);
system("pause");
return 0;
}
2.
编写一个程序,它从标准输入(终端)读取C源代码,并验证所有的花括号都正确的成对出现。
例如:
输入:{}{},成功匹配。
输入:{}{{}},成功匹配
输入:{}}{,匹配不成功
输入:}}{{,匹配不成功
输入:{}},匹配不成功
输入:}{}{{,匹配不成功
#include<stdio.h>
#include<stdlib.h>
int main()
{
int cou = 0;
char ch;
while ((ch = getchar()) != ‘\n‘)
{
if (ch == ‘{‘)
cou++;
else if (ch == ‘}‘)
{
if (cou == 0)
printf("匹配不成功!");
cou--;
}
}
if (cou == 0)
printf("匹配成功!");
else
printf("匹配不成功!");
system("pause");
return 0;
3.编写折半查找函数。
#include <stdio.h>
#include<stdlib.h>
int main()
{
int a[11] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
int min = 0, max = 10, mid, n;
printf("请输入您要查找的数:\n");
scanf_s("%d", &n);
while (min + 1 != max)
{
mid = (min + max) / 2;
if (n>a[mid]) min = mid;
else if (n<a[mid]) max = mid;
else
{
printf("输入的数在数列的第%d位\n", mid); break;
}
}
if (n == a[max]) printf("输入的数在数列的第%d位\n", max);
else if (n == a[min]) printf("输入的数在数列的第%d位\n", min);
else if (n != a[mid]) printf("输入的数不在数列中");
system("pause");
return 0;
}
4.编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。
在编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n = 1, at_beginning = 1;
char ch;
while (1)
{
printf("Please input the line:\n");
do
{
scanf_s("%c", &ch);
if (at_beginning == 1)
{
at_beginning = 0;
printf("%d ", n);
}
printf("%c", ch);
} while (ch != ‘\n‘);
at_beginning = 1;
n++;
}
system("pause");
return 0;
}
5.编这样一个程序,用户输入10个整数,程序找出其中的最大值和最小值
#include <stdio.h>
#include<stdlib.h>
int main()
{
int a[10], i, max, min;
for (i = 0; i<10; i++)
{
printf("num%d=", i + 1);
scanf_s("%d", &a[i]);
}
max = a[0]; min = a[0];
for (i = 0; i<10; i++)
{
if (a[i]>max) max = a[i];
if (a[i]<min) min = a[i];
}
printf("max=%d\n", max);
printf("min=%d\n", min);
system("pause");
return 0;
}
6.写程序求解:
有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?打印出来?
#include<stdio.h>
#include<stdio.h>
main()
{
int i, j, k;
int m = 0;
for (i = 1; i<5; i++)
for (j = 1; j<5; j++)
for (k = 1; k<5; k++)
{
if (i != j&&k != j&&i != k)
{
printf("%d%d%d\n", i, j, k);
m++;
}
}
printf("一共有多少个数:");
printf("%d\n", m);
system("pause");
return 0;
}