1.题目描述:
1.编写程序,其中的子函数功能为求两个自然数的最大公约数。在主函数中读入两个自然数,并输出最大公约数的结果。
#include<stdio.h> int maxyue(int a,int b) { int t; int y=a%b; if(a<b) { t=a; a=b; b=t; } while(y!=0) { a=b; b=y; y=a%b; } return b; } int main(void) { int x,y; printf("请输入两个数:\n"); scanf("%d%d",&x,&y); printf("这两个数的最大公约数为%d",maxyue(x,y)); return 0; }
2.题目描述:
编写程序统计输入的一个字符串中大写字母的个数。例如,输入字符串的内容为“AbaCrtH”,则应输入结果为3。
#include<stdio.h> #include<string.h> #include<stdlib.h> int main(void) { char str[100]; int number=0; int i; printf("请输入一个字符串:\n"); gets(str); for(i=0;i<strlen(str);i++) { if(str[i]>='A'&&str[i]<='Z') { number++; } } printf("该字符串大写字母的个数为%d",number); return 0; }
3.题目描述:
用冒泡法对读入的10个整数进行排序并输出结果。
#include<stdio.h> #include<stdlib.h> #include<string.h> int main(void) { int arr[10]; int i,j; int temp; printf("请输入10个整数:\n"); for(i=0;i<10;i++) { scanf("%d",&arr[i]); } for(i=0;i<9;i++) { for(j=0;j<9-i;j++) { if(arr[j]>arr[j+1]) { temp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } for(i=0;i<10;i++) { printf("%d\n",arr[i]); } return 0; }
4.题目描述:
编写程序,找出1-299之间能被3整除,且至少有一位数字为5的所有整数,并将结果写入result.txt文件中。
#include<stdlib.h> #include<stdio.h> #include<string.h> int havefive(int n) { int a=n/100; int b=(n-a*100)/10; int c=n%10; if(a==5||b==5||c==5) { return 1; } return 0; } int main(void) { FILE *fr; int i; if((fr=fopen("result.txt","w"))==NULL) { printf("can not open this file."); exit(0); } for(i=1;i<300;i++) { if(i%3==0&&havefive(i)) { char a=i; printf("%d\n",i); fprintf(fr,"%d\n",i); } } fclose(fr); return 0; }
注意:要保证不乱码,要用fprintf()函数。