第八章习题 83判断一个数是否为素数 include <stdio.h> int prime( int n include <math h> I int i, k, flag=1; int prime( int n); kesgrt(n); void main( for(i=2, i<=k; i++) i int m, p; if(n%i==0) printf("In input a number: ) i flag=0; scanf(%d”,&m); break p=prime(m); if(p==1) printf(" the number is a prime. ) return(flag) else o printf( the number is not a prime.
第八章 习题 8.3 判断一个数是否为素数 int prime( int n ) { int i , k , flag=1 ; k=sqrt(n); for(i=2 ; i<=k ; i++) if(n%i==0) { flag=0 ; break ; } return(flag); } #include <stdio.h> #include <math.h> int prime( int n ) ; void main( ) { int m , p; printf(“\n input a number:”); scanf(“%d”,&m); p=prime(m); if (p==1) printf(“the number is a prime.”); else printf(“the number is not a prime.”); }
8.5使输入字符串按反序存放。 void maino #include <stdio. h> i char sl20]; void daozhi(char s20D) printf( input a string: " i char s2 20; int i, n gets(s1);/输入一行字符串s for(i=0;S[i!="V0y;i++); daozhi(s1);m将s1反序 n=i;Mn为字符串长度 puts(S1);∥输出字符串s1 for(i=0; i<n; i++) s2[ni-1l=s[i];/将s反序存入2 for(i=0; i<n; i++) s[i=s2[il;∥将s2复制到s中
8.5 使输入字符串按反序存放。 #include <stdio.h> void daozhi(char s[20]) { char s2[20]; int i,n; for(i=0;s[i]!='\0';i++) ; n=i; //n为字符串长度 for(i=0;i<n;i++) s2[n-i-1]=s[i]; //将s反序存入s2 for(i=0;i<n;i++) s[i]=s2[i]; //将s2复制到s中 } void main() { char s1[20]; printf("\ninput a string:"); gets(s1); //输入一行字符串s1 daozhi(s1); //将s1反序 puts(s1); //输出字符串s1 }
810输入一行字符串,将最长单词输出 思路:找长度最大的单词,必须记录每一个单词的字母个数,取最 大值;并将找到的单词输出 步骤 主程序:1、从键盘上输入一行字符,存入一字符数组str中; 2、调用一函数 maestri(,得到字符串中长度最大的单词; 3、将结果输出 函数 maestrO:1、设一个变量len存放最长单词的长度,其初始值 为0; 2、从字符串最左边开始,获得每一个单词的长度(即遇到一个空 格时,其前面为一个单词,用一个变量记录单词长度),与len比 较,若大于,则将其值赋予len,将此单词传送给另一数组strl;循 环直到整个字符串执行完为止。 在此最好将str1定义为全局变量,使得在函数 maxstr0中得到的值, 在主程序中也可以使用
8.10 输入一行字符串,将最长单词输出 思路:找长度最大的单词,必须记录每一个单词的字母个数,取最 大值;并将找到的单词输出。 步骤: 主程序:1、从键盘上输入一行字符,存入一字符数组str中; 2、调用一函数maxstr(), 得到字符串中长度最大的单词; 3、将结果输出。 函数maxstr():1、设一个变量len存放最长单词的长度,其初始值 为0; 2、从字符串最左边开始,获得每一个单词的长度(即遇到一个空 格时,其前面为一个单词,用一个变量记录单词长度),与len比 较,若大于,则将其值赋予len,将此单词传送给另一数组str1;循 环直到整个字符串执行完为止。 在此最好将str1定义为全局变量,使得在函数maxstr()中得到的值, 在主程序中也可以使用
#include <stdio. h> #include <string. h> char strll10;∥定义全局变量数组str1,用于存放最长单词 maxstrt( char al50],intn);/函数声明 viod main() i char str 501 int den printf("In input a string: ) gets(str);输入一行字符串str dlen= strlen(str);/求出字符串sr的长度 maxson(str;dlen);/调用函数求最长单词 printf( inthe max word=); put(str);∥输出最长单词
#include <stdio.h> #include <string.h> char str1[10]; //定义全局变量数组str1,用于存放最长单词 maxstr(char a[50] , int n) ;//函数声明 viod main( ) { char str[50]; int dlen ; printf("\n input a string:"); gets(str); //输入一行字符串str dlen=strlen(str); //求出字符串str的长度 maxstr(str,dlen); //调用函数求最长单词 printf("\nThe max word="); puts(str1); //输出最长单词 }
maxstr(char a[50, int n) for(m=i-j;m<=i; m++) f int i, len,j, m,x; i strlx=am; en=0;i=0 x++ while(i<=n) {j=0; 将较长单词存入str中 while((ail!=v)&&l(i<=n) strl[x=0 j++;i++;} ∥计算单词长度 if(i>len) len=J;
for(m=i-j;m<=i;m++) { str1[x]=a[m]; x++; } //将较长单词存入str1中 str1[x]='\0'; } i++; } } maxstr(char a[50], int n) { int i, len, j, m, x; len=0; i=0; while(i<=n) { j=0; while((a[i]!=' ')&&(i<=n)) { j++; i++; } // 计算单词长度j if (j>len) { len=j; x=0;