
//maincpp
//根据你的要求,在有数字相同时输出“相同的数字”,出现不是2的n次方的数字时输出“还可以化简”
//没有使用链表,因为太麻烦,realloc足以满足。
//
#include <stdioh>
#include <malloch>
#include <mathh>
int main()
{
int number=0;
size_t array_length = 1;
int array =(int) malloc(sizeof(array_lengthsizeof(int)));
int ret = 0;
do
{
ret = scanf("%d",&number);
if(ret==0 || ret==EOF)
return 0;
size_t idx=0;
//检查是否有相同的数字
for(;idx<array_length;idx++)
{
//相同的数字
if(array[idx]==number)
{
//printf("相同的数字\n");
printf("还可以化简");
free(array);
return 1;
}
}
if(realloc(array,(array_length+1)sizeof(int))==NULL)
return -1;
array_length++;
array[array_length-1]=number;
ret = log2(number);
//printf("number %d : log2 = %d ,%lf \n",number,ret,log2(number));
if(!(log2(number)-ret==0))//不是2的n次方
{
printf("还可以化简");
break;
}
}
while(1);
free(array);
return 0;
}
double log2(double x)
{
return log(x)/log(2);
}
你说的是 vc 还是 tc 啊???
其他的运算:
#include <stdioh>
int add(int x,int y) {return x+y;}
int sub(int x,int y) {return x-y;}
int mul(int x,int y) {return xy;}
int div(int x,int y) {return x/y;}
int (func[])()={add,sub,mul,div};
int num,curch;
char chtbl[]="+-/()=";
char corch[]="+-/()=0123456789";
int getach() {
int i;
while(1) {
curch=getchar();
if(curch==EOF) return -1;
for(i=0;corch[i]&&curch!=corch[i];i++);
if(i<strlen(corch)) break;
}
return curch;
}
int getid() {
int i;
if(curch>='0'&&curch<='9') {
for(num=0;curch>='0'&&curch<='9';getach()) num=10num+curch-'0';
return -1;
}
else {
for(i=0;chtbl[i];i++) if(chtbl[i]==curch) break;
if(i<=5) getach();
return i;
}
}
int cal() {
int x1,x2,x3,op1,op2,i;
i=getid();
if(i==4) x1=cal(); else x1=num;
op1=getid();
if(op1>=5) return x1;
i=getid();
if(i==4) x2=cal(); else x2=num;
op2=getid();
while(op2<=4) {
i=getid();
if(i==4) x3=cal(); else x3=num;
if((op1/2==0)&&(op2/2==1)) x2=(func[op2])(x2,x3);
else {
x1=(func[op1])(x1,x2);
x2=x3;
op1=op2;
}
op2=getid();
}
return (func[op1])(x1,x2);
}
void main(void) {
int value;
printf("Please input an expression:\n");
getach();
while(curch!='=') {
value=cal();
printf("The result is:%d\n",value);
printf("Please input an expression:\n");
getach();
}
}
只能 + - /
/输入两个整数a和b,求平均值ave。并输出平均值。/
#include
<conioh>
/
此头函数请不要删除
/
main()
{
float
a,b,ave;
printf("请输入整数a和b以逗号隔开:\n");
scanf("%f,%f",&a,&b);
ave=(a+b)/2;
printf("整数a和b的平均值是ave=%62f",ave);
getch();
}
/
输入圆柱底面的半径radius和圆柱的高height,求圆柱的表面积area和体积volumn,
要求输出结果保留两位小数、/
main()
{
float
radius,height,area,volumn;
printf("请输入圆柱底面的半径radius:\n");
scanf("%f",&radius);
printf("请输入圆柱的高height:\n");
scanf("%f",&height);
area=314(radiusradius)+2314radius;
volumn=314(radiusradius)height;
printf("圆柱的表面积area=%82f
\n体积volumn=%82f",area,volumn);
getch();
}
/
设银行定期存款的年利率rate为382%,并已知存款期为n年,存款本金为capital元,
试编程计算n年后的本利之和deposit要求rate,n
,capital均从键盘输入,输出信息要完整清晰。。
/
main()
{
float
rate,n,capital,deposit,i;
printf("请输入年利率rate:");
scanf("%f",&rate);
printf("请输入存款本金capital:");
scanf("%f",&capital);
printf("请输入存期年n:");
scanf("%f",&n);
deposit=capital;
i=n;
while(i!=0)
{
deposit=(1+00382)deposit;
i=i-1;
}
printf("%1f年后的本利之和为:%92f",n,deposit);
getch();
}
#include <stdioh>
#include <stdlibh>
#include <timeh>
void Init(int a[],int n); //随机生成元素取值范围在0到99的数组
void Short(int p,int n); //用选择法对数组中的元素从小到大排序
void Print(int p,int n); //在屏幕上输出数组各元素的值(逗号分隔)
#define N (10)
int main()
{
int a[N],b[N],c[N2],i;
srand(time(NULL));
Init(a,N);
Print(a,N);
Short(a,N);
Print(a,N);
Init(b,N);
Print(b,N);
Short(b,N);
Print(b,N);
for(i=0;i<N;++i)
{
c[i]=a[i];
}
for(i=0;i<N;++i)
{
c[i+N]=b[i];
}
Print(c,2N);
Short(c,2N);
Print(c,2N);
return 0;
}
void Init(int a[],int n)
{
int i;
for(i=0;i<n;++i)
{
a++=rand()%100;
}
}
void Short(int p,int n)
{
int i,j,t;
for(i=0;i<n-1;++i)
{
for(j=0;j<n-i-1;++j)
{
if(p[j]>p[j+1])
{
t=p[j];
p[j]=p[j+1];
p[j+1]=t;
}
}
}
}
void Print(int p,int n)
{
int i;
for(i=0;i<n;++i)
{
printf("%d%c",p++,i<n-1',':'\n');
}
}
以上就是关于C语言一个小程序怎么写全部的内容,包括:C语言一个小程序怎么写、用C语言编一个简单的计算器小程序、编写几个C语言小程序。。等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)