㈠ 跪求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
网友自己写的
基本都有,陆续更新中。