修改后的C语言程序:
#include <stdio.h>void triangle(int g)
{
int n=1, m /* 修改处1 */
for(nn<=g n++)
{
for(m=1m<=2*n-1m++) /* 修改处2 */
putchar('*')
putchar('\n')
}
}
void rectangle(int g)
{
int n=1, m /* 修改处3 */
for(nn<=gn++)
{
for(m=1m<=3m++) /* 修改处4 */
putchar('*')
putchar('\n')
}
}
int main()
{
int i,k
printf("请输入行数(大于3):")
scanf("%d",&i)
printf("请选择图形:1---三角形 \t2---矩形\t3---小旗 :")
scanf("%d",&k)
if(k==1)
{
triangle(i)
}
if(k==2)
{
rectangle(i)
}
if(k==3)
{
triangle(i)
rectangle(i)
}
return 0
}
#include<stdio.h>void del(char in[],char c, char res[]){
int i, j=0
for(i = 0 in[i]!= '\0' i++) {
if(in[i] != c) {
res[j++] = in[i]
}
}
res[j] = '\0'
}
int main(void) {
char a[5]="sdfs",c='s', b[5]
del(a,c,b)
puts(b)
return 0
}
不是打击你,你的代码没有几行是正确的。
#include<stdio.h>void del(char s[],char c){
int i,j
//--i从0一直往上加。永远不等于'\0'
for(i=0,j=0i!='\0'i++){
//应该跟c比较,不是‘c’
if(s[i]!='c')
//下面逻辑不通。
s[j]=s[i]
j++
}
}
//main函数签名要不要写全
main()
{char a[5],c
int i=0
//输入5个字符,‘\0’放在哪?
//c有没有初始化?
for(i=0i<5i++){
scanf("%c",a[i])
}
//--输出字符,del返回的是%c吗?
//传入的参数不是a[5],是个数组。
printf("%c",del(a[5],c))
}
不难吧?
int palindrome(char *s)
{ int i,L=strlen(s)
for (i=0i<L/2i++)
if (s[i] != s[L-i-1])
return 0
return 1
}
如图