编程调试记录之一
2010-04-22 23:50
232 查看
C语言中对字符串的操作一共4种:
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int x,y;
x==2;[高攀1]
y=5;
printf("%d/n",x+y);
}
1245073
Press any key to continue
#include<stdio.h>
int main(void)
{
int i,m,n,j,p,q,sum;
printf("Enter m:");
scanf("%d",&m);
printf("Enter n:");
scanf("%d",&n);
p=1;q=1;
for(i=1,j=1;i<=n,j<=m;i++,j++)[微软用户2]
{
p=p*i;
q=q*j;
}
sum=p+q;
printf("sum=%d/n",sum);
return 0;
}
结论:不要将两个循环合并为一个循环——当其中的一个判断条件不满足时,循环终止,结果将比预期的小;但当m、n相等时能得出语气结果。
/*实验题目1:实现顺序表各种基本运算的算法。
编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:
(1)初如化顺序表L。
(2)依次采用尾插法插入A,B,C,D,E元素。
(3)输出顺序表L。
(4)输出顺序表L的长度。
(5)判断顺序表L是否为空。
(6)输出顺序表L的第3个元素。
(7)输出元素A的位置。
(8)在第4个元素位置上插入F元素。
(9)输出顺序表L。
(10)删除L的第3个元素。
*/
#include"stdio.h"
int main()
{
int biao[100]={1,2,3,4,5,6,7}; //用数组作为表的结构,并初始化顺序表
int i,j,f,array[5]; //用来保存将要插入的5个元素
int n=7; //顺序表长度
printf("请输入5个元素的值/n");
for(i=0;i<5;i++)
scanf("%d",&array[i]);
for(j=0;j<5;j++) //依次采用尾插法插入A,B,C,D,E元素
{
n++; //顺序表长度加1
for(i=n-1;i>=0;i--)
biao[i+1]=biao[i];
biao[0]=array[j];
}
for(i=0;i<n;i++) //输出顺序表L
printf("%d ",biao[i]);
puts(" ");
printf("%d/n",n);//输出顺序表L长度
if(n==0)
printf("顺序表是空的!/n");
else
printf("顺序表不是空的!/n");
printf("第3个元素:%d/n",biao[2]); //输出顺序表L的第3个元素,即下标为2的元素
for(i=0;i<n;i++) //输出元素A,即array[0]的位置
if(biao[i]==array[0])
printf("%d/n",i);
for(i=3;i<n;i++)
biao[i+1]=biao[i]; //从第四个位置,元素后移,空出第四个元素的位置
printf("请输入F:/n");
scanf("%d",&f);
biao[3]=f; //在第4个元素位置上插入F元素
for(i=0;i<n;i++)
printf("%d ",biao[i]); //输出顺序表L
puts(" ");
for(i=2;i<n;i++)
biao[i]=biao[i+1]; //从第三个位置,元素前移,即删除L的第3个元素
return 0;
}
/*2099 整除的尾数 暴力算法*/
#include"stdio.h"
int main()
{
int a,b,i,count;
while(scanf("%d%d",&a,&b)!=EOF&&a||b)
{
for(count=0,i=a*100;i<=a*100+99;i++)
if(i%b==0)
printf(count++==0? "%02d[微软用户4] ":" %02d",i%100);
puts(" ");
}
}
[高攀1]编译器忽视了此bug
[微软用户2]不要将两个循环合并为一个循环——当其中的一个判断条件不满足时,循环终止,结果将比预期的小;但当m、n相等时能得出语气结果。
[微软用户3]此等号非同小可!!!没有等号会怎么样???
[微软用户4]表示以两个宽度输出,不足的在前面补0凑齐
#include <stdio.h> int main( ) { char str[80]; gets(str); puts(str); puts("Hello"); return 0; | int main( ) { char str[80]; scanf("%s", str); printf("%s", str); printf("%s", "Hello"); return 0; } | i = 0; while((str[i] = getchar( )) != '/n') i++; str[i] = '/0'; count = 0; for(i = 0; str[i] != '/0'; i++) if(str[i] <= '9' && str[i] >= '0') count++; printf("count = %d/n", count); return 0; } |
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int x,y;
x==2;[高攀1]
y=5;
printf("%d/n",x+y);
}
1245073
Press any key to continue
#include "stdio.h" #include "time.h" int main() { time_t biggest=0x7FFFFFFF; printf("biggest=%s/n",ctime(&biggest)); return 0; } biggest=Tue Jan 19 11:14:07 2038 Press any key to continue |
#include"stdio.h" int main() { int a,b; scanf("%d,%d",&a,&b); printf("%d %d",a,b); } | 运行结果: 4,5 4 5Press any key to continue 运行结果: 4 5 4 -858993460Press any key to continue |
#include"stdio.h" int main() { int a b; scanf("%d,%d",&a,&b); printf("%d %d",a,b); } | 运行结果: 4 5 4 5Press any key to continue 运行结果: 4,5 4 -858993460Press any key to continue |
/*计算y=a*x*x+b*x+c的值*/ #include"stdio.h" main() { double a,b,c,x,y; scanf("%lf%lf%lf%lf",&a,&b,&c,&x); y=a*x*x+b*x+c; printf("%lf/n",y); } |
/*【例6-8】输入一行字符,将其中的大写字母转换为相应的小写字母后输出,小写字母转换为相应的大写字母后输出,其他字符按原样输出。*/ /* 大小写英文字母转换 */ #include <stdio.h> int main(void) { char ch; /* 定义1个字符变量ch */ printf("input characters: "); /* 输入提示 */ ch = getchar(); /* 第8行,输入一个字符,赋给变量 ch */ /* 比较ch和 '/n',当输入的字符不是回车时,继续循环;遇回车,则循环结束 */ while(ch != '/n'){ if ( ch >= 'A' && ch <= 'Z' ) /* 如果ch是大写字母 */ //ch = ch - 'A' + 'a'; /* 大写字母转换为小写字母 */ ch = ch+32; else if ( ch >= 'a' && ch <= 'z') /* 如果ch是小写字母 */ ch = ch -32; /* 小写字母转换为大写字母 */ putchar(ch); /* 输出转换后的字符 */ ch = getchar(); /* 第16行,读入下一个字符 */ } /* 第17行 */ return 0; } |
#include"stdio.h" int main() { int array[6],i; for(i=0;i<6;i++) printf("%x /n",&array[i]); } | ||
#include"stdio.h" int main() { int array[6],i; for(i=0;i<6;i++) { array[i]=i; printf("%x%x %x/n",&array[i],&(&i)[0],&array[i]); } } | 运行结果: 12ff68 12ff64 12ff68 12ff6c 12ff64 12ff6c 12ff70 12ff64 12ff70 12ff74 12ff64 12ff74 12ff78 12ff64 12ff78 12ff7c 12ff64 12ff7c Press any key to continue 结论: &(&i)[0]和i等价 | |
int main(void)
{
int i,m,n,j,p,q,sum;
printf("Enter m:");
scanf("%d",&m);
printf("Enter n:");
scanf("%d",&n);
p=1;q=1;
for(i=1,j=1;i<=n,j<=m;i++,j++)[微软用户2]
{
p=p*i;
q=q*j;
}
sum=p+q;
printf("sum=%d/n",sum);
return 0;
}
结论:不要将两个循环合并为一个循环——当其中的一个判断条件不满足时,循环终止,结果将比预期的小;但当m、n相等时能得出语气结果。
/*实验题目1:实现顺序表各种基本运算的算法。
编写一个程序,实现顺序表的各种基本运算,并在此基础上设计一个主程序完成如下功能:
(1)初如化顺序表L。
(2)依次采用尾插法插入A,B,C,D,E元素。
(3)输出顺序表L。
(4)输出顺序表L的长度。
(5)判断顺序表L是否为空。
(6)输出顺序表L的第3个元素。
(7)输出元素A的位置。
(8)在第4个元素位置上插入F元素。
(9)输出顺序表L。
(10)删除L的第3个元素。
*/
#include"stdio.h"
int main()
{
int biao[100]={1,2,3,4,5,6,7}; //用数组作为表的结构,并初始化顺序表
int i,j,f,array[5]; //用来保存将要插入的5个元素
int n=7; //顺序表长度
printf("请输入5个元素的值/n");
for(i=0;i<5;i++)
scanf("%d",&array[i]);
for(j=0;j<5;j++) //依次采用尾插法插入A,B,C,D,E元素
{
n++; //顺序表长度加1
for(i=n-1;i>=0;i--)
biao[i+1]=biao[i];
biao[0]=array[j];
}
for(i=0;i<n;i++) //输出顺序表L
printf("%d ",biao[i]);
puts(" ");
printf("%d/n",n);//输出顺序表L长度
if(n==0)
printf("顺序表是空的!/n");
else
printf("顺序表不是空的!/n");
printf("第3个元素:%d/n",biao[2]); //输出顺序表L的第3个元素,即下标为2的元素
for(i=0;i<n;i++) //输出元素A,即array[0]的位置
if(biao[i]==array[0])
printf("%d/n",i);
for(i=3;i<n;i++)
biao[i+1]=biao[i]; //从第四个位置,元素后移,空出第四个元素的位置
printf("请输入F:/n");
scanf("%d",&f);
biao[3]=f; //在第4个元素位置上插入F元素
for(i=0;i<n;i++)
printf("%d ",biao[i]); //输出顺序表L
puts(" ");
for(i=2;i<n;i++)
biao[i]=biao[i+1]; //从第三个位置,元素前移,即删除L的第3个元素
return 0;
}
#include"stdio.h" main() { int n,i,m,cnt=1; scanf("%d",&n); printf(" 2"); for(m=3;m<n;m++) { for(i=2;i<=[微软用户3] m/2;i++)//加了一个等号 if(m%i==0) break; if(i>m/2) { cnt++; printf("%4d ",m); } if(cnt%5==0) printf("/n"); } } | 运行结果: 125 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 Press any key to continue |
#include"stdio.h"
int main()
{
int a,b,i,count;
while(scanf("%d%d",&a,&b)!=EOF&&a||b)
{
for(count=0,i=a*100;i<=a*100+99;i++)
if(i%b==0)
printf(count++==0? "%02d[微软用户4] ":" %02d",i%100);
puts(" ");
}
}
[高攀1]编译器忽视了此bug
[微软用户2]不要将两个循环合并为一个循环——当其中的一个判断条件不满足时,循环终止,结果将比预期的小;但当m、n相等时能得出语气结果。
[微软用户3]此等号非同小可!!!没有等号会怎么样???
[微软用户4]表示以两个宽度输出,不足的在前面补0凑齐
相关文章推荐
- GPU(CUDA)学习日记(六)------ vector,动态数组,引用,编程调试经验总结等一些比较琐碎的记录
- ACM_编程与调试重点记录(六)
- ACM_编程与调试重点记录(十二)
- GPU(CUDA)学习日记(六)------ vector,动态数组,引用,编程调试经验总结等一些比较琐碎的记录
- ACM_编程与调试重点记录(七)
- ACM_编程与调试重点记录(十三)
- 嵌入式编程中调试问题全记录
- C语言精华记录——捌(预处理、程序调试、编程风格)
- ACM_编程与调试重点记录(八)
- ACM_编程与调试重点记录(十六)
- ACM_编程与调试重点记录(一)
- ACM_编程与调试重点记录(九)
- ACM_编程与调试重点记录(十七).doc
- ACM_编程与调试重点记录(二)
- ACM_编程与调试重点记录(十一)
- ACM_编程与调试重点记录(三)
- ACM_编程与调试重点记录(四)
- ACM_编程与调试重点记录(十七)
- ACM_编程与调试重点记录(五)
- ACM_编程与调试重点记录(十四)