刚学C语言,不太懂。把键盘输入的由数字字符组成的字符串转换为相应的数字。例如把"123"转换为整数123
//第一题
#include
#include
#include
int zhuanhuan(char s[]); //将字符串 转换成一个 整数
void main()
{
char s[5];
printf("请输入0-9999个数
");
gets(s);
while(1) //判断是否输入正确
{
int p=0; //用作哨兵值
int i=0; //用做循环计数器
int si=strlen(s); // 字符串的长度
while(strlen(s)>=5) //判断 位数 是否输入正确 如果不正确 就从新输入 并且 哨兵值 ++
{
printf("输入错误请重新输入
");
gets(s);
p++;
}
while(i<si) //判断字符串中是否都是数字 如果不是 就从新输入 并且哨兵值 ++
{
if(s[i]>=45&&s[i]<=57) //用ASCII码判断
{
i++;
}
else
{
printf("您输入的不是数字 请重新输入
");
gets(s);
p++;
}
}
if(0==p) //如果 哨兵值为0 就表示 这个字符串 两个条件都满足 就可以 退出了 否则 一直 循环
{
break;
}
}
printf("转换后的数字为 %d
",zhuanhuan(s));
}
int zhuanhuan(char s[])
{
int Slength=strlen(s); //确定 字符串的长度 为了if循环用
int SL=Slength-1; //表示 这个数值最大的一位 是哪一位
int i=0;
int sum=0; // 存储 转换后的数字
for(;i<Slength;i++)
{
sum=sum+(s[i]-48)*pow(10,SL);
SL--;
}
return sum; //返回 转换后的数字
}
//第二题
#include
#include
#include
void main()
{
srand(unsigned int(time(NULL))); //这个 你不用管 这是初始化 一个随机数
int fenshu[30]; //数组的大小
int i=0; //用做循环的计数器
double averages; //存储平均数
double sum=0; //存储分数总和
int FailNumber=0; //存储不及格的人数
int GoodNumber=0; //存储优秀的人数
for(i;i<30;i++)
{
fenshu[i]=rand()%100+1; //将0到100 分别随机的存储在数组中 PS: 打30个数 太累了 所以就随机出来一个 初学者 不用关心 如果 想知道 HI 我
}
i=0;
printf("数组中的数据为
"); //打印数组中的数据
for(i;i<30;i++)
{
printf("%d ",fenshu[i]);
}
printf("
");
i=0;
for(i;i<30;i++) //循环数组 求出数组的总和
{
sum=sum+fenshu[i];
}
averages=sum/i;
printf("平均数为%.2f
",averages); //输出平均数
i=0;
for (i;i<30;i++) //循环数组 判断 不及格 和 优秀
{
if(fenshu[i]<60)
{
printf("不及格的下标为: %d 分数为: %d
",i,fenshu[i]);
FailNumber++; //不及格人数++
}
else if(fenshu[i]>=90)
{
printf("优秀的下标为: %d 分数为: %d
",i,fenshu[i]);
GoodNumber++; //优秀人数++
}
}
printf("不及格的人数为: %d
",FailNumber); //输出 不及格人数
printf("优秀的人数为: %d
",GoodNumber); //输出 优秀人数
}
不懂的HI 我
#include "stdio.h"
#include "string.h"
int main()
{
int num,i;
char str[100];
printf("请输入字符串
");
scanf("%s",str);
num=strlen(str);
for(i=0;i<num;i++)
{
printf("%d",str[i]-48);//根据ASCII表
}
return 0;
}
//---------------------------------------------------------------------------
#include <stdio.h>
int main(void)
{
char a[80];
int b;
scanf("%s",a);//输入字符串
sscanf(a,"%d",&b);//从字符串a读取一个整数
printf("%d\n",b);//输出这个整数
return 0;
}
//---------------------------------------------------------------------------
#include <stdio.h>
int main(){
char a[10000];
int num=0,i=0;//num用来保存结果,i表示数组下标
gets(a);//接收字符串到数组a的库函数
while(a[i]!='\0'){//字符串结束符'\0'
num=num*10+(a[i]-48);//48是0的asc码值,字符在进行运算时是用它的asc码来计算的
i++;
}
printf("%d",num);
while(1);
return 0;
}
我运行了一下,是可以的。希望对你有所帮助。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void main()
{
int i;
char ch[20];
aa: printf("请输入:");
gets(ch);
for(i=0;i<strlen(ch);i++)
{
if(ch[i]<'0' || ch[i]>'9')
break;
}
if(i < strlen(ch))
{
printf("输入只能为数字\n");
goto aa;
}
else
i = atoi(ch);
printf("%d\n",i);
}
用到一个stdlib.h头文件的atoi方法就行了
void main(){
char a[];
int i,s=0;
gets(a);
for(i=0:a[i]!=0:i++)
s=10*s+a[i]-'0';
printf("%d",s):}
你觉得c语言难吗?为什么
想算个东西呢,又要写一大堆,当时考试份也超级低,到现在学了python终于上手了,才觉得当时也不是我的问题,就是学不懂c语言。二. 学习c语言的方法 不过,虽然当时学得我怀疑人生,但是我还是在这每天的头痛中找到了一些我学不好c语言的原因,总结了一些方法,大概归结为以下几项:多看书,勤练习 ...
对程序语言一点都不懂的初学者如何更好的学习C语言?麻烦前辈们指点详细...
再深入一点可以看看汇编,理解C语言的一些语法在汇编里面是如何实现的,对你理解一些知识点比较有帮助,可以试着去网上找些编程题目来自己试着写,学语言最重要的就是要多动手自己编程序啦,C里面比较重要的几个知识点,就是指针,函数,结构体,数组,这几个都是比较重要的东东 ...
关于C语言如何入门 我刚大一开始学 刚上两节课 完全听不懂 我该怎么...
你的情况我也遇到过,但不要灰心,基本上90%的同学都和你一样,别担心,首先就是要培养对这门课的兴趣,要学好一门语言,说容易也有点难,一定要乃的住寂寞,吃的了苦。其实,初学者学C语言,最好最初级的教材就是谭浩强老师编写的C语言课本,那本书是公认的适合初学者学习的,不知道你们用的是...
学习c语言需要什么基础吗 我现在买了本c语言的书,但是一点都看不懂...
<21天学通C语言>(第六版)Bradley L. Jones, Peler Aitken 著.信达工作室 译.人民邮电出版社 这本书对初学者很好, 如果有点基础那就更好了.建议选择谭浩强谭老师的书,简单易学,理论与实践结合的很好,而且如果能认真学的话,你会发现你的C语言基础非常的实。也不是说其他的书不好,但是有些书...
c语言为什么这么难学,我为什么老是学不会
C语言是不是就不值得学习了?其实这种说法是不对的,其实php,python等底层语言还不是一样用C语言来实现,所以C语言的重要性不言而喻。不要听信C语言已经过时之类的谣言,C语言一直都在默默无闻、踏踏实实地做着底层很重要的事情,经久不衰。想要在软件行业立足发展,C语言还是很值得学习的。
怎样学好c语言,那些符号什么的看不懂啊
C语言的关键之少,运算符多。运算符有算术运算、位运算、逻辑运算等,有单目、双目、三目运算,有优先级之分。加上C语法的灵活性,同样的代码在不同编译器上的解释都可能不一样,就是老程序员也未必能弄清楚。优先级 运算符 名称或含义 使用形式 结合方向 说明 1 []数组下标 数组名[常量表达式]...
如何能将c语言学好,学了一个学期了。还是学不会。
新手的话建议可以看看谭浩强的C程序设计,基本语法会了,可以看下数据结构和算法,接下来看计算机组成原理-->编译原理-->操作系统-->计算机网络。这些学好了,可以深入研究算法,另外可以看点计算机图形学和人工智能。程序最核心的是算法,所以数学基础要好,不能只能做一辈子码奴。其次英语要好,只要能...
怎样学好c语言 平时听不懂
学好C语言包括连个方面,一个是语法,另一个就是编程逻辑。语法问题比较容易解决,只要认真看书就可以了。但是编程逻辑就需要多加练习编程才可以形成。有的时候你会发现,一个简单的小逻辑,就是编不出来,那就是编程逻辑没有形成,没有学会用计算机语言来描述逻辑。所以,在学习的时候,不能只看书或者...
没读过书学c语言难吗
只是过c2级而已,没必要去学资料结构,只要懂得基本的程式设计就行了,能把最后几道题混过2道就行了,呵呵. --- C是没问题了,再了解下作业系统和网路就行了,稍做了解就可以了. C语言能过,加上平时积累的计算机经验,问题不大.学C语言难吗? 不难的。只要你对这方面感兴趣。 多看书或者视讯...
本人小白,学习了C语言基本语法后,还是不知道完整的程序该怎么写?_百 ...
一个基础的C语言程序包含:1、预处理命令(比如开头#include语句导入头文件,还有定义常量等)。2、全局变量定义。2、函数声明语句(就是有函数返回值类型,有参数类型,有函数名,但没有大括号的函数体内容)说明:如其他函数定义在main函数之下,这里需写声明,如定义在main函数之上,无需写声明。3、...
在禄天保: 有很多方法,我这里用sscanf()函数实现,它的作用是从字符串读取,而不是从标准输入读取,除此之外,和scanf()函数相同://---------------------------------------------------------------------------#include <stdio.h> int main(void) { char a[80]; int b; scanf(...
阿克塞哈萨克族自治县18464792752: 我是c语言初学者 想向大家请教几个问题 在c语言中 键盘任意输入十五个数 由大到 - ?
在禄天保: #include <stdio.h> int main() { int arr[15],i; for(i=0;i<16;i++) printf("%d",&arr[i]); for(i=0;i<16;i++) for(j=i;j<15-i;j++){ while(arr[i]<arr[j]) {temp=arr[i];arr[i]=arr[j];arr[j]=temp; } for(i=0;i<16;i++) printf(%d,arr[i]); return 0; }
阿克塞哈萨克族自治县18464792752: 帮我写俩C语言程序 题目1 把键盘输入的由数字字符组成的字符串转换为相应的数字.例如把"123"转换为整数12 - ?
在禄天保: 题目1 #include<stdio.h> #include <math.h> #include <string.h> int f(char s[]) {int n=strlen(s);long num=0;for (int i=0;i<n;i++){num+=(int(s[i])-48)*pow(10,n-i-1);}return num; }void main() {char s[4];printf("输入数字字符串:");gets(s);printf("num=%d\n",f(s)); }
阿克塞哈萨克族自治县18464792752: c语言中如何识别键盘输入的方向键? - ?
在禄天保: 你可以搜索一下方向键对应的ASII码值,然后判断是对应哪个方向键,或者应该可以直接判断输入的字符是'↑','↓','←','→'
阿克塞哈萨克族自治县18464792752: c语言中从键盘输入数据的规律和容易出错的地方 - ?
在禄天保: 以下为你收集的c语言输入数据要点及注意事项说明: (1)数据输入是相对计算机内存(2) 数据输入使用标准库函数完成(3) 数据输入标准库函数的原型声明在stdio.h头文件中 1、函数getchar函数的功能是从键盘上输入一个字符.其一...
阿克塞哈萨克族自治县18464792752: C语言中的键盘输入函数... - ?
在禄天保: k=k&0xff?0x00ff:k>>8;其实就是if(k&0xff) { k=0x00ff;}else { k=k>>8;}的简写.其实0xff和0x00ff是一样的,都表示同一个十六进制的值.书上这么写,没有错;至于为什么,就不好说了.可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的.毕竟尽信书不如无书!后面的k>>8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)
阿克塞哈萨克族自治县18464792752: 学习c语言,写程序得时候有些符号不知道怎么打出来,有没有什么办法啊. - ?
在禄天保: C语言取反操作为位操作一种,其符号为~.位于键盘左上角,esc键下方,有一个上面为~ 下面为`的键,~符号就是用这个键打出来的.方法为 1 按住shift键,左右均可. 2 按~键,即之前说的键. 3 抬起shift键. ~操作为单目操作,即只需要一个操作数.结果为操作数按位取反,原值某位上值为1,结果对应位上值为0;否则结果对应位上值为1.比如 ~0x87 = 0x78
阿克塞哈萨克族自治县18464792752: 编写程序,从键盘输入n,计算并输出如下e=1+1/1!+……+1/n! - ?
在禄天保: #include<stdio.h> double e=1.0; int i=1,n,m=1; printf("input n\n"); scanf("%d",&n); for(i=1;i<=n;i++) {m*=i;e+=1.0/m; } printf("e = %d",e);
阿克塞哈萨克族自治县18464792752: 初学C语言,几个关于输入的问题求解. - ?
在禄天保: 1.enter是回车,tab是跳格制表符,它的转义字符是\t.前者是换行,后者是跳格.2.这个问题很别扭,怎么会把结果输入进去呢?按程序的顺序,当输入结束后,就不会再输入了....
阿克塞哈萨克族自治县18464792752: 一个c的问题我还是新手不是很懂,输入和输出的数据类型是什么意思,每一个数据类型的含义. - ?
在禄天保: #include <stdio.h> main() { char a,b; int c; scanf("%c%c%d",&a,&b,&c); printf("'%c','%c',%d\n",a,b,c); }