⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 经典C源程序100例.txt

📁 一百个经典c语言程序
💻 TXT
📖 第 1 页 / 共 5 页
字号:
    scanf("%d",&stu[i].score[j]); 
   } 
  printf("\n"); 
 } 
} 
print(stu) 
struct student stu[]; 
{ int i,j; 
printf("\nNo. Name Sco1 Sco2 Sco3\n"); 
for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name); 
 for(j=0;j<3;j++) 
  printf("%-8d",stu[i].score[j]); 
 printf("\n"); 
} 
} 
main() 
{ 
 input(); 
 print(); 
} 
============================================================== 
【程序72】 
题目:创建一个链表。 
1.程序分析:            
2.程序源代码: 
/*creat a list*/ 
#include "stdlib.h" 
#include "stdio.h" 
struct list 
{ int data; 
struct list *next; 
}; 
typedef struct list node; 
typedef node *link; 
void main() 
{ link ptr,head; 
int num,i; 
ptr=(link)malloc(sizeof(node)); 
ptr=head; 
printf("please input 5 numbers==>\n"); 
for(i=0;i<=4;i++) 
{ 
 scanf("%d",&num); 
 ptr->data=num; 
 ptr->next=(link)malloc(sizeof(node)); 
 if(i==4) ptr->next=NULL; 
 else ptr=ptr->next; 
} 
ptr=head; 
while(ptr!=NULL) 
{ printf("The value is ==>%d\n",ptr->data); 
 ptr=ptr->next; 
} 
} 
============================================================== 
【程序73】 
题目:反向输出一个链表。    
1.程序分析: 
2.程序源代码: 
/*reverse output a list*/ 
#include "stdlib.h" 
#include "stdio.h" 
struct list 
{ int data; 
 struct list *next; 
}; 
typedef struct list node; 
typedef node *link; 
void main() 
{ link ptr,head,tail;  
 int num,i; 
 tail=(link)malloc(sizeof(node)); 
 tail->next=NULL; 
 ptr=tail; 
 printf("\nplease input 5 data==>\n"); 
 for(i=0;i<=4;i++) 
 { 
  scanf("%d",&num); 
  ptr->data=num; 
  head=(link)malloc(sizeof(node)); 
  head->next=ptr; 
  ptr=head; 
 } 
ptr=ptr->next; 
while(ptr!=NULL) 
{ printf("The value is ==>%d\n",ptr->data); 
 ptr=ptr->next; 
}} 
============================================================== 
【程序74】 
题目:连接两个链表。 
1.程序分析: 
2.程序源代码: 
#include "stdlib.h" 
#include "stdio.h" 
struct list 
{ int data; 
struct list *next; 
}; 
typedef struct list node; 
typedef node *link; 
link delete_node(link pointer,link tmp) 
{if (tmp==NULL) /*delete first node*/ 
 return pointer->next; 
else 
{ if(tmp->next->next==NULL)/*delete last node*/ 
  tmp->next=NULL; 
 else /*delete the other node*/ 
  tmp->next=tmp->next->next; 
 return pointer; 
} 
} 
void selection_sort(link pointer,int num) 
{ link tmp,btmp; 
 int i,min; 
 for(i=0;i { 
 tmp=pointer; 
 min=tmp->data; 
 btmp=NULL; 
 while(tmp->next) 
 { if(min>tmp->next->data) 
 {min=tmp->next->data; 
  btmp=tmp; 
 } 
 tmp=tmp->next; 
 } 
printf("\40: %d\n",min); 
pointer=delete_node(pointer,btmp); 


作者: zhlei81  2005-1-22 11:32   回复此发言   

________________________________________
15 回复:经典C源程序100例 
} 
} 
link create_list(int array[],int num) 
{ link tmp1,tmp2,pointer; 
int i; 
pointer=(link)malloc(sizeof(node)); 
pointer->data=array[0]; 
tmp1=pointer; 
for(i=1;i{ tmp2=(link)malloc(sizeof(node)); 
 tmp2->next=NULL; 
 tmp2->data=array[i]; 
 tmp1->next=tmp2; 
 tmp1=tmp1->next; 
} 
return pointer; 
} 
link concatenate(link pointer1,link pointer2) 
{ link tmp; 
tmp=pointer1; 
while(tmp->next) 
 tmp=tmp->next; 
tmp->next=pointer2; 
return pointer1; 
} 
void main(void) 
{ int arr1[]={3,12,8,9,11}; 
 link ptr; 
 ptr=create_list(arr1,5); 
 selection_sort(ptr,5); 
} 
============================================================== 
【程序75】 
题目:放松一下,算一道简单的题目。 
1.程序分析: 
2.程序源代码: 
main() 
{ 
int i,n; 
for(i=1;i<5;i++) 
{ n=0; 
 if(i!=1) 
 n=n+1; 
 if(i==3) 
 n=n+1; 
 if(i==4) 
 n=n+1; 
 if(i!=4) 
 n=n+1; 
 if(n==3) 
  printf("zhu hao shi de shi:%c",64+i); 
 } 
} 



 
 
 
2006-10-25 20:39:44    第 3 楼    
 
  我是一只鱼   
  

威望: -2
级别: 小学生
职务: 论坛版主
经验: 628 
银币: 108
发帖数: 59 篇
注册时间: 2006-09-22 23:31:00
  消息 查看 搜索 好友 修改 删除 复制 引用

--------------------------------------------------------------------------------
 

【程序76】 
题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 
   1/1+1/3+...+1/n(利用指针函数) 
1.程序分析: 
2.程序源代码: 
main() 
#include "stdio.h" 
main() 
{ 
float peven(),podd(),dcall(); 
float sum; 
int n; 
while (1) 
{ 
 scanf("%d",&n); 
 if(n>1) 
  break; 
} 
if(n%2==0) 
{ 
 printf("Even="); 
 sum=dcall(peven,n); 
} 
else 
{ 
 printf("Odd="); 
 sum=dcall(podd,n); 
} 
printf("%f",sum); 
} 
float peven(int n) 
{ 
float s; 
int i; 
s=1; 
for(i=2;i<=n;i+=2) 
 s+=1/(float)i; 
return(s); 
} 
float podd(n) 
int n; 
{ 
float s; 
int i; 
s=0; 
for(i=1;i<=n;i+=2) 
 s+=1/(float)i; 
return(s); 
} 
float dcall(fp,n) 
float (*fp)(); 
int n; 
{ 
float s; 
s=(*fp)(n); 
return(s); 
} 
============================================================== 
【程序77】 
题目:填空练习(指向指针的指针) 
1.程序分析:      
2.程序源代码: 
main() 
{ char *s[]={"man","woman","girl","boy","sister"}; 
char **q; 
int k; 
for(k=0;k<5;k++) 
{       ;/*这里填写什么语句*/ 
 printf("%s\n",*q); 
} 
} 
============================================================== 
【程序78】 
题目:找到年龄最大的人,并输出。请找出程序中有什么问题。 
1.程序分析: 
2.程序源代码: 
#define N 4 
#include "stdio.h" 
static struct man 
{ char name[20]; 
int age; 
} person[N]={"li",18,"wang",19,"zhang",20,"sun",22}; 
main() 
{struct man *q,*p; 
int i,m=0; 
p=person; 
for (i=0;i{if(mage) 
 q=p++; 
 m=q->age;} 
printf("%s,%d",(*q).name,(*q).age); 
} 
============================================================== 
【程序79】 
题目:字符串排序。 
1.程序分析: 
2.程序源代码: 
main() 
{ 
char *str1[20],*str2[20],*str3[20]; 
char swap(); 
printf("please input three strings\n"); 
scanf("%s",str1); 
scanf("%s",str2); 
scanf("%s",str3); 
if(strcmp(str1,str2)>0) swap(str1,str2); 
if(strcmp(str1,str3)>0) swap(str1,str3); 
if(strcmp(str2,str3)>0) swap(str2,str3); 
printf("after being sorted\n"); 
printf("%s\n%s\n%s\n",str1,str2,str3); 
} 
char swap(p1,p2) 
char *p1,*p2; 
{ 
char *p[20]; 
strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); 
} 
============================================================== 
【程序80】 
题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只 
   猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了 
   一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的, 
   问海滩上原来最少有多少个桃子? 
1.程序分析: 
2.程序源代码: 
main() 
{int i,m,j,k,count; 
for(i=4;i<10000;i+=4) 
{ count=0; 
m=i; 
for(k=0;k<5;k++) 
{ 
 j=i/4*5+1; 
 i=j; 
 if(j%4==0) 
  count++; 
 else 
  break; 
} 
 i=m; 
 if(count==4) 
 {printf("%d\n",count); 
  break;} 
} 
} 
 
 
 
2006-10-25 20:41:29    第 4 楼    
 
  我是一只鱼   
  

威望: -2
级别: 小学生
职务: 论坛版主
经验: 628 
银币: 108
发帖数: 59 篇
注册时间: 2006-09-22 23:31:00
  消息 查看 搜索 好友 修改 删除 复制 引用

--------------------------------------------------------------------------------
 

【程序81】 
题目:809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。 
1.程序分析: 
2.程序源代码: 
output(long b,long i) 
{ printf("\n%ld/%ld=809*%ld+%ld",b,i,i,b%i); 
} 
main() 
{long int a,b,i; 
a=809; 
for(i=10;i<100;i++) 
{b=i*a+1; 
if(b>=1000&&b<=10000&&8*i<100&&9*i>=100) 
output(b,i); } 
} 
============================================================== 
【程序82】 
题目:八进制转换为十进制 
1.程序分析:            
2.程序源代码: 
main() 
{ char *p,s[6];int n; 
p=s; 
gets(p); 
n=0; 
while(*(p)!='\0') 
{n=n*8+*p-'0'; 
p++;} 
printf("%d",n); 
} 
============================================================== 
【程序83】 
题目:求0?7所能组成的奇数个数。 
1.程序分析: 
2.程序源代码: 
main() 
{ 
long sum=4,s=4; 
int j; 
for(j=2;j<=8;j++)/*j is place of number*/ 
{ printf("\n%ld",sum); 
if(j<=2) 
s*=7; 
else 
s*=8; 
sum+=s;} 
printf("\nsum=%ld",sum); 
} 
============================================================== 
【程序84】 
题目:一个偶数总能表示为两个素数之和。 
1.程序分析: 
2.程序源代码: 
#include "stdio.h" 
#include "math.h" 
main() 
{ int a,b,c,d; 
scanf("%d",&a); 
for(b=3;b<=a/2;b+=2) 
{ for(c=2;c<=sqrt(b);c++) 
if(b%c==0) break; 
if(c>sqrt(b)) 
d=a-b; 
else 
break; 
for(c=2;c<=sqrt(d);c++) 
if(d%c==0) break; 
if(c>sqrt(d)) 
printf("%d=%d+%d\n",a,b,d); 
} 
} 
============================================================== 
【程序85】 
题目:判断一个素数能被几个9整除 
1.程序分析: 
2.程序源代码: 
main() 
{ long int m9=9,sum=9; 
int zi,n1=1,c9=1; 
scanf("%d",&zi); 
while(n1!=0) 
{ if(!(sum%zi)) 
n1=0; 
else 
{m9=m9*10; 
sum=sum+m9; 
c9++; 
} 
} 
printf("%ld,can be divided by %d \"9\"",sum,c9); 
} 
============================================================== 
【程序86】 
题目:两个字符串连接程序 
1.程序分析: 
2.程序源代码: 
#include "stdio.h" 
main() 
{char a[]="acegikm"; 
char b[]="bdfhjlnpq"; 
char c[80],*p; 
int i=0,j=0,k=0; 
while(a[i]!='\0'&&b[j]!='\0') 
{if (a[i] { c[k]=a[i];i++;} 
else 
c[k]=b[j++]; 
k++; 
} 
c[k]='\0'; 
if(a[i]=='\0') 
p=b+j; 
else 
p=a+i; 
strcat(c,p); 
puts?; 
}  
 
 
2006-10-25 20:42:20    第 5 楼    
 
  我是一只鱼   
  

威望: -2
级别: 小学生
职务: 论坛版主
经验: 628 
银币: 108
发帖数: 59 篇
注册时间: 2006-09-22 23:31:00
  消息 查看 搜索 好友 修改 删除 复制 引用

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -