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()函数。