不二法门造句子:谁帮我做两个个VC编程问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/09 06:17:26
第一个题目:接收一个四位整数。编写一个程序,将该数的每一位数字相加并显示结果。
第二个题目:接收用户输入的数值,该数值表示某个字符的ASCII码,使用
putchar()函数显示该字符。
虽然这两道题对于编程高手来说是小菜一碟,可是我是初学者,比较笨,编出来的程序输出结果老是不对,请高手帮忙做一哈了
请把程序的具体过程写出来,主要是过程,我想看哈我到底哪里出错了

/*第一题*/
#include <iostream.h>

void main()
{
int x,y=1000,sum=0;
Continue:cout<<"请输入一个4位数:"<<endl;
cin>>x;
if(x>9999 || x<1000) //防止用户输入不合法的数字
{
cout<<"你输入的不是4位数!"<<endl;
goto Continue; //若不符合就继续
}
for(int i=0;i<4;i++)
{
sum += x / y; //千、百、十、个位依次除以1000,100,10,1,
//即得到相应位对应的数字,然后将其相加
x %= y; //本次的余数作为下次的除数
y /= 10; //被除数也要依次除以10
}
cout<<"sum="<<sum<<endl;
}
/*第二题*/
#include <iostream.h>
#include <stdio.h>

void main()
{
int x;
Continue: cout<<"请输入一个0~255(包括0和255)的数:"<<endl;
//这里 Continue是一个标号,但不能是关键字
cin>>x;
if(x>255 || x<0)//限定数值在ASCII码范围
{
cout<<"您的输入不合法,请重新输入!"<<endl;
goto Continue;//不符合条件则goto到第8句
}
putchar(x);//用putchar函数显示在屏幕,它的参数是int型的
}

第一题答案:
#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
int iNum;
cin >> iNum;

if ((iNum > 9999) || (iNum < 0))
{
cout << "ÇëÊäÈëÒ»¸öËÄλÕûÊý" << endl;
return -1;
}
int i1 = iNum / 1000;
iNum = iNum % 1000;

int i2 = iNum / 100;
iNum = iNum % 100;

int i3 = iNum / 10;
iNum = iNum % 10;

int i4 = iNum;

int iSum = i1 + i2 + i3 + i4;

cout << iSum << endl;
return 0;
}

第二题答案
#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
int iNum;
cin >> iNum;

if ((iNum > 256) || (iNum < 0))
{
cout << "ÇëÊäÈëÒ»¸öASCIIÂë" << endl;
return -1;
}

char c = iNum;
putchar(c);

return 0;
}

均在VC6中测试通过

给算法吧,我是学java的,vc不熟练,最多用C来写。

四位数分别用10 100 1000除,保留结果和余数,然后得出的就是4个位数了。然后加起来就ok。

第二个,输入int,转一下就好了……