1.题目描述:
输出所有的“水仙花数”,所谓“水仙花数”是指一个三维数,其各位数字的立方和等于该数本身。例如,153是一水仙花数,因为153=111+555+333
代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { int b,s,g; int i; for(i=100;i<=999;i++) { b=i/100; s=(i-b*100)/10; g=i%10; if((b*b*b+s*s*s+g*g*g)==i) { printf("%d\n",i); } } return 0; }
2.题目描述:
用选择法对10个整数排序
#include<stdio.h> int main(void) { int arr[10]={10,9,8,7,6,5,4,3,2,1}; int i,j; int min,temp; for(i=0;i<10;i++) { min=i; for(j=i+1;j<10;j++) { if(arr[min]>arr[j]) { min=j; } } if(min!=i) { temp=arr[min]; arr[min]=arr[i]; arr[i]=temp; } } printf("排序后的数组为:\n"); for(i=0;i<10;i++) { printf("%d",arr[i]); } return 0; }
注意:每次找到一个最小的应该和i交换,不是和j交换。。
3.题目描述:
编写一个函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。
#include<stdio.h> #include<stdlib.h> #include<string.h> int english=0; int space=0; int number=0; int other=0; void count( char *str) { int i; for(i=0;i<strlen(str);i++) { if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) { english++; }else if(str[i]==' ') { space++; }else if(str[i]>='0'&&str[i]<='9') { number++; }else{ other++; } } } int main(void) { char str[100]; gets(str); count(str); printf("英文字母的个数为%d\n",english); printf("空格的个数为%d\n",space); printf("数字的个数为%d\n",number); printf("其他字符的个数为%d\n",other); return 0; }
注意:仔细审题,在主函数输出数据。
4.题目描述:
有两个磁盘文件“A"和”B“,各存放一行字母,现要求编写程序实现,把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件"C"中去。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { FILE *fa,*fb,*fc; int i,j; char a[100]; char b[100]; char temp; if((fa=fopen("A.txt","r"))==NULL) { printf("can not open this file."); exit(0); } fgets(a,100,fa); fclose(fa); if((fb=fopen("B.txt","r"))==NULL) { printf("can not open this file."); exit(0); } fgets(b,100,fb); fclose(fb); strcat(a,b); for(i=0;i<strlen(a)-1;i++) { for(j=0;j<strlen(a)-1-i;j++) { if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } fclose(fb); if((fc=fopen("C.txt","w"))==NULL) { printf("can not open this file."); exit(0); } fputs(a,fc); fclose(fc); return 0; }
注意:
1.打开文件要关闭
2. strcmp()字符串比较函数
3. strcat()字符串拼接函数
4. strcpy()字符串拷贝函数,后面的字符串会覆盖掉前边的字符串,这不是拼接函数。