编程计算
累加和阶乘的嵌套
程序框架参考课本P131页的例8.3, 函数f1用来计算左括号 i 平方 加 1 右括号 階層, 函数f2用来计算一个整数的阶乘,在主函数中循环调用f1求和,f1的实现需要调用f2, 函数中所有变量均定义为int型。
上传程序源代码和运行结果截图 (计算结果应为3628922)
#include <stdio.h>
int f1(int n);
int f2(int q);
int main()
{
int i,c,b=0;
for(i=1;i<=3;i++)
{
f1(i);
c=f1(i);
b+=c;
}
printf("%d\n",b);
}
int f1(int n)
{
int a;
int m=(n*n+1);
f2(m);
a=f2(m);
return a;
}
int f2(int q)
{
int p;
int sum=1;
for(p=q;p>=1;p--)
sum*=p;
return sum;
}
例如:输入12345输出54321
输入-12345输出-54321
将程序源代码和运行结果截图上传
#include<stdio.h>
void turn(int c)
{
if (c > 0) {
if (c / 10 == 0)
{
printf("%d", c);
}
else
{
printf("%d", c % 10);
turn(c / 10);
}
}
if (c < 0)
{
c = -c;
printf("-");
if (c / 10 == 0)
{
printf("%d", c);
}
else
{
printf("%d", c % 10);
turn(c / 10);
}
}
}
int main()
{
int n;
while(1){
printf("请输入:");
scanf_s("%d", &n);
printf("倒叙后为:\n");
turn(n);
}
}
}
折半法查找数组数据位置
#include <stdio.h>
#define M 5
int fun(int b[],int n)
{
int low=0,high=M-1,mid;
while(low<=high)
{
mid=low+(high-low)/2;
if(n<b[mid])
high=mid-1;
else if(n>b[mid])
low=mid+1;
else
return mid;
}
return (-1);
}
main()
{
int i,b[M]={9,13,45,67,89},j,n;
printf("b 数组中的数据如下:");
for(i=0;i<M;i++)
printf("%d,",b[i]);
while(1){
printf("Enter n:");
scanf("%d",&n);
j=fun(b,n);
if(j>=0)
printf("n=%d,index=%d\n",n,j);
else
printf("Not be found!\n");
}
}
用实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,并将统计结果存放在一个整型数组中,在主函数中输入字符串,调用此函数,然后输出统计结果。
void count(char x[ ],int m[ ])
{
int i;
for(i=0;x[i]!='\0';i++)
{
if((x[i]>='A' && x[i]<='Z') || (x[i]>='a' && x[i]<='z'))
m[0]++;
else if(x[i]>='0' && x[i]<='9')
m[1]++;
else if(x[i]==' ')
m[2]++;
else
m[3]++;
}
}
#include <stdio.h>
int main( )
{ char str[80];
int n[4]={0};
int i;
puts("Please enter a string:");
gets(str);
count(str,n);
printf("字母有%d个\n",n[0]);
printf("数字有%d个\n",n[1]);
printf("空格有%d个\n",n[2]);
printf("其他字符有%d个\n",n[3]);
}
猜数游戏
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void game();
int main()
{
game();
}
int number()
{
int number;
srand(time(0));
number = rand()%100+1;
return number;
}
void game()
{
int guess,i=0;
int m=number();
do{
printf("猜猜这个1到100间的数:");
scanf("%d",&guess);
printf("%d",guess);
i++;
if(guess>m)
printf("你猜的数大了\n");
else if(guess<m)
printf("你猜的数小了\n");
}while(guess!=m);
printf("你用了%d次猜对了\n",i);
}