假设纸的厚度为0104mm,珠峰取8848m
方法一:
用数学运算化简,本题化为不等式
(2的x次方)0104/1000 > 8848
则x > log(2为底)(88481000/0104)的对数的最小整数
则C程序可以简化为:
#include <stdioh>
#include <mathh>
int main() {
double x = log10(88481000/0104)/log10(2);
printf("%0f\n", ceil(x)); //输出次数
return 0;
}
方法二:
纯程序法,每折一次,都计算当前的高度,与8848做对比,>8848时,完成。
#include <stdioh>
int main() {
int i = 0;
double h=00f;
while (h<88480) { //这里使用了while循环,也可以改用for, do while等
h = pow(2, ++i)0104/1000; //化为米
}
printf("%d\n", i);
return 0;
}
并不对
任何一种语言,都是有它自己用处的
basic是一门独立语言,不存在c语言简化版本的说法
事实上,basic一样可以实现很多功能,甚至独立完成一个大的程序
并不比C语言功能弱多少
#include<stdioh>
void main()
{
double a,b;
double result; //因为相除的结果不一定是整数
char op;
scanf("%f%f%c",&a,&b,&op);
switch (op)
{case '+': result=a+b;break;
case '-': result=a-b;break;
case '': result=ab;break;
case '/': result=a/b;break;
}
printf("%f%c%f=%f\n",a,op,b,result);
}
输入方法是: 3空格5+回车
显示: 3000000+5000000=8000000
本题有个难点,就是你若想输入 3,5, 最后3和5可以读给变量a和b,但是运算符一定会读成"逗号",因此必须按照我输入方法才正确。切记!!!!
main调用fun1,这时fun1中的a为11,、b为19,经过a+=a;b+=b;后,a为22、b为38,然后fun1调用fun2,fun2中的a为22、b为38,经过c=ab%3;后,c为2(836除以3得到的余数),fun2执行完毕,把2返回给fun1,2被赋给fun1的c,fun1执行完毕,返回22(即4)。
最后main接收fun1的返回值并将其输出
#include<stdioh>
#define max 100
int helix(int a,int b,int e,int f,int s[max][max])
{int i;
static int c=1;
for(i=1;i<=e;i++)
s[a++][b]=c++;
f--;
a--;
if(f!=0)
{
for(i=1;i<=f;i++)
s[a][++b]=c++;
e--;
if(e!=0)
{for(i=1;i<=e;i++)
s[--a][b]=c++;
f--;
if(f!=0)
for(i=1;i<=f;i++)
s[a][--b]=c++;
}
}
}
main()
{int m,n,x,y,i=1,j,c,t,s[max][max];
printf("please input the hang&lie number");
scanf("%d %d %d \n",&m,&n,&t);
x=m;
y=n;
while(1)
{ helix(i,i,x,y,s);
x=x-2;
y=y-2;
if(x<=0||y<=0)
break;
i++;
}
printf("\n");
if(t==0)
{for(i=1;i<=m;i++)
{for(j=1;j<=n;j++)
printf(" %d",s[i][j]);
printf("\n");
}
}
else
{for(i=1;i<=n;i++)
{for(j=1;j<=m;j++)
printf(" %d",s[j][i]);
printf("\n");
}
}
getch();
}
数字的逆序输出,自己尝试著编译看看
#include <stdioh>
#include <stdlibh>
#include <timeh>
main()
{
int a,b,c,d,result,i;
char f[]={'+','-','','/'};
while(1)
{
srand(time(NULL));
a=rand()%100;
b=rand()%100;
c=rand()%4;
switch (c)
{
case 0: d=a+b;break;
case 1: d=a-b;break;
case 2: d=ab;break;
case 3: d=a/b;break;
}
printf("输入结果:%d%c%d=",a,f[c],b);
i=0;
while (i<2)
{
scanf("%d",&result);
if (result==d&&i<2)
{printf("你答对了^_^\n"); break; }
else i++,printf("你答错了%d次:",i);
if (i==2) {printf("\n答案:%d\n",d);}
}
}
}
你每次乘以一个新的分式之后就进行约分,使你的分式始终保持最简形式,则就可以不需要大整数了。如果实在要用的话VC60也可以用64位的整数啊,不过它是用_int64表示(无需添加任何特殊头文件),输出格式则为printf(“%I64d", ); 例如
_int64 a = 98765432198765 2;
printf("%I64d", a);
不用大整数,程序则可如下做
#include <stdioh>
int gcd(int x, int y) {
int m, n;
m = ((x > y) x : y);
n = ((x <= y) x : y);
if(m % n == 0) return n;
else return gcd(n, m % n);
}
void main( )
{
int a, b, c, x, y, n, i;
scanf("%d", &n);
x = 1; y = 1;
for(i = 0; i < n; i++) {
scanf("%d%d", &a, &b);
x = a;
y = b;
c = gcd(x, y);
x /= c;
y /= c;
}
if(y != 1) printf("%d/%d\n", x, y);
else printf("%d\n", x);
}
以上就是关于一张无限大的纸折多少次与珠峰一样高 用c语言进行编程全部的内容,包括:一张无限大的纸折多少次与珠峰一样高 用c语言进行编程、basic语言是给入门人员用的c语言的简化版本,用来理解什么叫编程,所以永远写不了大程序、如何用c语言解决:编写一个简单的计算机程序,可以实现简单的加,减,乘,除运算。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)