求救C语言高手!!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求救C语言高手!!相关的知识,希望对你有一定的参考价值。
求编写一个程序
从键盘输入任意的字符,按下列规则进行分类计数
第一类“0”“1”“2”“3”“4”“5”“6”“7”“8”“9”
第二类“+”“-”“*”“/”“%”“=”
第三类 其他字符
当输入字符“\”时先计数,然后停止接受输入,打印计数的结果。
#include <stdio.h>
int main()
int ch;
int num=0,count=0,other=0;
printf("Input a string:\n");
while((ch=getchar())!='\\')
if(ch<='9'&&ch>='0')
num++;
else if(ch=='+'||ch=='-'||ch=='*'||ch=='/'||ch=='%'||ch=='=')
count++;
else
other++;
printf("0~9的数字有:%d个\n乘除加减取模赋值运算符有:%d个\n其他字符有:%d个\n",num,count,other);
参考技术A #include "stdafx.h"
#include "conio.h"
main()
char buff[200];
int n = 0;
int m = 0;
int j =0;
int k = 0;
int l = 0;
while(1)
char cTem;
cTem = getch();
if (cTem == 0x5C)
if (n==0)
break;
else
for (m=0;m<n;m++)
if (buff[m] >= '0' && buff[m] <= '9')
j += 1;
else if (buff[m] == '+' ||
buff[m] == '-' ||
buff[m] == '*' ||
buff[m] == '/' ||
buff[m] == '%' ||
buff[m] == '=' )
k += 1;
else
l += 1;
break;
else
buff[n] = cTem;
n += 1;
printf("NO1: %d\n", j);
printf("NO2: %d\n", k);
printf("NO3: %d\n", l);
参考技术B 题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1.程序分析:利用while语句,条件为输入的字符不为'\n'.
2.程序源代码:
#include "stdio.h"
#include "conio.h"
main()
char c;
int letters=0,space=0,digit=0,others=0;
printf("please input some characters\n");
while((c=getchar())!='\n')
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letters++;
else if(c==' ')
space++;
else if(c>='0'&&c<='9')
digit++;
else
others++;
printf("all in all:char=%d space=%d digit=%d others=%d\n",letters,
space,digit,others);
getch();
粘个现成的,自己改一下,改一点就行了
参考资料:win tc编译
参考技术C 再加10分,我帮你做!将C语言循环部分优化,改成线性汇编或者C的都行!~~高手求救
用CCS编译
void geometryTrans()
int i,j;
int intCapX,intCapY;
for(i=0;i<numLines;i++) //行数
for(j=0;j<numPixels;j++) //像素数每行
intCapX = j-intXOffset;
intCapY = i-intYOffset;
// 判断是否在原图范围内
if((intCapX>=0) && (intCapX<numPixels))
if((i<numLines) && (intCapY>=0) && (intCapY<numLines))
// 传送亮度信号
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = *(Uint8 *)(capFrameBuf1->frame.iFrm.y1 + (i-intYOffset/2)*numPixels + intCapX);
else
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = 0xFF;
else
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = 0xFF;
问题:
用CCS翻译
void geometryTrans()
int i,j;
int intCapX,intCapY;
for(i=0;i<numLines;i++) //行数
for(j=0;j<numPixels;j++) //像素数每行
intCapX = j-intXOffset;
intCapY = i-intYOffset;
// 判断是否在原图范围内
if((intCapX>=0) && (intCapX<numPixels))
if((i<numLines) && (intCapY>=0) && (intCapY<numLines))
// 传送亮度信号
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = *(Uint8 *)(capFrameBuf1->frame.iFrm.y1 + (i-intYOffset/2)*numPixels + intCapX);
else
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = 0xFF;
else
*(Uint8 *)(disFrameBuf->frame.iFrm.y1 + i*numPixels + j) = 0xFF;
回答:
这个要看你使用什么编译器了。查看编译器的帮助文档,它会告诉你它支持那些指令集,并且做哪些可能的优化。
不同的编译器,是不一样的。
补充:GCC 不太清楚,你连VC++的版本都不说。汗,VC6是不支持SSE的,需要安装VC6SP5。
VS2005 和 VS2008 都支持 SSE。对 SSE/MMX 指令集优化得最好的,还是 Intel 的 c++ 编译器。
对并行和高性能计算,Fortran 的优势比较大。特别是 Fortran2003 的新特征,为并行计算做了很多专门的设定。Intel 也有 Fortran 的编译器。 参考技术A 这个要看你使用什么编译器了。查看编译器的帮助文档,它会告诉你它支持那些指令集,并且做哪些可能的优化。
不同的编译器,是不一样的。
补充:GCC 不太清楚,你连VC++的版本都不说。汗,VC6是不支持SSE的,需要安装VC6SP5。
VS2005 和 VS2008 都支持 SSE。对 SSE/MMX 指令集优化得最好的,还是 Intel 的 c++ 编译器。
对并行和高性能计算,Fortran 的优势比较大。特别是 Fortran2003 的新特征,为并行计算做了很多专门的设定。Intel 也有 Fortran 的编译器。
以上是关于求救C语言高手!!的主要内容,如果未能解决你的问题,请参考以下文章
将C语言循环部分优化,改成线性汇编或者C的都行!~~高手求救
关于学生信息管理的C语言编程问题求救(一定要是C语言编程,谢谢)
在Linux系统系下vi操作中C语言编程,如何进行复制粘贴?求救!