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;
}