c语言编写的程序
A. 用c语言编写一个程序
应该多给几个例子,n=10的时候如何处理?得到10,110,210,1210等等?
若是这样的,试试下面程序:
/*
用c语言编写一个程序:对于一个自然数n(n<=50),统计具有下列数字的个数,
并输出所有符合条件的数字:自然数n,在n的左边加上一个自然数,
但该自然数不能超过原数的一半;继续按此规则进行处理,直到不能加自然数为止。
例如当n=6时,符合条件条件的是:6,16,26,36,126,136共6个;
当n=5时,符合条件的是:5,15,25,125.(0也是自然数,所以要加上本身)。。。
*/
#include
<stdio.h>
#include
<stdlib.h>
int
g_count=0;
void
fun(int
n,int
d,int
b)
{
int
i;
printf("%8d
",d);
g_count++;
if(g_count%8==0)
printf("\n");
for(i=1;i<=n/2;i++)
{
fun(i,i*b+d,b*10);
}
}
void
result(int
n)
{
int
t=n,d=n,b=10;
printf("result:\n");
g_count=0;
while(t>=10)
{
t/=10;
b*=10;
}
fun(n,d,b);
printf("\ntotal
%d
numbers\n\n",g_count);
}
int
main()
{
int
n;
printf("input
n(n<=50):\n");
while(scanf("%d",&n)!=EOF)
{
if(n>=0&&n<=50)
result(n);
printf("input
n(n<=50):\n");
}
return
0;
}
我这,若是放开n的限制,n=200的时候,计算花掉20多秒吧,总共205658个。
n=300的话,算了几分钟都没结束。估计也得使用long
long数据类型了。使用递归不是最快的,重复计算多。
网络推荐也不求真相?有误导了吧。
对于楼主新补充的提升,我的程序是这样做的,满足你的要求。
B. C语言编程程序
#include <stdio.h>
void main()
{
int year,month,day,s=0,a,i;
int m[11] = {31,28,31,30,31,30,31,31,30,31,30,31};//建立一维数组,放入每个月的天数
printf("Please input year-month-day : ");
scanf("%d-%d-%d",&year,&month,&day);//输入年月日
if(month > 2 && ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)))//判断闰年且月份大于2
a=1;//如果闰年且月份大于2,在天数上加1
else
a=0;//不是则不加
for(i = 0 ; i < month - 1 ; i ++)
s = s + m[i];//把输入月份之前的每个月天数相加;比如输入4月,则此时s=31+28+31
printf("That is the %d(th) day of %d.
",s+day+a,year);//所求值为s+day+a
C. 用C语言编写的代码程序( )
楼上是对的,该选D...代码只有编译链接之后才能成为可执行程序, 可执行程序才能执行
D. 用C语言编写一个程序
#include<stdio.h>
main()
{
int a[100],t,n,i,j;
printf("请输入数字的个数:");
scanf("%d",&n);
printf("\n请依次输入数值:");
for(i=0;i<=n-1;i++)
scanf("%d",&a[i]);
for(i=0;i<=n-1;i++)
{
for(j=i+1;j<n;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
printf("排列好的数列为:");
for(i=0;i<=n-1;i++)
printf("%d ",a[i]);
}
E. C语言程序编写
C语言使用 Xcode。Xcode 是由Apple官方开发的IDE,支持C、C++、Objective-C、Swift等
F. 如何编写C语言程序
准备材料
windows电脑、VC++(DEV_C++)
1.打开桌面上的DEV_C++,进入如下界面:
G. 编写一个程序...(用c语言编写程序)
编写什么程序呢?是完成一个功能还是别的?是游戏类还是软件类还是工具类呢?不写清楚怎么回答呢亲?
H. C语言编写程序
程序功能:录入N个字符串(动态内存申请,内存范围内不限长度个和字符个数)
输入一个字符串,查找是否有相同,有输出1,没有输出0。(先比较长度再比较内容)
字符串可以包含空格,代码我都详细备注了。
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#include<string.h>
typedefstructstrList
{
char*s;//一行字符串首地址
intclo;//列数
structstrList*next;//链表指针
}STRL;
STRL*inputStr(STRL*strlHead,STRL*strlTail,intff);
voidprSTRL(STRL*strlHead);
intfindSTRL(STRL*strlHead);
voidmeError(void*p);
intmain()
{
STRL*strlHead=(STRL*)malloc(sizeof(STRL)),*strlTail=NULL;
meError(strlHead);
strlHead->next=NULL;
strlTail=inputStr(strlHead,strlTail,0);
printf("录入的字符串信息为:
");
prSTRL(strlHead);
while(1)
printf("查找结果:%d
",findSTRL(strlHead));
return0;
}
voidprSTRL(STRL*strlHead)//打印链表字符串
{
while(strlHead->next!=NULL)
{
printf("%s
",strlHead->next->s);
strlHead=strlHead->next;
}
printf("
");
}
intfindSTRL(STRL*strlHead)//查找字符串,先比较长度,再比较内容,找到返回1,未找到返回0
{
intflag=0;
STRLsFindHead,*sFindTail=NULL;
sFindHead.s=NULL;
sFindHead.next=NULL;
sFindTail=inputStr(&sFindHead,sFindTail,1);
if(!sFindTail)
return0;
while(strlHead->next!=NULL)
{
if(strlHead->next->clo==sFindTail->clo&&!strcmp(strlHead->next->s,sFindTail->s))
{
flag=1;
break;
}
strlHead=strlHead->next;
}
free(sFindTail->s);
free(sFindTail);
returnflag;
}
STRL*inputStr(STRL*strlHead,STRL*strlTail,intff)
//ff!=1录入多行任意长度字符串,连续回车结束录入,返回尾节点
//ff==1录入单行任意长度字符串,返回尾节点
{
char*str=NULL,*temp=NULL,c;
intlen,add,cnt,flag=1;//len:字符串预设长度(包含结束符号);add:长度增长值,cnt:实际录入的字符个数;flag=0结束录入
STRL*strlNew=NULL;
if(ff!=1)
printf("输入多行字符串(每输入一行回车确认,不输入直接回车结束录入):
");
else
printf("输入要查找的字符串:
");
while(flag)//换行
{
cnt=0;
len=10;
add=10;
str=(char*)malloc(sizeof(char)*len);
meError(str);
while(1)//输入一行
{
temp=NULL;
c=getch();
if(c=='
'&&cnt>0)
{
strlNew=(STRL*)malloc(sizeof(STRL));
meError(strlNew);
strlNew->s=str;
strlNew->clo=cnt;
strlNew->next=NULL;
if(ff==1)//单行录入模式
flag=0;
//保存录入并在多行模式下开始录入新的一行
if(!strlHead->next)
strlHead->next=strlNew;
else
strlTail->next=strlNew;
strlTail=strlNew;
printf("
");
break;
}
if(c=='
'&&cnt==0)//结束录入
{
if(ff==1)
returnNULL;
flag=0;
free(str);
break;
}
if(c!='
'&&cnt>=len-1)//一行字符串内存已满,扩充内存
{
len+=add;
temp=(char*)realloc(str,sizeof(char)*len);
meError(temp);
str=temp;
}
str[cnt++]=c;
str[cnt]=0;
printf("%c",c);
}
}
returnstrlTail;
}
voidmeError(void*p)//内存申请失败
{
if(p==NULL)
{
printf("异常:内存申请失败!回车结束程序!
");
while(getch()!='
');
exit(0);
}
}
I. 用C语言编写下列程序
#include <stdio.h>
int main()
{
int a=1,b=2,c=3,t;
t=a;
a=b;
b=t;
t=b;
b=c;
c=t;
printf("a=%d,b=%d,c=%d ",a,b,c);
return 0;
}