修改itoa函式,使得該函式可以接受三個引數。其中第三個引數為最小字元寬度。
#include <stdio.h>
#include <limits.h>
void itoa(int n, char s[], int width);
void reverse(char s[]);
int main(void) {
char buffer[20];
itoa(INT_MIN, buffer, 7);
printf("Buffer:%s\n", buffer);
return 0;
}
void itoa(int n, char s[], int width) {
int i, sign;
if ((sign = n) < 0)
n = -n;
i = 0;
do {
s[i++] = n % 10 + '0';
printf("%d %% %d + '0' = %d\n", n, 10, s[i-1]);
} while ((n /= 10) > 0);
if (sign < 0)
s[i++] = '-';
while (i < width ) /* Only addition to original function */
s[i++] = ' ' ;
s[i] = '\0';
reverse(s);
}
void reverse(char s[]) {
int c, i, j;
for ( i = 0, j = strlen(s)-1; i < j; i++, j--) {
c = s[i];
s[i] = s[j];
s[j] = c;
}
}
相關推薦
修改itoa函式,使得該函式可以接受三個引數。其中第三個引數為最小字元寬度。
#include <stdio.h> #include <limits.h> void itoa(int n, char s[], int width); void reverse(char s[]); int main(void)
effective c++乾貨之條款06:若不想使用編譯器自動生成的函式,就該明確拒絕
假如你建立了一個類用來表示世界上的每一個人: class aPerson { //... }; 每一個人都是獨一無二的,所以為一個人做一個副本顯得有悖倫理道德,那麼我們就應該禁止拷貝構造和copy assignment操作(統稱為copying 函式)。 不幸的
有一個二叉樹,現在懷疑它有一個結點有2個父節點,請寫出一個函式來判斷該二叉樹是否存在一個節點含有2個父節點。如果存在,返回true,否則返回false。
可以這樣,要檢測一個結點是否有兩個父親時,先把從該結點開始的結點與原樹分離,分成兩部分,然後再從原樹再查詢該結點,如果找到那就是有兩個結點,如果沒有則遞迴查詢。</span> struct Node{ Node *pLeft; Node *pRight; int
條款06:若不想使用編譯器自動生成的函式,就該明確拒絕
結論1:為駁回編譯器自動(暗自)提供的機能,可將相應的成員函式宣告為private並且不予實現。 一般而言這個做法並不絕對安全,因為member函式和friend函式還可以呼叫private函式,此時可以將copy建構函式和copy assignment操作符宣告在一個專門
《Effective C++》條款6:若不想使用編譯器自動生成函式,就該明確拒絕
條款5中講了編譯器會預設為我們定義一些函式,①copy建構函式 ②copy assignment ③解構函式④default建構函式 ,那如果我們不想使用這些函式怎麼辦?條款5中講到了,什麼情況我們需要自己定義cpoy assignment和copy 建構函
習題 9.8 修改第6題的程式,增加一個fun函式,改寫main函式。改為在fun函式中呼叫change和display函式。在fun函式中使用物件的引用(Student &)作為形參。
C++程式設計(第三版) 譚浩強 習題9.8 個人設計 習題 9.8 修改第6題的程式,增加一個fun函式,改寫main函式。改為在fun函式中呼叫change和display函式。在fun函式中
用一個函式實現將一行字串中最短的單詞輸出。此行字串從主函式傳遞給該函式。假設字串中包含的單詞以空格作為分隔符號,例如”Asia Games 2010 is held in GuangZhou.”,其中最短的單詞是”is”和”in”。
山大 23:57:13 /* 輸入完單詞後不用再加空格!如果是兩個單詞一樣短還不能實現*/ #include<stdio.h>#include<string.h>void main(){int f(char str[],char str1[],int
Linux-C基礎知識學習:C語言作業-將5個學生成績儲存在一個數組中,單獨實現一個計算平均成績的average函式, 在main函式中獲取該函式返回的平均值,並列印。
Linux基礎知識學習 C語言作業:將5個學生成績儲存在一個數組中,單獨實現一個計算平均成績的average函式, 在main函式中獲取該函式返回的平均值,並列印。 #include <s
輸入一個十進位制整數,設計遞迴函式,將該整數轉化為一個二進位制數。 思考: 如何將一個十進位制數轉化成一個8進位制和16進位制數。
1,輸入一個十進位制整數,設計遞迴函式,將該整數轉化為一個二進位制數。思考: 如何將一個十進位制數轉化成一個8進位制和16進位制數。 #include<stdio.h> #define N 20 int main() { int a,n,c,k,i; cha
Effective c++ 條款06:若不想使用編譯器自動生成的函式,就該明確拒絕
通常情況下,如果不希望class支援某一特定機能,只要不宣告對應函式就可以了。但是這個策略對copy建構函式和copy assignment操作符卻不起作用。 1、將相應的函式宣告為private函式 編譯器自動構造的函式都是public的,而
Problem A: 呼叫函式,計算分段函式的值
#include<stdio.h> int sign(int n)//函式申明,定義函式 { int m; if(n>0) m=1; if(n==0) m=0; if(n<0) m=-1; return m;//返
呼叫函式,計算分段函式的值
Description 輸入x,計算並輸出下列分段函式的值。要求自定義函式sign(x)計算分段函式值,在main函式中輸入x,呼叫函式sign(x)完成計算,輸出函式結果。當x > 0時,函式值為1; 當x = 0時,函式值為0;當x < 0時,函式值為-1。 程式框架:
11月6日排序函式,匿名函式,回撥函式,遞迴函式, zip函式
##### 排序sort, sorted的區別: list.sort(func=None, key=None, reverse=False(or True)) 對於reverse這個bool型別引數,當reverse=False時:為正向排序;當reverse=True時:為方向排序。預設為Fal
建構函式,拷貝建構函式,解構函式,賦值函式
例一: class CGoods { //行為,成員方法 public: CGoods(char *name = NULL, int amount = 0, double price = 0.0) //建構函式 &nbs
102_js筆記5_js的函式(普通函式,匿名函式,箭頭函式,回撥函式,函式的提升,自調函式)
一,函式的定義和使用 1) 函式宣告方式 function add(num1,num2){ return num1+num2; } function add(num1,num2){ return num1+num2; }
20181130(裝飾器補充,疊加多個裝飾器,有參裝飾器,三元表示式,生成式,匿名函式,內建函式)
一、裝飾器的補充 1、函式屬性的傳遞 Python裝飾器(decorator)在實現的時候,被裝飾後的函式其實已經是另外一個函數了(函式名等函式屬性會發生改變),為了不影響,Python的functools包中提供了一個叫wraps的decorator來消除這樣的副作用。寫一個decora
演算法優化(1):基礎知識-凸集,單峰函式,擬凸函式與凸函式,函式凹凸性定義
本文筆記介紹我最近學習的演算法優化的基礎知識,有: 最優化問題的一般形式 約束問題的分類及形式 優化問題的分類 單峰函式(Unimodal function)的定義 擬凸函式(Quasiconvex function)的定義
(D10)Python-函式,lambda匿名函式
函式Function 函式變數 函式名是變數,他在建立函式時繫結一個函式 一個函式可以作用另一個函式的實參傳遞 可以吧一個函式傳遞給另一個函式,另一個函式的形參變數將繫結實參函式 示例1: 看懂如下程式
MySQL 中的函式--------日期函式,字串函式,數學函式,一些其他函式
函式 日期函式 字串函式 數學函式 其他函式 日期函式 函式名稱 描述 current_da
虛擬函式,純虛擬函式,抽象類,點H與點CPP檔案的結合
我居然可以將if…else if和if…if一視同仁,這是變瞎的前兆嗎? 題目:列印當月每個週日的日期和週日總的次數 #include<stdio.h> int main() { int i = 1,j = 1; for(i =