日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习笔记8-作业

發布時間:2023/12/13 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记8-作业 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作業1:實現一個函數,判斷一個整數是否是素數,調用該函數來顯示出100~10000之間的所有素數

#include<stdio.h> #include<stdbool.h> #include<math.h> bool is_sushu(int num) {for(int i=2;i<=sqrt(num);i++){if(num%i==0)return false;}return true; }int main(int argc,const char* argv[]) {for(int i=100;i<10000;i++){if(is_sushu(i))printf("%d ",i); } }

作業2:輸入兩個日期,計算出兩個日期之間相隔多少天

#include<stdio.h> #include<stdbool.h> #include<stdlib.h>bool is_runnian(int year) {return 0==year%4 && 0!=year%100 || 0==year%400;}int day(int year,int mon,int day0) {int sum=0;for(int i=1;i<year;i++){sum+=365+is_runnian(i); }for(int i=1;i<mon;i++){switch(i){case 2:sum+=28+is_runnian(year);break;case 4:case 6:case 9:case 11:sum+=30;break;default:sum+=31;break;}}sum+=day0;return sum; }int main(int argc,const char* argv[]) {int day1,day2,year1,year2,mon1,mon2;printf("輸入第一個日期");scanf("%d%d%d",&year1,&mon1,&day1);printf("輸入第二個日期");scanf("%d%d%d",&year2,&mon2,&day2);int xgts=day(year1,mon1,day1)-day(year2,mon2,day2);printf("%d",abs(xgts)); }

作業3:實現一個函數,判斷一個整數是否是回文數,調用它來顯示1億~10億之間所有回文數

#include<stdio.h> #include<stdbool.h>bool is_huiwen(int num) {int copy=num,num1=0;while(copy>0){num1=num1*10+copy%10;copy=copy/10;}return num==num1; }int main(int argc,const char* argv[]) {for(int i=100000000;i<1000000000;i++){if(is_huiwen(i)) printf("%d ",i); } }

作業4:計算出100的階乘

#include<stdio.h>int main(int argc,const char* argv[]) {int num[50]={};int cnt=0;num[0]=1;for(int i=1;i<101;i++) //累乘{for(int j=cnt;j>=0;j--) //將一個數字每4個一組拆分{num[j] *= i; //num中每個數值*i if(num[cnt]>=10000)cnt++; //最高位大于10000,多用一個數組值if(num[j]>=10000){num[j+1] += num[j]/10000;num[j] = num[j]%10000;}}}for(int i=cnt;i>=0;i--){if(num[i]){printf("%d",num[i]);}else{printf("0000");}} }

改良版

#include <stdio.h>int main(int argc,const char* argv[]) {// 運算結果按位存到數組中 123 *9char rets[256] = {1};// 指向有進位時要賦值的位int cnt = 1;for(int i = 2; i<=100; i++){char carry = 0;for(int j = 0; j<cnt; j++){short num = rets[j] * i + carry;rets[j] = num % 10;carry = num / 10;}while(carry){// 如果最高位有進位,則賦值給進位,并cnt++rets[cnt++] = carry % 10;carry /= 10;}}printf("%d\n",cnt);while(cnt--){printf("%hhd",rets[cnt]); }}

作業5:輸入一個整數,顯示它的補碼

#include<stdio.h> #include<stdint.h> int main(int argc,const char* argv[]) {int num;printf("輸入n ");scanf("%d",&num);char bits[32]={};for(int i=0;i<32;i++){bits[i] = num >> i & 1; }for(int i=31;i>=0;i--){printf("%hhd",bits[i]); }}

總結

以上是生活随笔為你收集整理的学习笔记8-作业的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。