㈠ 跪求C primer plus(第五版)中文版 編程練習 第二章第六題 答案
#include<stdio.h>
void smile(int n)
{
for(int i =0;i<n;i++)
printf("Smile!");
}
main()
{
smile(3);printf("\n");
smile(2);printf("\n");
smile(1);printf("\n");
}
㈡ c++ primer plus 第五章 編程練習 第七題
vc6.0上完全可以運行沒有錯誤!
運行結果:
Enter words (to stop, type the word done):
完全可以運行
done
You entered a total of 1 words.
請按任意鍵繼續. . .
cin>> word;這個word接收的字元是遇到空格回車等就判斷為一個單詞並賦值給word。
如果你要用cin.get()的稍顯麻煩。首先cin.get()也可以接收字元串,但不太適用你的情況,忽略。
cin.get()形參為空的時候就是一個一個字元讀取。並且可以接收空格或者回車,可以這么判斷 if(cin.get() == '\t' || cin.get() == '\n')
但是: 1、你的結束條件要修改,因為他只能接受一個字元,所以結束條件改為一個字元不要用done。或者乾脆遇到空格(\t)判斷一個單詞,遇到回車(\n)為結束。
2、如果連續輸入兩個或兩個以上空格的情況你要考慮,不要判斷為兩個或兩個以上的單詞.
總體來說cin.get()程序要稍復雜一點
㈢ c primer plus(第五版)編程練習全部答案
我只有第四版的(書和習題答案) 要的話給我你的郵箱吧 給你郵過去 呵呵
㈣ C primer plus 編程練習第8章第8題
#include<stdio.h>
int main(void)
{
double f_num, s_num;
char choice,cTemp;
char n[20];
printf("Enter the operation of your choice:\n");
printf("a. add s. subtract\n");
printf("m. multiply d. divide\n");
printf("q. quit\n");
while( scanf("%c", &choice) == 1 && choice != 'q')
{
switch(choice)
{
case 'a':
printf("Enter first number: ");
while(scanf("%lf",&f_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("Enter second number: ");
while(scanf("%lf",&s_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("\nPlease enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("%g + %g = %g", f_num, s_num, f_num + s_num);
break;
case 's':
printf("Enter first number: ");
while(scanf("%lf",&f_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("Enter second number: ");
while(scanf("%lf",&s_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("%g - %g = %g", f_num, s_num , f_num - s_num);
break;
case 'm':
printf("Enter first number: ");
while(scanf("%lf",&f_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("Enter second number: ");
while(scanf("%lf",&s_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("%g * %g = %g", f_num, s_num , f_num * s_num);
break;
case '\n':
continue; // importance
case 'd':
printf("Enter first number: ");
while(scanf("%lf",&f_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
printf("Enter second number: ");
while(scanf("%lf",&s_num)!=1)
{
while((cTemp=getchar())!='\n')putchar(cTemp);
printf(" is not an number.");
printf("Please enter a number ,such as 2.5, -1.78E8, or 3:");
}
while(s_num ==0)
{
printf("Enter a number other than 0:");
scanf("%lf", &s_num);
}
printf("%g / %g = %g", f_num, s_num , f_num / s_num);
break;
default:
printf("please input a , s , m , d or q to quit");
}
printf("\nEnter the operation of your choice:\n");
printf("a. add s. subtract\n");
printf("m. multiply d. divide\n");
printf("q. quit\n");
}
return 0;
}
我修改過後測試通過,主要是你在輸入確認是數字還是英文的時候處理的不好。還有你可以把第一個數和第二個數定義為數組,這樣用一個循環輸入會使代碼減少很多,不然看起很重復。
㈤ c primer plus 編程練習
第13題?比較arr[i][j]和上下左右四個相鄰的元素就是了,如果之間的差不是全部大於1就不用動,否則用邊上那四個的平均值代替arr[i][j]就是了,注意一下邊角的情況即可
...看看下面這個程序能用不
void fun(int arr[][30])
{
int round;
int i,j,flag1,flag2,flag3,flag4,num1,num2,num3,num4;
for(i=0;i<20;i++)
for(j=0;j<30;j++)
{
round=4;//表示該元素周圍的元素個數,1,2,3,4
if(i==0)//考慮處於第一行的情況
{
num1=0;//求平均數的時候用
flag1=1;//相差是否大於1的標志
round--;
}
else
{
num1=arr[i-1][j];
flag1=(abs(arr[i][j]-num1)>1?1:0);
}
if(j==0)
{
num2=0;
flag2=1;
round--;
}
else
{
num2=arr[i][j-1];
flag2=(abs(arr[i][j]-num2)>1?1:0);
}
if(j==29)
{
num3=0;
flag3=1;
round--;
}
else
{
num3=arr[i][j+1];
flag3=(abs(arr[i][j]-num3)>1?1:0);
}
if(i==19)
{
num4=0;
flag4=1;
round--;
}
else
{
num4=arr[i+1][j];
flag4=(abs(arr[i][j]-num4)>1?1:0);
}
if(flag1 && flag2 && flag3 && flag4)
{
arr[i][j]=(int)((float)(num1+num2+num3+num4)/round+0.5);//四捨五入
}
}
}
㈥ 求C Primer Plus第二章編程練習題第七題答案
#include <stdio.h>
void one_three();
void two();
int main()
{
printf("starting now:\n");
one_three();
printf("done!\n");
return 0;
}
void one_three()
{
printf("one\n");
two();
printf("three\n");
}
void two()
{
printf("two\n");
}
㈦ C primer plus 編程練習答案
發了,第五版的,不知道是不是你要的。TXT格式,有點亂。
㈧ C語言問題《C Primer Plus》第四章編程練習(第六版)
這是《C Primer Plus》第四章編程練習(第六版)4.8.5的練習題:
參考代碼如下:
#include<stdio.h>
intmain(void){
floatdownloadSpeed,fileSize;
printf("Pleaseinputyourdownloadspeed(Mb/s):");
scanf("%f",&downloadSpeed);
printf("Pleaseinputyoufilesize(Mb):");
scanf("%f",&fileSize);
printf("At%.2fmegabitspersecond,afileof%.2fmegabytes ",downloadSpeed,fileSize);
printf("downloadin%.2fseconds. ",fileSize*8/downloadSpeed);
}
執行結果如下:
㈨ C++ primer plus第六版中文版課後編程練習答案
您好,以下只是一部分:
注釋:這些程序是唐刀在學習的時候編寫的,其中可能存在錯誤和不足,大家做個參考就好。
1.
#include<iostream>#include<cctype>intmain(){
usingnamespacestd;
cout<<"請輸入字元,@符號結束"<<endl;charch;
while(cin.get(ch)&&ch!='@'){
if(isalpha(ch))//如果ch是字母{
if(isupper(ch))//如果ch是大寫字母{
cout<<char(tolower(ch));}else//如果ch是小寫字母{
cout<<char(toupper(ch));//轉換為大寫字母然後輸出}
}
elseif(!isdigit(ch))
//非數字非字母則原樣輸出
cout<<ch;
else
continue;}
return0;
具體的,您還要到這里看看:http://blog.csdn.net/qq844352155
網友自己寫的
基本都有,陸續更新中。